Class ASTReference
- java.lang.Object
-
- org.apache.velocity.runtime.parser.node.SimpleNode
-
- org.apache.velocity.runtime.parser.node.ASTReference
-
- All Implemented Interfaces:
Cloneable
,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$
- Author:
- Jason van Zyl, Geir Magnusson Jr., Christoph Reck, Kent Johnson
-
-
Field Summary
Fields Modifier and Type Field Description boolean
strictEscape
Indicates if we are using modified escape behavior in strict mode.boolean
strictRef
Indicates if we are running in strict reference mode.protected Info
uberInfo
-
Constructor Summary
Constructors Constructor Description ASTReference(int id)
ASTReference(Parser p, int id)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 nullObject
execute(Object o, InternalContextAdapter context)
gets an Object that 'is' the value of the referenceString
getRootString()
Returns the 'root string', the reference keyObject
getRootVariableValue(InternalContextAdapter context)
Object
init(InternalContextAdapter context, Object data)
Object
jjtAccept(StandardParserVisitor visitor, Object data)
static String
printClass(Class<?> clazz)
Utility class to handle nulls when printing a class typeboolean
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, cleanupParserAndTokens, clone, clone, dump, dump, dump, getColumn, getFirstToken, getFirstTokenImage, getInfo, getLastToken, getLastTokenImage, getLine, getLocation, getParser, getRuntimeServices, getTemplate, getTemplateName, getType, isInvalid, jjtAddChild, jjtClose, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtOpen, jjtSetParent, literal, saveTokenImages, setFirstToken, setInfo, setInvalid, toString, toString
-
-
-
-
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
-
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(StandardParserVisitor visitor, Object data)
- Specified by:
jjtAccept
in interfaceNode
- Overrides:
jjtAccept
in classSimpleNode
- Returns:
- The Node execution result object.
- See Also:
SimpleNode.jjtAccept(org.apache.velocity.runtime.parser.node.StandardParserVisitor, java.lang.Object)
-
init
public Object init(InternalContextAdapter context, Object data) throws TemplateInitException
- Specified by:
init
in interfaceNode
- Overrides:
init
in classSimpleNode
- 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 interfaceNode
- Overrides:
execute
in classSimpleNode
- Parameters:
o
- Object parameter, unused per se, but non-null by convention inside an #if/#elseif evaluationcontext
- 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 interfaceNode
- Specified by:
render
in interfaceRenderable
- Overrides:
render
in classSimpleNode
- Parameters:
context
- context of data to use in getting valuewriter
- 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 interfaceNode
- Overrides:
evaluate
in classSimpleNode
- 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 interfaceNode
- Overrides:
value
in classSimpleNode
- 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- Parameters:
clazz
-- Returns:
- class name, or the string "null"
-
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 referencevalue
- Object to set as value- Returns:
- true if successful, false otherwise
- Throws:
MethodInvocationException
- See Also:
ASTSetDirective
-
getRootVariableValue
public Object getRootVariableValue(InternalContextAdapter context)
- Parameters:
context
-- Returns:
- The evaluated value of the variable.
- Throws:
MethodInvocationException
-
-