Class ExtensionCustomizer

java.lang.Object
io.pebbletemplates.pebble.extension.ExtensionCustomizer
All Implemented Interfaces:
Extension

public abstract class ExtensionCustomizer extends Object implements Extension
Base class that allows implementing a customizer to modify Pebbles build-in extensions. It is meant to provide a way to remove or replace functions, filters, tags, etc. to change the standard behaviour. Use-cases can be down-stripping available functionality for security reasons. Implementations of this class are meant to overwrite methods and access registered functionality before it is loaded into the PebbleEngine by calling super. The ExentsionCustomizer can be registred via PebbleEngine.Builder.registerExtensionCustomizer(java.util.function.Function<io.pebbletemplates.pebble.extension.Extension, io.pebbletemplates.pebble.extension.ExtensionCustomizer>) and is applied for every non-user-provided extension.
  • Field Details

    • delegate

      private final Extension delegate
  • Constructor Details

    • ExtensionCustomizer

      public ExtensionCustomizer(Extension delegate)
  • Method Details

    • getFilters

      public Map<String,Filter> getFilters()
      Description copied from interface: Extension
      Use this method to provide custom filters.
      Specified by:
      getFilters in interface Extension
      Returns:
      A list of filters. It is okay to return null.
    • getTests

      public Map<String,Test> getTests()
      Description copied from interface: Extension
      Use this method to provide custom tests.
      Specified by:
      getTests in interface Extension
      Returns:
      A list of tests. It is okay to return null.
    • getFunctions

      public Map<String,Function> getFunctions()
      Description copied from interface: Extension
      Use this method to provide custom functions.
      Specified by:
      getFunctions in interface Extension
      Returns:
      A list of functions. It is okay to return null.
    • getTokenParsers

      public List<TokenParser> getTokenParsers()
      Description copied from interface: Extension
      Use this method to provide custom tags. A TokenParser is used to parse a stream of tokens into Nodes which are then responsible for compiling themselves into Java.
      Specified by:
      getTokenParsers in interface Extension
      Returns:
      A list of TokenParsers. It is okay to return null.
    • getBinaryOperators

      public List<BinaryOperator> getBinaryOperators()
      Description copied from interface: Extension
      Use this method to provide custom binary operators.
      Specified by:
      getBinaryOperators in interface Extension
      Returns:
      A list of Operators. It is okay to return null;
    • getUnaryOperators

      public List<UnaryOperator> getUnaryOperators()
      Description copied from interface: Extension
      Use this method to provide custom unary operators.
      Specified by:
      getUnaryOperators in interface Extension
      Returns:
      A list of Operators. It is okay to return null;
    • getGlobalVariables

      public Map<String,Object> getGlobalVariables()
      Description copied from interface: Extension
      Use this method to provide variables available to all templates
      Specified by:
      getGlobalVariables in interface Extension
      Returns:
      Map of global variables available to all templates
    • getNodeVisitors

      public List<NodeVisitorFactory> getNodeVisitors()
      Description copied from interface: Extension
      Node visitors will travel the AST tree during the compilation phase.
      Specified by:
      getNodeVisitors in interface Extension
      Returns:
      a list of node visitors
    • getAttributeResolver

      public List<AttributeResolver> getAttributeResolver()
      Description copied from interface: Extension
      AttributeResolver will resolve instance attributes
      Specified by:
      getAttributeResolver in interface Extension
      Returns:
      a list of attribute resolver