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 final Map<String,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(Map<String,URL> cache)`
Creates a new caching template resolver.

## Method Summary

Modifier and Type
Method
Description
`void`
`configure(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.
`URL`
`resolveTemplate(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 Map<String,URL> cache

### useCache

protected boolean useCache

## Constructor Details

### CachingTemplateResolver

public CachingTemplateResolver(Map<String,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(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 URL resolveTemplate(String templatePath) throws 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:
  `IOException`