Class LookupCommand
- Direct Known Subclasses:
DispatchLookupCommand, PathInfoMapper, RequestParameterMapper, ServletPathMapper
Look up a specified 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: 532951 $ $Date: 2007-04-27 04:59:00 +0100 (Fri, 27 Apr 2007) $
- Author:
- Craig R. McClanahan
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate CatalogFactoryprivate Stringprivate booleanprivate booleanprivate Stringprivate Stringprivate booleanFields inherited from interface Command
CONTINUE_PROCESSING, PROCESSING_COMPLETE -
Constructor Summary
ConstructorsConstructorDescriptionCreate an instance, setting itscatalogFactoryproperty to the value ofCatalogFactory.getInstance().LookupCommand(CatalogFactory factory) Create an instance and initialize thecatalogFactoryproperty to givenfactory/ -
Method Summary
Modifier and TypeMethodDescriptionbooleanLook up the specified command, and (if found) execute it.protected CataloggetCatalog(Context context) Return theCatalogFactoryfrom which lookups will be performed.protected CommandgetCommand(Context context) Return theCommandinstance to be delegated to.protected StringgetCommandName(Context context) Return the name of theCommandinstance to be delegated to.getName()Return the name of theCommandthat we will look up and delegate execution to.Return the context attribute key under which theCommandname is stored.booleanReturntrueif this command should ignore the return value from executing the looked-up command.booleanReturntrueif this command is a Filter and should ignore the return value from executing the looked-up Filter'spostprocess()method.booleanReturntrueif locating the specified command is optional.booleanpostprocess(Context context, Exception exception) voidsetCatalogFactory(CatalogFactory catalogFactory) Set theCatalogFactoryfrom which lookups will be performed.voidsetCatalogName(String catalogName) voidsetIgnoreExecuteResult(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.voidsetIgnorePostprocessResult(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.voidSet the name of theCommandthat we will look up and delegate execution to.voidsetNameKey(String nameKey) Set the context attribute key under which theCommandname is stored.voidsetOptional(boolean optional) Set the optional flag for finding the specified command.
-
Field Details
-
catalogFactory
-
catalogName
-
name
-
nameKey
-
optional
private boolean optional -
ignoreExecuteResult
private boolean ignoreExecuteResult -
ignorePostprocessResult
private boolean ignorePostprocessResult
-
-
Constructor Details
-
LookupCommand
public LookupCommand()Create an instance, setting itscatalogFactoryproperty to the value ofCatalogFactory.getInstance().- Since:
- Chain 1.1
-
LookupCommand
Create an instance and initialize thecatalogFactoryproperty to givenfactory/- Parameters:
factory- The Catalog Factory.- Since:
- Chain 1.1
-
-
Method Details
-
setCatalogFactory
Set the
CatalogFactoryfrom which lookups will be performed.- Parameters:
catalogFactory- The Catalog Factory.- Since:
- Chain 1.1
-
getCatalogFactory
Return theCatalogFactoryfrom which lookups will be performed.- Returns:
- The Catalog factory.
- Since:
- Chain 1.1
-
getCatalogName
-
setCatalogName
-
getName
-
setName
-
getNameKey
-
setNameKey
-
isOptional
public boolean isOptional()Return
trueif locating the specified command is optional.- Returns:
trueif the Command is optional.
-
setOptional
public void setOptional(boolean optional) Set the optional flag for finding the specified command.
- Parameters:
optional- The new optional flag
-
isIgnoreExecuteResult
public boolean isIgnoreExecuteResult()Return
trueif 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:
trueif result of the looked up Command should be ignored.- Since:
- Chain 1.1
-
setIgnoreExecuteResult
public 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.
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-trueif result of the looked up Command should be ignored.- Since:
- Chain 1.1
-
isIgnorePostprocessResult
public boolean isIgnorePostprocessResult()Return
trueif this command is a Filter and should ignore the return value from executing the looked-up Filter'spostprocess()method. Defaults tofalse, which means that the return result of executing this lookup will be whatever is returned from that Filter.- Returns:
trueif result of the looked up Filter'spostprocess()method should be ignored.- Since:
- Chain 1.1
-
setIgnorePostprocessResult
public 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's
postprocess()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-trueif 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. Unless
ignoreExecuteResultis set totrue, return the result of executing the found command. If no command is found, returnfalse, unless theoptionalproperty isfalse, in which case anIllegalArgumentExceptionwill be thrown.- Specified by:
executein interfaceCommand- Parameters:
context- The context for this request- Returns:
- the result of executing the looked-up command, or
falseif no command is found or if the command is found but theignoreExecuteResultproperty of this instance istrue - Throws:
IllegalArgumentException- if no suchCommandcan be found and theoptionalproperty is set tofalseException- if and error occurs in the looked-up Command.
-
postprocess
- Specified by:
postprocessin interfaceFilter- Parameters:
context- The context for this requestexception- AnyExceptionthrown by command execution- Returns:
- the result of executing the
postprocessmethod of the looked-up command, unlessignorePostprocessResultistrue. If no command is found, returnfalse, unless theoptionalproperty isfalse, in which caseIllegalArgumentExceptionwill be thrown.
-
getCatalog
-
getCommand
-
getCommandName
-