Interface TemplateProcessor<T>

Type Parameters:
T - the type of the template object.
All Known Implementing Classes:
AbstractTemplateProcessor

@Contract @ConstrainedTo(SERVER) public interface TemplateProcessor<T>
A view processor.

Implementations of this interface shall be capable of resolving a template name (+ media type) to a template reference that identifies a template supported by the implementation. And, processing the template, identified by template reference and media type, the results of which are written to an output stream.

Implementations can register a view processor as a provider, for example, annotating the implementation class with Provider or registering an implementing class or instance as a singleton with ResourceConfig or Application.

Such view processors could be JSP view processors (supported by the Jersey servlet and filter implementations) or say Freemarker or Velocity view processors (not implemented).

Author:
Paul Sandoz, Michal Gajdos
  • Method Details

    • resolve

      T resolve(String name, MediaType mediaType)
      Resolve a template name to a template reference.
      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.
    • writeTo

      void writeTo(T templateReference, Viewable viewable, MediaType mediaType, MultivaluedMap<String,Object> httpHeaders, OutputStream out) throws IOException
      Process a template and write the result to an output stream.
      Parameters:
      templateReference - the template reference. This is obtained by calling the resolve(String, jakarta.ws.rs.core.MediaType) method with a template name and media type.
      viewable - the viewable that contains the model to be passed to the template.
      mediaType - media type the templateReference should be transformed into.
      httpHeaders - http headers that will be send in the response. Headers can be modified to influence response headers before the the first byte is written to the out. After the response buffer is committed the headers modification has no effect. Template processor can for example set the content type of the response.
      out - the output stream to write the result of processing the template.
      Throws:
      IOException - if there was an error processing the template.
      Since:
      2.7