public AnnotationExtractRule create(Env env) { AnnotationExtractRule r = new AnnotationExtractRule(); r.resultAnnotationField = EnvLookup.getDefaultResultAnnotationKey(env); r.resultNestedAnnotationField = EnvLookup.getDefaultNestedResultsAnnotationKey(env); r.tokensAnnotationField = EnvLookup.getDefaultTokensAnnotationKey(env); r.tokensResultAnnotationField = EnvLookup.getDefaultTokensResultAnnotationKey(env); if (env != null) { r.update(env, env.getDefaults()); } return r; }
public static MatchedExpression.SingleAnnotationExtractor createAnnotationExtractor(Env env, AnnotationExtractRule r) { MatchedExpression.SingleAnnotationExtractor extractor = new MatchedExpression.SingleAnnotationExtractor(); extractor.name = r.name; extractor.tokensAnnotationField = r.tokensAnnotationField; extractor.tokensResultAnnotationField = r.tokensResultAnnotationField; extractor.resultAnnotationField = r.resultAnnotationField; extractor.resultNestedAnnotationField = r.resultNestedAnnotationField; extractor.priority = r.priority; extractor.weight = r.weight; extractor.includeNested = r.includeNested; extractor.resultAnnotationExtractor = EnvLookup.getDefaultResultAnnotationExtractor(env); extractor.tokensAggregator = EnvLookup.getDefaultTokensAggregator(env); return extractor; }
protected AnnotationExtractRule create(Env env, String expr, Expression result) { AnnotationExtractRule r = super.create(env, null); if (r.annotationField == null) { r.annotationField = EnvLookup.getDefaultTextAnnotationKey(env); } r.ruleType = TEXT_PATTERN_RULE_TYPE; updateExtractRule(r, env, expr, null, result); return r; }
public static Class lookupAnnotationKeyWithClassname(Env env, String name) { Class annotationKey = lookupAnnotationKey(env, name); if (annotationKey == null) { try { Class clazz = Class.forName(name); return clazz; } catch (ClassNotFoundException ex) { } return null; } else { return annotationKey; } }
public static CoreMapNodePattern valueOf(Env env, Map<String, String> attributes) { CoreMapNodePattern p = new CoreMapNodePattern(new ArrayList<>(attributes.size())); p.populate(env, attributes, envAttrPair -> EnvLookup.lookupAnnotationKeyWithClassname(envAttrPair.first, envAttrPair.second)); return p; }
/** * Creates a default instance with the specified environment. * (use the default tokens annotation key as specified in the environment) * @param env Environment to use for binding variables and applying rules */ public CoreMapExpressionExtractor(Env env) { this.stages = new HashMap<>();//Generics.newHashMap(); this.env = env; this.tokensAnnotationKey = EnvLookup.getDefaultTokensAnnotationKey(env); this.collapseExtractionRules = false; if (env != null) { this.collapseExtractionRules = Objects.equals((Boolean) env.get("collapseExtractionRules"), true); if (env.get("verbose") != null) verbose = (env.get("verbose") != null) && Objects.equals((Boolean) env.get("verbose"), true); } }
public static MatchedExpression.SingleAnnotationExtractor createAnnotationExtractor(Env env, AnnotationExtractRule r) { MatchedExpression.SingleAnnotationExtractor valueExtractor = new MatchedExpression.SingleAnnotationExtractor(); valueExtractor.name = r.name; valueExtractor.tokensAnnotationField = r.tokensAnnotationField; valueExtractor.tokensResultAnnotationField = r.tokensResultAnnotationField; valueExtractor.resultAnnotationField = r.resultAnnotationField; valueExtractor.resultNestedAnnotationField = r.resultNestedAnnotationField; valueExtractor.priority = r.priority; valueExtractor.weight = r.weight; valueExtractor.includeNested = r.includeNested; valueExtractor.resultAnnotationExtractor = EnvLookup.getDefaultResultAnnotationExtractor(env); valueExtractor.tokensAggregators = EnvLookup.getDefaultTokensAggregators(env); return valueExtractor; }
@Override public Value apply(Env env, List<Value> in) { if (in.get(0) == null || in.get(0).get() == null ) return null; // Allow for null Map map = (Map) in.get(0).get(); Object key = in.get(1).get(); if (in.size() >= 3) { Value fieldValue = in.get(2); if (fieldValue != null) { map.put(key, fieldValue.get()); } else { map.remove(key); } } Object obj = map.get(key); if (in.size() == 2 && obj == null && key instanceof String) { Class annotationFieldClass = null; annotationFieldClass = EnvLookup.lookupAnnotationKey(env, (String) key); if (annotationFieldClass != null) { obj = map.get(annotationFieldClass); } } return Expressions.asValue(env, obj); // return Expressions.PrimitiveValue.create(null, obj); } };
Class fieldClass = EnvLookup.lookupAnnotationKeyWithClassname(null, field); if (fieldClass == null) { throw new RuntimeException( "Not recognized annotation class field \"" + field + "\" in header for mapping file " + allOptions[numOptions -1]);
/** * Creates a default instance with the specified environment. * (use the default tokens annotation key as specified in the environment) * @param env Environment to use for binding variables and applying rules */ public CoreMapExpressionExtractor(Env env) { this.stages = Generics.newHashMap(); this.env = env; this.tokensAnnotationKey = EnvLookup.getDefaultTokensAnnotationKey(env); }
public AnnotationExtractRule create(Env env) { AnnotationExtractRule r = new AnnotationExtractRule(); r.resultAnnotationField = EnvLookup.getDefaultResultAnnotationKey(env); r.resultNestedAnnotationField = EnvLookup.getDefaultNestedResultsAnnotationKey(env); r.tokensAnnotationField = EnvLookup.getDefaultTokensAnnotationKey(env); r.tokensResultAnnotationField = EnvLookup.getDefaultTokensResultAnnotationKey(env); if (env != null) { r.update(env, env.getDefaults()); } return r; }
Class annotationFieldClass = null; if (field instanceof String) { annotationFieldClass = EnvLookup.lookupAnnotationKey(env, (String) field); if (annotationFieldClass == null) { throw new IllegalArgumentException("Cannot get annotation field " + field);
@Override public AnnotationExtractRule create(Env env, Map<String,Object> attributes) { AnnotationExtractRule r = super.create(env, attributes); if (r.annotationField == null) { r.annotationField = EnvLookup.getDefaultTextAnnotationKey(env); } if (r.ruleType == null) { r.ruleType = TEXT_PATTERN_RULE_TYPE; } String expr = (String) Expressions.asObject(env, attributes.get("pattern")); Expression action = Expressions.asExpression(env, attributes.get("action")); Expression result = Expressions.asExpression(env, attributes.get("result")); updateExtractRule(r, env, expr, action, result); return r; } }
public static MatchedExpression.SingleAnnotationExtractor createAnnotationExtractor(Env env, AnnotationExtractRule r) { MatchedExpression.SingleAnnotationExtractor extractor = new MatchedExpression.SingleAnnotationExtractor(); extractor.name = r.name; extractor.tokensAnnotationField = r.tokensAnnotationField; extractor.tokensResultAnnotationField = r.tokensResultAnnotationField; extractor.resultAnnotationField = r.resultAnnotationField; extractor.resultNestedAnnotationField = r.resultNestedAnnotationField; extractor.priority = r.priority; extractor.weight = r.weight; extractor.includeNested = r.includeNested; extractor.resultAnnotationExtractor = EnvLookup.getDefaultResultAnnotationExtractor(env); extractor.tokensAggregator = EnvLookup.getDefaultTokensAggregator(env); return extractor; }
private static void addAnnotationPatterns(CollectionValuedMap<Class, Pair<Pattern,Pattern>> annotationPatterns, String conf, boolean attrOnly) { String[] annoPatternStrings = conf == null ? StringUtils.EMPTY_STRING_ARRAY : conf.trim().split("\\s*,\\s*"); for (String annoPatternString:annoPatternStrings) { String[] annoPattern = annoPatternString.split("\\s*=\\s*", 2); if (annoPattern.length != 2) { throw new IllegalArgumentException("Invalid annotation to tag pattern: " + annoPatternString); } String annoKeyString = annoPattern[0]; String pattern = annoPattern[1]; Class annoKey = EnvLookup.lookupAnnotationKeyWithClassname(null, annoKeyString); if (annoKey == null) { throw new IllegalArgumentException("Cannot resolve annotation key " + annoKeyString); } Matcher m = TAG_ATTR_PATTERN.matcher(pattern); if (m.matches()) { Pattern tagPattern = toCaseInsensitivePattern(m.group(1)); Pattern attrPattern = toCaseInsensitivePattern(m.group(2)); annotationPatterns.add(annoKey, Pair.makePair(tagPattern, attrPattern)); } else { if (attrOnly) { // attribute is require throw new IllegalArgumentException("Invalid tag pattern: " + pattern + " for annotation key " + annoKeyString); } else { Pattern tagPattern = toCaseInsensitivePattern(pattern); annotationPatterns.add(annoKey, Pair.makePair(tagPattern, null)); } } } }
/** * Creates a default instance with the specified environment. * (use the default tokens annotation key as specified in the environment) * @param env Environment to use for binding variables and applying rules */ public CoreMapExpressionExtractor(Env env) { this.stages = new HashMap<>();//Generics.newHashMap(); this.env = env; this.tokensAnnotationKey = EnvLookup.getDefaultTokensAnnotationKey(env); this.collapseExtractionRules = false; if (env != null) { this.collapseExtractionRules = Objects.equals((Boolean) env.get("collapseExtractionRules"), true); if (env.get("verbose") != null) verbose = (env.get("verbose") != null) && Objects.equals((Boolean) env.get("verbose"), true); } }
public AnnotationExtractRule create(Env env) { AnnotationExtractRule r = new AnnotationExtractRule(); r.resultAnnotationField = EnvLookup.getDefaultResultAnnotationKey(env); r.resultNestedAnnotationField = EnvLookup.getDefaultNestedResultsAnnotationKey(env); r.tokensAnnotationField = EnvLookup.getDefaultTokensAnnotationKey(env); r.tokensResultAnnotationField = EnvLookup.getDefaultTokensResultAnnotationKey(env); if (env != null) { r.update(env, env.getDefaults()); } return r; }
@Override public Value evaluate(Env env, Object... args) { Expression exp = null; String varName = value; if (args != null) { if (args.length == 1 && args[0] instanceof CoreMap) { CoreMap cm = (CoreMap) args[0]; if (VAR_SELF.equals(varName)) { return createValue(varName, cm); } Class annotationKey = EnvLookup.lookupAnnotationKey(env, varName); if (annotationKey != null) { return createValue(varName, cm.get(annotationKey)); } } } if (VAR_SELF.equals(varName)) { return createValue(varName, env.peek(varName)); } Object obj = env.get(varName); if (obj != null) { exp = asExpression(env, obj); } Value v = exp != null? exp.evaluate(env, args): null; if (v == null) { log.info("Unknown variable: " + varName); } return v; } public Expression assign(Expression expr) {
r.pattern = expr; if (formatter == null) { if (r.annotationField == null) { r.annotationField = EnvLookup.getDefaultTextAnnotationKey(env); }
public static MatchedExpression.SingleAnnotationExtractor createAnnotationExtractor(Env env, AnnotationExtractRule r) { MatchedExpression.SingleAnnotationExtractor extractor = new MatchedExpression.SingleAnnotationExtractor(); extractor.name = r.name; extractor.tokensAnnotationField = r.tokensAnnotationField; extractor.tokensResultAnnotationField = r.tokensResultAnnotationField; extractor.resultAnnotationField = r.resultAnnotationField; extractor.resultNestedAnnotationField = r.resultNestedAnnotationField; extractor.priority = r.priority; extractor.weight = r.weight; extractor.includeNested = r.includeNested; extractor.resultAnnotationExtractor = EnvLookup.getDefaultResultAnnotationExtractor(env); extractor.tokensAggregator = EnvLookup.getDefaultTokensAggregator(env); return extractor; }