atg.commerce.order.edit
Class CommerceItemEditHandler

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.commerce.order.edit.CloneEditHandler
              extended by atg.commerce.order.edit.CollectionEditHandler
                  extended by atg.commerce.order.edit.ListEditHandler
                      extended by atg.commerce.order.edit.CommerceItemEditHandler
All Implemented Interfaces:
atg.naming.AbsoluteNameable, NameContextBindingListener, NameContextElement, atg.naming.NameContextParentable, NameResolver, AdminableService, atg.nucleus.Configured, ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, VariableArgumentApplicationLogging, ComponentNameResolver, Service, ServiceListener, java.util.EventListener

public class CommerceItemEditHandler
extends ListEditHandler

This handler updates commerce items between the clone and original order.

See Also:
ListEditHandler

Field Summary
static java.lang.String CLASS_VERSION
           
protected  CommerceItemManager mCommerceItemManager
           
 
Fields inherited from class atg.commerce.order.edit.CollectionEditHandler
mCollectionPropertyName, mSortPropertyName, mSubPropertyHandlers, mThrowExceptionsForCollectionChanges, STATE_CLONETOORIGINAL_MAP, STATE_ORIGINALTOCLONE_MAP
 
Fields inherited from class atg.commerce.order.edit.CloneEditHandler
mFulfillmentMessageSender, mKeyPropertyName, mOrderFulfillmentTools, mPropertiesToCopyOnUpdate, STATE_ADD_ITEMS, STATE_DELETE_ITEMS, STATE_UPDATE_ITEMS
 
Fields inherited from class atg.nucleus.GenericService
SERVICE_INFO_KEY
 
Fields inherited from interface atg.nucleus.logging.TraceApplicationLogging
DEFAULT_LOG_TRACE_STATUS
 
Fields inherited from interface atg.nucleus.logging.ApplicationLogging
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
 
Constructor Summary
CommerceItemEditHandler()
           
 
Method Summary
protected  void addItem(CloneEditState pCloneEditState, AddItem pAddItem)
          Overrides the base impl to use the commerce item container interfaces to add the new commerce item.
protected  void copyPriceListValue(CommerceItem pOriginalCommerceItem, CommerceItem pCloneCommerceItem)
          Copies the price list value from the original item's price info to the clone item's price info
 Modification createItemAddedModification(CommerceItem pCommerceItem, Order pOrder)
          Creates a Modification object that represents a commerce item add.
 Modification createItemQuantityUpdateModification(java.lang.String pId, long pOldQuantity, long pNewQuantity)
          Creates a Modification object that represents a commerce item quantity update.
 Modification createItemRemovedModification(java.lang.String pCommerceItemId, java.lang.String pOrderId)
          Creates a Modification object that represents a commerce item remove.
protected  void deleteItem(CloneEditState pCloneEditState, DeleteItem pDeleteItem)
          Overrides the base impl to use the commerce item container interfaces to remove the commerce item
 void detectChanges(CloneEditState pCloneEditState)
          Overrides standard list handling to walk the CommerceItemContainer chain starting at the order and walking down through each commerce item in the container.
protected  void detectCommerceItemChanges(CloneEditState pCloneEditState, CommerceItemContainer pOriginalCommerceItemContainer, CommerceItemContainer pCloneCommerceItemContainer)
          Detects changes to the commerce items in the CommerceItemContainerr.
 java.util.List generateModifications(CloneEditState pCloneEditState)
          Generates the list of Modification objects for commerce items using the AddItem, UpdateItem and DeleteItem objects
 CommerceItemManager getCommerceItemManager()
          Gets the CommerceItemManager component.
 void initializeCloneEditState(CloneEditState pCloneEditState)
          Extends the base bahavior to copy the price list property from each itemPriceInfo.
protected  void mapCloneToOriginalContainers(CloneEditState pCloneEditState, CommerceItemContainer pOriginalCommerceItemContainer, CommerceItemContainer pCloneCommerceItemContainer)
          Deprecated. in favor of mapOriginalToCloneContainers
