IBM WebSphere Application ServerTM
Release 7

com.ibm.websphere.management.cmdframework.provider
Class AbstractAdminCommand

java.lang.Object
  extended by org.eclipse.emf.common.command.AbstractCommand
      extended by com.ibm.websphere.management.cmdframework.provider.AbstractAdminCommand
All Implemented Interfaces:
AdminCommand, org.eclipse.emf.common.command.Command
Direct Known Subclasses:
AbstractCommandStep, AbstractTaskCommand, SimpleAdminCommand

public abstract class AbstractAdminCommand
extends org.eclipse.emf.common.command.AbstractCommand
implements AdminCommand

The class is the base class for any admin command implementation. Any specific admin command implementation should derive from this class and only override the methods that javadoc recommends to override.


Nested Class Summary
 class AbstractAdminCommand.CmdNotificationListener
           
 
Nested classes/interfaces inherited from class org.eclipse.emf.common.command.AbstractCommand
org.eclipse.emf.common.command.AbstractCommand.NonDirtying
 
Field Summary
static java.lang.String ASYNC_CUSTOM_TAG
           
protected  com.ibm.ws.management.cmdframework.impl.TaskCommandSession asyncCmdSession
           
protected  java.lang.Integer cmdMgrType
           
protected  com.ibm.websphere.management.cmdframework.provider.CmdNotificationHandler cnh
           
static java.lang.String DYNAMIC_CUSTOM_TAG
           
protected  java.util.HashMap<java.lang.Integer,java.util.Collection<java.lang.String>> listSetParamsTable
           
static java.lang.String PRIVATE_CUSTOM_TAG
           
 
Fields inherited from class org.eclipse.emf.common.command.AbstractCommand
description, isExecutable, isPrepared, label
 
Constructor Summary
AbstractAdminCommand(com.ibm.websphere.management.cmdframework.commanddata.CommandData inCommandData)
          Constructs an instance of admin command based on its command data
AbstractAdminCommand(com.ibm.websphere.management.cmdframework.commandmetadata.CommandMetadata metadata)
           
 
Method Summary
 void cleanupUploadedFiles()
           
protected  org.eclipse.emf.ecore.EObject createParamEObject()
          Create an EObject to store the command's parameter values.
 com.ibm.websphere.management.cmdframework.commandmetadata.ParameterMetadata createParameterMetadata(java.lang.String pmName, java.util.Hashtable featureList)
          Create a ParameterMetadata object.
abstract  void execute()
          Defines the execution logic of command.
 void execute(CommandHistory cmdHistory)
          Executes the command and puts the command data into the command history.
 java.lang.String generateScript(java.lang.String lang)
          Generates the corresponding wsadmin script for the specified scripting language.
 java.lang.Object[] getChoices(java.lang.String paramName)
          Provides a default implement for the method which always returns null.
 java.lang.Integer getCmdMgrType()
           
protected  com.ibm.websphere.management.cmdframework.commanddata.CommandData getCommandData()
           
 com.ibm.websphere.management.cmdframework.commandmetadata.CommandMetadata getCommandMetadata()
          Returns the meta data for the command.
static com.ibm.websphere.management.cmdframework.commandmetadata.CommandMetadata getCommandMetadata(java.lang.String cmdName)
           
 CommandResult getCommandResult()
          Return a more user friendly version of command result.
 com.ibm.ws.management.cmdframework.impl.TaskCommandSession getCommandSession()
          Creates and returns the unique identifier for this command instance.
protected  ConfigService getConfigService()
          Convenient method to access ConfigService component.
 Session getConfigSession()
          Returns user's config session.
 java.util.Locale getLocale()
          return the user's locale.
 java.lang.String getName()
          Returns a non-localized admin command name.
 java.lang.Object getOrigParameterValue(java.lang.String paramName)
          Gets the original parameter value for the UploadFile or DownloadFile parameter.
 java.lang.Object getParameter(java.lang.String parameterName)
          Gets the parameter value for the specified parameter.
protected  java.lang.Object getParameter(java.lang.String parameterName, int rowIndex)
           
protected  com.ibm.websphere.management.cmdframework.commandmetadata.ParameterMetadata getParameterMetadata(java.lang.String paramName)
          returns the metadata for the specified parameter.
 java.util.Collection getResult()
          Provides a default implementation for this method.
 java.lang.Object getTargetObject()
          Returns the target object of the command.
 java.lang.Object[] getTargetObjectChoices()
          Provides a default implement for the method which always returns null.
protected  com.ibm.websphere.management.cmdframework.commanddata.UserData getUserData()
          Gets the user data for the command data.
