Class ProvidenceHttpServlet<RQ extends net.morimekta.providence.PMessage<RQ,RQF>,RQF extends net.morimekta.providence.descriptor.PField,RS extends net.morimekta.providence.PMessage<RS,RSF>,RSF extends net.morimekta.providence.descriptor.PField>

  • All Implemented Interfaces:
    java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

    public abstract class ProvidenceHttpServlet<RQ extends net.morimekta.providence.PMessage<RQ,RQF>,RQF extends net.morimekta.providence.descriptor.PField,RS extends net.morimekta.providence.PMessage<RS,RSF>,RSF extends net.morimekta.providence.descriptor.PField>
    extends javax.servlet.http.HttpServlet
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      ProvidenceHttpServlet​(net.morimekta.providence.descriptor.PMessageDescriptor<RQ,RQF> requestDescriptor)  
      ProvidenceHttpServlet​(net.morimekta.providence.descriptor.PMessageDescriptor<RQ,RQF> requestDescriptor, net.morimekta.providence.serializer.SerializerProvider serializerProvider)  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected void doPost​(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)  
      protected java.lang.Throwable getResponseException​(java.lang.Throwable e)
      Get the exception to ge handled on failed requests.
      protected abstract <T extends java.lang.Throwable>
      RS
      handle​(javax.servlet.http.HttpServletRequest httpRequest, RQ request)  
      protected int statusCodeForException​(java.lang.Throwable exception)
      With default exception handling, this can simply change the status code used for the response.
      • Methods inherited from class javax.servlet.GenericServlet

        destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, init, log, log
      • Methods inherited from class javax.servlet.http.HttpServlet

        doDelete, doGet, doHead, doOptions, doPut, doTrace, getLastModified, service, service
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ProvidenceHttpServlet

        public ProvidenceHttpServlet​(net.morimekta.providence.descriptor.PMessageDescriptor<RQ,RQF> requestDescriptor)
      • ProvidenceHttpServlet

        public ProvidenceHttpServlet​(net.morimekta.providence.descriptor.PMessageDescriptor<RQ,RQF> requestDescriptor,
                                     net.morimekta.providence.serializer.SerializerProvider serializerProvider)
    • Method Detail

      • handle

        @Nonnull
        protected abstract <T extends java.lang.Throwable> RS handle​(javax.servlet.http.HttpServletRequest httpRequest,
                                                                     RQ request)
                                                              throws T extends java.lang.Throwable
        Type Parameters:
        T - Thrown exception type.
        Parameters:
        httpRequest - The HTTP request.
        request - The parsed providence request.
        Returns:
        The response object.
        Throws:
        T - Any exception thrown.
        T extends java.lang.Throwable
      • getResponseException

        @Nonnull
        protected java.lang.Throwable getResponseException​(java.lang.Throwable e)
        Get the exception to ge handled on failed requests.
        Parameters:
        e - The exception seen.
        Returns:
        The exception to use as response base.
      • statusCodeForException

        protected int statusCodeForException​(@Nonnull
                                             java.lang.Throwable exception)
        With default exception handling, this can simply change the status code used for the response.
        Parameters:
        exception - The exception seen.
        Returns:
        The status code to be used.
      • doPost

        protected void doPost​(javax.servlet.http.HttpServletRequest req,
                              javax.servlet.http.HttpServletResponse resp)
                       throws java.io.IOException
        Overrides:
        doPost in class javax.servlet.http.HttpServlet
        Throws:
        java.io.IOException