Package com.tonic.analysis.query.eval
Class ConditionEvaluator
- java.lang.Object
-
- com.tonic.analysis.query.eval.ConditionEvaluator
-
- All Implemented Interfaces:
Condition.Visitor<Boolean>
public final class ConditionEvaluator extends Object implements Condition.Visitor<Boolean>
-
-
Constructor Summary
Constructors Constructor Description ConditionEvaluator(AttributeRegistry registry)Creates an evaluator that resolves accessor paths through a registry.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleaneval(Condition condition, Subject against)Evaluates a condition against a subject, restoring the previously bound subject afterwards so nested evaluations can reenter.BooleanvisitAnd(Condition.And c)Visits a conjunction.BooleanvisitComparison(Condition.Comparison c)Visits a comparison leaf.BooleanvisitCount(Condition.Count c)Visits a stream cardinality test.BooleanvisitGroup(Condition.Group c)Visits a parenthesized group.BooleanvisitNot(Condition.Not c)Visits a negation.BooleanvisitOr(Condition.Or c)Visits a disjunction.BooleanvisitQuantifier(Condition.Quantifier c)Visits a quantification over a sub-subject stream.BooleanvisitSequence(Condition.Sequence c)Visits an instruction-sequence pattern.BooleanvisitTrue(Condition.True c)Visits the constant-true leaf.
-
-
-
Constructor Detail
-
ConditionEvaluator
public ConditionEvaluator(AttributeRegistry registry)
Creates an evaluator that resolves accessor paths through a registry.- Parameters:
registry- the attribute resolvers to navigate with
-
-
Method Detail
-
eval
public boolean eval(Condition condition, Subject against)
Evaluates a condition against a subject, restoring the previously bound subject afterwards so nested evaluations can reenter.- Parameters:
condition- the condition to interpretagainst- the subject to bind while interpreting- Returns:
- true if the condition holds
-
visitAnd
public Boolean visitAnd(Condition.And c)
Description copied from interface:Condition.VisitorVisits a conjunction.- Specified by:
visitAndin interfaceCondition.Visitor<Boolean>- Parameters:
c- the node- Returns:
- the visitor result
-
visitOr
public Boolean visitOr(Condition.Or c)
Description copied from interface:Condition.VisitorVisits a disjunction.- Specified by:
visitOrin interfaceCondition.Visitor<Boolean>- Parameters:
c- the node- Returns:
- the visitor result
-
visitNot
public Boolean visitNot(Condition.Not c)
Description copied from interface:Condition.VisitorVisits a negation.- Specified by:
visitNotin interfaceCondition.Visitor<Boolean>- Parameters:
c- the node- Returns:
- the visitor result
-
visitGroup
public Boolean visitGroup(Condition.Group c)
Description copied from interface:Condition.VisitorVisits a parenthesized group.- Specified by:
visitGroupin interfaceCondition.Visitor<Boolean>- Parameters:
c- the node- Returns:
- the visitor result
-
visitTrue
public Boolean visitTrue(Condition.True c)
Description copied from interface:Condition.VisitorVisits the constant-true leaf.- Specified by:
visitTruein interfaceCondition.Visitor<Boolean>- Parameters:
c- the node- Returns:
- the visitor result
-
visitComparison
public Boolean visitComparison(Condition.Comparison c)
Description copied from interface:Condition.VisitorVisits a comparison leaf.- Specified by:
visitComparisonin interfaceCondition.Visitor<Boolean>- Parameters:
c- the node- Returns:
- the visitor result
-
visitQuantifier
public Boolean visitQuantifier(Condition.Quantifier c)
Description copied from interface:Condition.VisitorVisits a quantification over a sub-subject stream.- Specified by:
visitQuantifierin interfaceCondition.Visitor<Boolean>- Parameters:
c- the node- Returns:
- the visitor result
-
visitCount
public Boolean visitCount(Condition.Count c)
Description copied from interface:Condition.VisitorVisits a stream cardinality test.- Specified by:
visitCountin interfaceCondition.Visitor<Boolean>- Parameters:
c- the node- Returns:
- the visitor result
-
visitSequence
public Boolean visitSequence(Condition.Sequence c)
Description copied from interface:Condition.VisitorVisits an instruction-sequence pattern.- Specified by:
visitSequencein interfaceCondition.Visitor<Boolean>- Parameters:
c- the node- Returns:
- the visitor result
-
-