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
    • 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
      • getArgument

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

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

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

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