Class EvaluationContextImpl

java.lang.Object
io.pebbletemplates.pebble.template.EvaluationContextImpl
All Implemented Interfaces:
EvaluationContext, RenderedSizeContext

public class EvaluationContextImpl extends Object implements EvaluationContext, RenderedSizeContext
An evaluation context will store all stateful data that is necessary for the evaluation of a template. Passing the entire state around will assist with thread safety.
Author:
Mitchell
  • Constructor Details

  • Method Details

    • shallowCopyWithoutInheritanceChain

      public EvaluationContextImpl shallowCopyWithoutInheritanceChain(PebbleTemplateImpl self)
      Makes an exact copy of the evaluation context EXCEPT for the inheritance chain. This is necessary for the "include" tag.
      Parameters:
      self - The template implementation
      Returns:
      A copy of the evaluation context
    • threadSafeCopy

      public EvaluationContextImpl threadSafeCopy(PebbleTemplateImpl self)
      Makes a "snapshot" of the evaluation context. The scopeChain object will be a deep copy and the imported templates will be a new list. This is used for the "parallel" tag.
      Parameters:
      self - The template implementation
      Returns:
      A copy of the evaluation context
    • getNamedImportedTemplate

      public PebbleTemplateImpl getNamedImportedTemplate(String alias)
      Returns the named imported template.
      Returns:
      the named imported template.
    • addNamedImportedTemplates

      public void addNamedImportedTemplates(String alias, PebbleTemplateImpl template)
    • isStrictVariables

      public boolean isStrictVariables()
      Returns whether or not this template is being evaluated in "strict templates" mode
      Specified by:
      isStrictVariables in interface EvaluationContext
      Returns:
      Whether or not this template is being evaluated in "strict templates" mode.
    • getLocale

      public Locale getLocale()
      Returns the locale
      Specified by:
      getLocale in interface EvaluationContext
      Returns:
      The current locale
    • getMaxRenderedSize

      public int getMaxRenderedSize()
      Returns the max rendered size.
      Specified by:
      getMaxRenderedSize in interface RenderedSizeContext
      Returns:
      The max rendered size.
    • getExtensionRegistry

      public ExtensionRegistry getExtensionRegistry()
      Returns the extension registry used to access all of the tests/filters/functions
      Returns:
      The extension registry
    • getExecutorService

      public ExecutorService getExecutorService()
      Returns the executor service if exists or null
      Returns:
      The executor service if exists, or null
    • getImportedTemplates

      public List<PebbleTemplateImpl> getImportedTemplates()
      Returns a list of imported templates.
      Returns:
      A list of imported templates.
    • getTagCache

      public PebbleCache<CacheKey,Object> getTagCache()
      Returns the cache used for the "cache" tag
      Returns:
      The cache used for the "cache" tag
    • getScopeChain

      public ScopeChain getScopeChain()
      Returns the scope chain data structure that allows variables to be added/removed from the current scope and retrieved from the nearest visible scopes.
      Returns:
      The scope chain.
    • getHierarchy

      public Hierarchy getHierarchy()
      Returns the data structure representing the entire hierarchy of the template currently being evaluated.
      Returns:
      The inheritance chain
    • getEvaluationOptions

      public EvaluationOptions getEvaluationOptions()
      Returns the evaluation options.
      Returns:
      the evaluation options
    • getVariable

      public Object getVariable(String key)
      Specified by:
      getVariable in interface EvaluationContext
    • scopedShallowWithoutInheritanceChain

      public void scopedShallowWithoutInheritanceChain(PebbleTemplateImpl template, Map<?,?> additionalVariables, Callbacks.PebbleConsumer<EvaluationContextImpl> scopedFunction) throws IOException
      Throws:
      IOException
    • addAndGet

      public int addAndGet(int delta)
      Specified by:
      addAndGet in interface RenderedSizeContext