Class ASTReference
- java.lang.Object
-
- org.apache.velocity.runtime.parser.node.SimpleNode
-
- 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
Fields Modifier and Type Field Description booleanstrictEscapeIndicates if we are using modified escape behavior in strict mode.booleanstrictRefIndicates if we are running in strict reference mode.booleantoStringNullCheckIndicates if toString() should be called during condition evaluation just to ensure it does not return null.protected InfouberInfo
-
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 booleanevaluate(InternalContextAdapter context)Computes boolean value of this reference Returns the actual value of reference return type boolean, and 'true' if value is not nulljava.lang.Objectexecute(java.lang.Object o, InternalContextAdapter context)gets an Object that 'is' the value of the referencejava.lang.StringgetDollarBang()java.lang.StringgetRootString()Returns the 'root string', the reference keyjava.lang.ObjectgetVariableValue(Context context, java.lang.String variable)java.lang.Objectinit(InternalContextAdapter context, java.lang.Object data)java.lang.ObjectjjtAccept(ParserVisitor visitor, java.lang.Object data)static java.lang.StringprintClass(java.lang.Class clazz)Utility class to handle nulls when printing a class typebooleanrender(InternalContextAdapter context, java.io.Writer writer)gets the value of the reference and outputs it to the writer.booleansetValue(InternalContextAdapter context, java.lang.Object value)Sets the value of a complex reference (something like $foo.bar) Currently used by ASTSetReference()java.lang.Objectvalue(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
-
-
-
-
-
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 java.lang.Object jjtAccept(ParserVisitor visitor, java.lang.Object data)
- Specified by:
jjtAcceptin interfaceNode- Overrides:
jjtAcceptin classSimpleNode- Returns:
- The Node execution result object.
- See Also:
SimpleNode.jjtAccept(org.apache.velocity.runtime.parser.node.ParserVisitor, java.lang.Object)
-
init
public java.lang.Object init(InternalContextAdapter context, java.lang.Object data) throws TemplateInitException
- Specified by:
initin interfaceNode- Overrides:
initin classSimpleNode- Returns:
- The init result.
- Throws:
TemplateInitException- See Also:
SimpleNode.init(org.apache.velocity.context.InternalContextAdapter, java.lang.Object)
-
getRootString
public java.lang.String getRootString()
Returns the 'root string', the reference key- Returns:
- the root string.
-
execute
public java.lang.Object execute(java.lang.Object o, InternalContextAdapter context) throws MethodInvocationExceptiongets an Object that 'is' the value of the reference- Specified by:
executein interfaceNode- Overrides:
executein classSimpleNode- Parameters:
o- unused Object parametercontext- 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, java.io.Writer writer) throws java.io.IOException, MethodInvocationException
gets the value of the reference and outputs it to the writer.- Specified by:
renderin interfaceNode- Specified by:
renderin interfaceRenderable- Overrides:
renderin classSimpleNode- Parameters:
context- context of data to use in getting valuewriter- writer to render to- Returns:
- True if rendering was successful.
- Throws:
java.io.IOExceptionMethodInvocationException- 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:
evaluatein interfaceNode- Overrides:
evaluatein 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 java.lang.Object value(InternalContextAdapter context) throws MethodInvocationException
- Specified by:
valuein interfaceNode- Overrides:
valuein classSimpleNode- Returns:
- The node value.
- Throws:
MethodInvocationException- See Also:
SimpleNode.value(org.apache.velocity.context.InternalContextAdapter)
-
printClass
public static java.lang.String printClass(java.lang.Class clazz)
Utility class to handle nulls when printing a class type
-
setValue
public boolean setValue(InternalContextAdapter context, java.lang.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
-
getVariableValue
public java.lang.Object getVariableValue(Context context, java.lang.String variable) throws MethodInvocationException
- Parameters:
context-variable-- Returns:
- The evaluated value of the variable.
- Throws:
MethodInvocationException
-
getDollarBang
public java.lang.String getDollarBang()
-
-