Class MarkupTemplateEngine.CachingTemplateResolver

java.lang.Object
groovy.text.markup.MarkupTemplateEngine.DefaultTemplateResolver
groovy.text.markup.MarkupTemplateEngine.CachingTemplateResolver
All Implemented Interfaces:
TemplateResolver
Enclosing class:
MarkupTemplateEngine

public static class MarkupTemplateEngine.CachingTemplateResolver
extends MarkupTemplateEngine.DefaultTemplateResolver
A template resolver which avoids calling ClassLoader.getResource(String) if a template path already has been queried before. This improves performance if caching is enabled in the configuration.
  • Field Summary

    Fields
    Modifier and Type Field Description
    protected java.util.Map<java.lang.String,​java.net.URL> cache  
    protected boolean useCache  
  • Constructor Summary

    Constructors
    Constructor Description
    CachingTemplateResolver()
    Creates a new caching template resolver using a concurrent hash map as the backing cache.
    CachingTemplateResolver​(java.util.Map<java.lang.String,​java.net.URL> cache)
    Creates a new caching template resolver.
  • Method Summary

    Modifier and Type Method Description
    void configure​(java.lang.ClassLoader templateClassLoader, TemplateConfiguration configuration)
    This method is called once the template engine is initialized, providing the resolver with the template engine configuration and its template class loader.
    java.net.URL resolveTemplate​(java.lang.String templatePath)
    Resolvers must implement this method in order to resolve a template, given a template path.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • cache

      protected final java.util.Map<java.lang.String,​java.net.URL> cache
    • useCache

      protected boolean useCache
  • Constructor Details

    • CachingTemplateResolver

      public CachingTemplateResolver​(java.util.Map<java.lang.String,​java.net.URL> cache)
      Creates a new caching template resolver. The cache implementation being used depends on the use of the template engine. If multiple templates can be rendered in parallel, it must be using a thread-safe cache.
      Parameters:
      cache - the backing cache
    • CachingTemplateResolver

      public CachingTemplateResolver()
      Creates a new caching template resolver using a concurrent hash map as the backing cache.
  • Method Details

    • configure

      public void configure​(java.lang.ClassLoader templateClassLoader, TemplateConfiguration configuration)
      Description copied from interface: TemplateResolver
      This method is called once the template engine is initialized, providing the resolver with the template engine configuration and its template class loader.
      Specified by:
      configure in interface TemplateResolver
      Overrides:
      configure in class MarkupTemplateEngine.DefaultTemplateResolver
      Parameters:
      templateClassLoader - the classloader where templates will be searched for
      configuration - the configuration of the template engine
    • resolveTemplate

      public java.net.URL resolveTemplate​(java.lang.String templatePath) throws java.io.IOException
      Description copied from interface: TemplateResolver
      Resolvers must implement this method in order to resolve a template, given a template path. They must return a valid URL or an IOException.
      Specified by:
      resolveTemplate in interface TemplateResolver
      Overrides:
      resolveTemplate in class MarkupTemplateEngine.DefaultTemplateResolver
      Parameters:
      templatePath - path to the template
      Returns:
      the template URL, that will be used to load the template
      Throws:
      java.io.IOException