com.ibm.commerce.contract.commands

Class ContractNewVersionCmdImpl

  • java.lang.Object
    • com.ibm.websphere.command.CacheableCommandImpl
      • com.ibm.commerce.command.MeasuredCacheableCommandImpl
        • com.ibm.commerce.command.AbstractECTargetableCommand
          • com.ibm.commerce.command.ControllerCommandImpl
            • com.ibm.commerce.contract.commands.ContractNewVersionCmdImpl
  • All Implemented Interfaces:
    com.ibm.commerce.command.AccCommand, com.ibm.commerce.command.ControllerCommand, com.ibm.commerce.command.ECCommand, com.ibm.commerce.command.ECTargetableCommand, ContractNewVersionCmd, com.ibm.commerce.security.Protectable, com.ibm.websphere.command.CacheableCommand, com.ibm.websphere.command.Command


    public class ContractNewVersionCmdImpl
    extends com.ibm.commerce.command.ControllerCommandImpl
    implements ContractNewVersionCmd
    This is the default implementation of the ContractNewVersionCmd controller command.

    Input parameters:

    Name Description
    contractId The contract ID. It is mandatory.
    majorVersion The major version of a contract. It is mandatory.
    minorVersion The minor version of a contract.It is mandatory.

    Output parameters:

    None.

    Behaviour:

    Creates a new version of a specified contract (WebSphere Commerce Enterprise only). The state of the specified contract has to be in one of the following state: Approved, Active, Suspended, DeploymentInProgress, and DeploymentFailed. The new contract will have the same name as the specified one. If both majorVersion and minorVersion are provided, the command respects the versions. Otherwise, the new contract will have the same major version number with the old contract. The minor version will be one plus the largest minor version with the same contract name, origin, owner, majorVerion. This new contract will be in Draft version.

    Access Beans used:

    • ContractAccessBean
    • MemberAccessBean

    Task command called:

    CopyContractCmd
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      com.ibm.commerce.accesscontrol.AccessVector getResources()
      Gets the access vector accessed by this command.
      void performExecute()
      Executes the business logic of this command implementation.
      void setContractId(java.lang.Long contractId)
      Sets the ID of the contract to be copied from.
      void setNewContractMajorVersion(java.lang.Integer majorVersion)
      Sets the major version number of the new contract.
      void setNewContractMinorVersion(java.lang.Integer minorVersion)
      Sets the minor version number of the new contract.
      void setRequestProperties(com.ibm.commerce.datatype.TypedProperty aRequestProperties)
      Sets the request properties of this command implementation.
      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, getViewInputProperties, 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, getViewInputProperties, 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 full 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

      • ContractNewVersionCmdImpl

        public ContractNewVersionCmdImpl()
    • Method Detail

      • 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 ContractAccessBean of the contract to be copied and the MemberAccessBean of the contract owner.

        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()
      • performExecute

        public void performExecute()
                            throws com.ibm.commerce.exception.ECException
        Executes the business logic of this command implementation. The method copies the specified contract. A new contract based on the specified one with the given contract name will be created.
        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_CONTRACT_CMD_EXEC whenever the error occurs in CopyContractCmd. see that command for detail
        See Also:
        CopyContractCmdImpl.performExecute(), AbstractECTargetableCommand#performExecute()
      • setContractId

        public void setContractId(java.lang.Long contractId)
        Sets the ID of the contract to be copied from.
        Specified by:
        setContractId in interface ContractNewVersionCmd
        Parameters:
        contractId - the ID of the contract to be copied from
      • setNewContractMajorVersion

        public void setNewContractMajorVersion(java.lang.Integer majorVersion)
        Sets the major version number of the new contract.
        Specified by:
        setNewContractMajorVersion in interface ContractNewVersionCmd
        Parameters:
        majorVersion - the major version number of the new contract
      • setNewContractMinorVersion

        public void setNewContractMinorVersion(java.lang.Integer minorVersion)
        Sets the minor version number of the new contract.
        Specified by:
        setNewContractMinorVersion in interface ContractNewVersionCmd
        Parameters:
        minorVersion - the minor version number of the new contract
      • setRequestProperties

        public void setRequestProperties(com.ibm.commerce.datatype.TypedProperty aRequestProperties)
                                  throws com.ibm.commerce.exception.ECApplicationException
        Sets the request properties of this command implementation.
        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. For this default implementation, contractId, and URL parameters are required.
        Throws:
        com.ibm.commerce.exception.ECApplicationException - Raised with message _ERR_MISSING_CMD_PARAMETER when one of the three parameters, contractId or URL, is missed from the URL. Raised with message _ERR_NUMBER_FORMAT_EXCEPTION if the provided contractId parameter cannot be converted to Long object. It occurs too if majorVersion, minorVersion parameter cannot be converted to Integer object.
        See Also:
        ControllerCommandImpl.setRequestProperties(TypedProperty)
      • validateParameters

        public void validateParameters()
                                throws com.ibm.commerce.exception.ECException
        Extracts and validates the input parameters of this command implementation. Validates if the given contract ID exists, and checks if there are any contracts exist with the same name as the new contract.
        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_WRONG_CONTRACT_STATE if the contract is in one of the following states: Draft, Pending, Rejected, Closed, Canceled Raised with message _ERR_CONTRACT_OBJECT_NOT_FOUND if the contract cannot be found. It is based on the provided contract ID. Raised with message _ERR_CONTRACT_VERSIONS if the provided version of the contract already exists. Raised with message _ERR_CONTRACT_SYS_GENERIC if the AccessBeans used in this method throw one of the following exceptions: CreateException, NamingException, RemoteException, FinderException.
        See Also:
        AbstractECTargetableCommand#validateParameters()