com.ibm.commerce.account.commands

Class AccountSaveCmdImpl

  • java.lang.Object
  • All Implemented Interfaces:
    AccountSaveCmd, com.ibm.commerce.command.AccCommand, com.ibm.commerce.command.ControllerCommand, com.ibm.commerce.command.ECCommand, com.ibm.commerce.command.ECTargetableCommand, com.ibm.commerce.security.Protectable, com.ibm.websphere.command.CacheableCommand, com.ibm.websphere.command.Command


    public class AccountSaveCmdImpl
    extends TradingAgreementImportBaseCmdImpl
    implements AccountSaveCmd
    This is the default implementation of the AccountSaveCmd controller command.

    Input parameters:

    Name Description
    XMLString The xml string of this account. It is mandatory.
    lastUpdatedTime The last update time of an account. It is optional.
    validate validate flag to indicate if validation a importing xml file against a xml schema.It is optional.

    Output parameters:

    None.

    Behaviour:

    It calls SaveAccountCmd task command to save the account based on the account element object.

    Task commands called:

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      java.lang.Long getAccountId()
      Gets the id of the account.
      com.ibm.commerce.accesscontrol.AccessVector getResources()
      Gets the access vector accessed by this command.
      com.ibm.commerce.datatype.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()
      Executes the business logic of this command implementation.
      void setLastUpdatedTime(java.lang.String lastUpdatedTime)
      Sets the last update time of the contract.
      void setRequestProperties(com.ibm.commerce.datatype.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()
      Extracts and validates the input parameters of this command implementation.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • 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, checkResourcePermission, createCommandExecutionEvent, execute, getAccCheck, getCommandContext, getCommandIfName, getCommandName, getCommandStoreId, getDefaultProperties, getExceptionInvokeParameters, getObjectSize, getPostInvokeParameters, getPreInvokeParameters, getStoreId, getUser, getUserId, isReadyToCallExecute, reset, setAccCheck, setCommandContext, setCommandIfName, setCommandStoreId, setDefaultProperties
      • 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, getExceptionInvokeParameters, getPostInvokeParameters, getPreInvokeParameters, getStoreId, getUser, getUserId, setCommandContext, setCommandIfName, setCommandStoreId, setDefaultProperties
      • Methods inherited from interface com.ibm.commerce.security.Protectable

        fulfills, getOwner
    • Field Detail

      • CLASSNAME

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

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

      • AccountSaveCmdImpl

        public AccountSaveCmdImpl()
    • Method Detail

      • getAccountId

        public java.lang.Long getAccountId()
        Gets the id of the account.
        Returns:
        the id of the account
      • getResources

        public com.ibm.commerce.accesscontrol.AccessVector getResources()
                                                                 throws com.ibm.commerce.exception.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 com.ibm.commerce.command.ECCommand
        Overrides:
        getResources in class com.ibm.commerce.command.AbstractECTargetableCommand
        Returns:
        AccessVector - a vector of resource action pairs
        Throws:
        com.ibm.commerce.exception.ECException
        See Also:
        AbstractECTargetableCommand.getResources()
      • getViewInputProperties

        public com.ibm.commerce.datatype.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 command. 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. Therefore without overriding this method we couldn't re-direct to the view command.
        Specified by:
        getViewInputProperties in interface com.ibm.commerce.command.ControllerCommand
        Overrides:
        getViewInputProperties in class com.ibm.commerce.command.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 com.ibm.commerce.exception.ECException
        Executes the business logic of this command implementation. It saves the account.
        Specified by:
        performExecute in interface com.ibm.commerce.command.ECCommand
        Overrides:
        performExecute in class com.ibm.commerce.command.AbstractECTargetableCommand
        Throws:
        com.ibm.commerce.exception.ECException - Raised with message _ERR_ACCOUNT_SAVE when an error occurred.
        See Also:
        AbstractECTargetableCommand.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
      • setRequestProperties

        public void setRequestProperties(com.ibm.commerce.datatype.TypedProperty aRequestProperties)
                                  throws com.ibm.commerce.exception.ECApplicationException
        Retrieves input parameters from the request properties.
        Specified by:
        setRequestProperties in interface com.ibm.commerce.command.ControllerCommand
        Overrides:
        setRequestProperties in class com.ibm.commerce.command.ControllerCommandImpl
        Parameters:
        aRequestProperties - An TypedProperty object contains the input parameters.
        Throws:
        com.ibm.commerce.exception.ECApplicationException - Raised with message _ERR_MISSING_CMD_PARAMETER when the input xml string is missed.
      • 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.
      • validateParameters

        public void validateParameters()
                                throws com.ibm.commerce.exception.ECException
        Extracts and validates the input parameters of this command implementation. The method checks if the information provided in account Element object is valid.
        Specified by:
        validateParameters in interface com.ibm.commerce.command.ECCommand
        Overrides:
        validateParameters in class com.ibm.commerce.command.AbstractECTargetableCommand
        Throws:
        com.ibm.commerce.exception.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:
        AbstractECTargetableCommand.validateParameters()