Class Expression
java.lang.Object
software.amazon.smithy.rulesengine.language.syntax.SyntaxElement
software.amazon.smithy.rulesengine.language.syntax.expressions.Expression
- All Implemented Interfaces:
FromSourceLocation,ToNode,TypeCheck,ToCondition,ToExpression
- Direct Known Subclasses:
LibraryFunction,Literal,Reference
public abstract class Expression
extends SyntaxElement
implements FromSourceLocation, ToNode, TypeCheck
A dynamically computed expression.
Expressions are the fundamental building block of the rule language.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract <R> Raccept(ExpressionVisitor<R> visitor) Invoke theExpressionVisitorfunctions for this expression.abstract booleanstatic ExpressionConstructs an expression from the providedNode.static LiteralgetLiteral(StringNode node) Constructs aLiteralfrom the givenStringNode.static ReferencegetReference(Identifier name, FromSourceLocation context) Constructs aReferencefor the givenIdentifierat the given location.Gets the source location of a value.abstract inthashCode()static Literalof(boolean value) static Literalof(int value) Construct an integer literal for the given value, and returns it as an expression.static LiteralConstructs a string literal for the given values.static ExpressionparseShortform(String shortForm, FromSourceLocation context) Parse a value from a "short form" used within a template.Convert this into a condition builder for compositional use.Convert this into an expression.type()Returns the type for this expression, throws a runtime exception iftypeCheckhas not been invoked.Checks whether the given types within a scope satisfy the constraints.protected abstract TypetypeCheckLocal(Scope<Type> scope) Methods inherited from class software.amazon.smithy.rulesengine.language.syntax.SyntaxElement
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
-
Constructor Details
-
Expression
-
-
Method Details
-
of
-
of
Construct an integer literal for the given value, and returns it as an expression.- Parameters:
value- the integer value.- Returns:
- the integer value as a literal expression.
-
of
Constructs a string literal for the given values.- Parameters:
value- the string value.- Returns:
- the string value as a literal.
-
fromNode
Constructs an expression from the providedNode.- Parameters:
node- the node to construct the expression from.- Returns:
- the expression.
-
parseShortform
Parse a value from a "short form" used within a template.- Parameters:
shortForm- the shortform value- Returns:
- the parsed expression
-
getReference
Constructs aReferencefor the givenIdentifierat the given location.- Parameters:
name- the referenced identifier.context- the source location.- Returns:
- the reference.
-
getLiteral
Constructs aLiteralfrom the givenStringNode.- Parameters:
node- the node to construct the literal from.- Returns:
- the string node as a literal.
-
accept
Invoke theExpressionVisitorfunctions for this expression.- Type Parameters:
R- the visitor return type.- Parameters:
visitor- the visitor to be invoked.- Returns:
- the return value of the visitor.
-
typeCheckLocal
- Throws:
InnerParseError
-
type
Returns the type for this expression, throws a runtime exception iftypeCheckhas not been invoked.- Returns:
- the type.
-
toConditionBuilder
Description copied from interface:ToConditionConvert this into a condition builder for compositional use.- Specified by:
toConditionBuilderin interfaceToCondition- Returns:
- the condition builder.
-
toExpression
Description copied from interface:ToExpressionConvert this into an expression.- Specified by:
toExpressionin interfaceToExpression- Returns:
- the expression.
-
hashCode
public abstract int hashCode() -
equals
-
getSourceLocation
Description copied from interface:FromSourceLocationGets the source location of a value.- Specified by:
getSourceLocationin interfaceFromSourceLocation- Returns:
- Returns the source location of the value.
-
typeCheck
Description copied from interface:TypeCheckChecks whether the given types within a scope satisfy the constraints.
-