protected  com.ibm.websphere.management.cmdframework.commanddata.CommandData initCommandData()
          Construct proper type of command data instance.
protected  void initializeParameter(java.lang.String paramName, java.lang.Object value)
           
protected  void initializeParameter(java.lang.String paramName, java.lang.Object value, int rowIndex)
           
 boolean isAsyncCommand()
          Check if it is an async command, which is specified by command provider.
 boolean isDynamicStepCommand()
          Check if it is a dynamic step command, which is specified by command provider.
protected  boolean isLocalMode()
           
protected  boolean isParamReadonly(java.lang.String paramName)
           
 boolean isPrivateParameter(java.lang.String paramName)
          Check if it is a private parameter, which is specified by command provider.
protected  boolean isTable()
           
 java.util.List listAllParameterName()
          Returns all the parameter names including private one on the ParameterMetadata objects.
 java.util.List listParameterName()
          Returns parameter names that are not private on the ParameterMetadata objects.
 java.util.Collection listSetParams()
          Gets all the command parameters whose value are set.
protected  java.util.Collection listSetParams(int rowIndex)
           
 void redo()
           
 void resetCommandData(com.ibm.websphere.management.cmdframework.commanddata.CommandData cmdData)
          Resets the command data for the command.
protected  void resetCommandMetadata(com.ibm.websphere.management.cmdframework.commandmetadata.CommandMetadata newMetadata)
           
 void save(java.io.OutputStream outputStream)
          Serializes the command into the specified output stream.
 void sendNotification(CommandNotification cmdNotification)
           
 void setCmdHandler(com.ibm.websphere.management.cmdframework.provider.CmdNotificationHandler handler)
          Set the handler to handle command notifications
 void setCmdMgrType(java.lang.Integer cmdMgrType)
           
protected  void setCommandMetadata(com.ibm.websphere.management.cmdframework.commandmetadata.CommandMetadata cmdmetadata)
           
protected  void setCommandResult(CommandResult thisResult)
           
 void setCommandSession(com.ibm.ws.management.cmdframework.impl.TaskCommandSession session)
           
 void setConfigSession(Session session)
          Sets the user's config session.
protected  void setListSetParamsTable(int rowIndex, java.lang.String paramName)
           
 void setLocale(java.util.Locale locale)
          Sets the caller's locale.
 void setOrigParameterValue(java.lang.String paramName, java.lang.Object value)
          Sets the original value for the UploadFile or DownloadFile parameter.
 void setParameter(java.lang.String paramName, java.lang.Object value)
          Sets the value for the specified parameter.
protected  void setParameter(java.lang.String paramName, java.lang.Object value, int rowIndex)
           
 void setTargetObject(java.lang.Object obj)
          Sets the target object for the command.
protected  void setupListener(java.lang.Object obj)
           
 void validate()
          Providers a default implmentation for the method.
 
Methods inherited from class org.eclipse.emf.common.command.AbstractCommand
canExecute, canUndo, chain, dispose, getAffectedObjects, getDescription, getLabel, prepare, setDescription, setLabel, toString, undo
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.eclipse.emf.common.command.Command
canExecute, canUndo, chain, dispose, getAffectedObjects, getDescription, getLabel, undo
 

Field Detail

ASYNC_CUSTOM_TAG

public static final java.lang.String ASYNC_CUSTOM_TAG
See Also:
Constant Field Values

DYNAMIC_CUSTOM_TAG

public static final java.lang.String DYNAMIC_CUSTOM_TAG
See Also:
Constant Field Values

PRIVATE_CUSTOM_TAG

public static final java.lang.String PRIVATE_CUSTOM_TAG
See Also:
Constant Field Values

cnh

protected com.ibm.websphere.management.cmdframework.provider.CmdNotificationHandler cnh

asyncCmdSession

protected com.ibm.ws.management.cmdframework.impl.TaskCommandSession asyncCmdSession

cmdMgrType

protected java.lang.Integer cmdMgrType

listSetParamsTable

protected java.util.HashMap<java.lang.Integer,java.util.Collection<java.lang.String>> listSetParamsTable
Constructor Detail

AbstractAdminCommand

public AbstractAdminCommand(com.ibm.websphere.management.cmdframework.commandmetadata.CommandMetadata metadata)

AbstractAdminCommand

public AbstractAdminCommand(com.ibm.websphere.management.cmdframework.commanddata.CommandData inCommandData)
                     throws CommandNotFoundException
Constructs an instance of admin command based on its command data

