org.apache.commons.jexl.parser
Class ASTReference

java.lang.Object
  |
  +--org.apache.commons.jexl.parser.SimpleNode
        |
        +--org.apache.commons.jexl.parser.ASTReference
All Implemented Interfaces:
Node

public class ASTReference
extends SimpleNode

reference - any variable expression.

Version:
$Id: ASTReference.java 398272 2006-04-30 03:14:01Z dion $

Field Summary
protected  SimpleNode root
          first variable in the expression.
 
Fields inherited from class org.apache.commons.jexl.parser.SimpleNode
children, id, parent, parser
 
Constructor Summary
ASTReference(int id)
          Create the node given an id.
ASTReference(Parser p, int id)
          Create a node with the given parser and id.
 
Method Summary
 Object execute(Object obj, JexlContext jc)
          evaluate each piece of the reference.
 String getRootString()
          Gets the variable name of root.
 Object jjtAccept(ParserVisitor visitor, Object data)
          Accept the visitor.
 void jjtClose()
          Store the first child as root.
 Object value(JexlContext jc)
          Gets the value of this node.
 
Methods inherited from class org.apache.commons.jexl.parser.SimpleNode
childrenAccept, dump, interpret, jjtAddChild, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtOpen, jjtSetParent, setValue, toString, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

root

protected SimpleNode root
first variable in the expression.

Constructor Detail

ASTReference

public ASTReference(int id)
Create the node given an id.

Parameters:
id - node id.

ASTReference

public ASTReference(Parser p,
                    int id)
Create a node with the given parser and id.

Parameters:
p - a parser.
id - node id.
Method Detail

jjtAccept

public Object jjtAccept(ParserVisitor visitor,
                        Object data)
Accept the visitor.

Specified by:
jjtAccept in interface Node
Overrides:
jjtAccept in class SimpleNode
Parameters:
visitor - a ParserVisitor.
data - data to be passed along to the visitor.
Returns:
the value from visiting.
See Also:
ParserVisitor.visit(org.apache.commons.jexl.parser.SimpleNode, java.lang.Object)

value

public Object value(JexlContext jc)
             throws Exception
Gets the value of this node.

Overrides:
value in class SimpleNode
Parameters:
jc - the context to retrieve values from.
Returns:
the value of the node.
Throws:
Exception - when evaluating the operands fails.

jjtClose

public void jjtClose()
Store the first child as root.

Specified by:
jjtClose in interface Node
Overrides:
jjtClose in class SimpleNode

execute

public Object execute(Object obj,
                      JexlContext jc)
               throws Exception
evaluate each piece of the reference. e.g. foo.bar.woogie[2].name, foo is our 'root', and we need to evaluate 'bar.woogie[2].name' relative to foo.

Overrides:
execute in class SimpleNode
Parameters:
jc - the JexlContext to evaluate against.
obj - not used. root.value(jc) is used instead.
Returns:
the value of the array expression.
Throws:
Exception - on any error

getRootString

public String getRootString()
                     throws Exception
Gets the variable name of root.

Returns:
the identifier.
Throws:
Exception - on any error
See Also:
ASTIdentifier.getIdentifierString(), ASTArrayAccess.getIdentifierString()


Copyright © 2003-2006 The Apache Software Foundation. All Rights Reserved.