Class JESTContext

  • All Implemented Interfaces:
    JPAServletContext

    public class JESTContext
    extends java.lang.Object
    implements JPAServletContext
    An operational context combines a persistence context and a HTTP execution context expressed as a request and response.
    This context parses the HTTP request URL to identity the command and then executes it.
    Author:
    Pinaki Poddar
    • Constructor Detail

      • JESTContext

        public JESTContext​(java.lang.String unit,
                           OpenJPAEntityManagerFactory emf,
                           javax.servlet.http.HttpServletRequest request,
                           javax.servlet.http.HttpServletResponse response)
    • Method Detail

      • getRequest

        public javax.servlet.http.HttpServletRequest getRequest()
        Gets the request.
        Specified by:
        getRequest in interface JPAServletContext
      • getResponse

        public javax.servlet.http.HttpServletResponse getResponse()
        Gets the response.
        Specified by:
        getResponse in interface JPAServletContext
      • execute

        public void execute()
                     throws java.lang.Exception
        Executes the request.
        Execution starts with parsing the request path. The first path segment is interpreted as action key, and if a action with the given key is registered then the control is delegated to the command. The command parses the entire request for requisite qualifiers and arguments and if the parse is successful then the command is executed in this context.
        If path is null, or no command is registered for the action or the command can not parse the request, then a last ditch attempt is made to find a resource. This fallback lookup is important because the response can contain hyperlinks to stylesheets or scripts. The browser will resolve such hyperlinks relative to the original response.
        For example, let the original request URL be:
        http://host:port/demo/jest/find?type=Actor&Robert
        The response to this request is a HTML page that contained a hyperlink to jest.css stylesheet in its <head> section.
        <link ref="jest.css" .....>
        The browser will resolve the hyperlink by sending back another request as
        http://host:port/demo/jest/find/jest.css
        Throws:
        java.lang.Exception
      • getAction

        public static java.lang.String getAction​(java.lang.String path)
        Gets the action from the given path.
        Parameters:
        path - a string
        Returns:
        if null, returns context root i.e. '/' character. Otherwise, if the path starts with context root, then returns the substring before the next '/' character or end of the string, whichever is earlier. If the path does not start with context root, returns the substring before the first '/' character or end of the string, whichever is earlier.
      • resolve

        public ClassMetaData resolve​(java.lang.String alias)
        Description copied from interface: JPAServletContext
        Resolve the given alias to meta-data of the persistent type.
        Specified by:
        resolve in interface JPAServletContext
        Parameters:
        alias - a moniker for the Java type. It can be fully qualified type name or entity name or simple name of the actual persistent Java class.
        Returns:
        meta-data for the given name.
      • log

        public void log​(short level,
                        java.lang.String message)
        Description copied from interface: JPAServletContext
        Logging message.
        Specified by:
        log in interface JPAServletContext
        Parameters:
        level - OpenJPA defined log levels. Invalid levels will print the message on console.
        message - a printable message.