atg.commerce.order.processor
Class ProcSetProductRefs

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.logging.ApplicationLoggingImpl
          extended by atg.commerce.order.processor.ProcSetProductRefs
All Implemented Interfaces:
ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, VariableArgumentApplicationLogging, PipelineProcessor

public class ProcSetProductRefs
extends ApplicationLoggingImpl
implements PipelineProcessor

This processor sets the product references into the CommerceItems in the order. When an Order is saved its productRef is not persisted, but its id is. When the Order is loaded, the productRefId is loaded, but the productRef remains null. This processor looks up the productRef in the ProductCatalog using the productRefId.


Field Summary
static java.lang.String CLASS_VERSION
          Class version string
 
Fields inherited from interface atg.service.pipeline.PipelineProcessor
STOP_CHAIN_EXECUTION, STOP_CHAIN_EXECUTION_AND_COMMIT, STOP_CHAIN_EXECUTION_AND_ROLLBACK
 
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
ProcSetProductRefs()
           
 
Method Summary
 boolean getErrorOnNullProductRef()
          Returns property ErrorOnNullProductRef
 java.lang.String getLoggingIdentifier()
          Returns property LoggingIdentifier
 int[] getRetCodes()
          Returns the valid return codes 1 - The processor completed
 java.lang.String getSubstituteDeletedProductId()
          This property specifies the id of the product that will represent all deleted products.
 boolean isSubstituteRemovedProduct()
          The property is checked to validate whether a CommerceItem that contains a product which has since been removed from the repository should be substituted with another product that represented the deleted product.
protected  void loadProductRef(CommerceItemContainer order, CatalogTools catalogTools)
           
 RepositoryItem retrieveDeletedProductItem(CatalogTools pCatalogTools, java.lang.String pCatalogKey, java.lang.String pOriginalProductId)
          This method will return the RepositoryItem that represents all deleted products.
 int runProcess(java.lang.Object pParam, PipelineResult pResult)
          This method sets the product references into the CommerceItems in the order.
 void setErrorOnNullProductRef(boolean pErrorOnNullProductRef)
          Sets property ErrorOnNullProductRef
 void setLoggingIdentifier(java.lang.String pLoggingIdentifier)
          Sets property LoggingIdentifier
 void setSubstituteDeletedProductId(java.lang.String pSubstituteDeletedProductId)
           
 void setSubstituteRemovedProduct(boolean pSubstituteRemovedProduct)
           
 
Methods inherited from class atg.nucleus.logging.ApplicationLoggingImpl
addGlobalLogListeners, addLogListener, getLoggingForVlogging, getLoggingIdentifer, getLogListenerCount, getLogListeners, initializeFromServiceEvent, isAutoInitListeners, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, removeLogListener, sendLogEvent, setAutoInitListeners, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning
 
Methods inherited from class atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
vlogDebug, vlogDebug, vlogDebug, vlogDebug, 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 java.lang.String CLASS_VERSION
Class version string

Constructor Detail

ProcSetProductRefs

public ProcSetProductRefs()
Method Detail

getRetCodes

public int[] getRetCodes()
Returns the valid return codes 1 - The processor completed

Specified by:
getRetCodes in interface PipelineProcessor
Returns:
an integer array of the valid return codes.

setLoggingIdentifier

public void setLoggingIdentifier(java.lang.String pLoggingIdentifier)
Sets property LoggingIdentifier

Overrides:
setLoggingIdentifier in class ApplicationLoggingImpl

getLoggingIdentifier

public java.lang.String getLoggingIdentifier()
Returns property LoggingIdentifier

Overrides:
getLoggingIdentifier in class ApplicationLoggingImpl

setErrorOnNullProductRef

public void setErrorOnNullProductRef(boolean pErrorOnNullProductRef)
Sets property ErrorOnNullProductRef


getErrorOnNullProductRef

public boolean getErrorOnNullProductRef()
Returns property ErrorOnNullProductRef


setSubstituteRemovedProduct

public void setSubstituteRemovedProduct(boolean pSubstituteRemovedProduct)

isSubstituteRemovedProduct

public boolean isSubstituteRemovedProduct()
The property is checked to validate whether a CommerceItem that contains a product which has since been removed from the repository should be substituted with another product that represented the deleted product.

Returns:
true if the processor should deal with the removed product, false otherwise.

setSubstituteDeletedProductId

public void setSubstituteDeletedProductId(java.lang.String pSubstituteDeletedProductId)

getSubstituteDeletedProductId

public java.lang.String getSubstituteDeletedProductId()
This property specifies the id of the product that will represent all deleted products.

Returns:
the product id representing the deleted products

runProcess

public int runProcess(java.lang.Object pParam,
                      PipelineResult pResult)
               throws java.lang.Exception
This method sets the product references into the CommerceItems in the order. When an Order is saved its productRef is not persisted, but its id is. When the Order is loaded, the productRefId is loaded, but the productRef remains null. This processor takes the looks up the productRef in the ProductCatalog using the productRefId. This method requires that an Order and a CatalogTools object be supplied in pParam in a HashMap. Use the PipelineConstants class' static members to key the objects in the HashMap.

Specified by:
runProcess in interface PipelineProcessor
Parameters:
pParam - a HashMap which must contain an Order and a CatalogTools object
pResult - a PipelineResult object which stores any information which must be returned from this method invokation
Returns:
an integer specifying the processor's return code
Throws:
java.lang.Exception - throws any exception back to the caller
See Also:
PipelineProcessor.runProcess(Object, PipelineResult)

retrieveDeletedProductItem

public RepositoryItem retrieveDeletedProductItem(CatalogTools pCatalogTools,
                                                 java.lang.String pCatalogKey,
                                                 java.lang.String pOriginalProductId)
This method will return the RepositoryItem that represents all deleted products. It uses @see SubstituteDeletedProductId to lookup the product which should be used.

Parameters:
pCatalogTools - the catalog tools that contain the catalog repository
pCatalogKey - the catalog key that was being used to lookup the original product id.
pOriginalProductId - the product id for the item that was initially removed.
Returns:
the RepositoryItem which contains information explaining that a product has been deleted, null if the product is not found.

loadProductRef

protected void loadProductRef(CommerceItemContainer order,
                              CatalogTools catalogTools)
                       throws RepositoryException,
                              CommerceException
Throws:
RepositoryException
CommerceException