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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description SpelNode
getChild(int index)
Helper method that returns a SpelNode rather than an Antlr Tree node.int
getChildCount()
int
getEndPosition()
Class<?>
getObjectClass(Object obj)
Determine the class of the object passed in, unless it is already a class object.int
getStartPosition()
TypedValue
getTypedValue(ExpressionState expressionState)
Evaluate the expression node in the context of the supplied expression state and return the typed value.Object
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.String
toStringAST()
Method Detail
getValue
Object getValue(ExpressionState expressionState) throws EvaluationException
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
TypedValue getTypedValue(ExpressionState expressionState) throws EvaluationException
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
boolean isWritable(ExpressionState expressionState) throws EvaluationException
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, 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()
- Returns:
- the string form of this AST node
getChildCount
int getChildCount()
- Returns:
- the number of children under this node
getChild
SpelNode getChild(int index)
Helper method that returns a SpelNode rather than an Antlr Tree node.- Returns:
- the child node cast to a SpelNode
getObjectClass
Class<?> getObjectClass(Object obj)
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()
- Returns:
- the start position of this Ast node in the expression string
getEndPosition
int getEndPosition()
- Returns:
- the end position of this Ast node in the expression string