Class Parse

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

    public class Parse
    extends InputBase
    Pluggable directive that handles the #parse() statement in VTL.
     Notes:
     -----
      1) The parsed source material can only come from somewhere in
        the TemplateRoot tree for security reasons. There is no way
        around this.  If you want to include content from elsewhere on
        your disk, use a link from somewhere under Template Root to that
        content.
    
      2) There is a limited parse depth.  It is set as a property
        "directive.parse.max_depth = 10" by default.  This 10 deep
        limit is a safety feature to prevent infinite loops.
     
    Version:
    $Id$
    • Field Detail

      • maxDepth

        private int maxDepth
      • strictRef

        public boolean strictRef
        Indicates if we are running in strict reference mode.
    • Constructor Detail

      • Parse

        public Parse()
    • Method Detail

      • getName

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

        public java.lang.String getScopeName()
        Overrides the default to use "template", so that all templates can use the same scope reference, whether rendered via #parse or direct merge.
        Overrides:
        getScopeName in class Directive
        Returns:
        the name to be used when a scope control is provided for this directive.
      • getType

        public int getType()
        Return type of this directive.
        Specified by:
        getType in class Directive
        Returns:
        The type of this directive.
      • checkArgs

        public void checkArgs​(java.util.ArrayList<java.lang.Integer> argtypes,
                              Token t,
                              java.lang.String templateName)
                       throws ParseException
        Called by the parser to validate the argument types
        Overrides:
        checkArgs in class Directive
        Parameters:
        argtypes - type, Array of argument types of each argument to the directive for example ParserTreeConstants.JJTWORD
        t - token of directive
        templateName - the name of the template this directive is referenced in.
        Throws:
        ParseException