Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

ognl
Class SimpleNode  view SimpleNode download SimpleNode.java

java.lang.Object
  extended byognl.SimpleNode
All Implemented Interfaces:
Node, java.io.Serializable
Direct Known Subclasses:
ASTAssign, ASTChain, ASTConst, ASTCtor, ASTEval, ASTIn, ASTInstanceof, ASTKeyValue, ASTList, ASTMap, ASTMethod, ASTNotIn, ASTProject, ASTProperty, ASTSelect, ASTSelectFirst, ASTSelectLast, ASTSequence, ASTStaticField, ASTStaticMethod, ASTVarRef, ExpressionNode

public abstract class SimpleNode
extends java.lang.Object
implements Node, java.io.Serializable


Field Summary
protected  Node[] children
           
private  java.lang.Object constantValue
           
private  boolean constantValueCalculated
           
private  boolean hasConstantValue
           
protected  int id
           
protected  Node parent
           
protected  OgnlParser parser
           
 
Constructor Summary
SimpleNode(int i)
           
SimpleNode(OgnlParser p, int i)
           
 
Method Summary
 void dump(java.io.PrintWriter writer, java.lang.String prefix)
           
protected  java.lang.Object evaluateGetValueBody(OgnlContext context, java.lang.Object source)
           
protected  void evaluateSetValueBody(OgnlContext context, java.lang.Object target, java.lang.Object value)
           
protected  void flattenTree()
          This method may be called from subclasses' jjtClose methods.
private static java.lang.String getDepthString(int depth)
           
 int getIndexInParent()
           
 Node getNextSibling()
           
 java.lang.Object getValue(OgnlContext context, java.lang.Object source)
          Extracts the value from the given source object that is appropriate for this node within the given context.
protected abstract  java.lang.Object getValueBody(OgnlContext context, java.lang.Object source)
          Subclasses implement this method to do the actual work of extracting the appropriate value from the source object.
 boolean isConstant(OgnlContext context)
           
 boolean isNodeConstant(OgnlContext context)
          Returns true iff this node is constant without respect to the children.
 boolean isNodeSimpleProperty(OgnlContext context)
           
 boolean isSimpleNavigationChain(OgnlContext context)
           
 boolean isSimpleProperty(OgnlContext 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 setValue(OgnlContext context, java.lang.Object target, java.lang.Object value)
          Sets the given value in the given target as appropriate for this node within the given context.
protected  void setValueBody(OgnlContext context, java.lang.Object target, java.lang.Object value)
          Subclasses implement this method to do the actual work of setting the appropriate value in the target object.
 java.lang.String toString()
          Convert this Object to a human-readable String.
 java.lang.String toString(java.lang.String prefix)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

parent

protected Node parent

children

protected Node[] children

id

protected int id

parser

protected OgnlParser parser

constantValueCalculated

private boolean constantValueCalculated

hasConstantValue

private boolean hasConstantValue

constantValue

private java.lang.Object constantValue
Constructor Detail

SimpleNode

public SimpleNode(int i)

SimpleNode

public SimpleNode(OgnlParser p,
                  int i)
Method Detail

jjtOpen

public void jjtOpen()
Description copied from interface: Node
This method is called after the node has been made the current node. It indicates that child nodes can now be added to it.

Specified by:
jjtOpen in interface Node

jjtClose

public void jjtClose()
Description copied from interface: Node
This method is called after all the child nodes have been added.

Specified by:
jjtClose in interface Node

jjtSetParent

public void jjtSetParent(Node n)
Description copied from interface: Node
This pair of methods are used to inform the node of its parent.

Specified by:
jjtSetParent in interface Node

jjtGetParent

public Node jjtGetParent()
Specified by:
jjtGetParent in interface Node

jjtAddChild

public void jjtAddChild(Node n,
                        int i)
Description copied from interface: Node
This method tells the node to add its argument to the node's list of children.

Specified by:
jjtAddChild in interface Node

jjtGetChild

public Node jjtGetChild(int i)
Description copied from interface: Node
This method returns a child node. The children are numbered from zero, left to right.

Specified by:
jjtGetChild in interface Node

jjtGetNumChildren

public int jjtGetNumChildren()
Description copied from interface: Node
Return the number of children the node has.

Specified by:
jjtGetNumChildren in interface Node

toString

public java.lang.String toString()
Description copied from class: java.lang.Object
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() 55 and such.

It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).


toString

public java.lang.String toString(java.lang.String prefix)

dump

public void dump(java.io.PrintWriter writer,
                 java.lang.String prefix)

getIndexInParent

public int getIndexInParent()

getNextSibling

public Node getNextSibling()

getDepthString

private static java.lang.String getDepthString(int depth)

evaluateGetValueBody

protected java.lang.Object evaluateGetValueBody(OgnlContext context,
                                                java.lang.Object source)
                                         throws OgnlException

evaluateSetValueBody

protected void evaluateSetValueBody(OgnlContext context,
                                    java.lang.Object target,
                                    java.lang.Object value)
                             throws OgnlException

getValue

public final java.lang.Object getValue(OgnlContext context,
                                       java.lang.Object source)
                                throws OgnlException
Description copied from interface: Node
Extracts the value from the given source object that is appropriate for this node within the given context.

Specified by:
getValue in interface Node

getValueBody

protected abstract java.lang.Object getValueBody(OgnlContext context,
                                                 java.lang.Object source)
                                          throws OgnlException
Subclasses implement this method to do the actual work of extracting the appropriate value from the source object.


setValue

public final void setValue(OgnlContext context,
                           java.lang.Object target,
                           java.lang.Object value)
                    throws OgnlException
Description copied from interface: Node
Sets the given value in the given target as appropriate for this node within the given context.

Specified by:
setValue in interface Node

setValueBody

protected void setValueBody(OgnlContext context,
                            java.lang.Object target,
                            java.lang.Object value)
                     throws OgnlException
Subclasses implement this method to do the actual work of setting the appropriate value in the target object. The default implementation throws an InappropriateExpressionException, meaning that it cannot be a set expression.


isNodeConstant

public boolean isNodeConstant(OgnlContext context)
                       throws OgnlException
Returns true iff this node is constant without respect to the children.


isConstant

public boolean isConstant(OgnlContext context)
                   throws OgnlException

isNodeSimpleProperty

public boolean isNodeSimpleProperty(OgnlContext context)
                             throws OgnlException

isSimpleProperty

public boolean isSimpleProperty(OgnlContext context)
                         throws OgnlException

isSimpleNavigationChain

public boolean isSimpleNavigationChain(OgnlContext context)
                                throws OgnlException

flattenTree

protected void flattenTree()
This method may be called from subclasses' jjtClose methods. It flattens the tree under this node by eliminating any children that are of the same class as this node and copying their children to this node.