Class PebbleTemplateImpl

java.lang.Object
io.pebbletemplates.pebble.template.PebbleTemplateImpl
All Implemented Interfaces:
PebbleTemplate

public class PebbleTemplateImpl extends Object implements PebbleTemplate
The actual implementation of a PebbleTemplate
  • Constructor Details

    • PebbleTemplateImpl

      public PebbleTemplateImpl(PebbleEngine engine, RenderableNode root, String name)
      Constructor
      Parameters:
      engine - The pebble engine used to construct this template
      root - The root not to evaluate
      name - The name of the template
  • Method Details

    • evaluate

      public void evaluate(Writer writer) throws IOException
      Description copied from interface: PebbleTemplate
      Evaluate the template without any provided variables. This will use the default locale provided by the PebbleEngine.
      Specified by:
      evaluate in interface PebbleTemplate
      Parameters:
      writer - The results of the evaluation are written to this writer.
      Throws:
      IOException - An IO exception during the evaluation
    • evaluate

      public void evaluate(Writer writer, Locale locale) throws IOException
      Description copied from interface: PebbleTemplate
      Evaluate the template with a particular locale but without any provided variables.
      Specified by:
      evaluate in interface PebbleTemplate
      Parameters:
      writer - The results of the evaluation are written to this writer.
      locale - The locale used during the evaluation of the template.
      Throws:
      IOException - An IO exception during the evaluation
    • evaluate

      public void evaluate(Writer writer, Map<String,Object> map) throws IOException
      Description copied from interface: PebbleTemplate
      Evaluate the template with a set of variables and the default locale provided by the PebbleEngine
      Specified by:
      evaluate in interface PebbleTemplate
      Parameters:
      writer - The results of the evaluation are written to this writer.
      map - The variables used during the evaluation of the template.
      Throws:
      IOException - An IO exception during the evaluation
    • evaluate

      public void evaluate(Writer writer, Map<String,Object> map, Locale locale) throws IOException
      Description copied from interface: PebbleTemplate
      Evaluate the template with a particular locale and a set of variables.
      Specified by:
      evaluate in interface PebbleTemplate
      Parameters:
      writer - The results of the evaluation are written to this writer.
      map - The variables used during the evaluation of the template.
      locale - The locale used during the evaluation of the template.
      Throws:
      IOException - An IO exception during the evaluation
    • evaluateBlock

      public void evaluateBlock(String blockName, Writer writer) throws IOException
      Description copied from interface: PebbleTemplate
      Evaluate the template but only render the contents of a specific block.
      Specified by:
      evaluateBlock in interface PebbleTemplate
      Parameters:
      blockName - The name of the template block to return.
      writer - The results of the evaluation are written to this writer.
      Throws:
      IOException - An IO exception during the evaluation
    • evaluateBlock

      public void evaluateBlock(String blockName, Writer writer, Locale locale) throws IOException
      Description copied from interface: PebbleTemplate
      Evaluate the template but only render the contents of a specific block.
      Specified by:
      evaluateBlock in interface PebbleTemplate
      Parameters:
      blockName - The name of the template block to return.
      writer - The results of the evaluation are written to this writer.
      locale - The locale used during the evaluation of the template.
      Throws:
      IOException - An IO exception during the evaluation
    • evaluateBlock

      public void evaluateBlock(String blockName, Writer writer, Map<String,Object> map) throws IOException
      Description copied from interface: PebbleTemplate
      Evaluate the template but only render the contents of a specific block.
      Specified by:
      evaluateBlock in interface PebbleTemplate
      Parameters:
      blockName - The name of the template block to return.
      writer - The results of the evaluation are written to this writer.
      map - The variables used during the evaluation of the template.
      Throws:
      IOException - An IO exception during the evaluation
    • evaluateBlock

      public void evaluateBlock(String blockName, Writer writer, Map<String,Object> map, Locale locale) throws IOException
      Description copied from interface: PebbleTemplate
      Evaluate the template but only render the contents of a specific block.
      Specified by:
      evaluateBlock in interface PebbleTemplate
      Parameters:
      blockName - The name of the template block to return.
      writer - The results of the evaluation are written to this writer.
      map - The variables used during the evaluation of the template.
      locale - The locale used during the evaluation of the template.
      Throws:
      IOException - An IO exception during the evaluation
    • importTemplate

      public void importTemplate(EvaluationContextImpl context, String name)
      Imports a template.
      Parameters:
      context - The evaluation context
      name - The template name
    • importNamedTemplate

      public void importNamedTemplate(EvaluationContextImpl context, String name, String alias)
      Imports a named template.
      Parameters:
      context - The evaluation context
      name - The template name
      alias - The template alias
    • importNamedMacrosFromTemplate

      public void importNamedMacrosFromTemplate(String name, List<Pair<String,String>> namedMacros)
      Imports named macros from specified template.
      Parameters:
      name - The template name
      namedMacros - named macros
    • getNamedImportedTemplate

      public PebbleTemplateImpl getNamedImportedTemplate(EvaluationContextImpl context, String alias)
      Returns a named template.
      Parameters:
      context - The evaluation context
      alias - The template alias
    • includeTemplate

      public void includeTemplate(Writer writer, EvaluationContextImpl context, String name, Map<?,?> additionalVariables) throws IOException
      Includes a template with name into this template.
      Parameters:
      writer - the writer to which the output should be written to.
      context - the context within which the template is rendered in.
      name - the name of the template to include.
      additionalVariables - the map with additional variables provided with the include tag to add within the include tag.
      Throws:
      IOException - Any error during the loading of the template
    • embedTemplate

      public void embedTemplate(int lineNo, Writer writer, EvaluationContextImpl context, String name, Map<?,?> additionalVariables, List<BlockNode> overriddenBlocks) throws IOException
      Embed a template with name into this template and override its child blocks. This has the effect of essentially "including" a template (as with the `include` tag), but its blocks may be overridden in the calling template similar to extending a template.
      Parameters:
      lineNo - the line number of the node being evaluated
      writer - the writer to which the output should be written to.
      context - the context within which the template is rendered in.
      name - the name of the template to include.
      additionalVariables - the map with additional variables provided with the include tag to add within the embed tag.
      overriddenBlocks - the blocks parsed out of the parent template that should override blocks in the embedded template
      Throws:
      IOException - Any error during the loading of the template
    • hasMacro

      public boolean hasMacro(String macroName)
      Checks if a macro exists
      Parameters:
      macroName - The name of the macro
      Returns:
      Whether or not the macro exists
    • hasBlock

      public boolean hasBlock(String blockName)
      Checks if a block exists
      Parameters:
      blockName - The name of the block
      Returns:
      Whether or not the block exists
    • resolveRelativePath

      public String resolveRelativePath(String relativePath)
      This method resolves the given relative path based on this template file path.
      Parameters:
      relativePath - the path which should be resolved.
      Returns:
      the resolved path.
    • registerBlock

      public void registerBlock(Block block)
      Registers a block.
      Parameters:
      block - The block
    • registerMacro

      public void registerMacro(Macro macro)
      Registers a macro
      Parameters:
      macro - The macro
    • registerMacro

      public void registerMacro(String alias, Macro macro)
      Registers a macro with alias
      Parameters:
      macro - The macro
      Throws:
      PebbleException - Throws exception if macro already exists with the same name
    • block

      public void block(Writer writer, EvaluationContextImpl context, String blockName, boolean ignoreOverriden) throws IOException
      A typical block declaration will use this method which evaluates the block using the regular user-provided writer.
      Parameters:
      blockName - The name of the block
      context - The evaluation context
      ignoreOverriden - Whether or not to ignore overriden blocks
      writer - The writer
      Throws:
      IOException - Thrown from the writer object
    • macro

      public SafeString macro(EvaluationContextImpl context, String macroName, ArgumentsNode args, boolean ignoreOverriden, int lineNumber)
      Invokes a macro
      Parameters:
      context - The evaluation context
      macroName - The name of the macro
      args - The arguments
      ignoreOverriden - Whether or not to ignore macro definitions in child template
      Returns:
      The results of the macro invocation
    • setParent

      public void setParent(EvaluationContextImpl context, String parentName)
    • getName

      public String getName()
      Returns the template name
      Specified by:
      getName in interface PebbleTemplate
      Returns:
      The name of the template