Interface Node
- All Superinterfaces:
JavaSource
- All Known Implementing Classes:
ASTAdd, ASTAnd, ASTAssign, ASTBitAnd, ASTBitNegate, ASTBitOr, ASTChain, ASTConst, ASTCtor, ASTDivide, ASTEq, ASTEval, ASTGreater, ASTGreaterEq, ASTIn, ASTInstanceof, ASTKeyValue, ASTLess, ASTLessEq, ASTList, ASTMap, ASTMethod, ASTMultiply, ASTNegate, ASTNot, ASTNotEq, ASTNotIn, ASTOr, ASTProject, ASTProperty, ASTRemainder, ASTRootVarRef, ASTSelect, ASTSelectFirst, ASTSelectLast, ASTSequence, ASTShiftLeft, ASTShiftRight, ASTStaticField, ASTStaticMethod, ASTSubtract, ASTTest, ASTThisVarRef, ASTUnsignedShiftRight, ASTVarRef, ASTXor, BooleanExpression, ComparisonExpression, ExpressionNode, NumericExpression, SimpleNode
JJTree interface for AST nodes, as modified to handle the OGNL operations getValue and
setValue. JJTree's original comment:
All AST nodes must implement this interface. It provides basic machinery for constructing the parent and child relationships between nodes.
-
Method Summary
Modifier and TypeMethodDescriptionGets the compiled bytecode enhanced expression accessor for getting/setting values.getValue(OgnlContext context, Object source) Extracts the value from the given source object that is appropriate for this node within the given context.voidjjtAddChild(Node n, int i) This method tells the node to add its argument to the node's list of children.voidjjtClose()This method is called after all the child nodes have been added.jjtGetChild(int i) This method returns a child node.intReturn the number of children the node has.voidjjtOpen()This method is called after the node has been made the current node.voidjjtSetParent(Node n) This pair of methods are used to inform the node of its parent.voidsetAccessor(ExpressionAccessor accessor) Sets a new compiled accessor for this node expression.voidsetValue(OgnlContext context, Object target, Object value) Sets the given value in the given target as appropriate for this node within the given context.Methods inherited from interface JavaSource
toGetSourceString, toSetSourceString
-
Method Details
-
jjtOpen
void jjtOpen()This method is called after the node has been made the current node. It indicates that child nodes can now be added to it. -
jjtClose
void jjtClose()This method is called after all the child nodes have been added. -
jjtSetParent
This pair of methods are used to inform the node of its parent.- Parameters:
n- the Node to make the parent of this node.
-
jjtGetParent
Node jjtGetParent() -
jjtAddChild
This method tells the node to add its argument to the node's list of children.- Parameters:
n- the Node to add as a child of this node.i- the position at which to add the child node.
-
jjtGetChild
This method returns a child node. The children are numbered from zero, left to right.- Parameters:
i- the position from which to get the child node.- Returns:
- the child Node at position i.
-
jjtGetNumChildren
int jjtGetNumChildren()Return the number of children the node has.- Returns:
- the number of children for this node.
-
getValue
Extracts the value from the given source object that is appropriate for this node within the given context.- Parameters:
context- the OgnlContext within which to perform the operation.source- the Object from which to get the value.- Returns:
- the value from the source (as appropriate within the provided context).
- Throws:
OgnlException- if the value get fails.
-
setValue
Sets the given value in the given target as appropriate for this node within the given context.- Parameters:
context- the OgnlContext within which to perform the operation.target- the Object upon which to set the value.value- the Object representing the value to apply to the target.- Throws:
OgnlException- if the value set fails.
-
getAccessor
ExpressionAccessor getAccessor()Gets the compiled bytecode enhanced expression accessor for getting/setting values.- Returns:
- The accessor for this node, or null if none has been compiled for it.
-
setAccessor
Sets a new compiled accessor for this node expression.- Parameters:
accessor- The compiled representation of this node.
-