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
 
Nested classes/interfaces inherited from class org.eclipse.emf.common.command.AbstractCommand
org.eclipse.emf.common.command.AbstractCommand.NonDirtying
 
Field Summary
 
Fields inherited from class org.eclipse.emf.common.command.AbstractCommand
description, isExecutable, isPrepared, label
 
Constructor Summary
AbstractAdminCommand(CommandData inCommandData)
          Constructs an instance of admin command based on its command data
AbstractAdminCommand(CommandMetadata metadata)
           
 
Method Summary
protected  org.eclipse.emf.ecore.EObject createParamEObject()
          Create an EObject to store the command's parameter values.
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.
protected  CommandData getCommandData()
           
 CommandMetadata getCommandMetadata()
          Returns the meta data for the command.
static CommandMetadata getCommandMetadata(java.lang.String cmdName)
           
 CommandResult getCommandResult()
          Return a more user friendly version of command result.
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 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  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  UserData getUserData()
          Gets the user data for the command data.
protected  CommandData initCommandData()
          Construct proper type of command data instance.
protected  void initializeParameter(java.lang.String paramName, java.lang.Object value)
           
protected  boolean isParamReadonly(java.lang.String paramName)
           
protected  boolean isTable()
           
 java.util.Collection listSetParams()
          Gets all the command parameters whose value are set.
protected  java.util.Collection listSetParams(int rowIndex)
           
 void redo()
           
protected  void resetCommandData(CommandData cmdData)
          Resets the command data for the command.
 void save(java.io.OutputStream outputStream)
          Serializes the command into the specified output stream.
protected  void setCommandResult(CommandResult thisResult)
           
 void setConfigSession(Session session)
          Sets the user's config session.
 void setLocale(java.util.Locale locale)
          Sets the caller's locale.
 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.
 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
 

Constructor Detail

AbstractAdminCommand

public AbstractAdminCommand(CommandMetadata metadata)

AbstractAdminCommand

public AbstractAdminCommand(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 CommandMetadata getCommandMetadata(java.lang.String cmdName)
                                          throws CommandNotFoundException
Throws:
CommandNotFoundException

initCommandData

protected 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 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 CommandData getCommandData()

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

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

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

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

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

redo

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

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

protected void resetCommandData(CommandData cmdData)
Resets the command data for the command.

Parameters:
cmdData - the new command data.

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 ParameterMetadata getParameterMetadata(java.lang.String paramName)
                                          throws InvalidParameterNameException
returns the metadata for the specified parameter.

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

isParamReadonly

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

getConfigService

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