Search in sources :

Example 1 with CategoryTypeEnum

use of org.mitre.cybox.objects.CategoryTypeEnum in project metron by apache.

the class AddressHandler method extract.

@Override
public Iterable<LookupKV> extract(final Address type, Map<String, Object> config) throws IOException {
    List<LookupKV> ret = new ArrayList<>();
    final CategoryTypeEnum category = type.getCategory();
    if (!SUPPORTED_CATEGORIES.contains(category)) {
        return ret;
    }
    String typeStr = getType();
    if (config != null) {
        if (config.containsKey(SPECIFIC_CATEGORY_CONFIG)) {
            List<CategoryTypeEnum> categories = new ArrayList<>();
            for (String c : Splitter.on(",").split(config.get(SPECIFIC_CATEGORY_CONFIG).toString())) {
                categories.add(CategoryTypeEnum.valueOf(c));
            }
            EnumSet<CategoryTypeEnum> specificCategories = EnumSet.copyOf(categories);
            if (!specificCategories.contains(category)) {
                return ret;
            }
        }
        if (config.containsKey(TYPE_CONFIG)) {
            typeStr = config.get(TYPE_CONFIG).toString();
        }
    }
    StringObjectPropertyType value = type.getAddressValue();
    for (String token : StixExtractor.split(value)) {
        final String indicatorType = typeStr + ":" + category;
        LookupKV results = new LookupKV(new EnrichmentKey(indicatorType, token), new EnrichmentValue(new HashMap<String, Object>() {

            {
                put("source-type", "STIX");
                put("indicator-type", indicatorType);
                put("source", type.toXMLString());
            }
        }));
        ret.add(results);
    }
    return ret;
}
Also used : LookupKV(org.apache.metron.enrichment.lookup.LookupKV) StringObjectPropertyType(org.mitre.cybox.common_2.StringObjectPropertyType) CategoryTypeEnum(org.mitre.cybox.objects.CategoryTypeEnum) EnrichmentKey(org.apache.metron.enrichment.converter.EnrichmentKey) EnrichmentValue(org.apache.metron.enrichment.converter.EnrichmentValue)

Example 2 with CategoryTypeEnum

use of org.mitre.cybox.objects.CategoryTypeEnum in project metron by apache.

the class AddressHandler method getPossibleTypes.

@Override
public List<String> getPossibleTypes() {
    String typeStr = getType();
    List<String> ret = new ArrayList<>();
    for (CategoryTypeEnum e : SUPPORTED_CATEGORIES) {
        ret.add(typeStr + ":" + e);
    }
    return ret;
}
Also used : CategoryTypeEnum(org.mitre.cybox.objects.CategoryTypeEnum)

Aggregations

CategoryTypeEnum (org.mitre.cybox.objects.CategoryTypeEnum)2 EnrichmentKey (org.apache.metron.enrichment.converter.EnrichmentKey)1 EnrichmentValue (org.apache.metron.enrichment.converter.EnrichmentValue)1 LookupKV (org.apache.metron.enrichment.lookup.LookupKV)1 StringObjectPropertyType (org.mitre.cybox.common_2.StringObjectPropertyType)1