org.apache.openjpa.persistence.jest
Interface JESTCommand

All Known Implementing Classes:
AbstractCommand, DomainCommand, FindCommand, PropertiesCommand, QueryCommand

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
static class JESTCommand.Format
          Supported format monikers.
 
Method Summary
 String getArgument(String key)
          Get the value of this command's argument of the given name.
 Map<String,String> getArguments()
          Get this command's arguments.
 JPAServletContext getExecutionContext()
          Get the execution context of this command.
 String getQualifier(String key)
          Get the value of this command's qualifier of the given name.
 Map<String,String> getQualifiers()
          Get this command's qualifiers.
 boolean hasArgument(String key)
          Affirm this command contains an argument of the given name.
 boolean hasQualifier(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,
                    IOException
Process the given request and write the output on to the given response in the given context.

Throws:
ProcessingException
IOException

getArguments

Map<String,String> getArguments()
Get this command's arguments.

Throws:
IllegalStateException - if accessed prior to parsing.

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.

getQualifiers

Map<String,String> getQualifiers()
Get this command's qualifiers.

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.


Copyright © 2006-2012 Apache Software Foundation. All Rights Reserved.