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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Valueevaluate(EndpointRuleSet ruleset, Map<Identifier, Value> parameterArguments) Initializes a newRuleEvaluatorinstances, 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 newRuleEvaluatorinstances, 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:ExpressionVisitorVisits a literal.- Specified by:
visitLiteralin interfaceExpressionVisitor<Value>- Parameters:
literal- the literal to visit.- Returns:
- the value from the visitor.
-
visitRef
Description copied from interface:ExpressionVisitorVisits a reference.- Specified by:
visitRefin interfaceExpressionVisitor<Value>- Parameters:
reference- the reference to visit.- Returns:
- the value from the visitor.
-
visitIsSet
Description copied from interface:ExpressionVisitorVisits an isSet function.- Specified by:
visitIsSetin interfaceExpressionVisitor<Value>- Parameters:
fn- the isSet function to visit.- Returns:
- the value from the visitor.
-
visitNot
Description copied from interface:ExpressionVisitorVisits a not function.- Specified by:
visitNotin interfaceExpressionVisitor<Value>- Parameters:
not- the not function to visit.- Returns:
- the value from the visitor.
-
visitBoolEquals
Description copied from interface:ExpressionVisitorDoes a boolean equality check.- Specified by:
visitBoolEqualsin 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:ExpressionVisitorDoes a string equality check.- Specified by:
visitStringEqualsin 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:ExpressionVisitorVisits a GetAttr function.- Specified by:
visitGetAttrin interfaceExpressionVisitor<Value>- Parameters:
getAttr- the GetAttr function to visit.- Returns:
- the value from the visitor.
-
visitLibraryFunction
Description copied from interface:ExpressionVisitorVisits a library function.- Specified by:
visitLibraryFunctionin interfaceExpressionVisitor<Value>- Parameters:
definition- the library function to visit.arguments- the arguments to the function being visited.- Returns:
- the value from the visitor.
-