Interface JESTCommand

  • All Known Implementing Classes:
    PropertiesCommand

    public interface JESTCommand
    Interface for JEST commands. A JEST command denotes a JPA operation such as find, query or domain. Besides signifying a JPA operation, a command may have zero or more qualifiers and arguments.
    A qualifier qualifies the action to be performed. For example, a query command may be qualified to return a single instance as its result, or limit its result to first 20 instances etc.
    An argument is an argument to the target JPA method. For example, find command has arguments for the type of the instance and the primary key. A query command has the query string as its argument.

    A concrete command instance is an outcome of parsing a request. The path segments are parsed for qualifiers. The query string is parsed for the arguments.

    A JEST command often attaches special semantics to a standard URI syntax. For example, all JEST URI enforces that the first segment of a servlet path denotes the command moniker e.g. the URI
    http://www.jpa.com/jest/find/plan=myPlan?type=Person&1234
    with context root http://www.jpa.com/jest has the servlet path /find/plan=myPlan and query string type=Person&1234.
    The first path segment find will determine that the command is to find a persistent entity of type Person and primary key 1234 using a fetch plan named myPlan.

    Author:
    Pinaki Poddar
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static class  JESTCommand.Format
      Supported format monikers.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.lang.String getArgument​(java.lang.String key)
      Get the value of this command's argument of the given name.
      java.util.Map<java.lang.String,​java.lang.String> getArguments()
      Get this command's arguments.
      JPAServletContext getExecutionContext()
      Get the execution context of this command.
      java.lang.String getQualifier​(java.lang.String key)
      Get the value of this command's qualifier of the given name.
      java.util.Map<java.lang.String,​java.lang.String> getQualifiers()
      Get this command's qualifiers.
      boolean hasArgument​(java.lang.String key)
      Affirm this command contains an argument of the given name.
      boolean hasQualifier​(java.lang.String key)
      Affirm this command contains an qualifier of the given name.
      void parse()
      Parse the given request to populate qualifiers and parameters of this command.
      void process()
      Process the given request and write the output on to the given response in the given context.
    • Method Detail

      • getExecutionContext

        JPAServletContext getExecutionContext()
        Get the execution context of this command.
        Returns:
        the execution context. never null.
      • parse

        void parse()
            throws ProcessingException
        Parse the given request to populate qualifiers and parameters of this command. A command can interpret and consume certain path segments or parameters of the original request. During processing phase, the parameters and qualifiers are accessed from the parsed command itself rather than from the original HTTP request.
        Throws:
        ProcessingException
      • process

        void process()
              throws ProcessingException,
                     java.io.IOException
        Process the given request and write the output on to the given response in the given context.
        Throws:
        ProcessingException
        java.io.IOException
      • getArguments

        java.util.Map<java.lang.String,​java.lang.String> getArguments()
        Get this command's arguments.
        Throws:
        java.lang.IllegalStateException - if accessed prior to parsing.
      • getArgument

        java.lang.String getArgument​(java.lang.String key)
        Get the value of this command's argument of the given name.
        Returns:
        null if the argument does not exist.
        Throws:
        java.lang.IllegalStateException - if accessed prior to parsing.
      • hasArgument

        boolean hasArgument​(java.lang.String key)
        Affirm this command contains an argument of the given name.
        Throws:
        java.lang.IllegalStateException - if accessed prior to parsing.
      • getQualifiers

        java.util.Map<java.lang.String,​java.lang.String> getQualifiers()
        Get this command's qualifiers.
        Throws:
        java.lang.IllegalStateException - if accessed prior to parsing.
      • getQualifier

        java.lang.String getQualifier​(java.lang.String key)
        Get the value of this command's qualifier of the given name.
        Returns:
        null if the qualifier does not exist.
        Throws:
        java.lang.IllegalStateException - if accessed prior to parsing.
      • hasQualifier

        boolean hasQualifier​(java.lang.String key)
        Affirm this command contains an qualifier of the given name.
        Throws:
        java.lang.IllegalStateException - if accessed prior to parsing.