org.glassfish.jersey.server.mvc.spi
Class AbstractTemplateProcessor<T>

java.lang.Object
  extended by org.glassfish.jersey.server.mvc.spi.AbstractTemplateProcessor<T>
All Implemented Interfaces:
TemplateProcessor<T>

public abstract class AbstractTemplateProcessor<T>
extends Object
implements TemplateProcessor<T>

Default implementation of template processor that can be used to implement support for custom templating engines. The class currently recognizes following properties:

If any of the properties are not supported by particular template processor then this fact should be mentioned in documentation of the template processor.

Author:
Michal Gajdos (michal.gajdos at oracle.com)

Constructor Summary
AbstractTemplateProcessor(javax.ws.rs.core.Configuration config, javax.servlet.ServletContext servletContext, String propertySuffix, String... supportedExtensions)
          Create an instance of the processor with injected config and (optional) servlet context.
 
Method Summary
protected  String getBasePath()
          Return base path for current template processor.
protected  javax.servlet.ServletContext getServletContext()
          Return current servlet context, if present.
protected
<F> F
getTemplateObjectFactory(org.glassfish.hk2.api.ServiceLocator serviceLocator, Class<F> type, org.glassfish.jersey.internal.util.collection.Value<F> defaultValue)
          Retrieve a template object factory.
 T resolve(String name, javax.ws.rs.core.MediaType mediaType)
          Resolve a template name to a template reference.
protected abstract  T resolve(String templatePath, Reader reader)
          Resolve given template path and/or reader to a template reference object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.glassfish.jersey.server.mvc.spi.TemplateProcessor
writeTo
 

Constructor Detail

AbstractTemplateProcessor

public AbstractTemplateProcessor(javax.ws.rs.core.Configuration config,
                                 javax.servlet.ServletContext servletContext,
                                 String propertySuffix,
                                 String... supportedExtensions)
Create an instance of the processor with injected config and (optional) servlet context.

Parameters:
config - configuration to configure this processor from.
servletContext - (optional) servlet context to obtain template resources from.
propertySuffix - suffix to distinguish properties for current template processor.
supportedExtensions - supported template file extensions.
Method Detail

getBasePath

protected String getBasePath()
Return base path for current template processor.

Returns:
base path or an empty string.

getServletContext

protected javax.servlet.ServletContext getServletContext()
Return current servlet context, if present.

Returns:
servlet context instance or null.

resolve

public T resolve(String name,
                 javax.ws.rs.core.MediaType mediaType)
Description copied from interface: TemplateProcessor
Resolve a template name to a template reference.

Specified by:
resolve in interface TemplateProcessor<T>
Parameters:
name - the template name.
mediaType - requested media type of the template.
Returns:
the template reference, otherwise null if the template name cannot be resolved.

resolve

protected abstract T resolve(String templatePath,
                             Reader reader)
                      throws Exception
Resolve given template path and/or reader to a template reference object.

Parameters:
templatePath - resolved template path (incl. base path and suffix).
reader - reader containing template character stream.
Returns:
non-null template reference object.
Throws:
Exception - if an exception occurred during resolving.

getTemplateObjectFactory

protected <F> F getTemplateObjectFactory(org.glassfish.hk2.api.ServiceLocator serviceLocator,
                                         Class<F> type,
                                         org.glassfish.jersey.internal.util.collection.Value<F> defaultValue)
Retrieve a template object factory. The factory is, at first, looked for in configuration and if not found, given default value is used.

Type Parameters:
F - type of requested template object factory.
Parameters:
serviceLocator - HK2 service locator to initialize factory if configured as class or class-name.
type - type of requested template object factory.
defaultValue - default value to be used if no factory reference is present in configuration.
Returns:
non-null template object factory.


Copyright © 2007-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.