protected  void mapOriginalToClone(CloneEditState pCloneEditState, Order pOriginalOrder, Order pCloneOrder)
          Overrides base behavior to process all the CommerceItemContainers starting with the order.
protected  void mapOriginalToCloneContainers(CloneEditState pCloneEditState, CommerceItemContainer pOriginalCommerceItemContainer, CommerceItemContainer pCloneCommerceItemContainer)
          Maps the items in the container and will recurse if any commerce items are CommerceItemContainers.
protected  void preserveOriginalCommerceItemValues(CloneEditState pCloneEditState, CommerceItemContainer pOriginalCommerceItemContainer, CommerceItemContainer pCloneCommerceItemContainer)
          Copies values from the original commerce items to the clone items after the cloning is complete.
protected  void preserveOriginalValues(CloneEditState pCloneEditState)
          Copies values from the original commerce items to the clone items after the cloning is complete.
protected  java.util.Map preserveValueForItems(CloneEditState pCloneEditState, java.util.List pOriginalList, java.util.List pCloneList)
          Copies the priceInfo.priceList and the pricingModel of each adjustment in the price info from each original commerce item to their counterpart commerce item .
 void setCommerceItemManager(CommerceItemManager pCommerceItemManager)
          Sets the CommerceItemManager component.
protected  void updateItem(CloneEditState pCloneEditState, UpdateItem pUpdateItem)
          Extends updateItem to capture updates in the amountinfo object
protected  void validateCollection(Order pOriginalCollectionContainer, Order pCloneCollectionContainer)
          Validates the commerce items in the clone order by ensuring the original and clone commerce item collections are the same size.
protected  void validateCommerceItemCollection(CommerceItemContainer pOriginalCollectionContainer, CommerceItemContainer pCloneCollectionContainer)
          Iterates over all the commerce item containers in the order and validates the size of the collections.
 
Methods inherited from class atg.commerce.order.edit.CollectionEditHandler
applyChanges, detectChangesToCollection, detectDeletes, executeSubPropertyHandlerInitialization, executeSubPropertyHandlerUpdates, executeSubPropertyHandlerValidation, findCounterpartObject, getCloneToOriginalMap, getCollection, getCollectionPropertyName, getMatchingCloneKey, getMatchingOriginalKey, getOriginalToCloneMap, getSortedCollection, getSortPropertyName, getSubPropertyHandlers, handleMissingOriginalObject, isSubPropertyHandlers, isThrowExceptionsForCollectionChanges, mapOriginalToCloneCollection, saveOriginalToCloneObjectMappings, setCollectionPropertyName, setSortPropertyName, setSubPropertyHandlers, setThrowExceptionsForCollectionChanges, sortCollection, validateCloneOrder, validateCollection, validateCollectionSize
 
Methods inherited from class atg.commerce.order.edit.CloneEditHandler
addAddItem, addDeleteItem, addStateData, addUpdateItem, adjustCloneCommerceIdReferences, adjustOriginalCommerceIdReferences, cloneOrder, copyPricingModels, createAddItem, createDeleteItem, createUpdateItem, getAddItems, getCloneEditManager, getDeleteItems, getFulfillmentMessageSender, getKeyForObject, getKeyPropertyName, getObjectType, getOrderFulfillmentTools, getPropertiesToCopy, getPropertiesToCopyOnUpdate, getStateData, getStateMap, getUpdateItems, initializeReconciliationProcess, isAddedItem, parseConfigString, processAddItems, processDeleteItems, processUpdateItems, reconcileObjectProperties, sendFulfillmentNotifications, sendMessage, setCloneEditManager, setFulfillmentMessageSender, setKeyPropertyName, setOrderFulfillmentTools, setPropertiesToCopyOnUpdate
 
Methods inherited from class atg.nucleus.GenericService
addLogListener, createAdminServlet, doStartService, doStopService, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
 
Methods inherited from class atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_VERSION

public static final java.lang.String CLASS_VERSION
See Also:
Constant Field Values

mCommerceItemManager

protected CommerceItemManager mCommerceItemManager
Constructor Detail

