Class RuleEvaluator
java.lang.Object
software.amazon.smithy.rulesengine.language.evaluation.RuleEvaluator
- All Implemented Interfaces:
ExpressionVisitor<Value>
A runtime implementation of a rule-set evaluation engine.
-
Nested Class Summary
Nested classes/interfaces inherited from interface software.amazon.smithy.rulesengine.language.syntax.expressions.ExpressionVisitor
ExpressionVisitor.Default<R>
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic Value
evaluate
(EndpointRuleSet ruleset, Map<Identifier, Value> parameterArguments) Initializes a newRuleEvaluator
instances, and evaluates the provided ruleset and parameter arguments.evaluateCondition
(Condition condition) Evaluates the given condition in the current scope.evaluateRuleSet
(EndpointRuleSet ruleset, Map<Identifier, Value> parameterArguments) Evaluate the provided ruleset and parameter arguments.visitBoolEquals
(Expression left, Expression right) Does a boolean equality check.visitGetAttr
(GetAttr getAttr) Visits a GetAttr function.visitIsSet
(Expression fn) Visits an isSet function.visitLibraryFunction
(FunctionDefinition definition, List<Expression> arguments) Visits a library function.visitLiteral
(Literal literal) Visits a literal.visitNot
(Expression not) Visits a not function.Visits a reference.visitStringEquals
(Expression left, Expression right) Does a string equality check.
-
Constructor Details
-
RuleEvaluator
public RuleEvaluator()
-
-
Method Details
-
evaluate
Initializes a newRuleEvaluator
instances, and evaluates the provided ruleset and parameter arguments.- Parameters:
ruleset
- The endpoint ruleset.parameterArguments
- The rule-set parameter identifiers and values to evaluate the rule-set against.- Returns:
- The resulting value from the final matched rule.
-
evaluateRuleSet
Evaluate the provided ruleset and parameter arguments.- Parameters:
ruleset
- The endpoint ruleset.parameterArguments
- The rule-set parameter identifiers and values to evaluate the rule-set against.- Returns:
- The resulting value from the final matched rule.
-
evaluateCondition
Evaluates the given condition in the current scope.- Parameters:
condition
- the condition to evaluate.- Returns:
- the value returned by the condition.
-
visitLiteral
Description copied from interface:ExpressionVisitor
Visits a literal.- Specified by:
visitLiteral
in interfaceExpressionVisitor<Value>
- Parameters:
literal
- the literal to visit.- Returns:
- the value from the visitor.
-
visitRef
Description copied from interface:ExpressionVisitor
Visits a reference.- Specified by:
visitRef
in interfaceExpressionVisitor<Value>
- Parameters:
reference
- the reference to visit.- Returns:
- the value from the visitor.
-
visitIsSet
Description copied from interface:ExpressionVisitor
Visits an isSet function.- Specified by:
visitIsSet
in interfaceExpressionVisitor<Value>
- Parameters:
fn
- the isSet function to visit.- Returns:
- the value from the visitor.
-
visitNot
Description copied from interface:ExpressionVisitor
Visits a not function.- Specified by:
visitNot
in interfaceExpressionVisitor<Value>
- Parameters:
not
- the not function to visit.- Returns:
- the value from the visitor.
-
visitBoolEquals
Description copied from interface:ExpressionVisitor
Does a boolean equality check.- Specified by:
visitBoolEquals
in interfaceExpressionVisitor<Value>
- Parameters:
left
- the first value to compare.right
- the second value to compare.- Returns:
- the value from the visitor.
-
visitStringEquals
Description copied from interface:ExpressionVisitor
Does a string equality check.- Specified by:
visitStringEquals
in interfaceExpressionVisitor<Value>
- Parameters:
left
- the first value to compare.right
- the second value to compare.- Returns:
- the value from the visitor.
-
visitGetAttr
Description copied from interface:ExpressionVisitor
Visits a GetAttr function.- Specified by:
visitGetAttr
in interfaceExpressionVisitor<Value>
- Parameters:
getAttr
- the GetAttr function to visit.- Returns:
- the value from the visitor.
-
visitLibraryFunction
Description copied from interface:ExpressionVisitor
Visits a library function.- Specified by:
visitLibraryFunction
in interfaceExpressionVisitor<Value>
- Parameters:
definition
- the library function to visit.arguments
- the arguments to the function being visited.- Returns:
- the value from the visitor.
-