com.ibm.commerce.rfq.commands
Class CreatePAttributeValueCmdImpl

java.lang.Object
  |
  +--CacheableCommandImpl
        |
        +--com.ibm.commerce.command.AbstractECTargetableCommand
              |
              +--com.ibm.commerce.command.TaskCommandImpl
                    |
                    +--com.ibm.commerce.rfq.commands.CreatePAttributeValueCmdImpl
All Implemented Interfaces:
CreatePAttributeValueCmd, ECCommand, ECTargetableCommand, TaskCommand

public class CreatePAttributeValueCmdImpl
extends TaskCommandImpl
implements CreatePAttributeValueCmd

Creates personalization attributes for RFQ products or RFQ response products.

This is the default implementation of the CreatePAttributeValueCmd. This command uses the following AccessBeans:

See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.ibm.commerce.command. AbstractECTargetableCommand
commandContext
 
Fields inherited from interface com.ibm.commerce.rfq.commands. CreatePAttributeValueCmd
COPYRIGHT, defaultCommandClassName, NAME
 
Fields inherited from interface com.ibm.commerce.command. ECTargetableCommand
COPYRIGHT
 
Fields inherited from interface com.ibm.commerce.command. ECCommand
defaultCommandClassName
 
Constructor Summary
CreatePAttributeValueCmdImpl()
          Constructor for CreatePAttributeValueCmdImpl
 
Method Summary
protected  java.lang.Integer[] getOperatorsIntoArray(java.lang.Integer operator, java.lang.String[] valueArray)
          Processes the single operator that has been input by the user into one or more operators depending on the length of the incoming array of values.
 java.lang.Long[] getPAttributeValueIds()
          Gets the new personalization attribute value IDs.
 void performExecute()
          Execute the command.
 void reset()
          Resets the command.
 void setAllowMultipleValues(boolean allowMultipleValues)
          (Optional) Sets the allow multiple values flag.
 void setAttrName(java.lang.String attrName)
          Sets the personalization attribute name.
 void setAttrValue(java.lang.String attrValue)
          Sets the personalization attribute value.
 void setChangeable(java.lang.Integer changeable)
          Sets the changeable flag.
 void setCorrelationGroup(java.lang.Long correlationGroup)
          (Optional) Sets the correlation group.
 void setMandatory(java.lang.Integer mandatory)
          Sets the mandatory flag.
 void setOperatorId(java.lang.Integer operatorId)
          (Optional) Sets the operator ID.
 void setOrderItemId(java.lang.Long orderItemId)
          (Optional) Sets the order item ID.
 void setPAttributeId(java.lang.Long pAttributeId)
          Sets the personalization attribute ID.
 void setQuantityUnit(java.lang.String quantityUnit)
          Sets the quantity unit.
 void setRFQProductId(java.lang.Long rFQProductId)
          (Optional) Sets the RFQ product ID.
 void setRFQResponseProductId(java.lang.Long rfqResponseProductId)
          (Optional) Sets the RFQ response product ID.
 void setValueDelimiter(java.lang.String valueDelimiter)
          (Optional) Sets the value delimiter.
 void validateParameters()
          Check mandatory parameters.
 
Methods inherited from class com.ibm.commerce.command. AbstractECTargetableCommand
accessControlCheck, checkIsAllowed, checkParameters, checkResourcePermission, createCommandExecutionEvent, execute, finalize, getAccCheck, getCommandContext, getCommandIfName, getCommandName, getCommandStoreId, getDefaultProperties, getResources, getStoreId, getUser, getUserId, isReadyToCallExecute, setAccCheck, setCommandContext, setCommandIfName, setCommandStoreId, setDefaultProperties
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CreatePAttributeValueCmdImpl

public CreatePAttributeValueCmdImpl()
Constructor for CreatePAttributeValueCmdImpl
Method Detail

getOperatorsIntoArray

protected java.lang.Integer[] getOperatorsIntoArray(java.lang.Integer operator,
                                                    java.lang.String[] valueArray)
Processes the single operator that has been input by the user into one or more operators depending on the length of the incoming array of values. For multi-valued attributes, the user might have input a single operator say "Inclusive Range", but the operators stored with each value are different. Consider this attribute definition:

Attribute Name = "Length" Operator = "Inclusive Range" Value = 20-40 Unit = metre

Essentially, the user has specified that the length should be between 20 and 40 metres, 20 and 40 inclusive. However, this information is parsed out into two sets of detail:

Length >= 20 Length <= 40

Therefore, when saving this information, it becomes necessary to convert a single operator into a set of operators, one for each value, in this case ">=" and "<=".

Parameters:
operator - The single operator specified by the user.
valueArray - One or more values for a attribute.
Returns:
An array of operator ids, one for each value.

