Class Literal
java.lang.Object
software.amazon.smithy.rulesengine.language.syntax.SyntaxElement
software.amazon.smithy.rulesengine.language.syntax.expressions.Expression
software.amazon.smithy.rulesengine.language.syntax.expressions.literal.Literal
- All Implemented Interfaces:
FromSourceLocation,ToNode,TypeCheck,ToCondition,ToExpression
- Direct Known Subclasses:
BooleanLiteral,IntegerLiteral,RecordLiteral,StringLiteral,TupleLiteral
Literals allow rules and properties to define arbitrarily nested JSON structures (e.g.for properties)
They support template strings, but _do not_ support template objects since that creates ambiguity. Templates
are a basic example of literals–literal strings. Literals can also be booleans, objects, integers or tuples.
-
Method Summary
Modifier and TypeMethodDescription<R> Raccept(ExpressionVisitor<R> visitor) Invoke theExpressionVisitorfunctions for this expression.abstract <T> Taccept(LiteralVisitor<T> visitor) static LiteralbooleanLiteral(boolean value) Constructs a bool literal from a boolean value.evaluate(RuleEvaluator evaluator) static LiteralConstructs a literal from aNodebased on the Node's type.static LiteralintegerLiteral(int value) Constructs an integer literal from an integer value.static LiteralrecordLiteral(Map<Identifier, Literal> record) Constructs a record literal of values.static LiteralstringLiteral(Template value) Constructs a string literal from aTemplatevalue.static LiteraltupleLiteral(List<Literal> values) Constructs a tuple literal of values.typeCheckLocal(Scope<Type> scope) Methods inherited from class software.amazon.smithy.rulesengine.language.syntax.expressions.Expression
calculateReferences, equals, getLiteral, getReference, getReference, getReference, getReferences, getSourceLocation, hashCode, of, of, of, parseShortform, toExpression, type, typeCheckMethods inherited from class software.amazon.smithy.rulesengine.language.syntax.SyntaxElement
availableSince, booleanEqual, getAttr, getAttr, isSet, isValidHostLabel, not, parseUrl, stringEqual, substring, templateMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface software.amazon.smithy.rulesengine.language.syntax.ToCondition
toCondition, toCondition, toConditionBuilder
-
Method Details
-
booleanLiteral
Constructs a bool literal from a boolean value.- Parameters:
value- the boolean value.- Returns:
- the bool literal.
-
integerLiteral
Constructs an integer literal from an integer value.- Parameters:
value- the integer value.- Returns:
- the integer literal.
-
recordLiteral
Constructs a record literal of values.- Parameters:
record- a map of values to be converted to a record.- Returns:
- the record literal.
-
stringLiteral
Constructs a string literal from aTemplatevalue.- Parameters:
value- the template value.- Returns:
- the string literal.
-
tupleLiteral
Constructs a tuple literal of values.- Parameters:
values- the values.- Returns:
- the tuple literal.
-
asBooleanLiteral
-
asIntegerLiteral
-
asRecordLiteral
-
asStringLiteral
-
asTupleLiteral
-
accept
Description copied from class:ExpressionInvoke theExpressionVisitorfunctions for this expression.- Specified by:
acceptin classExpression- Type Parameters:
R- the visitor return type.- Parameters:
visitor- the visitor to be invoked.- Returns:
- the return value of the visitor.
-
accept
-
fromNode
Constructs a literal from aNodebased on the Node's type.- Parameters:
node- a node to construct as a literal.- Returns:
- the literal representation of the node.
-
typeCheckLocal
- Specified by:
typeCheckLocalin classExpression
-
evaluate
- Parameters:
evaluator- the rule-set evaluator.- Returns:
- the resulting value.
-