Class LookupCommand<C extends Context>
- Type Parameters:
C
- Type of the context associated with this command
- Direct Known Subclasses:
DispatchLookupCommand
,PathInfoMapper
,PathInfoMapper
,RequestParameterMapper
,RequestParameterMapper
,ServletPathMapper
,ServletPathMapper
Command
(which could also be a
Chain
)
in a Catalog
, and delegate execution to it. If the delegated-to
Command
is also a Filter
, its postprocess()
method will also be invoked at the appropriate time.
The name of the Command
can be specified either directly (via
the name
property) or indirectly (via the nameKey
property). Exactly one of these must be set.
If the optional
property is set to true
,
failure to find the specified command in the specified catalog will be
silently ignored. Otherwise, a lookup failure will trigger an
IllegalArgumentException
.
- Version:
- $Revision$ $Date$
- Author:
- Craig R. McClanahan
-
Field Summary
Fields inherited from interface org.apache.commons.chain.Command
CONTINUE_PROCESSING, PROCESSING_COMPLETE
-
Constructor Summary
ConstructorDescriptionCreate an instance, setting itscatalogFactory
property to the value ofCatalogFactory.getInstance()
.LookupCommand
(CatalogFactory<C> factory) Create an instance and initialize thecatalogFactory
property to givenfactory
. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Look up the specified command, and (if found) execute it.getCatalog
(C context) Return theCatalogFactory
from which lookups will be performed.getCommand
(C context) Return theCommand
instance to be delegated to.protected String
getCommandName
(C context) Return the name of theCommand
instance to be delegated to.getName()
Return the name of theCommand
that we will look up and delegate execution to.Return the context attribute key under which theCommand
name is stored.boolean
Returntrue
if this command should ignore the return value from executing the looked-up command.boolean
Returntrue
if this command is a Filter and should ignore the return value from executing the looked-up Filter'spostprocess()
method.boolean
Returntrue
if locating the specified command is optional.boolean
postprocess
(C context, Exception exception) void
setCatalogFactory
(CatalogFactory<C> catalogFactory) Set theCatalogFactory
from which lookups will be performed.void
setCatalogName
(String catalogName) void
setIgnoreExecuteResult
(boolean ignoreReturn) Set the rules for whether or not this class will ignore or pass through the value returned from executing the looked up command.void
setIgnorePostprocessResult
(boolean ignorePostprocessResult) Set the rules for whether or not this class will ignore or pass through the value returned from executing the looked up Filter'spostprocess()
method.void
Set the name of theCommand
that we will look up and delegate execution to.void
setNameKey
(String nameKey) Set the context attribute key under which theCommand
name is stored.void
setOptional
(boolean optional) Set the optional flag for finding the specified command.
-
Constructor Details
-
LookupCommand
public LookupCommand()Create an instance, setting itscatalogFactory
property to the value ofCatalogFactory.getInstance()
.- Since:
- Chain 1.1
-
LookupCommand
Create an instance and initialize thecatalogFactory
property to givenfactory
.- Parameters:
factory
- The Catalog Factory.- Since:
- Chain 1.1
-
-
Method Details
-
setCatalogFactory
Set theCatalogFactory
from which lookups will be performed.- Parameters:
catalogFactory
- The Catalog Factory.- Since:
- Chain 1.1
-
getCatalogFactory
Return theCatalogFactory
from which lookups will be performed.- Returns:
- The Catalog factory.
- Since:
- Chain 1.1
-
getCatalogName
- Returns:
- The Catalog name.
-
setCatalogName
- Parameters:
catalogName
- The newCatalog
name ornull
-
getName
Return the name of theCommand
that we will look up and delegate execution to.- Returns:
- The name of the Command.
-
setName
Set the name of theCommand
that we will look up and delegate execution to.- Parameters:
name
- The new command name
-
getNameKey
Return the context attribute key under which theCommand
name is stored.- Returns:
- The context key of the Command.
-
setNameKey
Set the context attribute key under which theCommand
name is stored.- Parameters:
nameKey
- The new context attribute key
-
isOptional
Returntrue
if locating the specified command is optional.- Returns:
true
if the Command is optional.
-
setOptional
Set the optional flag for finding the specified command.- Parameters:
optional
- The new optional flag
-
isIgnoreExecuteResult
Returntrue
if this command should ignore the return value from executing the looked-up command. Defaults tofalse
, which means that the return result of executing this lookup will be whatever is returned from that command.- Returns:
true
if result of the looked up Command should be ignored.- Since:
- Chain 1.1
-
setIgnoreExecuteResult
Set the rules for whether or not this class will ignore or pass through the value returned from executing the looked up command.If you are looking up a chain which may be "aborted" and you do not want this class to stop chain processing, then this value should be set to
true
.- Parameters:
ignoreReturn
-true
if result of the looked up Command should be ignored.- Since:
- Chain 1.1
-
isIgnorePostprocessResult
Returntrue
if this command is a Filter and should ignore the return value from executing the looked-up Filter'spostprocess()
method.Defaults to
false
, which means that the return result of executing this lookup will be whatever is returned from that Filter.- Returns:
true
if result of the looked up Filter'spostprocess()
method should be ignored.- Since:
- Chain 1.1
-
setIgnorePostprocessResult
Set the rules for whether or not this class will ignore or pass through the value returned from executing the looked up Filter'spostprocess()
method.If you are looking up a Filter which may be "aborted" and you do not want this class to stop chain processing, then this value should be set to
true
.- Parameters:
ignorePostprocessResult
-true
if result of the looked up Filter'spostprocess()
method should be ignored.- Since:
- Chain 1.1
-
execute
Look up the specified command, and (if found) execute it. UnlessignoreExecuteResult
is set totrue
, return the result of executing the found command. If no command is found, returnfalse
, unless theoptional
property isfalse
, in which case anIllegalArgumentException
will be thrown.- Specified by:
execute
in interfaceCommand<C extends Context>
- Parameters:
context
- The context for this request- Returns:
- the result of executing the looked-up command, or
false
if no command is found or if the command is found but theignoreExecuteResult
property of this instance istrue
- Throws:
IllegalArgumentException
- if no suchCommand
can be found and theoptional
property is set tofalse
Exception
- if and error occurs in the looked-up Command.
-
postprocess
- Specified by:
postprocess
in interfaceFilter<C extends Context>
- Parameters:
context
- The context for this requestexception
- AnyException
thrown by command execution- Returns:
- the result of executing the
postprocess
method of the looked-up command, unlessignorePostprocessResult
istrue
. If no command is found, returnfalse
, unless theoptional
property isfalse
, in which caseIllegalArgumentException
will be thrown.
-
getCatalog
- Parameters:
context
-Context
for this request- Returns:
- The catalog.
- Throws:
IllegalArgumentException
- if noCatalog
can be found- Since:
- Chain 1.2
-
getCommand
Return theCommand
instance to be delegated to.- Parameters:
context
-Context
for this request- Returns:
- The looked-up Command.
- Throws:
IllegalArgumentException
- if no suchCommand
can be found and theoptional
property is set tofalse
-
getCommandName
Return the name of theCommand
instance to be delegated to.
-