performExecute

public void performExecute()
                    throws ECException
Execute the command.
Specified by:
performExecute in interface ECCommand
Overrides:
performExecute in class AbstractECTargetableCommand
Throws:
ECException - These exceptions are allowed to percolate.
See Also:
ECCommand#performExecute()

reset

public void reset()
Resets the command.
Overrides:
reset in class AbstractECTargetableCommand

validateParameters

public void validateParameters()
                        throws ECException
Check mandatory parameters.
Specified by:
validateParameters in interface ECCommand
Overrides:
validateParameters in class AbstractECTargetableCommand
Throws:
ECApplicationException - Raised with message _ERR_BAD_MISSING_CMD_PARAMETER if quotationRequests is not specified.
ECException
See Also:
ECCommand#validateParameters()

setAttrName

public void setAttrName(java.lang.String attrName)
Sets the personalization attribute name.
Specified by:
setAttrName in interface CreatePAttributeValueCmd
Parameters:
attrName - The personalization attribute name.

setAttrValue

public void setAttrValue(java.lang.String attrValue)
Sets the personalization attribute value.
Specified by:
setAttrValue in interface CreatePAttributeValueCmd
Parameters:
attrValue - The personalization attribute value.

setQuantityUnit

public void setQuantityUnit(java.lang.String quantityUnit)
Sets the quantity unit.
Specified by:
setQuantityUnit in interface CreatePAttributeValueCmd
Parameters:
quantityUnit - The quantity unit.

setOperatorId

public void setOperatorId(java.lang.Integer operatorId)
(Optional) Sets the operator ID. If it is not specified, the operator ID for the "=" operator is used.
Specified by:
setOperatorId in interface CreatePAttributeValueCmd

setRFQProductId

public void setRFQProductId(java.lang.Long rFQProductId)
(Optional) Sets the RFQ product ID. If this is not specified then the RFQ response product ID will be checked.
Specified by:
setRFQProductId in interface CreatePAttributeValueCmd
Parameters:
rFQProductId - The RFQ product ID.

setMandatory

public void setMandatory(java.lang.Integer mandatory)
Sets the mandatory flag.
Specified by:
setMandatory in interface CreatePAttributeValueCmd
Parameters:
mandatory - The mandatory flag.

setChangeable

public void setChangeable(java.lang.Integer changeable)
Sets the changeable flag.
Specified by:
setChangeable in interface CreatePAttributeValueCmd
Parameters:
changeable - The changeable flag.

setPAttributeId

public void setPAttributeId(java.lang.Long pAttributeId)
Sets the personalization attribute ID. If this is specified it takes precedence over the personalization attribute name.
Specified by:
setPAttributeId in interface CreatePAttributeValueCmd
Parameters:
pAttributeId - The personalization attribute ID.

getPAttributeValueIds

public java.lang.Long[] getPAttributeValueIds()
Gets the new personalization attribute value IDs.
Specified by:
getPAttributeValueIds in interface CreatePAttributeValueCmd
Returns:
The array of new personalization attribute value IDs.

setRFQResponseProductId

public void setRFQResponseProductId(java.lang.Long rfqResponseProductId)
(Optional) Sets the RFQ response product ID. If this is not specified and the RFQ product is not specified then the order item ID will be checked.
Specified by:
setRFQResponseProductId in interface CreatePAttributeValueCmd

setAllowMultipleValues

public void setAllowMultipleValues(boolean allowMultipleValues)
(Optional) Sets the allow multiple values flag. If not specified, the default value is true.
Specified by:
setAllowMultipleValues in interface CreatePAttributeValueCmd
Parameters:
allowMultipleValues - The allow multiple values flag.

setValueDelimiter

public void setValueDelimiter(java.lang.String valueDelimiter)
(Optional) Sets the value delimiter. If not specified, the default value is ";".
Specified by:
setValueDelimiter in interface CreatePAttributeValueCmd
Parameters:
valueDelimiter - The value delimiter.

setCorrelationGroup

public void setCorrelationGroup(java.lang.Long correlationGroup)
(Optional) Sets the correlation group. If this is set, it is used as the correlation group value for the new personalization attribute value otherwise the personalization attribute value ID will be used.
Specified by:
setCorrelationGroup in interface CreatePAttributeValueCmd
Parameters:
correlationGroup - The correlation group.

setOrderItemId

public void setOrderItemId(java.lang.Long orderItemId)
(Optional) Sets the order item ID. The RFQ product ID and RFQ response product ID are checked before the order item ID is checked.
Specified by:
setOrderItemId in interface CreatePAttributeValueCmd
Parameters:
orderItemId - The order item ID.