CommerceItemEditHandler

public CommerceItemEditHandler()
Method Detail

setCommerceItemManager

public void setCommerceItemManager(CommerceItemManager pCommerceItemManager)
Sets the CommerceItemManager component.


getCommerceItemManager

public CommerceItemManager getCommerceItemManager()
Gets the CommerceItemManager component.


mapOriginalToClone

protected void mapOriginalToClone(CloneEditState pCloneEditState,
                                  Order pOriginalOrder,
                                  Order pCloneOrder)
                           throws CommerceException
Overrides base behavior to process all the CommerceItemContainers starting with the order.

Overrides:
mapOriginalToClone in class CollectionEditHandler
Throws:
CommerceException
See Also:
mapCloneToOriginalContainers(CloneEditState, CommerceItemContainer, CommerceItemContainer)

mapCloneToOriginalContainers

protected void mapCloneToOriginalContainers(CloneEditState pCloneEditState,
                                            CommerceItemContainer pOriginalCommerceItemContainer,
                                            CommerceItemContainer pCloneCommerceItemContainer)
                                     throws CommerceException
Deprecated. in favor of mapOriginalToCloneContainers

Throws:
CommerceException

mapOriginalToCloneContainers

protected void mapOriginalToCloneContainers(CloneEditState pCloneEditState,
                                            CommerceItemContainer pOriginalCommerceItemContainer,
                                            CommerceItemContainer pCloneCommerceItemContainer)
                                     throws CommerceException
Maps the items in the container and will recurse if any commerce items are CommerceItemContainers.

Parameters:
pCloneEditState -
pOriginalCommerceItemContainer -
pCloneCommerceItemContainer -
Throws:
CommerceException
See Also:
CollectionEditHandler.mapOriginalToCloneCollection(CloneEditState, Collection, Collection)

detectChanges

public void detectChanges(CloneEditState pCloneEditState)
                   throws CommerceException
Overrides standard list handling to walk the CommerceItemContainer chain starting at the order and walking down through each commerce item in the container.

Overrides:
detectChanges in class CollectionEditHandler
Throws:
CommerceException
See Also:
CollectionEditHandler.detectChangesToCollection(CloneEditState, Object, Object)

detectCommerceItemChanges

protected void detectCommerceItemChanges(CloneEditState pCloneEditState,
                                         CommerceItemContainer pOriginalCommerceItemContainer,
                                         CommerceItemContainer pCloneCommerceItemContainer)
                                  throws CommerceException
Detects changes to the commerce items in the CommerceItemContainerr.

Parameters:
pCloneEditState -
pOriginalCommerceItemContainer -
pCloneCommerceItemContainer -
Throws:
CommerceException

updateItem

protected void updateItem(CloneEditState pCloneEditState,
                          UpdateItem pUpdateItem)
                   throws CommerceException
Extends updateItem to capture updates in the amountinfo object

Overrides:
updateItem in class CloneEditHandler
Throws:
CommerceException
See Also:
CloneEditManager.detectUpdatesInFinalAmountInfo(Object, Object, String)

addItem

protected void addItem(CloneEditState pCloneEditState,
                       AddItem pAddItem)
                throws CommerceException
Overrides the base impl to use the commerce item container interfaces to add the new commerce item.

Overrides:
addItem in class ListEditHandler
Parameters:
pCloneEditState -
pAddItem -
Throws:
CommerceException
See Also:
CommerceItemContainer.addCommerceItem(CommerceItem, int)

deleteItem

protected void deleteItem(CloneEditState pCloneEditState,
                          DeleteItem pDeleteItem)
                   throws CommerceException
Overrides the base impl to use the commerce item container interfaces to remove the commerce item

Overrides:
deleteItem in class CollectionEditHandler
Parameters:
pCloneEditState -
pDeleteItem - the DeleteItem object
Throws:
CommerceException
See Also:
CommerceItemManager.removeItemFromOrder(Order, String), CommerceItemContainer.removeCommerceItem(String)

generateModifications

