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:
    CacheableCommandImpl


    public abstract class TargetableCommandImpl
    extends java.lang.Object
    implements TargetableCommand
    The TargetableCommandImpl class implements the generic methods in the TargetableCommand interface. Application programmers must implement the application-specific methods. The TargetableCommand interface provides support for the remote execution of commands, and the TargetableCommandImpl class provides a runtime for command execution.

    All targetable commands extend the TargetableCommandImpl class.

    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field and Description
      protected CommandTarget commandTarget
      The target object for the command.
      protected java.lang.String commandTargetName
      The name of the target object for the command.
      protected boolean hasOutputProperties
      Indicates if the command has output properties.
      static java.lang.String LOCAL
      A target object that executes a command within the client's JVM.
      protected static TargetPolicy targetPolicy
      The target policy used by the command to determine the target associated with the command.
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      void execute()
      Executes the task encapsulated by the command.
      CommandTarget getCommandTarget()
      Returns the target object for the command.
      java.lang.String getCommandTargetName()
      Returns the name of the target object for the command.
      static TargetPolicy getTargetPolicy()
      Returns the target policy for the command.
      boolean hasOutputProperties()
      Indicates if the command has any output properties that will have to be returned to the client.
      abstract boolean isReadyToCallExecute()
      Indicates if all required input properties have been set.
      abstract void performExecute()
      Runs the business logic that makes up the command.
      abstract void reset()
      Sets the output properties to the values they had before the the execute method was run.
      void setCommandTarget(CommandTarget commandTarget)
      Sets the target object on the command.
      void setCommandTargetName(java.lang.String commandTargetName)
      Sets the name of the target object on the command.
      void setHasOutputProperties(boolean inProp)
      Sets the hasOutputProperties class variable to indicate if the command has output properties that must be returned to the client.
      void setOutputProperties(TargetableCommand fromCommand)
      Sets the return values on the command.
      static void 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
        A target object that executes a command within the client's JVM. This implementation is provided in the LocalTarget class.

        This is static so that it is easy to obtain.

      • 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.

        Specified by:
        execute in interface 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;
         

        Specified by:
        reset in interface Command
      • 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.
IBM WebSphere Application ServerTM
Release 8.5