Class BlockMacro
- java.lang.Object
-
- net.sourceforge.pmd.lang.vm.directive.Directive
-
- net.sourceforge.pmd.lang.vm.directive.Block
-
- net.sourceforge.pmd.lang.vm.directive.BlockMacro
-
- All Implemented Interfaces:
Cloneable
public class BlockMacro extends Block
BlockMacro directive is used to invoke Velocity macros with normal parameters and a macro body.The macro can then refer to the passed body AST. This directive can be used as a "decorator". Body AST can contain any valid Velocity syntax. An example:
#set($foobar = "yeah!") #macro(strong $txt) <strong>$bodyContent</strong> $txt #end #@strong($foobar) <u>This text is underlined and bold</u> #end
Will print:<strong><u>This text is underlined and bold<u></strong> yeah!
bodyContent reference name is configurable (see velocity.properties).- Since:
- 1.7
- Version:
- $Id$
- Author:
- Jarkko Viinamaki
-
-
Constructor Summary
Constructors Constructor Description BlockMacro(String name)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringgetName()Return the name of this directive.StringgetScopeName()Override to use the macro name, since it is within an #@myMacro() ...-
Methods inherited from class net.sourceforge.pmd.lang.vm.directive.Directive
getColumn, getLine, getTemplateName, isScopeProvided, setLocation, setLocation
-
-
-
-
Constructor Detail
-
BlockMacro
public BlockMacro(String name)
-
-
Method Detail
-
getName
public String getName()
Description copied from class:DirectiveReturn the name of this directive.
-
getScopeName
public String getScopeName()
Override to use the macro name, since it is within an #@myMacro() ... #end block that the scope in question would be used.- Overrides:
getScopeNamein classDirective- Returns:
- the name to be used when a scope control is provided for this directive.
-
-