org.apache.velocity.runtime.parser.node
Class ASTIdentifier

java.lang.Object
  extended by org.apache.velocity.runtime.parser.node.SimpleNode
      extended by org.apache.velocity.runtime.parser.node.ASTIdentifier
All Implemented Interfaces:
Node, Renderable

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 732250 2009-01-07 07:37:10Z byron $
Author:
Jason van Zyl, Geir Magnusson Jr.

Field Summary
protected  boolean strictRef
          Indicates if we are running in strict reference mode.
protected  Info uberInfo
          This is really immutable after the init, so keep one for this node
 
Fields inherited from class org.apache.velocity.runtime.parser.node.SimpleNode
children, first, id, info, invalid, last, log, parent, parser, rsvc, state, templateName
 
Constructor Summary
ASTIdentifier(int id)
           
ASTIdentifier(Parser p, int id)
           
 
Method Summary
 Object execute(Object o, InternalContextAdapter context)
           
 Object init(InternalContextAdapter context, Object data)
          simple init - don't do anything that is context specific.
 Object jjtAccept(ParserVisitor visitor, Object data)
           
 
Methods inherited from class org.apache.velocity.runtime.parser.node.SimpleNode
childrenAccept, dump, evaluate, getColumn, getFirstToken, getInfo, getLastToken, getLine, getLocation, getRuntimeServices, getTemplateName, getType, isInvalid, jjtAddChild, jjtClose, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtOpen, jjtSetParent, literal, render, setFirstToken, setInfo, setInvalid, toString, toString, value
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

uberInfo

protected Info uberInfo
This is really immutable after the init, so keep one for this node


strictRef

protected boolean strictRef
Indicates if we are running in strict reference mode.

Constructor Detail

ASTIdentifier

public ASTIdentifier(int id)
Parameters:
id -

ASTIdentifier

public ASTIdentifier(Parser p,
                     int id)
Parameters:
p -
id -
Method Detail

jjtAccept

public Object jjtAccept(ParserVisitor visitor,
                        Object data)
Specified by:
jjtAccept in interface Node
Overrides:
jjtAccept in class SimpleNode
Returns:
The Node execution result object.
See Also:
SimpleNode.jjtAccept(org.apache.velocity.runtime.parser.node.ParserVisitor, java.lang.Object)

init

public Object init(InternalContextAdapter context,
                   Object data)
            throws TemplateInitException
simple init - don't do anything that is context specific. just get what we need from the AST, which is static.

Specified by:
init in interface Node
Overrides:
init in class SimpleNode
Parameters:
context -
data -
Returns:
The data object.
Throws:
TemplateInitException
See Also:
Node.init(org.apache.velocity.context.InternalContextAdapter, java.lang.Object)

execute

public Object execute(Object o,
                      InternalContextAdapter context)
               throws MethodInvocationException
Specified by:
execute in interface Node
Overrides:
execute in class SimpleNode
Returns:
The execution result.
Throws:
MethodInvocationException
See Also:
SimpleNode.execute(java.lang.Object, org.apache.velocity.context.InternalContextAdapter)


Copyright © 2000-2012 The Apache Software Foundation. All Rights Reserved.