NIFI-482: Allowed for new 'literal' function. Make expressions invalid when they attempt to evaluate functions against the values of 'reducing functions'; cleanup Evaluators that were depending on Abstract classes instead of interfaces. Updated EL Guide to include new 'literal' function
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/c4c98fc4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/c4c98fc4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/c4c98fc4 Branch: refs/heads/NIFI-680 Commit: c4c98fc4a92ef44993324c5510cc31ba4736d4b8 Parents: 0f01b3c Author: Mark Payne <marka...@hotmail.com> Authored: Fri Jun 19 09:01:35 2015 -0400 Committer: Mark Payne <marka...@hotmail.com> Committed: Mon Jun 22 09:04:55 2015 -0400 ---------------------------------------------------------------------- .../language/antlr/AttributeExpressionLexer.g | 1 + .../language/antlr/AttributeExpressionParser.g | 3 +- .../attribute/expression/language/Query.java | 255 ++++++++++++------- .../language/evaluation/BooleanEvaluator.java | 11 + .../language/evaluation/DateEvaluator.java | 11 + .../language/evaluation/Evaluator.java | 12 + .../language/evaluation/NumberEvaluator.java | 10 + .../language/evaluation/StringEvaluator.java | 11 + .../evaluation/functions/AndEvaluator.java | 6 +- .../evaluation/functions/AppendEvaluator.java | 6 +- .../functions/AttributeEvaluator.java | 4 +- .../evaluation/functions/ContainsEvaluator.java | 7 +- .../evaluation/functions/DivideEvaluator.java | 6 +- .../evaluation/functions/EndsWithEvaluator.java | 7 +- .../evaluation/functions/FindEvaluator.java | 7 +- .../evaluation/functions/FormatEvaluator.java | 4 +- .../functions/GreaterThanEvaluator.java | 7 +- .../functions/GreaterThanOrEqualEvaluator.java | 7 +- .../evaluation/functions/IndexOfEvaluator.java | 7 +- .../functions/LastIndexOfEvaluator.java | 7 +- .../evaluation/functions/LengthEvaluator.java | 7 +- .../evaluation/functions/LessThanEvaluator.java | 7 +- .../functions/LessThanOrEqualEvaluator.java | 7 +- .../evaluation/functions/MatchesEvaluator.java | 7 +- .../evaluation/functions/MinusEvaluator.java | 6 +- .../evaluation/functions/ModEvaluator.java | 6 +- .../evaluation/functions/MultiplyEvaluator.java | 6 +- .../evaluation/functions/NotEvaluator.java | 4 +- .../functions/NumberToDateEvaluator.java | 5 +- .../evaluation/functions/OrEvaluator.java | 6 +- .../evaluation/functions/PlusEvaluator.java | 6 +- .../evaluation/functions/PrependEvaluator.java | 6 +- .../functions/ReplaceAllEvaluator.java | 8 +- .../functions/ReplaceEmptyEvaluator.java | 6 +- .../evaluation/functions/ReplaceEvaluator.java | 8 +- .../functions/ReplaceNullEvaluator.java | 6 +- .../functions/StartsWithEvaluator.java | 7 +- .../functions/StringToDateEvaluator.java | 7 +- .../functions/SubstringAfterEvaluator.java | 6 +- .../functions/SubstringAfterLastEvaluator.java | 6 +- .../functions/SubstringBeforeEvaluator.java | 6 +- .../functions/SubstringBeforeLastEvaluator.java | 6 +- .../functions/SubstringEvaluator.java | 11 +- .../evaluation/functions/ToLowerEvaluator.java | 6 +- .../evaluation/functions/ToNumberEvaluator.java | 7 +- .../evaluation/functions/ToRadixEvaluator.java | 11 +- .../evaluation/functions/ToUpperEvaluator.java | 6 +- .../evaluation/functions/TrimEvaluator.java | 4 +- .../functions/UrlDecodeEvaluator.java | 6 +- .../functions/UrlEncodeEvaluator.java | 6 +- .../evaluation/literals/ToLiteralEvaluator.java | 43 ++++ .../evaluation/reduce/JoinEvaluator.java | 6 +- .../selection/AllAttributesEvaluator.java | 7 +- .../selection/AnyAttributeEvaluator.java | 7 +- .../AnyMatchingAttributeEvaluator.java | 21 -- .../selection/DelineatedAttributeEvaluator.java | 12 +- .../selection/IteratingEvaluator.java | 33 +++ .../evaluation/selection/MappingEvaluator.java | 11 +- .../selection/MultiAttributeEvaluator.java | 3 +- .../selection/MultiMatchAttributeEvaluator.java | 5 + .../selection/MultiNamedAttributeEvaluator.java | 5 + .../expression/language/TestQuery.java | 54 +++- .../asciidoc/expression-language-guide.adoc | 26 +- 63 files changed, 532 insertions(+), 286 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionLexer.g ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionLexer.g b/nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionLexer.g index 10394b9..80581f5 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionLexer.g +++ b/nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionLexer.g @@ -150,6 +150,7 @@ TO_RADIX : 'toRadix'; OR : 'or'; AND : 'and'; JOIN : 'join'; +TO_LITERAL : 'literal'; // 2 arg functions SUBSTRING : 'substring'; http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionParser.g ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionParser.g b/nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionParser.g index f6a87dd..7c37530 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionParser.g +++ b/nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionParser.g @@ -127,7 +127,8 @@ functionCall : functionRef -> booleanLiteral : TRUE | FALSE; zeroArgStandaloneFunction : (IP | UUID | NOW | NEXT_INT | HOSTNAME) LPAREN! RPAREN!; -oneArgStandaloneFunction : HOSTNAME^ LPAREN! booleanLiteral RPAREN!; +oneArgStandaloneFunction : (TO_LITERAL^ LPAREN! anyArg RPAREN!) | + (HOSTNAME^ LPAREN! booleanLiteral RPAREN!); standaloneFunction : zeroArgStandaloneFunction | oneArgStandaloneFunction; attributeRefOrFunctionCall : (attributeRef | standaloneFunction); http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/Query.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/Query.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/Query.java index 77d08c6..07fbac6 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/Query.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/Query.java @@ -95,12 +95,14 @@ import org.apache.nifi.attribute.expression.language.evaluation.functions.UuidEv import org.apache.nifi.attribute.expression.language.evaluation.literals.BooleanLiteralEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.literals.NumberLiteralEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.literals.StringLiteralEvaluator; +import org.apache.nifi.attribute.expression.language.evaluation.literals.ToLiteralEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.reduce.CountEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.reduce.JoinEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.reduce.ReduceEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.selection.AllAttributesEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.selection.AnyAttributeEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.selection.DelineatedAttributeEvaluator; +import org.apache.nifi.attribute.expression.language.evaluation.selection.IteratingEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.selection.MultiAttributeEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.selection.MultiMatchAttributeEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.selection.MultiNamedAttributeEvaluator; @@ -114,6 +116,7 @@ import org.antlr.runtime.ANTLRStringStream; import org.antlr.runtime.CharStream; import org.antlr.runtime.CommonTokenStream; import org.antlr.runtime.tree.Tree; + import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpressionParser.ALL_ATTRIBUTES; import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpressionParser.ALL_DELINEATED_VALUES; import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpressionParser.ALL_MATCHING_ATTRIBUTES; @@ -171,6 +174,7 @@ import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpre import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpressionParser.SUBSTRING_BEFORE; import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpressionParser.SUBSTRING_BEFORE_LAST; import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpressionParser.TO_DATE; +import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpressionParser.TO_LITERAL; import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpressionParser.TO_LOWER; import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpressionParser.TO_NUMBER; import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpressionParser.TO_RADIX; @@ -181,6 +185,7 @@ import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpre import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpressionParser.URL_DECODE; import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpressionParser.URL_ENCODE; import static org.apache.nifi.attribute.expression.language.antlr.AttributeExpressionParser.UUID; + import org.apache.nifi.attribute.expression.language.evaluation.selection.MappingEvaluator; /** @@ -205,7 +210,7 @@ public class Query { try { validateExpression(value, false); return true; - } catch (final ProcessException e) { + } catch (final AttributeExpressionLanguageParsingException | ProcessException e) { return false; } } @@ -341,7 +346,7 @@ public class Query { if (c == '\\') { backslashCount++; - } else if (c == quoteChar && ((backslashCount % 2 == 0) || lastChar != '\\')) { + } else if (c == quoteChar && (backslashCount % 2 == 0 || lastChar != '\\')) { return i; } @@ -359,7 +364,7 @@ public class Query { final String value = evaluated.toString(); final String escaped = value.replace("$$", "$"); - return (decorator == null) ? escaped : decorator.decorate(escaped); + return decorator == null ? escaped : decorator.decorate(escaped); } static String evaluateExpressions(final String rawValue, Map<String, String> expressionMap) throws ProcessException { @@ -631,6 +636,25 @@ public class Query { } private static void verifyMappingEvaluatorReduced(final Evaluator<?> evaluator) { + final Evaluator<?> rightMostEvaluator; + if (evaluator instanceof IteratingEvaluator) { + rightMostEvaluator = ((IteratingEvaluator<?>) evaluator).getLogicEvaluator(); + } else { + rightMostEvaluator = evaluator; + } + + Evaluator<?> eval = rightMostEvaluator.getSubjectEvaluator(); + Evaluator<?> lastEval = rightMostEvaluator; + while (eval != null) { + if (eval instanceof ReduceEvaluator) { + throw new AttributeExpressionLanguageParsingException("Expression attempts to call function '" + lastEval.getToken() + "' on the result of '" + eval.getToken() + + "'. This is not allowed. Instead, use \"${literal( ${<embedded expression>} ):" + lastEval.getToken() + "(...)}\""); + } + + lastEval = eval; + eval = eval.getSubjectEvaluator(); + } + // if the result type of the evaluator is BOOLEAN, then it will always // be reduced when evaluator. final ResultType resultType = evaluator.getResultType(); @@ -691,7 +715,7 @@ public class Query { return "Query [" + query + "]"; } - private static StringEvaluator newStringLiteralEvaluator(final String literalValue) { + private static Evaluator<String> newStringLiteralEvaluator(final String literalValue) { if (literalValue == null || literalValue.length() < 2) { return new StringLiteralEvaluator(literalValue); } @@ -724,7 +748,7 @@ public class Query { return toStringEvaluator(evaluators.get(0)); } - StringEvaluator lastEvaluator = toStringEvaluator(evaluators.get(0)); + Evaluator<String> lastEvaluator = toStringEvaluator(evaluators.get(0)); for (int i = 1; i < evaluators.size(); i++) { lastEvaluator = new AppendEvaluator(lastEvaluator, toStringEvaluator(evaluators.get(i))); } @@ -749,8 +773,8 @@ public class Query { final Tree functionTypeTree = tree.getChild(0); final int multiAttrType = functionTypeTree.getType(); if (multiAttrType == ANY_DELINEATED_VALUE || multiAttrType == ALL_DELINEATED_VALUES) { - final StringEvaluator delineatedValueEvaluator = toStringEvaluator(buildEvaluator(tree.getChild(1))); - final StringEvaluator delimiterEvaluator = toStringEvaluator(buildEvaluator(tree.getChild(2))); + final Evaluator<String> delineatedValueEvaluator = toStringEvaluator(buildEvaluator(tree.getChild(1))); + final Evaluator<String> delimiterEvaluator = toStringEvaluator(buildEvaluator(tree.getChild(2))); return new DelineatedAttributeEvaluator(delineatedValueEvaluator, delimiterEvaluator, multiAttrType); } @@ -807,6 +831,10 @@ public class Query { case NOW: { return new NowEvaluator(); } + case TO_LITERAL: { + final Evaluator<?> argEvaluator = buildEvaluator(tree.getChild(0)); + return new ToLiteralEvaluator(argEvaluator); + } case IP: { try { return new IPEvaluator(); @@ -818,7 +846,7 @@ public class Query { if (tree.getChildCount() == 0) { try { return new HostnameEvaluator(false); - } catch (UnknownHostException e) { + } catch (final UnknownHostException e) { throw new AttributeExpressionLanguageException(e); } } else if (tree.getChildCount() == 1) { @@ -832,7 +860,7 @@ public class Query { default: throw new AttributeExpressionLanguageParsingException("Call to hostname() must take 0 or 1 (boolean) parameter"); } - } catch (UnknownHostException e) { + } catch (final UnknownHostException e) { throw new AttributeExpressionLanguageException(e); } } else { @@ -847,16 +875,22 @@ public class Query { } } + private static <T> Evaluator<T> addToken(final Evaluator<T> evaluator, final String token) { + evaluator.setToken(token); + return evaluator; + } + private static Evaluator<Boolean> buildBooleanEvaluator(final Tree tree) { switch (tree.getType()) { case TRUE: - return new BooleanLiteralEvaluator(true); + return addToken(new BooleanLiteralEvaluator(true), "true"); case FALSE: - return new BooleanLiteralEvaluator(false); + return addToken(new BooleanLiteralEvaluator(false), "true"); } throw new AttributeExpressionLanguageParsingException("Cannot build Boolean evaluator from tree " + tree.toString()); } + @SuppressWarnings({ "rawtypes", "unchecked" }) private static Evaluator<?> buildExpressionEvaluator(final Tree tree) { if (tree.getChildCount() == 0) { throw new AttributeExpressionLanguageParsingException("EXPRESSION tree node has no children"); @@ -901,6 +935,27 @@ public class Query { break; } } + + switch (multiAttrEval.getEvaluationType()) { + case ANY_ATTRIBUTE: + chosenEvaluator.setToken("anyAttribute"); + break; + case ANY_MATCHING_ATTRIBUTE: + chosenEvaluator.setToken("anyMatchingAttribute"); + break; + case ANY_DELINEATED_VALUE: + chosenEvaluator.setToken("anyDelineatedValue"); + break; + case ALL_ATTRIBUTES: + chosenEvaluator.setToken("allAttributes"); + break; + case ALL_MATCHING_ATTRIBUTES: + chosenEvaluator.setToken("allMatchingAttributes"); + break; + case ALL_DELINEATED_VALUES: + chosenEvaluator.setToken("allDelineatedValues"); + break; + } } } @@ -934,24 +989,25 @@ public class Query { return args; } - private static StringEvaluator toStringEvaluator(final Evaluator<?> evaluator) { + private static Evaluator<String> toStringEvaluator(final Evaluator<?> evaluator) { return toStringEvaluator(evaluator, null); } - private static StringEvaluator toStringEvaluator(final Evaluator<?> evaluator, final String location) { + private static Evaluator<String> toStringEvaluator(final Evaluator<?> evaluator, final String location) { if (evaluator.getResultType() == ResultType.STRING) { return (StringEvaluator) evaluator; } - return new StringCastEvaluator(evaluator); + return addToken(new StringCastEvaluator(evaluator), evaluator.getToken()); } - private static BooleanEvaluator toBooleanEvaluator(final Evaluator<?> evaluator, final String location) { + @SuppressWarnings("unchecked") + private static Evaluator<Boolean> toBooleanEvaluator(final Evaluator<?> evaluator, final String location) { switch (evaluator.getResultType()) { case BOOLEAN: - return (BooleanEvaluator) evaluator; + return (Evaluator<Boolean>) evaluator; case STRING: - return new BooleanCastEvaluator((StringEvaluator) evaluator); + return addToken(new BooleanCastEvaluator((StringEvaluator) evaluator), evaluator.getToken()); default: throw new AttributeExpressionLanguageParsingException("Cannot implicitly convert Data Type " + evaluator.getResultType() + " to " + ResultType.BOOLEAN + (location == null ? "" : " at location [" + location + "]")); @@ -959,22 +1015,23 @@ public class Query { } - private static BooleanEvaluator toBooleanEvaluator(final Evaluator<?> evaluator) { + private static Evaluator<Boolean> toBooleanEvaluator(final Evaluator<?> evaluator) { return toBooleanEvaluator(evaluator, null); } - private static NumberEvaluator toNumberEvaluator(final Evaluator<?> evaluator) { + private static Evaluator<Long> toNumberEvaluator(final Evaluator<?> evaluator) { return toNumberEvaluator(evaluator, null); } - private static NumberEvaluator toNumberEvaluator(final Evaluator<?> evaluator, final String location) { + @SuppressWarnings("unchecked") + private static Evaluator<Long> toNumberEvaluator(final Evaluator<?> evaluator, final String location) { switch (evaluator.getResultType()) { case NUMBER: - return (NumberEvaluator) evaluator; + return (Evaluator<Long>) evaluator; case STRING: - return new NumberCastEvaluator(evaluator); + return addToken(new NumberCastEvaluator(evaluator), evaluator.getToken()); case DATE: - return new DateToNumberEvaluator((DateEvaluator) evaluator); + return addToken(new DateToNumberEvaluator((DateEvaluator) evaluator), evaluator.getToken()); default: throw new AttributeExpressionLanguageParsingException("Cannot implicitly convert Data Type " + evaluator.getResultType() + " to " + ResultType.NUMBER + (location == null ? "" : " at location [" + location + "]")); @@ -997,233 +1054,233 @@ public class Query { switch (tree.getType()) { case TRIM: { verifyArgCount(argEvaluators, 0, "trim"); - return new TrimEvaluator(toStringEvaluator(subjectEvaluator)); + return addToken(new TrimEvaluator(toStringEvaluator(subjectEvaluator)), "trim"); } case TO_STRING: { verifyArgCount(argEvaluators, 0, "toString"); - return new ToStringEvaluator(subjectEvaluator); + return addToken(new ToStringEvaluator(subjectEvaluator), "toString"); } case TO_LOWER: { verifyArgCount(argEvaluators, 0, "toLower"); - return new ToLowerEvaluator(toStringEvaluator(subjectEvaluator)); + return addToken(new ToLowerEvaluator(toStringEvaluator(subjectEvaluator)), "toLower"); } case TO_UPPER: { verifyArgCount(argEvaluators, 0, "toUpper"); - return new ToUpperEvaluator(toStringEvaluator(subjectEvaluator)); + return addToken(new ToUpperEvaluator(toStringEvaluator(subjectEvaluator)), "toUpper"); } case URL_ENCODE: { verifyArgCount(argEvaluators, 0, "urlEncode"); - return new UrlEncodeEvaluator(toStringEvaluator(subjectEvaluator)); + return addToken(new UrlEncodeEvaluator(toStringEvaluator(subjectEvaluator)), "urlEncode"); } case URL_DECODE: { verifyArgCount(argEvaluators, 0, "urlDecode"); - return new UrlDecodeEvaluator(toStringEvaluator(subjectEvaluator)); + return addToken(new UrlDecodeEvaluator(toStringEvaluator(subjectEvaluator)), "urlDecode"); } case SUBSTRING_BEFORE: { verifyArgCount(argEvaluators, 1, "substringBefore"); - return new SubstringBeforeEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to substringBefore")); + return addToken(new SubstringBeforeEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to substringBefore")), "substringBefore"); } case SUBSTRING_BEFORE_LAST: { verifyArgCount(argEvaluators, 1, "substringBeforeLast"); - return new SubstringBeforeLastEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to substringBeforeLast")); + return addToken(new SubstringBeforeLastEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to substringBeforeLast")), "substringBeforeLast"); } case SUBSTRING_AFTER: { verifyArgCount(argEvaluators, 1, "substringAfter"); - return new SubstringAfterEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to substringAfter")); + return addToken(new SubstringAfterEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to substringAfter")), "substringAfter"); } case SUBSTRING_AFTER_LAST: { verifyArgCount(argEvaluators, 1, "substringAfterLast"); - return new SubstringAfterLastEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to substringAfterLast")); + return addToken(new SubstringAfterLastEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to substringAfterLast")), "substringAfterLast"); } case REPLACE_NULL: { verifyArgCount(argEvaluators, 1, "replaceNull"); - return new ReplaceNullEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to replaceNull")); + return addToken(new ReplaceNullEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to replaceNull")), "replaceNull"); } case REPLACE_EMPTY: { verifyArgCount(argEvaluators, 1, "replaceEmtpy"); - return new ReplaceEmptyEvaluator(toStringEvaluator(subjectEvaluator), toStringEvaluator(argEvaluators.get(0), "first argumen to replaceEmpty")); + return addToken(new ReplaceEmptyEvaluator(toStringEvaluator(subjectEvaluator), toStringEvaluator(argEvaluators.get(0), "first argument to replaceEmpty")), "replaceEmpty"); } case REPLACE: { verifyArgCount(argEvaluators, 2, "replace"); - return new ReplaceEvaluator(toStringEvaluator(subjectEvaluator), + return addToken(new ReplaceEvaluator(toStringEvaluator(subjectEvaluator), toStringEvaluator(argEvaluators.get(0), "first argument to replace"), - toStringEvaluator(argEvaluators.get(1), "second argument to replace")); + toStringEvaluator(argEvaluators.get(1), "second argument to replace")), "replace"); } case REPLACE_ALL: { verifyArgCount(argEvaluators, 2, "replaceAll"); - return new ReplaceAllEvaluator(toStringEvaluator(subjectEvaluator), + return addToken(new ReplaceAllEvaluator(toStringEvaluator(subjectEvaluator), toStringEvaluator(argEvaluators.get(0), "first argument to replaceAll"), - toStringEvaluator(argEvaluators.get(1), "second argument to replaceAll")); + toStringEvaluator(argEvaluators.get(1), "second argument to replaceAll")), "replaceAll"); } case APPEND: { verifyArgCount(argEvaluators, 1, "append"); - return new AppendEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to append")); + return addToken(new AppendEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to append")), "append"); } case PREPEND: { verifyArgCount(argEvaluators, 1, "prepend"); - return new PrependEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to prepend")); + return addToken(new PrependEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to prepend")), "prepend"); } case SUBSTRING: { final int numArgs = argEvaluators.size(); if (numArgs == 1) { - return new SubstringEvaluator(toStringEvaluator(subjectEvaluator), - toNumberEvaluator(argEvaluators.get(0), "first argument to substring")); + return addToken(new SubstringEvaluator(toStringEvaluator(subjectEvaluator), + toNumberEvaluator(argEvaluators.get(0), "first argument to substring")), "substring"); } else if (numArgs == 2) { - return new SubstringEvaluator(toStringEvaluator(subjectEvaluator), + return addToken(new SubstringEvaluator(toStringEvaluator(subjectEvaluator), toNumberEvaluator(argEvaluators.get(0), "first argument to substring"), - toNumberEvaluator(argEvaluators.get(1), "second argument to substring")); + toNumberEvaluator(argEvaluators.get(1), "second argument to substring")), "substring"); } else { throw new AttributeExpressionLanguageParsingException("substring() function can take either 1 or 2 arguments but cannot take " + numArgs + " arguments"); } } case JOIN: { verifyArgCount(argEvaluators, 1, "join"); - return new JoinEvaluator(toStringEvaluator(subjectEvaluator), toStringEvaluator(argEvaluators.get(0))); + return addToken(new JoinEvaluator(toStringEvaluator(subjectEvaluator), toStringEvaluator(argEvaluators.get(0))), "join"); } case COUNT: { verifyArgCount(argEvaluators, 0, "count"); - return new CountEvaluator(subjectEvaluator); + return addToken(new CountEvaluator(subjectEvaluator), "count"); } case IS_NULL: { verifyArgCount(argEvaluators, 0, "isNull"); - return new IsNullEvaluator(toStringEvaluator(subjectEvaluator)); + return addToken(new IsNullEvaluator(toStringEvaluator(subjectEvaluator)), "isNull"); } case IS_EMPTY: { verifyArgCount(argEvaluators, 0, "isNull"); - return new IsEmptyEvaluator(toStringEvaluator(subjectEvaluator)); + return addToken(new IsEmptyEvaluator(toStringEvaluator(subjectEvaluator)), "isEmpty"); } case NOT_NULL: { verifyArgCount(argEvaluators, 0, "notNull"); - return new NotNullEvaluator(toStringEvaluator(subjectEvaluator)); + return addToken(new NotNullEvaluator(toStringEvaluator(subjectEvaluator)), "notNull"); } case STARTS_WITH: { verifyArgCount(argEvaluators, 1, "startsWith"); - return new StartsWithEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to startsWith")); + return addToken(new StartsWithEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to startsWith")), "startsWith"); } case ENDS_WITH: { verifyArgCount(argEvaluators, 1, "endsWith"); - return new EndsWithEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to endsWith")); + return addToken(new EndsWithEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to endsWith")), "endsWith"); } case CONTAINS: { verifyArgCount(argEvaluators, 1, "contains"); - return new ContainsEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to contains")); + return addToken(new ContainsEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to contains")), "contains"); } case FIND: { verifyArgCount(argEvaluators, 1, "find"); - return new FindEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to find")); + return addToken(new FindEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to find")), "find"); } case MATCHES: { verifyArgCount(argEvaluators, 1, "matches"); - return new MatchesEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to matches")); + return addToken(new MatchesEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to matches")), "matches"); } case EQUALS: { verifyArgCount(argEvaluators, 1, "equals"); - return new EqualsEvaluator(subjectEvaluator, argEvaluators.get(0)); + return addToken(new EqualsEvaluator(subjectEvaluator, argEvaluators.get(0)), "equals"); } case EQUALS_IGNORE_CASE: { verifyArgCount(argEvaluators, 1, "equalsIgnoreCase"); - return new EqualsIgnoreCaseEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to equalsIgnoreCase")); + return addToken(new EqualsIgnoreCaseEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to equalsIgnoreCase")), "equalsIgnoreCase"); } case GREATER_THAN: { verifyArgCount(argEvaluators, 1, "gt"); - return new GreaterThanEvaluator(toNumberEvaluator(subjectEvaluator), - toNumberEvaluator(argEvaluators.get(0), "first argument to gt")); + return addToken(new GreaterThanEvaluator(toNumberEvaluator(subjectEvaluator), + toNumberEvaluator(argEvaluators.get(0), "first argument to gt")), "gt"); } case GREATER_THAN_OR_EQUAL: { verifyArgCount(argEvaluators, 1, "ge"); - return new GreaterThanOrEqualEvaluator(toNumberEvaluator(subjectEvaluator), - toNumberEvaluator(argEvaluators.get(0), "first argument to ge")); + return addToken(new GreaterThanOrEqualEvaluator(toNumberEvaluator(subjectEvaluator), + toNumberEvaluator(argEvaluators.get(0), "first argument to ge")), "ge"); } case LESS_THAN: { verifyArgCount(argEvaluators, 1, "lt"); - return new LessThanEvaluator(toNumberEvaluator(subjectEvaluator), - toNumberEvaluator(argEvaluators.get(0), "first argument to lt")); + return addToken(new LessThanEvaluator(toNumberEvaluator(subjectEvaluator), + toNumberEvaluator(argEvaluators.get(0), "first argument to lt")), "lt"); } case LESS_THAN_OR_EQUAL: { verifyArgCount(argEvaluators, 1, "le"); - return new LessThanOrEqualEvaluator(toNumberEvaluator(subjectEvaluator), - toNumberEvaluator(argEvaluators.get(0), "first argument to le")); + return addToken(new LessThanOrEqualEvaluator(toNumberEvaluator(subjectEvaluator), + toNumberEvaluator(argEvaluators.get(0), "first argument to le")), "le"); } case LENGTH: { verifyArgCount(argEvaluators, 0, "length"); - return new LengthEvaluator(toStringEvaluator(subjectEvaluator)); + return addToken(new LengthEvaluator(toStringEvaluator(subjectEvaluator)), "length"); } case TO_DATE: { if (argEvaluators.isEmpty()) { - return new NumberToDateEvaluator(toNumberEvaluator(subjectEvaluator)); + return addToken(new NumberToDateEvaluator(toNumberEvaluator(subjectEvaluator)), "toDate"); } else if (subjectEvaluator.getResultType() == ResultType.STRING) { - return new StringToDateEvaluator(toStringEvaluator(subjectEvaluator), toStringEvaluator(argEvaluators.get(0))); + return addToken(new StringToDateEvaluator(toStringEvaluator(subjectEvaluator), toStringEvaluator(argEvaluators.get(0))), "toDate"); } else { - return new NumberToDateEvaluator(toNumberEvaluator(subjectEvaluator)); + return addToken(new NumberToDateEvaluator(toNumberEvaluator(subjectEvaluator)), "toDate"); } } case TO_NUMBER: { verifyArgCount(argEvaluators, 0, "toNumber"); switch (subjectEvaluator.getResultType()) { case STRING: - return new ToNumberEvaluator((StringEvaluator) subjectEvaluator); + return addToken(new ToNumberEvaluator((StringEvaluator) subjectEvaluator), "toNumber"); case DATE: - return new DateToNumberEvaluator((DateEvaluator) subjectEvaluator); + return addToken(new DateToNumberEvaluator((DateEvaluator) subjectEvaluator), "toNumber"); default: throw new AttributeExpressionLanguageParsingException(subjectEvaluator + " returns type " + subjectEvaluator.getResultType() + " but expected to get " + ResultType.STRING); } } case TO_RADIX: { if (argEvaluators.size() == 1) { - return new ToRadixEvaluator((NumberEvaluator) subjectEvaluator, toNumberEvaluator(argEvaluators.get(0))); + return addToken(new ToRadixEvaluator((NumberEvaluator) subjectEvaluator, toNumberEvaluator(argEvaluators.get(0))), "toRadix"); } else { - return new ToRadixEvaluator((NumberEvaluator) subjectEvaluator, toNumberEvaluator(argEvaluators.get(0)), toNumberEvaluator(argEvaluators.get(1))); + return addToken(new ToRadixEvaluator((NumberEvaluator) subjectEvaluator, toNumberEvaluator(argEvaluators.get(0)), toNumberEvaluator(argEvaluators.get(1))), "toRadix"); } } case MOD: { - return new ModEvaluator(toNumberEvaluator(subjectEvaluator), toNumberEvaluator(argEvaluators.get(0))); + return addToken(new ModEvaluator(toNumberEvaluator(subjectEvaluator), toNumberEvaluator(argEvaluators.get(0))), "mod"); } case PLUS: { - return new PlusEvaluator(toNumberEvaluator(subjectEvaluator), toNumberEvaluator(argEvaluators.get(0))); + return addToken(new PlusEvaluator(toNumberEvaluator(subjectEvaluator), toNumberEvaluator(argEvaluators.get(0))), "plus"); } case MINUS: { - return new MinusEvaluator(toNumberEvaluator(subjectEvaluator), toNumberEvaluator(argEvaluators.get(0))); + return addToken(new MinusEvaluator(toNumberEvaluator(subjectEvaluator), toNumberEvaluator(argEvaluators.get(0))), "minus"); } case MULTIPLY: { - return new MultiplyEvaluator(toNumberEvaluator(subjectEvaluator), toNumberEvaluator(argEvaluators.get(0))); + return addToken(new MultiplyEvaluator(toNumberEvaluator(subjectEvaluator), toNumberEvaluator(argEvaluators.get(0))), "multiply"); } case DIVIDE: { - return new DivideEvaluator(toNumberEvaluator(subjectEvaluator), toNumberEvaluator(argEvaluators.get(0))); + return addToken(new DivideEvaluator(toNumberEvaluator(subjectEvaluator), toNumberEvaluator(argEvaluators.get(0))), "divide"); } case INDEX_OF: { verifyArgCount(argEvaluators, 1, "indexOf"); - return new IndexOfEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to indexOf")); + return addToken(new IndexOfEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to indexOf")), "indexOf"); } case LAST_INDEX_OF: { verifyArgCount(argEvaluators, 1, "lastIndexOf"); - return new LastIndexOfEvaluator(toStringEvaluator(subjectEvaluator), - toStringEvaluator(argEvaluators.get(0), "first argument to lastIndexOf")); + return addToken(new LastIndexOfEvaluator(toStringEvaluator(subjectEvaluator), + toStringEvaluator(argEvaluators.get(0), "first argument to lastIndexOf")), "lastIndexOf"); } case FORMAT: { - return new FormatEvaluator(toDateEvaluator(subjectEvaluator), toStringEvaluator(argEvaluators.get(0), "first argument of format")); + return addToken(new FormatEvaluator(toDateEvaluator(subjectEvaluator), toStringEvaluator(argEvaluators.get(0), "first argument of format")), "format"); } case OR: { - return new OrEvaluator(toBooleanEvaluator(subjectEvaluator), toBooleanEvaluator(argEvaluators.get(0))); + return addToken(new OrEvaluator(toBooleanEvaluator(subjectEvaluator), toBooleanEvaluator(argEvaluators.get(0))), "or"); } case AND: { - return new AndEvaluator(toBooleanEvaluator(subjectEvaluator), toBooleanEvaluator(argEvaluators.get(0))); + return addToken(new AndEvaluator(toBooleanEvaluator(subjectEvaluator), toBooleanEvaluator(argEvaluators.get(0))), "and"); } case NOT: { - return new NotEvaluator(toBooleanEvaluator(subjectEvaluator)); + return addToken(new NotEvaluator(toBooleanEvaluator(subjectEvaluator)), "not"); } default: throw new AttributeExpressionLanguageParsingException("Expected a Function-type expression but got " + tree.toString()); http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanEvaluator.java index 376ddfe..907ee95 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanEvaluator.java @@ -19,6 +19,7 @@ package org.apache.nifi.attribute.expression.language.evaluation; import org.apache.nifi.expression.AttributeExpression.ResultType; public abstract class BooleanEvaluator implements Evaluator<Boolean> { + private String token; @Override public ResultType getResultType() { @@ -29,4 +30,14 @@ public abstract class BooleanEvaluator implements Evaluator<Boolean> { public int getEvaluationsRemaining() { return 0; } + + @Override + public String getToken() { + return token; + } + + @Override + public void setToken(final String token) { + this.token = token; + } } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateEvaluator.java index 7474b60..caf3117 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateEvaluator.java @@ -21,6 +21,7 @@ import java.util.Date; import org.apache.nifi.expression.AttributeExpression.ResultType; public abstract class DateEvaluator implements Evaluator<Date> { + private String token; @Override public ResultType getResultType() { @@ -31,4 +32,14 @@ public abstract class DateEvaluator implements Evaluator<Date> { public int getEvaluationsRemaining() { return 0; } + + @Override + public String getToken() { + return token; + } + + @Override + public void setToken(final String token) { + this.token = token; + } } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/Evaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/Evaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/Evaluator.java index 6d164df..86f95a8 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/Evaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/Evaluator.java @@ -29,4 +29,16 @@ public interface Evaluator<T> { int getEvaluationsRemaining(); Evaluator<?> getSubjectEvaluator(); + + /** + * Sets the token that was used in the query to cause this Evaluator to be created + * + * @param token the token that caused this Evaluator to be created + */ + void setToken(String token); + + /** + * @return the token that caused this Evaluator to be created + */ + String getToken(); } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberEvaluator.java index 403bae3..ec3adac 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberEvaluator.java @@ -19,6 +19,7 @@ package org.apache.nifi.attribute.expression.language.evaluation; import org.apache.nifi.expression.AttributeExpression.ResultType; public abstract class NumberEvaluator implements Evaluator<Long> { + private String token; @Override public ResultType getResultType() { @@ -30,4 +31,13 @@ public abstract class NumberEvaluator implements Evaluator<Long> { return 0; } + @Override + public String getToken() { + return token; + } + + @Override + public void setToken(final String token) { + this.token = token; + } } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringEvaluator.java index 1f4ff21..c6f2b79 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringEvaluator.java @@ -19,6 +19,7 @@ package org.apache.nifi.attribute.expression.language.evaluation; import org.apache.nifi.expression.AttributeExpression.ResultType; public abstract class StringEvaluator implements Evaluator<String> { + private String token; @Override public ResultType getResultType() { @@ -29,4 +30,14 @@ public abstract class StringEvaluator implements Evaluator<String> { public int getEvaluationsRemaining() { return 0; } + + @Override + public String getToken() { + return token; + } + + @Override + public void setToken(final String token) { + this.token = token; + } } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AndEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AndEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AndEvaluator.java index 9ed8f06..232fc26 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AndEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AndEvaluator.java @@ -25,10 +25,10 @@ import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; public class AndEvaluator extends BooleanEvaluator { - private final BooleanEvaluator subjectEvaluator; - private final BooleanEvaluator rhsEvaluator; + private final Evaluator<Boolean> subjectEvaluator; + private final Evaluator<Boolean> rhsEvaluator; - public AndEvaluator(final BooleanEvaluator subjectEvaluator, final BooleanEvaluator rhsEvaluator) { + public AndEvaluator(final Evaluator<Boolean> subjectEvaluator, final Evaluator<Boolean> rhsEvaluator) { this.subjectEvaluator = subjectEvaluator; this.rhsEvaluator = rhsEvaluator; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AppendEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AppendEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AppendEvaluator.java index bd5e81a..80f1974 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AppendEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AppendEvaluator.java @@ -25,10 +25,10 @@ import org.apache.nifi.attribute.expression.language.evaluation.StringQueryResul public class AppendEvaluator extends StringEvaluator { - private final StringEvaluator subject; - private final StringEvaluator appendEvaluator; + private final Evaluator<String> subject; + private final Evaluator<String> appendEvaluator; - public AppendEvaluator(final StringEvaluator subject, final StringEvaluator append) { + public AppendEvaluator(final Evaluator<String> subject, final Evaluator<String> append) { this.subject = subject; this.appendEvaluator = append; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AttributeEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AttributeEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AttributeEvaluator.java index 1b4b74e..a0695a9 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AttributeEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AttributeEvaluator.java @@ -25,9 +25,9 @@ import org.apache.nifi.attribute.expression.language.evaluation.StringQueryResul public class AttributeEvaluator extends StringEvaluator { - private final StringEvaluator nameEvaluator; + private final Evaluator<String> nameEvaluator; - public AttributeEvaluator(final StringEvaluator nameEvaluator) { + public AttributeEvaluator(final Evaluator<String> nameEvaluator) { this.nameEvaluator = nameEvaluator; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ContainsEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ContainsEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ContainsEvaluator.java index 99802f6..54170ba 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ContainsEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ContainsEvaluator.java @@ -22,14 +22,13 @@ import org.apache.nifi.attribute.expression.language.evaluation.BooleanEvaluator import org.apache.nifi.attribute.expression.language.evaluation.BooleanQueryResult; import org.apache.nifi.attribute.expression.language.evaluation.Evaluator; import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; -import org.apache.nifi.attribute.expression.language.evaluation.StringEvaluator; public class ContainsEvaluator extends BooleanEvaluator { - private final StringEvaluator subject; - private final StringEvaluator search; + private final Evaluator<String> subject; + private final Evaluator<String> search; - public ContainsEvaluator(final StringEvaluator subject, final StringEvaluator search) { + public ContainsEvaluator(final Evaluator<String> subject, final Evaluator<String> search) { this.subject = subject; this.search = search; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DivideEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DivideEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DivideEvaluator.java index c7583cb..12ab37f 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DivideEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DivideEvaluator.java @@ -25,10 +25,10 @@ import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; public class DivideEvaluator extends NumberEvaluator { - private final NumberEvaluator subject; - private final NumberEvaluator divideValue; + private final Evaluator<Long> subject; + private final Evaluator<Long> divideValue; - public DivideEvaluator(final NumberEvaluator subject, final NumberEvaluator divideValue) { + public DivideEvaluator(final Evaluator<Long> subject, final Evaluator<Long> divideValue) { this.subject = subject; this.divideValue = divideValue; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EndsWithEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EndsWithEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EndsWithEvaluator.java index c31c2b1..13bc396 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EndsWithEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EndsWithEvaluator.java @@ -22,14 +22,13 @@ import org.apache.nifi.attribute.expression.language.evaluation.BooleanEvaluator import org.apache.nifi.attribute.expression.language.evaluation.BooleanQueryResult; import org.apache.nifi.attribute.expression.language.evaluation.Evaluator; import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; -import org.apache.nifi.attribute.expression.language.evaluation.StringEvaluator; public class EndsWithEvaluator extends BooleanEvaluator { - private final StringEvaluator subject; - private final StringEvaluator search; + private final Evaluator<String> subject; + private final Evaluator<String> search; - public EndsWithEvaluator(final StringEvaluator subject, final StringEvaluator search) { + public EndsWithEvaluator(final Evaluator<String> subject, final Evaluator<String> search) { this.subject = subject; this.search = search; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FindEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FindEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FindEvaluator.java index b377c4a..2a3f1ae 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FindEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FindEvaluator.java @@ -23,17 +23,16 @@ import org.apache.nifi.attribute.expression.language.evaluation.BooleanEvaluator import org.apache.nifi.attribute.expression.language.evaluation.BooleanQueryResult; import org.apache.nifi.attribute.expression.language.evaluation.Evaluator; import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; -import org.apache.nifi.attribute.expression.language.evaluation.StringEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.literals.StringLiteralEvaluator; public class FindEvaluator extends BooleanEvaluator { - private final StringEvaluator subject; - private final StringEvaluator search; + private final Evaluator<String> subject; + private final Evaluator<String> search; private final Pattern compiledPattern; - public FindEvaluator(final StringEvaluator subject, final StringEvaluator search) { + public FindEvaluator(final Evaluator<String> subject, final Evaluator<String> search) { this.subject = subject; this.search = search; http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FormatEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FormatEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FormatEvaluator.java index 132b9e7..717cbd5 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FormatEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FormatEvaluator.java @@ -30,9 +30,9 @@ import org.apache.nifi.attribute.expression.language.evaluation.StringQueryResul public class FormatEvaluator extends StringEvaluator { private final DateEvaluator subject; - private final StringEvaluator format; + private final Evaluator<String> format; - public FormatEvaluator(final DateEvaluator subject, final StringEvaluator format) { + public FormatEvaluator(final DateEvaluator subject, final Evaluator<String> format) { this.subject = subject; this.format = format; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanEvaluator.java index af1ee1d..8850225 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanEvaluator.java @@ -21,15 +21,14 @@ import java.util.Map; import org.apache.nifi.attribute.expression.language.evaluation.BooleanEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.BooleanQueryResult; import org.apache.nifi.attribute.expression.language.evaluation.Evaluator; -import org.apache.nifi.attribute.expression.language.evaluation.NumberEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; public class GreaterThanEvaluator extends BooleanEvaluator { - private final NumberEvaluator subject; - private final NumberEvaluator comparison; + private final Evaluator<Long> subject; + private final Evaluator<Long> comparison; - public GreaterThanEvaluator(final NumberEvaluator subject, final NumberEvaluator comparison) { + public GreaterThanEvaluator(final Evaluator<Long> subject, final Evaluator<Long> comparison) { this.subject = subject; this.comparison = comparison; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanOrEqualEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanOrEqualEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanOrEqualEvaluator.java index 1269fc0..ff71335 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanOrEqualEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanOrEqualEvaluator.java @@ -21,15 +21,14 @@ import java.util.Map; import org.apache.nifi.attribute.expression.language.evaluation.BooleanEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.BooleanQueryResult; import org.apache.nifi.attribute.expression.language.evaluation.Evaluator; -import org.apache.nifi.attribute.expression.language.evaluation.NumberEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; public class GreaterThanOrEqualEvaluator extends BooleanEvaluator { - private final NumberEvaluator subject; - private final NumberEvaluator comparison; + private final Evaluator<Long> subject; + private final Evaluator<Long> comparison; - public GreaterThanOrEqualEvaluator(final NumberEvaluator subject, final NumberEvaluator comparison) { + public GreaterThanOrEqualEvaluator(final Evaluator<Long> subject, final Evaluator<Long> comparison) { this.subject = subject; this.comparison = comparison; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IndexOfEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IndexOfEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IndexOfEvaluator.java index 80422cb..c4bc03e 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IndexOfEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IndexOfEvaluator.java @@ -22,14 +22,13 @@ import org.apache.nifi.attribute.expression.language.evaluation.Evaluator; import org.apache.nifi.attribute.expression.language.evaluation.NumberEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.NumberQueryResult; import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; -import org.apache.nifi.attribute.expression.language.evaluation.StringEvaluator; public class IndexOfEvaluator extends NumberEvaluator { - private final StringEvaluator subject; - private final StringEvaluator indexEvaluator; + private final Evaluator<String> subject; + private final Evaluator<String> indexEvaluator; - public IndexOfEvaluator(final StringEvaluator subject, final StringEvaluator indexEvaluator) { + public IndexOfEvaluator(final Evaluator<String> subject, final Evaluator<String> indexEvaluator) { this.subject = subject; this.indexEvaluator = indexEvaluator; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LastIndexOfEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LastIndexOfEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LastIndexOfEvaluator.java index 2b67093..3ebbee7 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LastIndexOfEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LastIndexOfEvaluator.java @@ -22,14 +22,13 @@ import org.apache.nifi.attribute.expression.language.evaluation.Evaluator; import org.apache.nifi.attribute.expression.language.evaluation.NumberEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.NumberQueryResult; import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; -import org.apache.nifi.attribute.expression.language.evaluation.StringEvaluator; public class LastIndexOfEvaluator extends NumberEvaluator { - private final StringEvaluator subject; - private final StringEvaluator indexEvaluator; + private final Evaluator<String> subject; + private final Evaluator<String> indexEvaluator; - public LastIndexOfEvaluator(final StringEvaluator subject, final StringEvaluator indexEvaluator) { + public LastIndexOfEvaluator(final Evaluator<String> subject, final Evaluator<String> indexEvaluator) { this.subject = subject; this.indexEvaluator = indexEvaluator; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LengthEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LengthEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LengthEvaluator.java index dec1f8f..46bc24c 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LengthEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LengthEvaluator.java @@ -22,20 +22,19 @@ import org.apache.nifi.attribute.expression.language.evaluation.Evaluator; import org.apache.nifi.attribute.expression.language.evaluation.NumberEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.NumberQueryResult; import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; -import org.apache.nifi.attribute.expression.language.evaluation.StringEvaluator; public class LengthEvaluator extends NumberEvaluator { - private final StringEvaluator subject; + private final Evaluator<String> subject; - public LengthEvaluator(final StringEvaluator subject) { + public LengthEvaluator(final Evaluator<String> subject) { this.subject = subject; } @Override public QueryResult<Long> evaluate(final Map<String, String> attributes) { final String subjectValue = subject.evaluate(attributes).getValue(); - return new NumberQueryResult((long) ((subjectValue == null) ? 0 : subjectValue.length())); + return new NumberQueryResult((long) (subjectValue == null ? 0 : subjectValue.length())); } @Override http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanEvaluator.java index 4b1beac..e9bf231 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanEvaluator.java @@ -21,15 +21,14 @@ import java.util.Map; import org.apache.nifi.attribute.expression.language.evaluation.BooleanEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.BooleanQueryResult; import org.apache.nifi.attribute.expression.language.evaluation.Evaluator; -import org.apache.nifi.attribute.expression.language.evaluation.NumberEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; public class LessThanEvaluator extends BooleanEvaluator { - private final NumberEvaluator subject; - private final NumberEvaluator comparison; + private final Evaluator<Long> subject; + private final Evaluator<Long> comparison; - public LessThanEvaluator(final NumberEvaluator subject, final NumberEvaluator comparison) { + public LessThanEvaluator(final Evaluator<Long> subject, final Evaluator<Long> comparison) { this.subject = subject; this.comparison = comparison; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanOrEqualEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanOrEqualEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanOrEqualEvaluator.java index a07e8be..5bf5ee5 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanOrEqualEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanOrEqualEvaluator.java @@ -21,15 +21,14 @@ import java.util.Map; import org.apache.nifi.attribute.expression.language.evaluation.BooleanEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.BooleanQueryResult; import org.apache.nifi.attribute.expression.language.evaluation.Evaluator; -import org.apache.nifi.attribute.expression.language.evaluation.NumberEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; public class LessThanOrEqualEvaluator extends BooleanEvaluator { - private final NumberEvaluator subject; - private final NumberEvaluator comparison; + private final Evaluator<Long> subject; + private final Evaluator<Long> comparison; - public LessThanOrEqualEvaluator(final NumberEvaluator subject, final NumberEvaluator comparison) { + public LessThanOrEqualEvaluator(final Evaluator<Long> subject, final Evaluator<Long> comparison) { this.subject = subject; this.comparison = comparison; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MatchesEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MatchesEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MatchesEvaluator.java index 1bb86a5..6f017ea 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MatchesEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MatchesEvaluator.java @@ -23,17 +23,16 @@ import org.apache.nifi.attribute.expression.language.evaluation.BooleanEvaluator import org.apache.nifi.attribute.expression.language.evaluation.BooleanQueryResult; import org.apache.nifi.attribute.expression.language.evaluation.Evaluator; import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; -import org.apache.nifi.attribute.expression.language.evaluation.StringEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.literals.StringLiteralEvaluator; public class MatchesEvaluator extends BooleanEvaluator { - private final StringEvaluator subject; - private final StringEvaluator search; + private final Evaluator<String> subject; + private final Evaluator<String> search; private final Pattern compiledPattern; - public MatchesEvaluator(final StringEvaluator subject, final StringEvaluator search) { + public MatchesEvaluator(final Evaluator<String> subject, final Evaluator<String> search) { this.subject = subject; this.search = search; http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MinusEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MinusEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MinusEvaluator.java index 0665979..0555187 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MinusEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MinusEvaluator.java @@ -25,10 +25,10 @@ import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; public class MinusEvaluator extends NumberEvaluator { - private final NumberEvaluator subject; - private final NumberEvaluator minusValue; + private final Evaluator<Long> subject; + private final Evaluator<Long> minusValue; - public MinusEvaluator(final NumberEvaluator subject, final NumberEvaluator minusValue) { + public MinusEvaluator(final Evaluator<Long> subject, final Evaluator<Long> minusValue) { this.subject = subject; this.minusValue = minusValue; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ModEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ModEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ModEvaluator.java index 6b7b838..cf2121c 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ModEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ModEvaluator.java @@ -25,10 +25,10 @@ import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; public class ModEvaluator extends NumberEvaluator { - private final NumberEvaluator subject; - private final NumberEvaluator modValue; + private final Evaluator<Long> subject; + private final Evaluator<Long> modValue; - public ModEvaluator(final NumberEvaluator subject, final NumberEvaluator modValue) { + public ModEvaluator(final Evaluator<Long> subject, final Evaluator<Long> modValue) { this.subject = subject; this.modValue = modValue; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MultiplyEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MultiplyEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MultiplyEvaluator.java index a3b03ed..4480c98 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MultiplyEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MultiplyEvaluator.java @@ -25,10 +25,10 @@ import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; public class MultiplyEvaluator extends NumberEvaluator { - private final NumberEvaluator subject; - private final NumberEvaluator multiplyValue; + private final Evaluator<Long> subject; + private final Evaluator<Long> multiplyValue; - public MultiplyEvaluator(final NumberEvaluator subject, final NumberEvaluator multiplyValue) { + public MultiplyEvaluator(final Evaluator<Long> subject, final Evaluator<Long> multiplyValue) { this.subject = subject; this.multiplyValue = multiplyValue; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotEvaluator.java index 327e620..2a09e33 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotEvaluator.java @@ -25,9 +25,9 @@ import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; public class NotEvaluator extends BooleanEvaluator { - private final BooleanEvaluator subjectEvaluator; + private final Evaluator<Boolean> subjectEvaluator; - public NotEvaluator(final BooleanEvaluator subjectEvaluator) { + public NotEvaluator(final Evaluator<Boolean> subjectEvaluator) { this.subjectEvaluator = subjectEvaluator; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NumberToDateEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NumberToDateEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NumberToDateEvaluator.java index 672d855..6867202 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NumberToDateEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NumberToDateEvaluator.java @@ -22,14 +22,13 @@ import java.util.Map; import org.apache.nifi.attribute.expression.language.evaluation.DateEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.DateQueryResult; import org.apache.nifi.attribute.expression.language.evaluation.Evaluator; -import org.apache.nifi.attribute.expression.language.evaluation.NumberEvaluator; import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; public class NumberToDateEvaluator extends DateEvaluator { - private final NumberEvaluator subject; + private final Evaluator<Long> subject; - public NumberToDateEvaluator(final NumberEvaluator subject) { + public NumberToDateEvaluator(final Evaluator<Long> subject) { this.subject = subject; } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/c4c98fc4/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OrEvaluator.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OrEvaluator.java b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OrEvaluator.java index ab3a16c..719fa11 100644 --- a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OrEvaluator.java +++ b/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OrEvaluator.java @@ -25,10 +25,10 @@ import org.apache.nifi.attribute.expression.language.evaluation.QueryResult; public class OrEvaluator extends BooleanEvaluator { - private final BooleanEvaluator subjectEvaluator; - private final BooleanEvaluator rhsEvaluator; + private final Evaluator<Boolean> subjectEvaluator; + private final Evaluator<Boolean> rhsEvaluator; - public OrEvaluator(final BooleanEvaluator subjectEvaluator, final BooleanEvaluator rhsEvaluator) { + public OrEvaluator(final Evaluator<Boolean> subjectEvaluator, final Evaluator<Boolean> rhsEvaluator) { this.subjectEvaluator = subjectEvaluator; this.rhsEvaluator = rhsEvaluator; }