Parameters:
inCommandData - the command data for the command
Throws:
CommandNotFoundException - if the command is not found.
Method Detail

getCommandMetadata

public static com.ibm.websphere.management.cmdframework.commandmetadata.CommandMetadata getCommandMetadata(java.lang.String cmdName)
                                                                                                    throws CommandNotFoundException
Throws:
CommandNotFoundException

initCommandData

protected com.ibm.websphere.management.cmdframework.commanddata.CommandData initCommandData()
Construct proper type of command data instance.

Returns:
newly created command data instance.

getLocale

public java.util.Locale getLocale()
Description copied from interface: AdminCommand
return the user's locale. It may be null if the locale is never set.

Specified by:
getLocale in interface AdminCommand

setLocale

public void setLocale(java.util.Locale locale)
Description copied from interface: AdminCommand
Sets the caller's locale. If this method is not called, the system default locale will be used.

Specified by:
setLocale in interface AdminCommand
Parameters:
locale - the caller's Locale.

getName

public java.lang.String getName()
Description copied from interface: AdminCommand
Returns a non-localized admin command name.

Specified by:
getName in interface AdminCommand
Returns:
the name of this admin command.

getCommandMetadata

public com.ibm.websphere.management.cmdframework.commandmetadata.CommandMetadata getCommandMetadata()
Description copied from interface: AdminCommand
Returns the meta data for the command.

Specified by:
getCommandMetadata in interface AdminCommand
Returns:
the meta data for the command.

getCommandData

protected com.ibm.websphere.management.cmdframework.commanddata.CommandData getCommandData()

setCommandMetadata

protected void setCommandMetadata(com.ibm.websphere.management.cmdframework.commandmetadata.CommandMetadata cmdmetadata)

getTargetObject

public java.lang.Object getTargetObject()
Description copied from interface: AdminCommand
Returns the target object of the command. If the admin command does not contains any target object, this method returns null.

Specified by:
getTargetObject in interface AdminCommand
Returns:
the target object of the command.

setTargetObject

public void setTargetObject(java.lang.Object obj)
                     throws InvalidParameterValueException
Description copied from interface: AdminCommand
Sets the target object for the command.

Specified by:
setTargetObject in interface AdminCommand
Parameters:
obj - the target object value
Throws:
InvalidParameterValueException

listSetParams

public java.util.Collection listSetParams()
Description copied from interface: AdminCommand
Gets all the command parameters whose value are set.

Specified by:
listSetParams in interface AdminCommand
Returns:
the command parameter names whose value are set.

listSetParams

protected java.util.Collection listSetParams(int rowIndex)

getParameter

public java.lang.Object getParameter(java.lang.String parameterName)
                              throws InvalidParameterNameException
Description copied from interface: AdminCommand
Gets the parameter value for the specified parameter.

Specified by:
getParameter in interface AdminCommand
Parameters:
parameterName - the parameter name.
Returns:
the parameter value.
Throws:
InvalidParameterNameException

isAsyncCommand

public boolean isAsyncCommand()
Description copied from interface: AdminCommand
Check if it is an async command, which is specified by command provider.

Specified by:
isAsyncCommand in interface AdminCommand
Returns:
true if this command is async; false otherwise.

isDynamicStepCommand

public boolean isDynamicStepCommand()
Description copied from interface: AdminCommand
Check if it is a dynamic step command, which is specified by command provider.

Specified by:
isDynamicStepCommand in interface AdminCommand
Returns:
true if this command has dynamic step; false otherwise.

isPrivateParameter

public boolean isPrivateParameter(java.lang.String paramName)
                           throws InvalidParameterNameException
Description copied from interface: AdminCommand
Check if it is a private parameter, which is specified by command provider.

Specified by:
isPrivateParameter in interface AdminCommand
Parameters:
paramName - is the name of parameter.
Returns:
true if this parameter is private; false otherwise.
Throws:
InvalidParameterNameException - if user specified an invalid parameter name.

listAllParameterName

public java.util.List listAllParameterName()
Description copied from interface: AdminCommand
Returns all the parameter names including private one on the ParameterMetadata objects.

Specified by:
listAllParameterName in interface AdminCommand
Returns:
a list of parameter name in String type.

listParameterName

public java.util.List listParameterName()
Description copied from interface: AdminCommand
Returns parameter names that are not private on the ParameterMetadata objects.

Specified by:
listParameterName in interface AdminCommand
Returns:
a list of parameter name in String type.

getParameter

protected java.lang.Object getParameter(java.lang.String parameterName,
                                        int rowIndex)
                                 throws InvalidParameterNameException
