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 Constructor Description Expression(SourceLocation sourceLocation)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract <R> Raccept(ExpressionVisitor<R> visitor)Invoke theExpressionVisitorfunctions for this expression.abstract booleanequals(java.lang.Object obj)static ExpressionfromNode(Node node)Constructs 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.SourceLocationgetSourceLocation()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 Literalof(java.lang.String value)Constructs a string literal for the given values.static ExpressionparseShortform(java.lang.String shortForm, FromSourceLocation context)Parse a value from a "short form" used within a template.Condition.BuildertoConditionBuilder()Convert this into a condition builder for compositional use.ExpressiontoExpression()Convert this into an expression.Typetype()Returns the type for this expression, throws a runtime exception iftypeCheckhas not been invoked.TypetypeCheck(Scope<Type> scope)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, 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
-
-
-
-
Constructor Detail
-
Expression
public Expression(SourceLocation sourceLocation)
-
-
Method Detail
-
of
public static Literal of(boolean value)
-
of
public static Literal of(int value)
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
public static Literal of(java.lang.String value)
Constructs a string literal for the given values.- Parameters:
value- the string value.- Returns:
- the string value as a literal.
-
fromNode
public static Expression fromNode(Node node)
Constructs an expression from the providedNode.- Parameters:
node- the node to construct the expression from.- Returns:
- the expression.
-
parseShortform
public static Expression parseShortform(java.lang.String shortForm, FromSourceLocation context)
Parse a value from a "short form" used within a template.- Parameters:
shortForm- the shortform value- Returns:
- the parsed expression
-
getReference
public static Reference getReference(Identifier name, FromSourceLocation context)
Constructs aReferencefor the givenIdentifierat the given location.- Parameters:
name- the referenced identifier.context- the source location.- Returns:
- the reference.
-
getLiteral
public static Literal getLiteral(StringNode node)
Constructs aLiteralfrom the givenStringNode.- Parameters:
node- the node to construct the literal from.- Returns:
- the string node as a literal.
-
accept
public abstract <R> R accept(ExpressionVisitor<R> visitor)
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
protected abstract Type typeCheckLocal(Scope<Type> scope) throws InnerParseError
- Throws:
InnerParseError
-
type
public Type type()
Returns the type for this expression, throws a runtime exception iftypeCheckhas not been invoked.- Returns:
- the type.
-
toConditionBuilder
public Condition.Builder toConditionBuilder()
Description copied from interface:ToConditionConvert this into a condition builder for compositional use.- Specified by:
toConditionBuilderin interfaceToCondition- Returns:
- the condition builder.
-
toExpression
public Expression toExpression()
Description copied from interface:ToExpressionConvert this into an expression.- Specified by:
toExpressionin interfaceToExpression- Returns:
- the expression.
-
hashCode
public abstract int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public abstract boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
getSourceLocation
public SourceLocation getSourceLocation()
Description copied from interface:FromSourceLocationGets the source location of a value.- Specified by:
getSourceLocationin interfaceFromSourceLocation- Returns:
- Returns the source location of the value.
-
-