Class VelocimacroFactory


  • public class VelocimacroFactory
    extends Object
    VelocimacroFactory.java manages the set of VMs in a running Velocity engine.
    Version:
    $Id$
    Author:
    Geir Magnusson Jr.
    • Constructor Detail

      • VelocimacroFactory

        public VelocimacroFactory​(RuntimeServices rsvc)
        C'tor for the VelociMacro factory.
        Parameters:
        rsvc - Reference to a runtime services object.
    • Method Detail

      • initVelocimacro

        public void initVelocimacro()
        initialize the factory - setup all permissions load all global libraries.
      • addVelocimacro

        public boolean addVelocimacro​(String name,
                                      Node macroBody,
                                      List<Macro.MacroArg> macroArgs,
                                      Template definingTemplate)
        Adds a macro to the factory.
        Parameters:
        name - Name of the Macro to add.
        macroBody - root node of the parsed macro AST
        macroArgs - Array of macro arguments, containing the #macro() arguments and default values. the 0th is the name.
        definingTemplate - template containing the macro definition
        Returns:
        true if Macro was registered successfully.
        Since:
        1.6
      • isVelocimacro

        public boolean isVelocimacro​(String vm,
                                     Template template)
        Tells the world if a given directive string is a Velocimacro
        Parameters:
        vm - Name of the Macro.
        template - Source template from which the macro should be loaded.
        Returns:
        True if the given name is a macro.
      • getVelocimacro

        public Directive getVelocimacro​(String vmName,
                                        Template renderingTemplate,
                                        Template sourceTemplate)
        actual factory: creates a Directive that will behave correctly wrt getting the framework to dig out the correct # of args
        Parameters:
        vmName - Name of the Macro.
        renderingTemplate - destination template
        sourceTemplate - Source template from which the macro should be loaded.
        Returns:
        A directive representing the Macro.