Throws:
InvalidParameterNameException

setParameter

public void setParameter(java.lang.String paramName,
                         java.lang.Object value)
                  throws InvalidParameterValueException,
                         InvalidParameterNameException
Description copied from interface: AdminCommand
Sets the value for the specified parameter.

Specified by:
setParameter in interface AdminCommand
Parameters:
paramName - the parameter name.
value - the parameter value.
Throws:
InvalidParameterValueException - if the parameter value is not valid.
InvalidParameterNameException

setOrigParameterValue

public void setOrigParameterValue(java.lang.String paramName,
                                  java.lang.Object value)
                           throws InvalidParameterValueException,
                                  InvalidParameterNameException
Description copied from interface: AdminCommand
Sets the original value for the UploadFile or DownloadFile parameter.

Specified by:
setOrigParameterValue in interface AdminCommand
Parameters:
paramName - the parameter name.
value - the parameter value.
Throws:
InvalidParameterValueException - if the parameter value is not valid.
InvalidParameterNameException

getOrigParameterValue

public java.lang.Object getOrigParameterValue(java.lang.String paramName)
                                       throws InvalidParameterNameException
Description copied from interface: AdminCommand
Gets the original parameter value for the UploadFile or DownloadFile parameter.

Specified by:
getOrigParameterValue in interface AdminCommand
Parameters:
paramName - the parameter name.
Returns:
the parameter value.
Throws:
InvalidParameterNameException

initializeParameter

protected void initializeParameter(java.lang.String paramName,
                                   java.lang.Object value)
                            throws InvalidParameterValueException,
                                   InvalidParameterNameException
Throws:
InvalidParameterValueException
InvalidParameterNameException

setParameter

protected void setParameter(java.lang.String paramName,
                            java.lang.Object value,
                            int rowIndex)
                     throws InvalidParameterValueException,
                            InvalidParameterNameException
Throws:
InvalidParameterValueException
InvalidParameterNameException

initializeParameter

protected void initializeParameter(java.lang.String paramName,
                                   java.lang.Object value,
                                   int rowIndex)
                            throws InvalidParameterValueException,
                                   InvalidParameterNameException
Throws:
InvalidParameterValueException
InvalidParameterNameException

setListSetParamsTable

protected void setListSetParamsTable(int rowIndex,
                                     java.lang.String paramName)

isTable

protected boolean isTable()

getChoices

public java.lang.Object[] getChoices(java.lang.String paramName)
Provides a default implement for the method which always returns null.

Specified by:
getChoices in interface AdminCommand
Parameters:
paramName - the parameter name.
Returns:
an array of valid values for the specified parameter.

getTargetObjectChoices

public java.lang.Object[] getTargetObjectChoices()
Provides a default implement for the method which always returns null.

Specified by:
getTargetObjectChoices in interface AdminCommand
Returns:
an array of valid values for the specified parameter.

validate

public void validate()
              throws CommandValidationException
Providers a default implmentation for the method. The default implementation checks if all the required parameters are specified, also it checks if the types of specified parameter values matches up the type of the parameter data defined in metadata. Extended class may override this method to validate the command parameter further.

Specified by:
validate in interface AdminCommand
Throws:
CommandValidationException

setConfigSession

public void setConfigSession(Session session)
Description copied from interface: AdminCommand
Sets the user's config session. This is only needed for configuration related commands.

Specified by:
setConfigSession in interface AdminCommand
Parameters:
session - the user's admin session.

getConfigSession

public Session getConfigSession()
Description copied from interface: AdminCommand
Returns user's config session. It returns null if the config session is never set.

Specified by:
getConfigSession in interface AdminCommand
Returns:
user's config session.

getCommandResult

public CommandResult getCommandResult()
Description copied from interface: AdminCommand
Return a more user friendly version of command result.

Specified by:
getCommandResult in interface AdminCommand
Returns:
the result generated from last execution.

setCommandResult

protected void setCommandResult(CommandResult thisResult)

save

public void save(java.io.OutputStream outputStream)
Description copied from interface: AdminCommand
Serializes the command into the specified output stream.

Specified by:
save in interface AdminCommand
Parameters:
outputStream - the output stream that is used to serialize the command data

execute

public abstract void execute()
Defines the execution logic of command. Any admin command must at least implement this method.

Specified by:
execute in interface org.eclipse.emf.common.command.Command

execute

public void execute(CommandHistory cmdHistory)
Description copied from interface: AdminCommand
Executes the command and puts the command data into the command history.

