Class Foreach
- java.lang.Object
-
- org.apache.velocity.runtime.directive.Directive
-
- org.apache.velocity.runtime.directive.Foreach
-
- All Implemented Interfaces:
java.lang.Cloneable,DirectiveConstants
public class Foreach extends Directive
Foreach directive used for moving through arrays, or objects that provide an Iterator.- Version:
- $Id: Foreach.java 945927 2010-05-18 22:21:41Z nbubna $
- Author:
- Jason van Zyl, Geir Magnusson Jr., Daniel Rall
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classForeach.NullHolderContextA special context to use when the foreach iterator returns a null.
-
Constructor Summary
Constructors Constructor Description Foreach()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidclean(InternalContextAdapter context, java.lang.Object o, java.lang.Object savedCounter, java.lang.Object nextFlag)java.lang.StringgetName()Return name of this directive.intgetType()Return type of this directive.voidinit(RuntimeServices rs, InternalContextAdapter context, Node node)simple init - init the tree and get the elementKey from the ASTprotected voidput(InternalContextAdapter context, java.lang.String key, java.lang.Object value)Extension hook to allow subclasses to control whether loop vars are set locally or not.booleanrender(InternalContextAdapter context, java.io.Writer writer, Node node)renders the #foreach() block-
Methods inherited from class org.apache.velocity.runtime.directive.Directive
getColumn, getLine, getScopeName, getTemplateName, isScopeProvided, makeScope, postRender, preRender, setLocation, setLocation
-
-
-
-
Field Detail
-
uberInfo
protected Info uberInfo
immutable, so create in init
-
-
Method Detail
-
getName
public java.lang.String getName()
Return name of this directive.
-
getType
public int getType()
Return type of this directive.
-
init
public void init(RuntimeServices rs, InternalContextAdapter context, Node node) throws TemplateInitException
simple init - init the tree and get the elementKey from the AST- Overrides:
initin classDirective- Parameters:
rs-context-node-- Throws:
TemplateInitException
-
put
protected void put(InternalContextAdapter context, java.lang.String key, java.lang.Object value)
Extension hook to allow subclasses to control whether loop vars are set locally or not. So, those in favor of VELOCITY-285, can make that happen easily by overriding this and having it use context.localPut(k,v). See VELOCITY-630 for more on this.
-
render
public boolean render(InternalContextAdapter context, java.io.Writer writer, Node node) throws java.io.IOException, MethodInvocationException, ResourceNotFoundException, ParseErrorException
renders the #foreach() block- Specified by:
renderin classDirective- Parameters:
context-writer-node-- Returns:
- True if the directive rendered successfully.
- Throws:
java.io.IOExceptionMethodInvocationExceptionResourceNotFoundExceptionParseErrorException
-
clean
protected void clean(InternalContextAdapter context, java.lang.Object o, java.lang.Object savedCounter, java.lang.Object nextFlag)
-
-