org.apache.commons.ognl
Interface Node

All Superinterfaces:
JavaSource
All Known Implementing Classes:
ASTAnd, ASTChain, ASTConst, ASTCtor, ASTInstanceof, ASTList, ASTMethod, ASTOr, ASTProperty, ASTRootVarRef, ASTSequence, ASTStaticField, ASTStaticMethod, ASTThisVarRef, ASTVarRef, 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.

Author:
Luke Blanshard (blanshlu@netscape.net), Drew Davidson (drew@ognl.org)

Method Summary
<R,P> R
accept(NodeVisitor<? extends R,? super P> visitor, P data)
          Supports the Visitor pattern.
 ExpressionAccessor getAccessor()
          Gets the compiled bytecode enhanced expression accessor for getting/setting values.
 Object getValue(OgnlContext context, Object source)
          Extracts the value from the given source object that is appropriate for this node within the given context.
 void jjtAddChild(Node n, int i)
          This method tells the node to add its argument to the node's list of children.
 void jjtClose()
          This method is called after all the child nodes have been added.
 Node jjtGetChild(int i)
          This method returns a child node.
 int jjtGetNumChildren()
          Return the number of children the node has.
 Node jjtGetParent()
           
 void jjtOpen()
          This method is called after the node has been made the current node.
 void jjtSetParent(Node n)
          This pair of methods are used to inform the node of its parent.
 void setAccessor(ExpressionAccessor accessor)
          Sets a new compiled accessor for this node expression.
 void setValue(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 org.apache.commons.ognl.JavaSource
toGetSourceString, toSetSourceString
 

Method Detail

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


Copyright © 1997-2013 The Apache Software Foundation. All Rights Reserved.