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

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

public class ASTReference
extends SimpleNode

This class is responsible for handling the references in VTL ($foo). Please look at the Parser.jjt file which is what controls the generation of this class.

Version:
$Id: ASTReference.java 832302 2009-11-03 05:32:31Z wglass $
Author:
Jason van Zyl, Geir Magnusson Jr., Christoph Reck,
Field Summary
 boolean strictEscape
          Indicates if we are using modified escape behavior in strict mode.
 boolean strictRef
          Indicates if we are running in strict reference mode.
 boolean toStringNullCheck
          Indicates if toString() should be called during condition evaluation just to ensure it does not return null.
protected  Info uberInfo
           
 
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
ASTReference(int id)
           
ASTReference(Parser p, int id)
           
 
Method Summary
 boolean evaluate(InternalContextAdapter context)
          Computes boolean value of this reference Returns the actual value of reference return type boolean, and 'true' if value is not null
 Object execute(Object o, InternalContextAdapter context)
          gets an Object that 'is' the value of the reference
 String getDollarBang()
           
 String getRootString()
          Returns the 'root string', the reference key
 Object getVariableValue(Context context, String variable)
           
 Object init(InternalContextAdapter context, Object data)
           
 Object jjtAccept(ParserVisitor visitor, Object data)
           
static String printClass(Class clazz)
          Utility class to handle nulls when printing a class type
 boolean render(InternalContextAdapter context, Writer writer)
          gets the value of the reference and outputs it to the writer.
 boolean setValue(InternalContextAdapter context, Object value)
          Sets the value of a complex reference (something like $foo.bar) Currently used by ASTSetReference()
 Object value(InternalContextAdapter context)
           
 
Methods inherited from class org.apache.velocity.runtime.parser.node.SimpleNode
childrenAccept, dump, getColumn, getFirstToken, getInfo, getLastToken, getLine, getLocation, getRuntimeServices, getTemplateName, getType, isInvalid, jjtAddChild, jjtClose, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtOpen, jjtSetParent, literal, setFirstToken, setInfo, setInvalid, toString, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

strictRef

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


strictEscape

public boolean strictEscape
Indicates if we are using modified escape behavior in strict mode. mainly we allow \$abc -> to render as $abc


toStringNullCheck

public boolean toStringNullCheck
Indicates if toString() should be called during condition evaluation just to ensure it does not return null. Check is unnecessary if all toString() implementations are known to have non-null return values. Disabling the check will give a performance improval since toString() may be a complex operation on large objects.


uberInfo

protected Info uberInfo
Constructor Detail

ASTReference

public ASTReference(int id)
Parameters:
id -

ASTReference

public ASTReference(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
Specified by:
init in interface Node
Overrides:
init in class SimpleNode
Returns:
The init result.
Throws:
TemplateInitException
See Also:
SimpleNode.init(org.apache.velocity.context.InternalContextAdapter, java.lang.Object)

getRootString

public String getRootString()
Returns the 'root string', the reference key

Returns:
the root string.

execute

public Object execute(Object o,
                      InternalContextAdapter context)
               throws MethodInvocationException
gets an Object that 'is' the value of the reference

Specified by:
execute in interface Node
Overrides:
execute in class SimpleNode
Parameters:
o - unused Object parameter
context - context used to generate value
Returns:
The execution result.
Throws:
MethodInvocationException
See Also:
Node.execute(java.lang.Object, org.apache.velocity.context.InternalContextAdapter)

render

public boolean render(InternalContextAdapter context,
                      Writer writer)
               throws IOException,
                      MethodInvocationException
gets the value of the reference and outputs it to the writer.

Specified by:
render in interface Node
Specified by:
render in interface Renderable
Overrides:
render in class SimpleNode
Parameters:
context - context of data to use in getting value
writer - writer to render to
Returns:
True if rendering was successful.
Throws:
IOException
MethodInvocationException
See Also:
Node.render(org.apache.velocity.context.InternalContextAdapter, java.io.Writer)

evaluate

public boolean evaluate(InternalContextAdapter context)
                 throws MethodInvocationException
Computes boolean value of this reference Returns the actual value of reference return type boolean, and 'true' if value is not null

Specified by:
evaluate in interface Node
Overrides:
evaluate in class SimpleNode
Parameters:
context - context to compute value with
Returns:
True if evaluation was ok.
Throws:
MethodInvocationException
See Also:
Node.evaluate(org.apache.velocity.context.InternalContextAdapter)

value

public Object value(InternalContextAdapter context)
             throws MethodInvocationException
Specified by:
value in interface Node
Overrides:
value in class SimpleNode
Returns:
The node value.
Throws:
MethodInvocationException
See Also:
SimpleNode.value(org.apache.velocity.context.InternalContextAdapter)

printClass

public static String printClass(Class clazz)
Utility class to handle nulls when printing a class type


setValue

public boolean setValue(InternalContextAdapter context,
                        Object value)
                 throws MethodInvocationException
Sets the value of a complex reference (something like $foo.bar) Currently used by ASTSetReference()

Parameters:
context - context object containing this reference
value - Object to set as value
Returns:
true if successful, false otherwise
Throws:
MethodInvocationException
See Also:
ASTSetDirective

getVariableValue

public Object getVariableValue(Context context,
                               String variable)
                        throws MethodInvocationException
Parameters:
context -
variable -
Returns:
The evaluated value of the variable.
Throws:
MethodInvocationException

getDollarBang

public String getDollarBang()


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