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.velocity.runtime.parser.node
Class ASTIdentifier

    java.lang.Object
      |
      +--org.apache.velocity.runtime.parser.node.SimpleNode
            |
            +--org.apache.velocity.runtime.parser.node.ASTIdentifier

All Implemented Interfaces:
  Node

public class ASTIdentifier
extends SimpleNode

ASTIdentifier.java Method support for identifiers : $foo mainly used by ASTRefrence Introspection is now moved to 'just in time' or at render / execution time. There are many reasons why this has to be done, but the primary two are thread safety, to remove any context-derived information from class member variables.

Version:
  $Id: ASTIdentifier.java,v 1.16 2001/11/19 13:53:08 geirm Exp $
Author:
  Jason van Zyl, Geir Magnusson Jr.

Field Summary
`private java.lang.String` | `identifier`

Fields inherited from class org.apache.velocity.runtime.parser.node.SimpleNode
`children, first, id, info, invalid, last, parent, parser, rsvc, state`

Constructor Summary
`ASTIdentifier(int id)`
`ASTIdentifier(Parser p, int id)`

Method Summary
`private AbstractExecutor` | `doIntrospection(java.lang.Class data)` introspects the class to find the method name of the node, or if that fails, treats the reference object as a map and treats the identifier as a key in that map.
`java.lang.Object` | `execute(java.lang.Object o, InternalContextAdapter context)` invokes the method on the object passed in
`java.lang.Object` | `init(InternalContextAdapter context, java.lang.Object data)` simple init - don't do anything that is context specific.
`java.lang.Object` | `jjtAccept(ParserVisitor visitor, java.lang.Object data)` Accept the visitor.

Methods inherited from class org.apache.velocity.runtime.parser.node.SimpleNode
`childrenAccept, dump, evaluate, getColumn, getFirstToken, getInfo, getLastToken, getLine, getType, isInvalid, jjtAddChild, jjtClose, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtOpen, jjtSetParent, literal, render, setFirstToken, setInfo, setInvalid, toString, value`

Methods inherited from class java.lang.Object
`, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait`

Field Detail

### identifier

    private java.lang.String identifier

Constructor Detail

### ASTIdentifier

    public ASTIdentifier(int id)

### ASTIdentifier

    public ASTIdentifier(Parser p,
                         int id)

Method Detail

### jjtAccept

    public java.lang.Object jjtAccept(ParserVisitor visitor,
                                      java.lang.Object data)

  Accept the visitor.
  Overrides:
    `jjtAccept` in class `SimpleNode`

### init

    public java.lang.Object init(InternalContextAdapter context,
                                 java.lang.Object data)
                          throws java.lang.Exception

  simple init - don't do anything that is context specific. just get what we need from the AST, which is static.
  Overrides:
    `init` in class `SimpleNode`

### doIntrospection

    private AbstractExecutor doIntrospection(java.lang.Class data)
                                      throws java.lang.Exception

  introspects the class to find the method name of the node, or if that fails, treats the reference object as a map and treats the identifier as a key in that map. This needs work.
  Parameters:
    `data` - Class to be introspected

### execute

    public java.lang.Object execute(java.lang.Object o,
                                    InternalContextAdapter context)
                             throws MethodInvocationException

  invokes the method on the object passed in
  Overrides:
    `execute` in class `SimpleNode`

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 Apache Software Foundation. All Rights Reserved.