Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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)` {@inheritDoc}
`void` | `jjtClose()` Store the first child as `root`.
`Object` | `value(JexlContext jc)` {@inheritDoc}

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)

  {@inheritDoc}
  Overrides:
    `jjtAccept` in class `SimpleNode`
  Following copied from class: `org.apache.commons.jexl.parser.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

  {@inheritDoc}
  Overrides:
    `value` in class `SimpleNode`
  Following copied from class: `org.apache.commons.jexl.parser.SimpleNode`
  Parameters:
    `context` - 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`.
  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()`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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