Interface JESTCommand
-
- All Known Implementing Classes:
PropertiesCommand
public interface JESTCommand
Interface for JEST commands. A JEST command denotes a JPA operation such asfind
,query
ordomain
. 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, aquery
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. Aquery
command has the query string as its argument.A concrete command instance is an outcome of parsing a
request
. Thepath
segments are parsed for qualifiers. Thequery 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 roothttp://www.jpa.com/jest
has the servlet path/find/plan=myPlan
and query stringtype=Person&1234
.
The first path segmentfind
will determine that the command is to find a persistent entity of typePerson
and primary key1234
using a fetch plan namedmyPlan
.- 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. Duringprocessing
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.
-
-