Interface SpelNode
- All Known Implementing Classes:
Assign
,BeanReference
,BooleanLiteral
,CompoundExpression
,ConstructorReference
,Elvis
,FloatLiteral
,FunctionReference
,Identifier
,Indexer
,InlineList
,InlineMap
,IntLiteral
,Literal
,LongLiteral
,MethodReference
,NullLiteral
,OpAnd
,OpDec
,OpDivide
,OpEQ
,Operator
,OperatorBetween
,OperatorInstanceof
,OperatorMatches
,OperatorNot
,OperatorPower
,OpGE
,OpGT
,OpInc
,OpLE
,OpLT
,OpMinus
,OpModulus
,OpMultiply
,OpNE
,OpOr
,OpPlus
,Projection
,PropertyOrFieldReference
,QualifiedIdentifier
,RealLiteral
,Selection
,SpelNodeImpl
,StringLiteral
,Ternary
,TypeReference
,VariableReference
public interface SpelNode
Represents a node in the AST for a parsed expression.
- Since:
- 3.0
- Author:
- Andy Clement
-
Method Summary
Modifier and TypeMethodDescriptiongetChild
(int index) Helper method that returns a SpelNode rather than an Antlr Tree node.int
Return the number of children under this node.int
Return the end position of this AST node in the expression string.Class<?>
getObjectClass
(Object obj) Determine the class of the object passed in, unless it is already a class object.int
Return the start position of this AST node in the expression string.getTypedValue
(ExpressionState expressionState) Evaluate the expression node in the context of the supplied expression state and return the typed value.getValue
(ExpressionState expressionState) Evaluate the expression node in the context of the supplied expression state and return the value.boolean
isWritable
(ExpressionState expressionState) Determine if this expression node will support a setValue() call.void
setValue
(ExpressionState expressionState, Object newValue) Evaluate the expression to a node and then set the new value on that node.Return the string form of this AST node.
-
Method Details
-
getValue
Evaluate the expression node in the context of the supplied expression state and return the value.- Parameters:
expressionState
- the current expression state (includes the context)- Returns:
- the value of this node evaluated against the specified state
- Throws:
EvaluationException
-
getTypedValue
Evaluate the expression node in the context of the supplied expression state and return the typed value.- Parameters:
expressionState
- the current expression state (includes the context)- Returns:
- the type value of this node evaluated against the specified state
- Throws:
EvaluationException
-
isWritable
Determine if this expression node will support a setValue() call.- Parameters:
expressionState
- the current expression state (includes the context)- Returns:
- true if the expression node will allow setValue()
- Throws:
EvaluationException
- if something went wrong trying to determine if the node supports writing
-
setValue
void setValue(ExpressionState expressionState, @Nullable Object newValue) throws EvaluationException Evaluate the expression to a node and then set the new value on that node. For example, if the expression evaluates to a property reference, then the property will be set to the new value.- Parameters:
expressionState
- the current expression state (includes the context)newValue
- the new value- Throws:
EvaluationException
- if any problem occurs evaluating the expression or setting the new value
-
toStringAST
String toStringAST()Return the string form of this AST node.- Returns:
- the string form
-
getChildCount
int getChildCount()Return the number of children under this node.- Returns:
- the child count
-
getChild
Helper method that returns a SpelNode rather than an Antlr Tree node.- Returns:
- the child node cast to a SpelNode
-
getObjectClass
Determine the class of the object passed in, unless it is already a class object.- Parameters:
obj
- the object that the caller wants the class of- Returns:
- the class of the object if it is not already a class object,
or
null
if the object isnull
-
getStartPosition
int getStartPosition()Return the start position of this AST node in the expression string.- Returns:
- the start position
-
getEndPosition
int getEndPosition()Return the end position of this AST node in the expression string.- Returns:
- the end position
-