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

public interface Node extends JavaSource
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 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

      void jjtSetParent(Node n)
      This pair of methods are used to inform the node of its parent.
    • jjtGetParent

      Node jjtGetParent()
    • jjtAddChild

      void jjtAddChild(Node n, int i)
      This method tells the node to add its argument to the node's list of children.
    • jjtGetChild

      Node jjtGetChild(int i)
      This method returns a child node. The children are numbered from zero, left to right.
    • jjtGetNumChildren

      int jjtGetNumChildren()
      Return the number of children the node has.
    • getValue

      Object getValue(OgnlContext context, Object source) throws OgnlException
      Extracts the value from the given source object that is appropriate for this node within the given context.
      Throws:
      OgnlException
    • setValue

      void setValue(OgnlContext context, Object target, Object value) throws OgnlException
      Sets the given value in the given target as appropriate for this node within the given context.
      Throws:
      OgnlException
    • 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

      void setAccessor(ExpressionAccessor accessor)
      Sets a new compiled accessor for this node expression.
      Parameters:
      accessor - The compiled representation of this node.
    • accept

      <R, P> R accept(NodeVisitor<? extends R,? super P> visitor, P data) throws OgnlException
      Supports the Visitor pattern. The method which corresponds to the runtime type of this Node will be called.
      Type Parameters:
      R - The return type of the visitor.visit method.
      P - The type of the second parameter type.
      Parameters:
      visitor - The visitor to accept.
      data - The second parameter to pass through to visitor.visit
      Returns:
      the value returned by visitor.visit
      Throws:
      NullPointerException - if visitor is null
      RuntimeException - if visitor.visit throws an exception.
      OgnlException