Class VelocimacroFactory


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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean addVelocimacro​(java.lang.String name, Node macroBody, java.util.List<Macro.MacroArg> macroArgs, Template definingTemplate)
      Adds a macro to the factory.
      Directive getVelocimacro​(java.lang.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
      void initVelocimacro()
      initialize the factory - setup all permissions load all global libraries.
      boolean isVelocimacro​(java.lang.String vm, Template template)
      Tells the world if a given directive string is a Velocimacro
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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​(java.lang.String name,
                                      Node macroBody,
                                      java.util.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​(java.lang.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​(java.lang.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.