Class RuleEvaluator
- java.lang.Object
-
- software.amazon.smithy.rulesengine.language.eval.RuleEvaluator
-
- All Implemented Interfaces:
ExpressionVisitor<Value>
public class RuleEvaluator extends java.lang.Object implements 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.visit.ExpressionVisitor
ExpressionVisitor.Default<R>
-
-
Constructor Summary
Constructors Constructor Description RuleEvaluator()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Valueevaluate(EndpointRuleSet ruleset, java.util.Map<Identifier,Value> parameterArguments)Initializes a newRuleEvaluatorinstances, and evaluates the provided ruleset and parameter arguments.ValueevaluateCondition(Condition condition)ValueevaluateRuleSet(EndpointRuleSet ruleset, java.util.Map<Identifier,Value> parameterArguments)Evaluate the provided ruleset and parameter arguments.ValuevisitBoolEquals(Expression left, Expression right)ValuevisitEndpointRule(Endpoint endpoint)ValuevisitErrorRule(Expression error)ValuevisitGetAttr(GetAttr getAttr)ValuevisitIsSet(Expression fn)ValuevisitLibraryFunction(FunctionDefinition definition, java.util.List<Expression> arguments)ValuevisitLiteral(Literal literal)ValuevisitNot(Expression not)ValuevisitRef(Reference reference)ValuevisitStringEquals(Expression left, Expression right)
-
-
-
Method Detail
-
evaluate
public static Value evaluate(EndpointRuleSet ruleset, java.util.Map<Identifier,Value> parameterArguments)
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
public Value evaluateRuleSet(EndpointRuleSet ruleset, java.util.Map<Identifier,Value> parameterArguments)
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.
-
visitLiteral
public Value visitLiteral(Literal literal)
- Specified by:
visitLiteralin interfaceExpressionVisitor<Value>
-
visitRef
public Value visitRef(Reference reference)
- Specified by:
visitRefin interfaceExpressionVisitor<Value>
-
visitIsSet
public Value visitIsSet(Expression fn)
- Specified by:
visitIsSetin interfaceExpressionVisitor<Value>
-
visitNot
public Value visitNot(Expression not)
- Specified by:
visitNotin interfaceExpressionVisitor<Value>
-
visitBoolEquals
public Value visitBoolEquals(Expression left, Expression right)
- Specified by:
visitBoolEqualsin interfaceExpressionVisitor<Value>
-
visitStringEquals
public Value visitStringEquals(Expression left, Expression right)
- Specified by:
visitStringEqualsin interfaceExpressionVisitor<Value>
-
visitGetAttr
public Value visitGetAttr(GetAttr getAttr)
- Specified by:
visitGetAttrin interfaceExpressionVisitor<Value>
-
visitLibraryFunction
public Value visitLibraryFunction(FunctionDefinition definition, java.util.List<Expression> arguments)
- Specified by:
visitLibraryFunctionin interfaceExpressionVisitor<Value>
-
visitErrorRule
public Value visitErrorRule(Expression error)
-
-