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. Template
s
are a basic example of literals–literal strings. Literals can also be booleans, objects, integers or tuples.
-
Method Summary
Modifier and TypeMethodDescription<R> R
accept
(ExpressionVisitor<R> visitor) Invoke theExpressionVisitor
functions for this expression.abstract <T> T
accept
(LiteralVisitor<T> visitor) static Literal
booleanLiteral
(boolean value) Constructs a bool literal from a boolean value.evaluate
(RuleEvaluator evaluator) static Literal
Constructs a literal from aNode
based on the Node's type.static Literal
integerLiteral
(int value) Constructs an integer literal from an integer value.static Literal
recordLiteral
(Map<Identifier, Literal> record) Constructs a record literal of values.static Literal
stringLiteral
(Template value) Constructs a string literal from aTemplate
value.static Literal
tupleLiteral
(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, typeCheck
Methods inherited from class software.amazon.smithy.rulesengine.language.syntax.SyntaxElement
availableSince, booleanEqual, getAttr, getAttr, isSet, isValidHostLabel, not, parseUrl, stringEqual, substring, template
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods 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 aTemplate
value.- 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:Expression
Invoke theExpressionVisitor
functions for this expression.- Specified by:
accept
in 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 aNode
based on the Node's type.- Parameters:
node
- a node to construct as a literal.- Returns:
- the literal representation of the node.
-
typeCheckLocal
- Specified by:
typeCheckLocal
in classExpression
-
evaluate
- Parameters:
evaluator
- the rule-set evaluator.- Returns:
- the resulting value.
-