# Uses of Interface
org.apache.velocity.runtime.Renderable

Packages that use Renderable
Package
Description
org.apache.velocity.runtime.directive
org.apache.velocity.runtime.parser.node

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

Classes in org.apache.velocity.runtime.directive that implement Renderable
Modifier and Type
Class
Description
`static class`
`Block.Reference`
actual class placed in the context, holds the context being used for the render, as well as the parent (which already holds everything else we need).
Methods in org.apache.velocity.runtime.directive with parameters of type Renderable
Modifier and Type
Method
Description
`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`
VelocimacroProxy.`render(InternalContextAdapter context, Writer writer, Node node, Renderable body)`
Renders the macro using the context.

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

Subinterfaces of Renderable in org.apache.velocity.runtime.parser.node
Modifier and Type
Interface
Description
`interface`
`Node`
This file describes the interface between the Velocity code and the JavaCC generated code.
Classes in org.apache.velocity.runtime.parser.node that implement Renderable
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`