Class Parse
java.lang.Object
org.apache.velocity.runtime.directive.Directive
org.apache.velocity.runtime.directive.InputBase
org.apache.velocity.runtime.directive.Parse
- All Implemented Interfaces:
Cloneable
,DirectiveConstants
Pluggable directive that handles the
#parse()
statement in VTL.
Notes: ----- 1) The parsed source material can only come from somewhere in the TemplateRoot tree for security reasons. There is no way around this. If you want to include content from elsewhere on your disk, use a link from somwhere under Template Root to that content. 2) There is a limited parse depth. It is set as a property "directive.parse.max.depth = 10" by default. This 10 deep limit is a safety feature to prevent infinite loops.
- Version:
- $Id: Parse.java 928253 2010-03-27 19:39:04Z nbubna $
- Author:
- Geir Magnusson Jr., Jason van Zyl, Christoph Reck
-
Field Summary
Fields inherited from interface org.apache.velocity.runtime.directive.DirectiveConstants
BLOCK, LINE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetName()
Return name of this directive.Overrides the default to use "template", so that all templates can use the same scope reference, whether rendered via #parse or direct merge.int
getType()
Return type of this directive.void
init
(RuntimeServices rs, InternalContextAdapter context, Node node) Init's the #parse directive.boolean
render
(InternalContextAdapter context, Writer writer, Node node) iterates through the argument list and renders every argument that is appropriate.Methods inherited from class org.apache.velocity.runtime.directive.InputBase
getInputEncoding
Methods inherited from class org.apache.velocity.runtime.directive.Directive
getColumn, getLine, getTemplateName, isScopeProvided, makeScope, postRender, preRender, setLocation, setLocation
-
Constructor Details
-
Parse
public Parse()
-
-
Method Details
-
getName
Return name of this directive. -
getScopeName
Overrides the default to use "template", so that all templates can use the same scope reference, whether rendered via #parse or direct merge.- Overrides:
getScopeName
in classDirective
-
getType
public int getType()Return type of this directive. -
init
public void init(RuntimeServices rs, InternalContextAdapter context, Node node) throws TemplateInitException Init's the #parse directive.- Overrides:
init
in classDirective
- Parameters:
rs
-context
-node
-- Throws:
TemplateInitException
-
render
public boolean render(InternalContextAdapter context, Writer writer, Node node) throws IOException, ResourceNotFoundException, ParseErrorException, MethodInvocationException iterates through the argument list and renders every argument that is appropriate. Any non appropriate arguments are logged, but render() continues.- Specified by:
render
in classDirective
- Parameters:
context
-writer
-node
-- Returns:
- True if the directive rendered successfully.
- Throws:
IOException
ResourceNotFoundException
ParseErrorException
MethodInvocationException
-