[
https://issues.apache.org/jira/browse/METRON-980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16040899#comment-16040899
]
ASF GitHub Bot commented on METRON-980:
---------------------------------------
Github user cestella commented on a diff in the pull request:
https://github.com/apache/metron/pull/606#discussion_r120628075
--- Diff:
metron-platform/metron-common/src/main/java/org/apache/metron/common/stellar/StellarCompiler.java
---
@@ -40,14 +40,22 @@
import static java.lang.String.format;
public class StellarCompiler extends StellarBaseListener {
- private static Token<?> EXPRESSION_REFERENCE = new Token<>(null,
Object.class);
- private static Token<?> LAMBDA_VARIABLES = new Token<>(null,
Object.class);
+ private static Token<?> EXPRESSION_REFERENCE = new Token<>(null,
Object.class, null);
+ private static Token<?> LAMBDA_VARIABLES = new Token<>(null,
Object.class, null);
private Expression expression;
private final ArithmeticEvaluator arithmeticEvaluator;
private final NumberLiteralEvaluator numberLiteralEvaluator;
private final ComparisonExpressionWithOperatorEvaluator
comparisonExpressionWithOperatorEvaluator;
+ public static class ShortCircuitFrame {}
+ public static class ShortCircuitOp {}
--- End diff --
Sorry, one of them can definitely be an interface. I made the change.
> Short circuit operations for Stellar
> ------------------------------------
>
> Key: METRON-980
> URL: https://issues.apache.org/jira/browse/METRON-980
> Project: Metron
> Issue Type: Improvement
> Reporter: Casey Stella
> Assignee: Casey Stella
>
> Stellar does not currently contain short circuit operations. In most
> languages, this is an important optimization, but for Stellar on Metron, this
> is a requirement due to the fact that some variables may be null legitimately
> and we cannot create multi-line conditionals or temporary variables at the
> moment.
> The short circuit operations supported:
> * short circuited `or` (e.g. true or FUNC(...) would never execute FUNC)
> * short circuited `and` (e.g. false and FUNC(...) would never execute FUNC)
> * short circuited if/then/else (e.g. if true then FUNC(...) else FUNC2(...)
> will never call FUNC2)
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)