Class Macro
java.lang.Object
org.apache.velocity.runtime.directive.Directive
org.apache.velocity.runtime.directive.Macro
- All Implemented Interfaces:
Cloneable,DirectiveConstants
Macro implements the macro definition directive of VTL.
example :
#macro( isnull $i )
#if( $i )
$i
#end
#end
This object is used at parse time to mainly process and register the
macro. It is used inline in the parser when processing a directive.
- Version:
- $Id: Macro.java 746438 2009-02-21 05:41:24Z nbubna $
- Author:
- Geir Magnusson Jr., Henning P. Schmiedehausen
-
Field Summary
Fields inherited from interface org.apache.velocity.runtime.directive.DirectiveConstants
BLOCK, LINE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidcheckArgs(RuntimeServices rs, Token t, Node node, String sourceTemplate) Used by Parser.java to do further parameter checking for macro arguments.getName()Return name of this directive.intgetType()Return type of this directive.voidinit(RuntimeServices rs, InternalContextAdapter context, Node node) How this directive is to be initialized.booleanSince this class does no processing of content, there is never a need for an internal scope.static final StringBuffermacroToString(StringBuffer buf, String[] argArray) For debugging purposes.booleanrender(InternalContextAdapter context, Writer writer, Node node) render() doesn't do anything in the final output rendering.Methods inherited from class org.apache.velocity.runtime.directive.Directive
getColumn, getLine, getScopeName, getTemplateName, makeScope, postRender, preRender, setLocation, setLocation
-
Constructor Details
-
Macro
public Macro()
-
-
Method Details
-
getName
Return name of this directive. -
getType
public int getType()Return type of this directive. -
isScopeProvided
public boolean isScopeProvided()Since this class does no processing of content, there is never a need for an internal scope.- Overrides:
isScopeProvidedin classDirective- Returns:
- true if there will be a scope control injected into the context when rendering this directive.
-
render
render() doesn't do anything in the final output rendering. There is no output from a #macro() directive.- Specified by:
renderin classDirective- Parameters:
context-writer-node-- Returns:
- True if the directive rendered successfully.
- Throws:
IOException
-
init
public void init(RuntimeServices rs, InternalContextAdapter context, Node node) throws TemplateInitException Description copied from class:DirectiveHow this directive is to be initialized. -
checkArgs
public static void checkArgs(RuntimeServices rs, Token t, Node node, String sourceTemplate) throws IOException, ParseException Used by Parser.java to do further parameter checking for macro arguments.- Throws:
IOExceptionParseException
-
macroToString
For debugging purposes. Formats the arguments fromargArrayand appends them tobuf.- Parameters:
buf- A StringBuffer. If null, a new StringBuffer is allocated.argArray- The Macro arguments to format- Returns:
- A StringBuffer containing the formatted arguments. If a StringBuffer has passed in as buf, this method returns it.
- Since:
- 1.5
-