# Uses of Interface
org.apache.velocity.runtime.parser.node.Node

Packages that use Node
Package
Description
org.apache.velocity.runtime
org.apache.velocity.runtime.directive
org.apache.velocity.runtime.directive.contrib
org.apache.velocity.runtime.parser.node
org.apache.velocity.util
org.apache.velocity.util.introspection

## Uses of Node in org.apache.velocity.runtime

Methods in org.apache.velocity.runtime with parameters of type Node
Modifier and Type
Method
Description
`boolean`
RuntimeInstance.`addVelocimacro(String name, Node macro, List<Macro.MacroArg> macroArgs, Template definingTemplate)`
Adds a new Velocimacro.
`boolean`
RuntimeServices.`addVelocimacro(String name, Node macro, List<Macro.MacroArg> macroArgs, Template definingTemplate)`
Adds a new Velocimacro.
`static boolean`
RuntimeSingleton.`addVelocimacro(String name, Node macro, List<Macro.MacroArg> macroArgs, Template definingTemplate)`
Adds a new Velocimacro.
`boolean`
VelocimacroFactory.`addVelocimacro(String name, Node macroBody, List<Macro.MacroArg> macroArgs, Template definingTemplate)`
Adds a macro to the factory.
`boolean`
VelocimacroManager.`addVM(String vmName, Node macroBody, List<Macro.MacroArg> macroArgs, Template definingTemplate, boolean canReplaceGlobalMacro)`
Adds a VM definition to the cache.

## Uses of Node in org.apache.velocity.runtime.directive

Fields in org.apache.velocity.runtime.directive declared as Node
Modifier and Type
Field
Description
`protected Node`
Block.`block`
`Node`
Macro.MacroArg.`defaultVal`
If the argument was given a default value, then this contains the base of the AST tree of the value.
Methods in org.apache.velocity.runtime.directive with parameters of type Node
Modifier and Type
Method
Description
`protected void`
VelocimacroProxy.`checkArgumentCount(Node node, int callArgNum)`
Check whether the number of arguments given matches the number defined.
`protected Iterator`
Foreach.`getIterator(Object iterable, Node node)`
Retrieve the contextual iterator.
`protected Object[]`
VelocimacroProxy.`handleArgValues(InternalContextAdapter context, Node node, int callArgNum)`
Gets the macro argument values and puts them in the context under the argument names.
`void`
Block.`init(RuntimeServices rs, InternalContextAdapter context, Node node)`
simple init - get the key
`void`
BlockMacro.`init(RuntimeServices rs, String macroName, InternalContextAdapter context, Node node)`
Initializes the directive.
`void`
Break.`init(RuntimeServices rs, InternalContextAdapter context, Node node)`
`void`
Define.`init(RuntimeServices rs, InternalContextAdapter context, Node node)`
simple init - get the key
`void`
Directive.`init(RuntimeServices rs, InternalContextAdapter context, Node node)`
How this directive is to be initialized.
`void`
Evaluate.`init(RuntimeServices rs, InternalContextAdapter context, Node node)`
Initialize and check arguments.
`void`
Foreach.`init(RuntimeServices rs, InternalContextAdapter context, Node node)`
simple init - init the tree and get the elementKey from the AST
`void`
Include.`init(RuntimeServices rs, InternalContextAdapter context, Node node)`
simple init - init the tree and get the elementKey from the AST
`void`
Macro.`init(RuntimeServices rs, InternalContextAdapter context, Node node)`
`void`
Parse.`init(RuntimeServices rs, InternalContextAdapter context, Node node)`
Init's the #parse directive.
`void`
RuntimeMacro.`init(RuntimeServices rs, String name, InternalContextAdapter context, Node node)`
Initialize the Runtime macro.
`void`
Stop.`init(RuntimeServices rs, InternalContextAdapter context, Node node)`
`boolean`
BlockMacro.`render(InternalContextAdapter context, Writer writer, Node node)`
Renders content using the selected macro and the passed AST body.
`boolean`
Break.`render(InternalContextAdapter context, Writer writer, Node node)`
This directive throws a StopCommand which signals either the nearest Scope or the specified scope to stop rendering its content.
`boolean`
Define.`render(InternalContextAdapter context, Writer writer, Node node)`
directive.render() simply makes an instance of the Block inner class and places it into the context as indicated.
`abstract boolean`
Directive.`render(InternalContextAdapter context, Writer writer, Node node)`
How this directive is to be rendered
`boolean`
Evaluate.`render(InternalContextAdapter context, Writer writer, Node node)`
Evaluate the argument, convert to a String, and evaluate again (with the same context).
`boolean`
Foreach.`render(InternalContextAdapter context, Writer writer, Node node)`
renders the #foreach() block
`boolean`
Include.`render(InternalContextAdapter context, Writer writer, Node node)`
iterates through the argument list and renders every argument that is appropriate.
`boolean`
Macro.`render(InternalContextAdapter context, Writer writer, Node node)`
render() doesn't do anything in the final output rendering.
`boolean`
Parse.`render(InternalContextAdapter context, Writer writer, Node node)`
iterates through the argument list and renders every argument that is appropriate.
`boolean`
RuntimeMacro.`render(InternalContextAdapter context, Writer writer, Node node)`
Velocimacro implementation is not known at the init time.
`boolean`
RuntimeMacro.`render(InternalContextAdapter context, Writer writer, Node node, Renderable body)`
This method is used with BlockMacro when we want to render a macro with a body AST.
`boolean`
Stop.`render(InternalContextAdapter context, Writer writer, Node node)`
`boolean`
VelocimacroProxy.`render(InternalContextAdapter context, Writer writer, Node node)`
Render the macro AST node
`boolean`
VelocimacroProxy.`render(InternalContextAdapter context, Writer writer, Node node, Renderable body)`
Renders the macro using the context.
`protected void`
Foreach.`renderBlock(InternalContextAdapter context, Writer writer, Node block)`

