com.ibm.websphere.command
Class TargetableCommandImpl
- java.lang.Object
com.ibm.websphere.command.TargetableCommandImpl
All implemented interfaces:
Command, TargetableCommand, java.io.Serializable
Direct known subclasses:
- public abstract class TargetableCommandImpl
- extends java.lang.Object
- implements TargetableCommand
All targetable commands extend the TargetableCommandImpl class.
See Also:
Field Summary
Modifier and Type | Field and Description |
---|---|
|
commandTarget
The target object for the command.
|
|
commandTargetName
The name of the target object for the command.
|
|
hasOutputProperties
Indicates if the command has output properties.
|
|
LOCAL
A target object that executes a command within the client's JVM.
|
|
targetPolicy
The target policy used by the command to determine the
target associated with the command.
|
Fields inherited from interface com.ibm.websphere.command.Command |
---|
serialVersionUID |
Constructor Summary
Constructor and Description |
---|
TargetableCommandImpl()
|
Method Summary
Modifier and Type | Method and Description |
---|---|
|
execute()
Executes the task encapsulated by the command.
|
getCommandTarget()
Returns the target object for the command.
|
|
|
getCommandTargetName()
Returns the name of the target object for the command.
|
|
getTargetPolicy()
Returns the target policy for the command.
|
|
hasOutputProperties()
Indicates if the command has any output properties that will
have to be returned to the client.
|
|
isReadyToCallExecute()
Indicates if all required input properties have been set.
|
|
performExecute()
Runs the business logic that makes up the command.
|
|
reset()
Sets the output properties to the values they had before the
the execute method was run.
|
|
setCommandTarget(CommandTarget commandTarget)
Sets the target object on the command.
|
|
setCommandTargetName(java.lang.String commandTargetName)
Sets the name of the target object on the command.
|
|
setHasOutputProperties(boolean inProp)
Sets the hasOutputProperties class variable to indicate if
the command has output properties that must be returned to the client.
|
|
setOutputProperties(TargetableCommand fromCommand)
Sets the return values on the command.
|
|
setTargetPolicy(TargetPolicy targetPolicy)
Sets the target policy for the command.
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail
LOCAL
- public static java.lang.String LOCAL
targetPolicy
- protected static TargetPolicy targetPolicy
The target policy used by the command to determine the
target associated with the command. The default value is an
instance of the TargetPolicyDefault class.
This is static so that it is easy to obtain.
commandTarget
- protected transient CommandTarget commandTarget
The target object for the command.
commandTargetName
- protected java.lang.String commandTargetName
The name of the target object for the command. The name
is a fully qualified name for a Java class, for example,
mypkg.bp.MyBusinessCmdTarget.
hasOutputProperties
- protected boolean hasOutputProperties
Indicates if the command has output properties. Defaults to
true
. Can be set to false
to eliminate
unecessary copying and remote invocations.
Constructor Detail
TargetableCommandImpl
- public TargetableCommandImpl()
Method Detail
execute
- public void execute()
- throws CommandException
Executes the task encapsulated by the command. This is the
default implementation for the execute() method in the Command
interface, but it can be overridden by the application programmer.
This implementation of the execute() method does the following:
- Throws an UnsetInputPropertiesException if the isReadyToCallExecute
method returns
false
for the command. - Gets the target for the command according to the target policy.
- Invokes the executeCommand() method on the target, which in turn calls the performExecute() method on the command.
- Copies output values by using the setOutputProperties() method
if the hasOutputProperties() method returns
true
and if the returned command is not the same instance as this command.
Throws:
CommandException
- The superclass for all command exceptions.
Specificially, UnsetInputPropertiesException
is thrown if this command's
isReadyToCallExecute() method returns
false
. getCommandTarget
- public CommandTarget getCommandTarget( )
Returns the target object for the command. This implements the
getCommandTarget() method declared in the TargetableCommand interface.
Specified by:
getCommandTarget
in interface TargetableCommand
Returns:
The target object, which locates the server where the
command will run.
getCommandTargetName
- public java.lang.String getCommandTargetName( )
Returns the name of the target object for the command. This implements
the getCommandTargetName() method declared in the TargetableCommand
interface.
Specified by:
getCommandTargetName
in interface TargetableCommand
Returns:
The fully qualified name of the Java class of the target object.
getTargetPolicy
- public static TargetPolicy getTargetPolicy( )
Returns the target policy for the command.
hasOutputProperties
- public final boolean hasOutputProperties( )
Indicates if the command has any output properties that will
have to be returned to the client. This implements the
hasOutputProperties() method in the TargetableCommand interface.
Specified by:
hasOutputProperties
in interface TargetableCommand
Returns:
The value
true
if the command has output
properties that must be copied back to the client. isReadyToCallExecute
- public abstract boolean isReadyToCallExecute( )
Indicates if all required input properties have been set. This
abstract method is declared in the Command interface and must be
implemented by the application programmer.
A typical implementation simply checks whether the required input properties are set:
return (inputProperties != null)
Specified by:
isReadyToCallExecute
in interface Command
Returns:
The value
true
if all required input properties
are set and the command can be run. performExecute
- public abstract void performExecute( )
- throws java.lang.Exception
Runs the business logic that makes up the command. This abstract
method is declared in the TargetableCommand interface and must be
implemented by the application programmer. It is called by the
executeCommand() method on the command target.
Specified by:
performExecute
in interface TargetableCommand
Throws:
java.lang.Exception
- Any exception that occurs in this method is
thrown as an Exception or CommandException. reset
- public abstract void reset()
Sets the output properties to the values they had before the
the execute method was run. This abstract method is declared in
the Command interface and must be implemented by the application
programmer.
A typical implementation just resets the output property variables:
outputPropertyP = null; outputPropertyQ = 0;
setCommandTarget
- public void setCommandTarget(CommandTarget commandTarget)
Sets the target object on the command. This implements the
setCommandTarget() method declared in the TargetableCommand interface.
Specified by:
setCommandTarget
in interface TargetableCommand
Parameters:
commandTarget
- The target object, which locates the server where
the command will run. setCommandTargetName
- public void setCommandTargetName( java.lang.String commandTargetName)
Sets the name of the target object on the command. This implements the
setCommandTargetName() method declared in the TargetableCommand
interface.
Specified by:
setCommandTargetName
in interface TargetableCommand
Parameters:
commandTargetName
- The fully qualified name of the Java class
of the target object. setHasOutputProperties
- public final void setHasOutputProperties( boolean inProp)
Sets the hasOutputProperties class variable to indicate if
the command has output properties that must be returned to the client.
Parameters:
inProp
- A boolean indicating if there are output properties
to be returned to the client. setOutputProperties
- public void setOutputProperties( TargetableCommand fromCommand)
Sets the return values on the command. This is the default
implementation for the setOutputProperties() method in the
TargetableCommand interface, but it can be overridden by the
application programmer.
This implementation uses introspection to copy all instance variables, provided that they are non-private and non-package; that is, must be public or protected. This implementation does not copy the final, static or transient fields.
If this implementation is not acceptable, the programmer can override this method. A typical re-implementation does the following:
this.outputPropertyA = fromCommand.outputPropertyA; this.outputPropertyB = fromCommand.outputPropertyB;
Specified by:
setOutputProperties
in interface TargetableCommand
Parameters:
fromCommand
- The command from which the output properties are
copied. setTargetPolicy
- public static void setTargetPolicy( TargetPolicy targetPolicy)
Sets the target policy for the command.
Parameters:
targetPolicy
- The target policy for the command.
This is static so that it is easy to obtain.