com.ibm.commerce.account.commands
Class AccountSaveCmdImpl

java.lang.Object
  |
  +--CacheableCommandImpl
        |
        +--com.ibm.commerce.command.AbstractECTargetableCommand
              |
              +--com.ibm.commerce.command.ControllerCommandImpl
                    |
                    +--com.ibm.commerce.contract.commands.TradingAgreementImportBaseCmdImpl
                          |
                          +--com.ibm.commerce.account.commands.AccountSaveCmdImpl
All Implemented Interfaces:
AccCommand, AccountSaveCmd, ControllerCommand, ECCommand, ECTargetableCommand

public class AccountSaveCmdImpl
extends TradingAgreementImportBaseCmdImpl
implements AccountSaveCmd

This is the default implementation of the AccountSave controller command.

See Also:
AccountSaveCmd, TradingAgreementImportBaseCmdImpl, SaveAccountCmdImpl, Serialized Form

Field Summary
static java.lang.String CLASSNAME
          The name of this class.
static java.lang.String COPYRIGHT
          IBM copyright notice field.
 
Fields inherited from class com.ibm.commerce.command. ControllerCommandImpl
requestProperties, responseProperties, retriable, viewReqProperties
 
Fields inherited from class com.ibm.commerce.command. AbstractECTargetableCommand
commandContext
 
Fields inherited from interface com.ibm.commerce.account.commands. AccountSaveCmd
defaultCommandClassName, NAME
 
Constructor Summary
AccountSaveCmdImpl()
           
 
Method Summary
 java.lang.Long getAccountId()
          Gets the id of the account.
  AccessVector getResources()
          Gets the access vector accessed by this command.
  TypedProperty getViewInputProperties()
          This method is called by the web controller to retrieve the request properties set by the setRequestProperties() method.
 boolean isUpdate()
          Returns the action of this command based on the information inside the XML string.
 void performExecute()
          Saves the account.
 void setLastUpdatedTime(java.lang.String lastUpdatedTime)
          Sets the last update time of the contract.
 void setRequestProperties( TypedProperty aRequestProperties)
          Retrieves input parameters from the request properties.
 void setXML(java.lang.String xmlString)
          Sets the input xml string.
 void setXSDValidation(boolean bValidation)
          Sets the XSD validation flag.
 void validateParameters()
          The method checks if the information provided in account Element object is valid.
 
Methods inherited from class com.ibm.commerce.contract.commands. TradingAgreementImportBaseCmdImpl
getContractId, getDOMFromFile, getDOMFromInputStream, getElementsByTag, getXMLFlag, importContractNLDesc, importFfcNLDesc, importStoreNLDesc, saveAccount, saveContract, setXSDFlag
 
Methods inherited from class com.ibm.commerce.command. ControllerCommandImpl
checkPermission, fulfills, getForUserId, getGeneric, getOwner, getRequestProperties, getResolvedRequestProperties, getResourceOwners, getResponseProperties, getRetriable, isGeneric, isRetriable, mergeProperties, setForUserId, setGeneric, setOwner, setResponseProperties, setRetriable, setViewInputProperties
 
Methods inherited from class com.ibm.commerce.command. AbstractECTargetableCommand
accessControlCheck, checkIsAllowed, checkParameters, checkResourcePermission, createCommandExecutionEvent, execute, finalize, getAccCheck, getCommandContext, getCommandIfName, getCommandName, getCommandStoreId, getDefaultProperties, getStoreId, getUser, getUserId, isReadyToCallExecute, reset, setAccCheck, setCommandContext, setCommandIfName, setCommandStoreId, setDefaultProperties
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.ibm.commerce.command. ControllerCommand
checkPermission, execute, getGeneric, getRequestProperties, getResolvedRequestProperties, getResponseProperties, getRetriable, isGeneric, isRetriable, mergeProperties, setGeneric, setRetriable, setViewInputProperties
 
Methods inherited from interface com.ibm.commerce.command. AccCommand
accessControlCheck, getAccCheck, getForUserId, getResourceOwners, setAccCheck, setForUserId, setOwner
 