public java.util.List generateModifications(CloneEditState pCloneEditState)
Generates the list of Modification objects for commerce items using the AddItem, UpdateItem and DeleteItem objects

Overrides:
generateModifications in class CloneEditHandler
Parameters:
pCloneEditState -
Returns:
List of Modification objects

validateCollection

protected void validateCollection(Order pOriginalCollectionContainer,
                                  Order pCloneCollectionContainer)
                           throws CommerceException
Validates the commerce items in the clone order by ensuring the original and clone commerce item collections are the same size.

Overrides:
validateCollection in class CollectionEditHandler
Throws:
CommerceException
See Also:
validateCommerceItemCollection(CommerceItemContainer, CommerceItemContainer)

validateCommerceItemCollection

protected void validateCommerceItemCollection(CommerceItemContainer pOriginalCollectionContainer,
                                              CommerceItemContainer pCloneCollectionContainer)
                                       throws CommerceException
Iterates over all the commerce item containers in the order and validates the size of the collections.

Parameters:
pOriginalCommerceItemContainer -
pCloneCommerceItemContainer -
Throws:
CommerceException

createItemAddedModification

public Modification createItemAddedModification(CommerceItem pCommerceItem,
                                                Order pOrder)
Creates a Modification object that represents a commerce item add.

Parameters:
pCommerceItem -
pOrder -
Returns:
Modification object

createItemQuantityUpdateModification

public Modification createItemQuantityUpdateModification(java.lang.String pId,
                                                         long pOldQuantity,
                                                         long pNewQuantity)
Creates a Modification object that represents a commerce item quantity update.

Parameters:
pId -
pOldQuantity -
pNewQuantity -
Returns:
Modification object

createItemRemovedModification

public Modification createItemRemovedModification(java.lang.String pCommerceItemId,
                                                  java.lang.String pOrderId)
Creates a Modification object that represents a commerce item remove.

Parameters:
pCommerceItemId -
pOrderId -
Returns:
Modification object

initializeCloneEditState

public void initializeCloneEditState(CloneEditState pCloneEditState)
                              throws CommerceException
Extends the base bahavior to copy the price list property from each itemPriceInfo.

Overrides:
initializeCloneEditState in class CollectionEditHandler
Throws:
CommerceException
See Also:
preserveOriginalValues(CloneEditState)

preserveOriginalValues

protected void preserveOriginalValues(CloneEditState pCloneEditState)
                               throws CommerceException
Copies values from the original commerce items to the clone items after the cloning is complete.

Parameters:
pCloneEditState -
Throws:
CommerceException
See Also:
preserveOriginalCommerceItemValues(CloneEditState, CommerceItemContainer, CommerceItemContainer)

preserveOriginalCommerceItemValues

protected void preserveOriginalCommerceItemValues(CloneEditState pCloneEditState,
                                                  CommerceItemContainer pOriginalCommerceItemContainer,
                                                  CommerceItemContainer pCloneCommerceItemContainer)
                                           throws CommerceException
Copies values from the original commerce items to the clone items after the cloning is complete.

Parameters:
pCloneEditState -
pOriginalCommerceItemContainer -
pCloneCommerceItemContainer -
Throws:
CommerceException
See Also:
preserveValueForItems(CloneEditState, List, List)

preserveValueForItems

protected java.util.Map preserveValueForItems(CloneEditState pCloneEditState,
                                              java.util.List pOriginalList,
                                              java.util.List pCloneList)
Copies the priceInfo.priceList and the pricingModel of each adjustment in the price info from each original commerce item to their counterpart commerce item .

Parameters:
pCloneEditState -
pOriginalList -
pCloneList -
Throws:
CommerceException
See Also:
copyPriceListValue(CommerceItem, CommerceItem), CloneEditHandler.copyPricingModels(Object, Object, String)

copyPriceListValue

protected void copyPriceListValue(CommerceItem pOriginalCommerceItem,
                                  CommerceItem pCloneCommerceItem)
Copies the price list value from the original item's price info to the clone item's price info

Parameters:
pOriginalCommerceItem -
pCloneCommerceItem -