Class Literal
java.lang.Object
software.amazon.smithy.rulesengine.language.util.MandatorySourceLocation
software.amazon.smithy.rulesengine.language.syntax.expr.Expression
software.amazon.smithy.rulesengine.language.syntax.expr.Literal
- All Implemented Interfaces:
FromSourceLocation,ToNode,TypeCheck
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.
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescription<T> Taccept(Literal.Vistor<T> visitor) Invokes the providedLiteral.Vistor.<R> Raccept(ExpressionVisitor<R> visitor) Invoke theExpressionVisitorfunctions for this expression.asBool()Attempts to convert the literal to aBooleanif possible.Attempts to convert the literal to anLiteral.Integer.asRecord()Attempts to convert the literal to a map ofIdentifiertoLiteral.asString()Attempts to convert the literal to aTemplateif possible.asTuple()Attempts to convert the literal to a list ofLiteralvalues.static Literalbool(boolean value) Constructs a bool literal from a boolean value.booleanevaluate(RuleEvaluator evaluator) Attempts to convert the literal to aString.static LiteralConstructs a literal from aNodebased on the Node's type.Gets the source location of a value.inthashCode()static Literalinteger(int value) Constructs an integer literal from an integer value.static Literalrecord(Map<Identifier, Literal> record) Constructs a record literal of values.static LiteralConstructs a string literal from aTemplatevalue.toNode()Converts a value to aNode.toString()Returns the string representation of the literal.static LiteralConstructs a tuple literal of values.typeCheckLocal(Scope<Type> scope)
-
Method Details
-
tuple
Constructs a tuple literal of values.- Parameters:
values- the values.- Returns:
- the tuple literal.
-
record
Constructs a record literal of values.- Parameters:
record- a map of values to be converted to a record.- Returns:
- the record literal.
-
string
Constructs a string literal from aTemplatevalue.- Parameters:
value- the template value.- Returns:
- the string literal.
-
integer
Constructs an integer literal from an integer value.- Parameters:
value- the integer value.- Returns:
- the integer literal.
-
bool
Constructs a bool literal from a boolean value.- Parameters:
value- the boolean value.- Returns:
- the bool literal.
-
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.
-
expectLiteralString
Attempts to convert the literal to aString. Otherwise throws an exception.- Returns:
- the literal as a string.
-
asBool
Attempts to convert the literal to aBooleanif possible. Otherwise, returns an empty optional.- Returns:
- an optional boolean.
-
asString
Attempts to convert the literal to aTemplateif possible. Otherwise, returns an empty optional.- Returns:
- an optional boolean.
-
asRecord
Attempts to convert the literal to a map ofIdentifiertoLiteral. Otherwise, returns an empty optional.- Returns:
- an optional map.
-
asTuple
Attempts to convert the literal to a list ofLiteralvalues. Otherwise, returns an empty optional.- Returns:
- the optional list.
-
asInteger
Attempts to convert the literal to anLiteral.Integer. Otherwise, returns an empty optional.- Returns:
- the optional integer.
-
accept
Invokes the providedLiteral.Vistor.- Type Parameters:
T- the visitor return type.- Parameters:
visitor- the visitor.- Returns:
- the return value of the vistor.
-
toString
Returns the string representation of the literal. -
getSourceLocation
Description copied from interface:FromSourceLocationGets the source location of a value.- Specified by:
getSourceLocationin interfaceFromSourceLocation- Overrides:
getSourceLocationin classMandatorySourceLocation- Returns:
- Returns the source location of the value.
-
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.
-
hashCode
public int hashCode()- Specified by:
hashCodein classExpression
-
equals
- Specified by:
equalsin classExpression
-
typeCheckLocal
- Specified by:
typeCheckLocalin classExpression
-
evaluate
- Parameters:
evaluator- the rule-set evaluator.- Returns:
- the resulting value.
-
toNode
Description copied from interface:ToNodeConverts a value to aNode.- Returns:
- Returns the creates Node.
-