Package groovy.text.markup

# 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`