net.sourceforge.pmd.lang.vm.directive
Class BlockMacro

java.lang.Object
  extended by net.sourceforge.pmd.lang.vm.directive.Directive
      extended by net.sourceforge.pmd.lang.vm.directive.Block
          extended by 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

Field Summary
 
Fields inherited from class net.sourceforge.pmd.lang.vm.directive.Block
key
 
Fields inherited from class net.sourceforge.pmd.lang.vm.directive.Directive
BLOCK, LINE
 
Constructor Summary
BlockMacro(String name)
           
 
Method Summary
 String getName()
          Return the name of this directive.
 String getScopeName()
          Override to use the macro name, since it is within an #@myMacro() ...
 
Methods inherited from class net.sourceforge.pmd.lang.vm.directive.Block
getType
 
Methods inherited from class net.sourceforge.pmd.lang.vm.directive.Directive
getColumn, getLine, getTemplateName, isScopeProvided, setLocation, setLocation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BlockMacro

public BlockMacro(String name)
Method Detail

getName

public String getName()
Description copied from class: Directive
Return the name of this directive.

Specified by:
getName in class Directive
Returns:
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:
getScopeName in class Directive


Copyright © 2002–2015 InfoEther. All rights reserved.