Class AbstractTemplateProcessor<T>
- java.lang.Object
-
- 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 oftemplate 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
-
-
Constructor Summary
Constructors Constructor Description AbstractTemplateProcessor(jakarta.ws.rs.core.Configuration config, jakarta.servlet.ServletContext servletContext, String propertySuffix, String... supportedExtensions)
Create an instance of the processor with injectedconfig
and (optional)servlet context
.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected String
getBasePath()
Return base path for current template processor.protected Charset
getEncoding()
Get the output encoding.protected jakarta.servlet.ServletContext
getServletContext()
Return current servlet context, if present.protected <F> F
getTemplateObjectFactory(Function<Class<?>,?> createInstance, Class<F> type, org.glassfish.jersey.internal.util.collection.Value<F> defaultValue)
Retrieve a template object factory.T
resolve(String name, jakarta.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.protected Charset
setContentType(jakarta.ws.rs.core.MediaType mediaType, jakarta.ws.rs.core.MultivaluedMap<String,Object> httpHeaders)
Set theHttpHeaders.CONTENT_TYPE
header to thehttpHeaders
based onmediaType
anddefault encoding
defined in this processor.-
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(jakarta.ws.rs.core.Configuration config, jakarta.servlet.ServletContext servletContext, String propertySuffix, String... supportedExtensions)
Create an instance of the processor with injectedconfig
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 jakarta.servlet.ServletContext getServletContext()
Return current servlet context, if present.- Returns:
- servlet context instance or
null
.
-
resolve
public T resolve(String name, jakarta.ws.rs.core.MediaType mediaType)
Description copied from interface:TemplateProcessor
Resolve a template name to a template reference.- Specified by:
resolve
in interfaceTemplateProcessor<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(Function<Class<?>,?> createInstance, Class<F> type, org.glassfish.jersey.internal.util.collection.Value<F> defaultValue)
Retrieve a template object factory. The factory is, at first, looked for inconfiguration
and if not found, given default value is used.- Type Parameters:
F
- type of requested template object factory.- Parameters:
createInstance
- function that delegates a creation and an initialization to injection manager.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.
-
setContentType
protected Charset setContentType(jakarta.ws.rs.core.MediaType mediaType, jakarta.ws.rs.core.MultivaluedMap<String,Object> httpHeaders)
Set theHttpHeaders.CONTENT_TYPE
header to thehttpHeaders
based onmediaType
anddefault encoding
defined in this processor. IfmediaType
defines encoding then this encoding will be used otherwise the default processor encoding is used. The chosen encoding is returned from the method.- Parameters:
mediaType
- Media type of the entity.httpHeaders
- Http headers.- Returns:
- Selected encoding.
-
getEncoding
protected Charset getEncoding()
Get the output encoding.- Returns:
- Not-
null
encoding.
-
-