Methods inherited from interface com.ibm.commerce.command. ECCommand
checkIsAllowed, checkResourcePermission, createCommandExecutionEvent, getCommandContext, getCommandIfName, getCommandName, getCommandStoreId, getDefaultProperties, getStoreId, getUser, getUserId, setCommandContext, setCommandIfName, setCommandStoreId, setDefaultProperties
 

Field Detail
public static final java.lang.String COPYRIGHT
IBM copyright notice field.
See Also:
Constant Field Values

CLASSNAME

public static final java.lang.String CLASSNAME
The name of this class.
See Also:
Constant Field Values
Constructor Detail

AccountSaveCmdImpl

public AccountSaveCmdImpl()
Method Detail

getAccountId

public java.lang.Long getAccountId()
Gets the id of the account.
Overrides:
getAccountId in class TradingAgreementImportBaseCmdImpl
Returns:
the id of the account

getResources

public AccessVector getResources()
                          throws ECException
Gets the access vector accessed by this command. The default implementation returns the OrganizationAccessBean for creating and AccountAccessBean for updating.
Specified by:
getResources in interface ECCommand
Overrides:
getResources in class AbstractECTargetableCommand
Returns:
AccessVector - a vector of resource action pairs
Throws:
ECException
See Also:
AbstratECTargetableCommand#getResources()

getViewInputProperties

public TypedProperty getViewInputProperties()
This method is called by the web controller to retrieve the request properties set by the setRequestProperties() method. The tools need to override this method because otherwise the properties passed into the controller command would be then passed onto the view command. This is unnecessary for the tools and actually will break us when using the ReDirectView comman because the URL to re-direct to cannot be more than 500 chars. The XML parameter alone passed into the controller command is longer than this and therefore without overriding this method we couldn't re-direct to the view command.
Specified by:
getViewInputProperties in interface ControllerCommand
Overrides:
getViewInputProperties in class ControllerCommandImpl
Returns:
com.ibm.commerce.datatype.TypeProperty

isUpdate

public boolean isUpdate()
Returns the action of this command based on the information inside the XML string.
Returns:
a boolean value represents the action of the command. true: create; false: update

performExecute

public void performExecute()
                    throws ECException
Saves the account.
Specified by:
performExecute in interface ECCommand
Overrides:
performExecute in class AbstractECTargetableCommand
Throws:
ECException - Raised with message _ERR_ACCOUNT_SAVE when an error occurred.
See Also:
TradingAgreementImportBaseCmdImpl.saveAccount(Element, boolean), SaveAccountCmdImpl.performExecute(), AbstratECTargetableCommand#performExecute()

setLastUpdatedTime

public void setLastUpdatedTime(java.lang.String lastUpdatedTime)
Sets the last update time of the contract.
Specified by:
setLastUpdatedTime in interface AccountSaveCmd
Parameters:
lastUpdatedTime - the last update time string

setXML

public void setXML(java.lang.String xmlString)
Sets the input xml string.
Specified by:
setXML in interface AccountSaveCmd
Parameters:
xmlString - the input XML string.

setXSDValidation

public void setXSDValidation(boolean bValidation)
Sets the XSD validation flag. If the flag is set to true, the XML parser will validate the XML instance against the specified XSD file.
Specified by:
setXSDValidation in interface AccountSaveCmd
Parameters:
bValidation - the validation flag, true: validate, false: do not validate.

setRequestProperties

public void setRequestProperties(TypedProperty aRequestProperties)
                          throws ECApplicationException
Retrieves input parameters from the request properties.
Specified by:
setRequestProperties in interface ControllerCommand
Overrides:
setRequestProperties in class ControllerCommandImpl
Parameters:
aRequestProperties - An TypedProperty object contains the input parameters.
Throws:
ECApplicationException - Raised with message _ERR_MISSING_CMD_PARAMETER when the input xml string is missed.

validateParameters

public void validateParameters()
                        throws ECException
The method checks if the information provided in account Element object is valid.
Specified by:
validateParameters in interface ECCommand
Overrides:
validateParameters in class AbstractECTargetableCommand
Throws:
ECException - Raised with message _ERR_DUPLICATED_ACCOUNT_NAME if the account name is duplicated during creating. Raised with message _ERR_ACCOUNT_REFERENCE_NUMBER_NOT_REQUIRED if the account id is provided during creating.
See Also:
AbstratECTargetableCommand#validateParameters()