com.ibm.websphere.management.cmdframework.provider
Class AbstractAdminCommand
- java.lang.Object
-
- org.eclipse.emf.common.command.AbstractCommand
-
- 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 Modifier and Type Class and Description class
AbstractAdminCommand.CmdNotificationListener
-
Field Summary
Fields Modifier and Type Field and Description 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
-
Constructor Summary
Constructors Constructor and Description AbstractAdminCommand(com.ibm.websphere.management.cmdframework.commanddata.CommandData inCommandData)
Constructs an instance of admin command based on its command dataAbstractAdminCommand(com.ibm.websphere.management.cmdframework.commandmetadata.CommandMetadata metadata)
-
Method Summary
Methods Modifier and Type Method and Description 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.com.ibm.websphere.management.cmdframework.provider.CmdNotificationHandler
getCmdHandler()
Get the handler which was set to handle command notificationsjava.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 theUploadFile
orDownloadFile
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 theParameterMetadata
objects.java.util.List
listParameterName()
Returns parameter names that are not private on theParameterMetadata
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 notificationsvoid
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 theUploadFile
orDownloadFile
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
-
-
-
-
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 interfaceAdminCommand
-
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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 theParameterMetadata
objects.- Specified by:
listAllParameterName
in interfaceAdminCommand
- 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 theParameterMetadata
objects.- Specified by:
listParameterName
in interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 theUploadFile
orDownloadFile
parameter.- Specified by:
setOrigParameterValue
in interfaceAdminCommand
- 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 theUploadFile
orDownloadFile
parameter.- Specified by:
getOrigParameterValue
in interfaceAdminCommand
- 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
-
setParameter
protected void setParameter(java.lang.String paramName, java.lang.Object value, int rowIndex) throws InvalidParameterValueException, InvalidParameterNameException
-
initializeParameter
protected void initializeParameter(java.lang.String paramName, java.lang.Object value, int rowIndex) 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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 interfaceAdminCommand
- 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 interfaceorg.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 interfaceAdminCommand
- 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 interfaceAdminCommand
- Parameters:
handler
- handler for command notification
-
getCmdHandler
public com.ibm.websphere.management.cmdframework.provider.CmdNotificationHandler getCmdHandler()
Description copied from interface:AdminCommand
Get the handler which was set to handle command notifications- Specified by:
getCmdHandler
in interfaceAdminCommand
- Returns:
- Handler for command notifications. Null if no handler was set.
-
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 interfaceorg.eclipse.emf.common.command.Command
- Overrides:
getResult
in classorg.eclipse.emf.common.command.AbstractCommand
-
sendNotification
public void sendNotification(CommandNotification cmdNotification)
-
redo
public void redo()
- Specified by:
redo
in interfaceorg.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 interfaceAdminCommand
- 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 interfaceAdminCommand
- Parameters:
pmName
- is the name of ParameterMetadata.featureList
- is a Hashtable of ParameterMetadata features (attributes) in feature id - value pair.
SeeCommandMetadataPackage.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
-
-