Class VelocimacroProxy

  • All Implemented Interfaces:
    java.lang.Cloneable, DirectiveConstants

    public class VelocimacroProxy
    extends Directive
    VelocimacroProxy.java a proxy Directive-derived object to fit with the current directive system
    Version:
    $Id: VelocimacroProxy.java 898032 2010-01-11 19:51:03Z nbubna $
    • Field Detail

      • macroName

        private java.lang.String macroName
      • argArray

        private java.lang.String[] argArray
      • literalArgArray

        private java.lang.String[] literalArgArray
      • numMacroArgs

        private int numMacroArgs
      • strictArguments

        private boolean strictArguments
      • localContextScope

        private boolean localContextScope
      • maxCallDepth

        private int maxCallDepth
      • bodyReference

        private java.lang.String bodyReference
    • Constructor Detail

      • VelocimacroProxy

        public VelocimacroProxy()
    • Method Detail

      • getName

        public java.lang.String getName()
        Return name of this Velocimacro.
        Specified by:
        getName in class Directive
        Returns:
        The name of this Velocimacro.
      • getType

        public int getType()
        Velocimacros are always LINE type directives.
        Specified by:
        getType in class Directive
        Returns:
        The type of this directive.
      • setName

        public void setName​(java.lang.String name)
        sets the directive name of this VM
        Parameters:
        name -
      • setArgArray

        public void setArgArray​(java.lang.String[] arr)
        sets the array of arguments specified in the macro definition
        Parameters:
        arr -
      • setNodeTree

        public void setNodeTree​(SimpleNode tree)
        Parameters:
        tree -
      • getNumArgs

        public int getNumArgs()
        returns the number of ars needed for this VM
        Returns:
        The number of ars needed for this VM
      • init

        public void init​(RuntimeServices rs)
        Initialize members of VelocimacroProxy. called from MacroEntry
      • buildErrorMsg

        private java.lang.String buildErrorMsg​(Node node,
                                               int numArgsProvided)
        Build an error message for not providing the correct number of arguments
      • checkArgs

        public void checkArgs​(InternalContextAdapter context,
                              Node node,
                              boolean hasBody)
        check if we are calling this macro with the right number of arguments. If we are not, and strictArguments is active, then throw TemplateInitException. This method is called during macro render, so it must be thread safe.