public abstract class CloneEditHandler extends GenericService
Each CloneEditHandler has access to its own state map stored in the CloneEditState.
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CLASS_VERSION |
protected MessageSender |
mFulfillmentMessageSender |
protected java.lang.String |
mKeyPropertyName |
protected OrderFulfillmentTools |
mOrderFulfillmentTools |
protected java.util.Map |
mPropertiesToCopyOnUpdate |
protected static java.lang.String |
MY_RESOURCE_NAME |
protected static java.util.ResourceBundle |
sResourceBundle
Resource Bundle
|
protected static java.lang.String |
STATE_ADD_ITEMS
the key used for storing the AddItem map in the clone order state
|
protected static java.lang.String |
STATE_DELETE_ITEMS
the key used for storing the DeleteItem map in the clone order state
|
protected static java.lang.String |
STATE_UPDATE_ITEMS
the key used for storing the UpdateItem map in the clone order state
|
SERVICE_INFO_KEY
DEFAULT_LOG_TRACE_STATUS
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
Constructor and Description |
---|
CloneEditHandler() |
Modifier and Type | Method and Description |
---|---|
protected void |
addAddItem(CloneEditState pCloneEditState,
AddItem pAddItem)
Adds a pAddItem to the add item map in the clone edit state.
|
protected void |
addDeleteItem(CloneEditState pCloneEditState,
DeleteItem pDeleteItem)
Adds a DeleteItem to the delete item map in the clone edit state.
|
protected void |
addItem(CloneEditState pCloneEditState,
AddItem pAddItem)
This is a noop impl
|
protected void |
addStateData(CloneEditState pCloneEditState,
java.lang.String pKey,
java.lang.Object pStateData)
adds an object to the state map maintained by this CloneEditHandler
|
protected void |
addUpdateItem(CloneEditState pCloneEditState,
UpdateItem pUpdateItem)
Adds a UpdateItem to the update item map in the clone edit state.
|
void |
adjustCloneCommerceIdReferences(CloneEditState pCloneEditState)
This API is called once the clone order is created so each handler can update any references
to commerce ids in the clone order to the clone counterpart ids.
|
void |
adjustOriginalCommerceIdReferences(CloneEditState pCloneEditState)
This API is called once after the reconciliation so each handler can update any references
to commerce ids in the original order to the clone counterpart ids.
|
abstract void |
applyChanges(CloneEditState pCloneEditState)
This method is called during the reconciliation process to reconcile the data between the original and clone
object.
|
void |
cloneOrder(Order pOriginalOrder,
Order pCloneOrder)
This method is called just after the original order is cloned at the repository level.
|
protected void |
copyPricingModels(java.lang.Object pOriginalObject,
java.lang.Object pCloneObject,
java.lang.String pPriceInfoPropertyName)
Util method for copying the pricing models from the original price info to the clone price info.
|
AddItem |
createAddItem(CloneEditState pCloneEditState,
java.lang.Object pItem,
java.lang.Object pOriginalContainter,
java.lang.Object pCloneContainer,
int pOrdinalPosition,
java.lang.String pPropertyName,
boolean pAutoRecoveredItem)
Creates an AddItem object that represents an object that's
been added to a container.
|
DeleteItem |
createDeleteItem(CloneEditState pCloneEditState,
java.lang.Object pItem,
java.lang.Object pOriginalContainter,
java.lang.Object pCloneContainer,
java.lang.String pPropertyName,
int pOrdinalPosition,
boolean pAutoDeletedItem)
Creates a DeleteItem object that represents an object that's
been removed to a particular list.
|
UpdateItem |
createUpdateItem(CloneEditState pCloneEditState,
java.lang.Object pOriginalItem,
java.lang.Object pCloneItem,
int pOrdinalPosition,
java.lang.String pPropertyName,
java.lang.Object pOriginalContainter,
java.lang.Object pCloneContainer)
Creates an UpdateItem object that represents an updated object.
|
protected void |
deleteItem(CloneEditState pCloneEditState,
DeleteItem pDeleteItem)
This is a noop impl.
|
java.util.List |
generateModifications(CloneEditState pCloneEditState)
Generates the list of Modification objects that are sent to fulfillment
|
protected java.util.Map |
getAddItems(CloneEditState pCloneEditState)
Returns the AddItem map.
|
CloneEditManager |
getCloneEditManager() |
protected java.util.Map |
getDeleteItems(CloneEditState pCloneEditState)
Returns the DeleteItem clone map.
|
MessageSender |
getFulfillmentMessageSender()
Return the FulfillmentMessageSender property.
|
protected java.lang.Object |
getKeyForObject(java.lang.Object pObject)
Returns the key that should be used for the given object.
|
java.lang.String |
getKeyPropertyName()
The value of this property is used to map objects in the
cloneToOriginal, originalToClone, addItem, updateItem and deleteItem maps
|
protected java.lang.String |
getObjectType(java.lang.Object pObject)
Returns the type of the object.
|
OrderFulfillmentTools |
getOrderFulfillmentTools() |
protected java.lang.String[] |
getPropertiesToCopy(java.lang.Object pObject)
Returns the property names for the given object.
|
java.util.Map |
getPropertiesToCopyOnUpdate()
get the map of property names to copy when reconciling a clone object
item with its original order counterpart.
|
protected java.lang.Object |
getStateData(CloneEditState pCloneEditState,
java.lang.String pKey)
gets an object from the state map maintained by this CloneEditHandler
|
protected java.util.Map |
getStateMap(CloneEditState pCloneEditState)
Gets the state data map for this clone edit handler from the CloneEditState
|
protected java.util.Map |
getUpdateItems(CloneEditState pCloneEditState)
Returns the UpdateItem clone map.
|
abstract void |
initializeCloneEditState(CloneEditState pCloneEditState)
This method is called to initialize the CloneEditState object after cloning.
|
void |
initializeReconciliationProcess(CloneEditState pCloneEditState)
Reinitializes the
AddItem , UpdateItem
and DeleteItem maps in the clon edit state. |
protected boolean |
isAddedItem(CloneEditState pCloneEditState,
java.lang.Object pKey)
Determines if an AddItem is mapped to the given key.
|
protected java.lang.String[] |
parseConfigString(java.lang.String pConfigString)
Parses a comma delimited string into a string array.
|
protected void |
processAddItems(CloneEditState pCloneEditState)
Processes each AddItem object in the clone edit state.
|
protected void |
processDeleteItems(CloneEditState pCloneEditState)
Processes each DeleteItem object in the clone edit state.
|
protected void |
processUpdateItems(CloneEditState pCloneEditState)
Processes each UpdateItem object in the clone edit state.
|
protected java.util.Collection |
reconcileObjectProperties(java.lang.Object pClone,
java.lang.Object pOrig,
java.lang.String[] pProperties)
Reconciles the original with the clone object
|
void |
sendFulfillmentNotifications(CloneEditState pCloneEditState)
This method is called to send the fulfillment messages.
|
void |
sendMessage(CloneEditState pCloneEditState,
java.util.List pModificationList)
Sends the list of modifications.
|
void |
setCloneEditManager(CloneEditManager pCloneEditManager) |
void |
setFulfillmentMessageSender(MessageSender pFulfillmentMessageSender)
Set the FulfillmentMessageSender property.
|
void |
setKeyPropertyName(java.lang.String pKeyPropertyName) |
void |
setOrderFulfillmentTools(OrderFulfillmentTools pOrderFulfillmentTools)
Sets the OrderFulfillmentTools component
|
void |
setPropertiesToCopyOnUpdate(java.util.Map pPropertiesToCopyOnUpdate)
Set the map of properties to copy when updating a clone commerce
item to its original order counterpart.
|
protected void |
updateItem(CloneEditState pCloneEditState,
UpdateItem pUpdateItem)
Reconciles the
pUpdateItem by copying
property values from the clone to original object. |
abstract void |
validateCloneOrder(Order pOriginalOrder,
Order pCloneOrder)
This method is called to validate the clone order after it is created.
|
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
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
public static final java.lang.String CLASS_VERSION
protected static final java.lang.String MY_RESOURCE_NAME
protected static final java.lang.String STATE_UPDATE_ITEMS
protected static final java.lang.String STATE_DELETE_ITEMS
protected static final java.lang.String STATE_ADD_ITEMS
protected static java.util.ResourceBundle sResourceBundle
protected OrderFulfillmentTools mOrderFulfillmentTools
protected MessageSender mFulfillmentMessageSender
protected java.util.Map mPropertiesToCopyOnUpdate
protected java.lang.String mKeyPropertyName
public void setOrderFulfillmentTools(OrderFulfillmentTools pOrderFulfillmentTools)
pOrderFulfillmentTools
- the OrderFulfillmentTools componentpublic OrderFulfillmentTools getOrderFulfillmentTools()
public void setFulfillmentMessageSender(MessageSender pFulfillmentMessageSender)
pFulfillmentMessageSender
- a FulfillmentMessageSender
valuepublic MessageSender getFulfillmentMessageSender()
FulfillmentMessageSender
valuepublic java.util.Map getPropertiesToCopyOnUpdate()
the map contains the object class types mapped to a comma delimited string of property names.
public void setPropertiesToCopyOnUpdate(java.util.Map pPropertiesToCopyOnUpdate)
public java.lang.String getKeyPropertyName()
public void setKeyPropertyName(java.lang.String pKeyPropertyName)
protected java.lang.String[] getPropertiesToCopy(java.lang.Object pObject)
pObject
- object for which to get propertiesparseConfigString(String)
protected java.lang.String[] parseConfigString(java.lang.String pConfigString)
This method is used to convert map configurations into string arrays.
pConfigString
- protected java.lang.String getObjectType(java.lang.Object pObject)
pObject
- public CloneEditManager getCloneEditManager()
public void setCloneEditManager(CloneEditManager pCloneEditManager)
protected java.util.Map getStateMap(CloneEditState pCloneEditState)
pCloneEditState
- protected void addStateData(CloneEditState pCloneEditState, java.lang.String pKey, java.lang.Object pStateData)
pCloneEditState
- pKey
- pStateData
- protected java.lang.Object getStateData(CloneEditState pCloneEditState, java.lang.String pKey)
pCloneEditState
- pKey
- public void cloneOrder(Order pOriginalOrder, Order pCloneOrder) throws CommerceException
This is a noop implementation.
Applications can extend this method to perform application specific cloning of data here.
pOriginalOrder
- pCloneOrder
- CommerceException
public abstract void initializeCloneEditState(CloneEditState pCloneEditState) throws CommerceException
pCloneEditState
- CommerceException
public abstract void applyChanges(CloneEditState pCloneEditState) throws CommerceException
pCloneEditState
- CommerceException
public void initializeReconciliationProcess(CloneEditState pCloneEditState) throws CommerceException
AddItem
, UpdateItem
and DeleteItem
maps in the clon edit state.CommerceException
public abstract void validateCloneOrder(Order pOriginalOrder, Order pCloneOrder) throws CommerceException
pOriginalOrder
- pCloneOrder
- CommerceException
public void sendFulfillmentNotifications(CloneEditState pCloneEditState) throws CommerceException, javax.jms.JMSException
generateModifications
to generate the List of Modification
objects for the changes made by this CloneEditHandler. It then sends the list of
modifications in a single event using sendMessage
pCloneEditState
- CommerceException
javax.jms.JMSException
generateModifications(CloneEditState)
,
sendMessage(CloneEditState, List)
public java.util.List generateModifications(CloneEditState pCloneEditState)
Handlers should override this method to generate the appropriate Modification objects.
This impl returns null by default.
pCloneEditState
- public void adjustCloneCommerceIdReferences(CloneEditState pCloneEditState) throws CommerceException
pCloneEditState
- CommerceException
public void adjustOriginalCommerceIdReferences(CloneEditState pCloneEditState) throws CommerceException
pCloneEditState
- CommerceException
public void sendMessage(CloneEditState pCloneEditState, java.util.List pModificationList) throws javax.jms.JMSException
pCloneEditState
- pModificationList
- the list of Modificiatiosjavax.jms.JMSException
protected java.util.Collection reconcileObjectProperties(java.lang.Object pClone, java.lang.Object pOrig, java.lang.String[] pProperties)
pClone
- clone objectpOrig
- original objectpProperties
- the properties to reconcileCloneEditManager.reconcileProperties(Object, Object, String[])
protected java.util.Map getUpdateItems(CloneEditState pCloneEditState)
pCloneEditState
- UpdatedItem
objects.protected void deleteItem(CloneEditState pCloneEditState, DeleteItem pDeleteItem) throws CommerceException
pCloneEditState
- pDeleteItem
- the DeleteItem objectCommerceException
protected void updateItem(CloneEditState pCloneEditState, UpdateItem pUpdateItem) throws CommerceException
pUpdateItem
by copying
property values from the clone to original object.
The properties that are are copied are configurable.
pCloneEditState
- pUpdateItem
- CommerceException
reconcileObjectProperties(Object, Object, String[])
,
getPropertiesToCopy(Object)
protected void addItem(CloneEditState pCloneEditState, AddItem pAddItem) throws CommerceException
pCloneEditState
- pAddItem
- CommerceException
protected java.util.Map getAddItems(CloneEditState pCloneEditState)
pCloneEditState
- AddItem
objectsprotected java.util.Map getDeleteItems(CloneEditState pCloneEditState)
pCloneEditState
- DeleteItem
objects.protected boolean isAddedItem(CloneEditState pCloneEditState, java.lang.Object pKey)
pCloneEditState
- pKey
- protected void processDeleteItems(CloneEditState pCloneEditState) throws CommerceException
pCloneEditState
- CommerceException
deleteItem(CloneEditState, DeleteItem)
protected void processAddItems(CloneEditState pCloneEditState) throws CommerceException
pCloneEditState
- CommerceException
addItem(CloneEditState, AddItem)
protected void processUpdateItems(CloneEditState pCloneEditState) throws CommerceException
pCloneEditState
- CommerceException
updateItem(CloneEditState, UpdateItem)
protected java.lang.Object getKeyForObject(java.lang.Object pObject) throws PropertyNotFoundException
keyPropertyName
.
If keyPropertyName
is not valued then the original object
is returned.
pObject
- PropertyNotFoundException
protected void addDeleteItem(CloneEditState pCloneEditState, DeleteItem pDeleteItem)
getKeyForObject
for the original item.pCloneEditState
- pDeleteItem
- protected void addUpdateItem(CloneEditState pCloneEditState, UpdateItem pUpdateItem)
getKeyForObject
for the original item.pCloneEditState
- pUpdateItem
- protected void addAddItem(CloneEditState pCloneEditState, AddItem pAddItem)
getKeyForObject
for the original item.pCloneEditState
- pAddItem
- public AddItem createAddItem(CloneEditState pCloneEditState, java.lang.Object pItem, java.lang.Object pOriginalContainter, java.lang.Object pCloneContainer, int pOrdinalPosition, java.lang.String pPropertyName, boolean pAutoRecoveredItem)
pCloneEditState
- pItem
- pOriginalContainter
- pCloneContainer
- pOrdinalPosition
- pAutoRecoveredItem
- public DeleteItem createDeleteItem(CloneEditState pCloneEditState, java.lang.Object pItem, java.lang.Object pOriginalContainter, java.lang.Object pCloneContainer, java.lang.String pPropertyName, int pOrdinalPosition, boolean pAutoDeletedItem)
pCloneEditState
- pItem
- pOriginalContainter
- pOrdinalPosition
- pAutoDeletedItem
- public UpdateItem createUpdateItem(CloneEditState pCloneEditState, java.lang.Object pOriginalItem, java.lang.Object pCloneItem, int pOrdinalPosition, java.lang.String pPropertyName, java.lang.Object pOriginalContainter, java.lang.Object pCloneContainer)
pCloneEditState
- pOriginalItem
- the original object that was updatedpOrdinalPosition
- the position in the containerpOriginalContainter
- the original object containerpCloneContainer
- the clone object containerprotected void copyPricingModels(java.lang.Object pOriginalObject, java.lang.Object pCloneObject, java.lang.String pPriceInfoPropertyName)
pOriginalObject
- pCloneObject
- pPriceInfoPropertyName
-