Specified by:
execute in interface AdminCommand
Parameters:
cmdHistory - an implementation of command history

setCommandSession

public void setCommandSession(com.ibm.ws.management.cmdframework.impl.TaskCommandSession session)

getCommandSession

public com.ibm.ws.management.cmdframework.impl.TaskCommandSession getCommandSession()
Creates and returns the unique identifier for this command instance. Note: getCommandSession is a misnomer because the term "session" really refers to an asynchronous command instance identifier rather than a task command config session. Similarly, TaskComamndSession really is a task command instance ID and has nothing to do with the command's config session.

Returns:
a task command identifier

setCmdHandler

public void setCmdHandler(com.ibm.websphere.management.cmdframework.provider.CmdNotificationHandler handler)
Description copied from interface: AdminCommand
Set the handler to handle command notifications

Specified by:
setCmdHandler in interface AdminCommand
Parameters:
handler - handler for command notification

setupListener

protected void setupListener(java.lang.Object obj)

getResult

public java.util.Collection getResult()
Provides a default implementation for this method. Returns the result objects if the command execution is successful; returns a Throwable otherwise to indicate the error.

Specified by:
getResult in interface org.eclipse.emf.common.command.Command
Overrides:
getResult in class org.eclipse.emf.common.command.AbstractCommand

sendNotification

public void sendNotification(CommandNotification cmdNotification)

redo

public void redo()
Specified by:
redo in interface org.eclipse.emf.common.command.Command

cleanupUploadedFiles

public void cleanupUploadedFiles()

createParamEObject

protected org.eclipse.emf.ecore.EObject createParamEObject()
                                                    throws CommandNotFoundException
Create an EObject to store the command's parameter values.

Returns:
an EObject instance to store the command's parameter values.
Throws:
CommandNotFoundException

getUserData

protected com.ibm.websphere.management.cmdframework.commanddata.UserData getUserData()
Gets the user data for the command data. This method creates the UserData instance for the command data if it is not created before.

Returns:
a UserData instance.

resetCommandData

public void resetCommandData(com.ibm.websphere.management.cmdframework.commanddata.CommandData cmdData)
Resets the command data for the command.

Parameters:
cmdData - the new command data.

resetCommandMetadata

protected void resetCommandMetadata(com.ibm.websphere.management.cmdframework.commandmetadata.CommandMetadata newMetadata)

generateScript

public java.lang.String generateScript(java.lang.String lang)
                                throws CommandException
Description copied from interface: AdminCommand
Generates the corresponding wsadmin script for the specified scripting language.

Specified by:
generateScript in interface AdminCommand
Parameters:
lang - the name of the scripting language.
Returns:
wsadmin script for the command.
Throws:
CommandException - if user specified scripting language is not supported. XXX todo: more specific exception.

getParameterMetadata

protected com.ibm.websphere.management.cmdframework.commandmetadata.ParameterMetadata getParameterMetadata(java.lang.String paramName)
                                                                                                    throws InvalidParameterNameException
returns the metadata for the specified parameter.

Parameters:
paramName - name of parameter
Returns:
ParameterMetadata
Throws:
InvalidParameterNameException

isLocalMode

protected boolean isLocalMode()

setCmdMgrType

public void setCmdMgrType(java.lang.Integer cmdMgrType)

getCmdMgrType

public java.lang.Integer getCmdMgrType()

isParamReadonly

protected boolean isParamReadonly(java.lang.String paramName)
                           throws InvalidParameterNameException
Throws:
InvalidParameterNameException

getConfigService

protected ConfigService getConfigService()
Convenient method to access ConfigService component.


createParameterMetadata

public com.ibm.websphere.management.cmdframework.commandmetadata.ParameterMetadata createParameterMetadata(java.lang.String pmName,
                                                                                                           java.util.Hashtable featureList)
                                                                                                    throws InvalidParameterValueException,
                                                                                                           InvalidParameterNameException
Description copied from interface: AdminCommand
Create a ParameterMetadata object.

Specified by:
createParameterMetadata in interface AdminCommand
Parameters:
pmName - is the name of ParameterMetadata.
featureList - is a Hashtable of ParameterMetadata features (attributes) in feature id - value pair.

See CommandMetadataPackage.PARAMETER_METADATA for list of available features for PARAMETER_METADATA.
Returns:
a new object of class ParameterMetadata.
Throws:
InvalidParameterValueException - if the feature (attribute) value type is incorrect.
InvalidParameterNameException - if the feature (attribute) id is invalid.
See Also:
BaseMetadata, ParameterMetadata

IBM WebSphere Application ServerTM
Release 7