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
equals, getLiteral, getReference, getSourceLocation, hashCode, of, of, of, parseShortform, toConditionBuilder, toExpression, type, typeCheck
Methods inherited from class software.amazon.smithy.rulesengine.language.syntax.SyntaxElement
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
-
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.
-