Interface ObjectFormatter<T>

  • Type Parameters:
    T - the type of encoded output
    All Known Implementing Classes:
    JSONObjectFormatter, XMLFormatter

    public interface ObjectFormatter<T>
    A parameterized interface defines the protocol for converting managed persistence instances or a persistent domain model into a form suitable for transport to a language-neutral client such as an web browser.

    The interface prefers that the resultant resource as a complete representation i.e. all the references contained in the resource can be resolved within the same resource itself. As the intended recipient of this resource is a remote client, an incomplete resource will require the client to request further for any (unresolved) reference resulting in a chatty protocol.

    This interface also defines methods for writing the representation into an output stream e.g. response output stream of a HTTP Servlet.

    Implementation Note: Each concrete formatter type is registered with factory that requires the implementation to have a no-argument constructor.

    Author:
    Pinaki Poddar
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.text.SimpleDateFormat dateFormat  
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      T encode​(jakarta.persistence.metamodel.Metamodel model)
      Encode the given domain model in to a object.
      T encode​(java.util.Collection<OpenJPAStateManager> objs, jakarta.persistence.metamodel.Metamodel model)
      Encode the persistent closure of the given collection of managed instances as a resource e.g a XML or HTML document or an interactive document with JavaScript or a JSON array.
      java.lang.String getMimeType()
      Gets the mime type produced by this formatter.
      T writeOut​(jakarta.persistence.metamodel.Metamodel model, java.lang.String title, java.lang.String desc, java.lang.String uri, java.io.OutputStream out)
      Encodes the given domain model, then write it into the given output stream.
      T writeOut​(java.util.Collection<OpenJPAStateManager> objs, jakarta.persistence.metamodel.Metamodel model, java.lang.String title, java.lang.String desc, java.lang.String uri, java.io.OutputStream out)
      Encodes the persistent closure of the given collection of objects, then write it into the given output stream.
    • Field Detail

      • dateFormat

        static final java.text.SimpleDateFormat dateFormat
    • Method Detail

      • getMimeType

        java.lang.String getMimeType()
        Gets the mime type produced by this formatter.
      • encode

        T encode​(java.util.Collection<OpenJPAStateManager> objs,
                 jakarta.persistence.metamodel.Metamodel model)
        Encode the persistent closure of the given collection of managed instances as a resource e.g a XML or HTML document or an interactive document with JavaScript or a JSON array. Exact nature of the output type is the generic parameter of this interface.
        Parameters:
        objs - a collection of managed instances
        model - domain model
        Returns:
        an encoded object e.g. a XML or HTML Document or a JSON object.
      • encode

        T encode​(jakarta.persistence.metamodel.Metamodel model)
        Encode the given domain model in to a object.
        Parameters:
        model - a meta-model of managed types
        Returns:
        an encoded object e.g. a XML or HTML Document or a JSON object.
      • writeOut

        T writeOut​(java.util.Collection<OpenJPAStateManager> objs,
                   jakarta.persistence.metamodel.Metamodel model,
                   java.lang.String title,
                   java.lang.String desc,
                   java.lang.String uri,
                   java.io.OutputStream out)
            throws java.io.IOException
        Encodes the persistent closure of the given collection of objects, then write it into the given output stream.
        Parameters:
        objs - the collection of objects to be formatted.
        model - a meta-model of managed types, provided for easier introspection if necessary
        title - TODO
        desc - TODO
        uri - TODO
        writer - a text-oriented output stream
        Throws:
        java.io.IOException
      • writeOut

        T writeOut​(jakarta.persistence.metamodel.Metamodel model,
                   java.lang.String title,
                   java.lang.String desc,
                   java.lang.String uri,
                   java.io.OutputStream out)
            throws java.io.IOException
        Encodes the given domain model, then write it into the given output stream.
        Parameters:
        model - a meta-model of managed types
        writer - a text-oriented output stream
        Throws:
        java.io.IOException