## Uses of Node in org.apache.velocity.runtime.directive.contrib

Methods in org.apache.velocity.runtime.directive.contrib with parameters of type Node
Modifier and Type
Method
Description
`void`
For.`init(RuntimeServices rs, InternalContextAdapter context, Node node)`
`boolean`
For.`render(InternalContextAdapter context, Writer writer, Node node)`
`protected void`
For.`renderBlock(InternalContextAdapter context, Writer writer, Node node)`

## Uses of Node in org.apache.velocity.runtime.parser.node

Classes in org.apache.velocity.runtime.parser.node that implement Node
Modifier and Type
Class
Description
`class`
`ASTAddNode`
Handles number addition of nodes.
Please look at the Parser.jjt file which is what controls the generation of this class.
`class`
`ASTAndNode`
Please look at the Parser.jjt file which is what controls the generation of this class.
`class`
`ASTAssignment`
`class`
`ASTBinaryOperator`
`class`
`ASTBlock`
`class`
`ASTComment`
Represents all comments...
`class`
`ASTComparisonNode`
Numeric comparison support
`class`
`ASTDirective`
This class is responsible for handling the pluggable directives in VTL.
`class`
`ASTDirectiveAssign`
`class`
`ASTDivNode`
Handles number division of nodes
Please look at the Parser.jjt file which is what controls the generation of this class.
`class`
`ASTElseIfStatement`
This class is responsible for handling the ElseIf VTL control statement.
`class`
`ASTElseStatement`
This class is responsible for handling the Else VTL control statement.
`class`
`ASTEQNode`
Handles `arg1 == arg2` This operator requires that the LHS and RHS are both of the same Class, both numbers or both coerce-able to strings.
`class`
`ASTEscape`
This class is responsible for handling Escapes in VTL.
`class`
`ASTEscapedDirective`
This class is responsible for handling EscapedDirectives in VTL.
`class`
`ASTExpression`
`class`
`ASTFalse`
`class`
`ASTFloatingPointLiteral`
Handles floating point numbers.
`class`
`ASTGENode`
Handles arg1 >= arg2
`class`
`ASTGTNode`
Handles arg1 > arg2
`class`
`ASTIdentifier`
ASTIdentifier.java Method support for identifiers : $foo mainly used by ASTReference Introspection is now moved to 'just in time' or at render / execution time.
`class`
`ASTIfStatement`
Please look at the Parser.jjt file which is what controls the generation of this class.
`class`
`ASTIncludeStatement`
`class`
`ASTIndex`
This node is responsible for the bracket notation at the end of a reference, e.g., $foo[1]
`class`
`ASTIntegerLiteral`
Handles integer numbers.
`class`
`ASTIntegerRange`
handles the range 'operator' [ n ..
`class`
`ASTLENode`
Handles arg1 <= arg2
`class`
`ASTLogicalOperator`
`class`
`ASTLTNode`
Handles arg1 < arg2
`class`
`ASTMap`
AST Node for creating a map / dictionary.
`class`
`ASTMathNode`
Helps handle math
Please look at the Parser.jjt file which is what controls the generation of this class.
`class`
`ASTMethod`
ASTMethod.java Method support for references : $foo.method() NOTE : introspection is now done at render time.
`class`
`ASTModNode`
Handles modulus division
Please look at the Parser.jjt file which is what controls the generation of this class.
`class`
`ASTMulNode`
Handles multiplication
Please look at the Parser.jjt file which is what controls the generation of this class.
`class`
`ASTNegateNode`
`class`
`ASTNENode`
Handles `arg1 != arg2` by negating evaluation of ASTEQNode
`class`
`ASTNotNode`
`class`
`ASTObjectArray`
`class`
`ASTOrNode`
Please look at the Parser.jjt file which is what controls the generation of this class.
`class`
`ASTParameters`
`class`
`ASTprocess`
`class`
`ASTReference`
This class is responsible for handling the references in VTL ($foo).
`class`
`ASTSetDirective`
Node for the #set directive
`class`
`ASTStringLiteral`
ASTStringLiteral support.
`class`
`ASTSubtractNode`
Handles subtraction of nodes (in #set() )
Please look at the Parser.jjt file which is what controls the generation of this class.
`class`
`ASTText`
`class`
`ASTTextblock`
This node holds the "Textblock" data which should not be interpreted by Velocity.
`class`
`ASTTrue`
`class`
`ASTVariable`
`class`
`ASTWord`
`class`
`SimpleNode`
Fields in org.apache.velocity.runtime.parser.node declared as Node
Modifier and Type
Field
Description
`protected Node[]`
SimpleNode.`children`
`protected Node`
SimpleNode.`parent`
Methods in org.apache.velocity.runtime.parser.node that return Node
Modifier and Type
Method
Description
`Node`
SimpleNode.`clone(Template template)`
Root node deep cloning
`protected Node`
SimpleNode.`clone(Template template, Node parent)`
Child node deep cloning
`Node`
Node.`jjtGetChild(int i)`
This method returns a child node.
`Node`
SimpleNode.`jjtGetChild(int i)`
`Node`
Node.`jjtGetParent()`
`Node`
SimpleNode.`jjtGetParent()`
`Node`
JJTStandardParserState.`peekNode()`
`Node`
JJTStandardParserState.`popNode()`
`Node`
JJTStandardParserState.`rootNode()`
Methods in org.apache.velocity.runtime.parser.node with parameters of type Node
Modifier and Type
Method
Description
`void`
ASTStringLiteral.`adjTokenLineNums(Node node)`
Adjust all the line and column numbers that comprise a node so that they are corrected for the string literals position within the template file.
`void`
JJTStandardParserState.`clearNodeScope(Node n)`
`protected Node`
SimpleNode.`clone(Template template, Node parent)`
Child node deep cloning
`void`
JJTStandardParserState.`closeNodeScope(Node n, boolean condition)`
`void`
JJTStandardParserState.`closeNodeScope(Node n, int num)`
`void`
Node.`jjtAddChild(Node n, int i)`
This method tells the node to add its argument to the node's list of children.
`void`
SimpleNode.`jjtAddChild(Node n, int i)`
`void`
Node.`jjtSetParent(Node n)`
This pair of methods are used to inform the node of its parent.
`void`
SimpleNode.`jjtSetParent(Node n)`
`void`
JJTStandardParserState.`openNodeScope(Node n)`
`void`
JJTStandardParserState.`pushNode(Node n)`

## Uses of Node in org.apache.velocity.util

Methods in org.apache.velocity.util with parameters of type Node
Modifier and Type
Method
Description
`static String`
StringUtils.`formatFileString(Node node)`
Creates a string that formats the template filename with line number and column of the given Node.

## Uses of Node in org.apache.velocity.util.introspection

Constructors in org.apache.velocity.util.introspection with parameters of type Node
Modifier
Constructor
Description
``
`Info(Node node)`