atg.commerce.order.processor
Class ProcValidateShippingGroupsForCheckout

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

public class ProcValidateShippingGroupsForCheckout
extends ApplicationLoggingImpl
implements PipelineProcessor

This processor validates ShippingGroups before checking an Order out. The two main things which are checked for are that all CommerceItems in the Order are assigned to ShippingGroups and that all the required fields in all the ShippingGroups, regardless of type, are not null or empty String. The first check, that all CommerceItems are assigned to a ShippingGroup, first checks to see if there is only one ShippingGroup and it has no Relationships. If so, then all CommerceItems are implicitly assigned to that ShippingGroup. If there is more than one ShippingGroup or the ShippingGroup has at least one Relationship, then all CommerceItems must be assigned to one or more ShippingGroups. The CommerceItem's entire quantity must be assigned. The second check, that required fields are provided, iterates over all the ShippingGroups in the order and invokes a separate pipeline chain for each shipping group. The first processor in * that chain is responsible for examining the type of the shipping group and dispatching to an appropriate validation processor or processor chain that knows which fields are required for each shipping method.


Field Summary
static java.lang.String CLASS_VERSION
          Class version string
protected  int[] mRetCodes
          Returns the valid return codes.
 
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
ProcValidateShippingGroupsForCheckout()
           
 
Method Summary
protected  void addHashedError(PipelineResult pResult, java.lang.String pKey, java.lang.String pId, java.lang.Object pError)
          This method adds an error to the PipelineResult object.
 java.lang.String getLoggingIdentifier()
          Returns property LoggingIdentifier
 int[] getRetCodes()
          Returns an array of all the return codes that could be returned by this PipelineProcessor.
 java.lang.String getValidateShippingGroupChain()
          Get the name of the pipeline chain to run to validate each individual shipping group.
 int runProcess(java.lang.Object pParam, PipelineResult pResult)
          This method performs two checks on all the ShippingGroups in the given Order.
 void setLoggingIdentifier(java.lang.String pLoggingIdentifier)
          Sets property LoggingIdentifier
 void setValidateShippingGroupChain(java.lang.String pValidateShippingGroupChain)
          Set the name of the pipeline chain to run to validate each individual shipping group.
 
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


mRetCodes

protected int[] mRetCodes
Returns the valid return codes. This processor always returns a status of 1 indicating successful completion.

Constructor Detail

ProcValidateShippingGroupsForCheckout

public ProcValidateShippingGroupsForCheckout()
Method Detail

setValidateShippingGroupChain

public void setValidateShippingGroupChain(java.lang.String pValidateShippingGroupChain)
Set the name of the pipeline chain to run to validate each individual shipping group.


getValidateShippingGroupChain

public java.lang.String getValidateShippingGroupChain()
Get the name of the pipeline chain to run to validate each individual shipping group. The default chain name is "validateShippingGroup".


getRetCodes

public int[] getRetCodes()
Description copied from interface: PipelineProcessor
Returns an array of all the return codes that could be returned by this PipelineProcessor.

Specified by:
getRetCodes in interface PipelineProcessor
Returns:
an array of all the return codes that could be returned by this PipelineProcessor.

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

runProcess

public int runProcess(java.lang.Object pParam,
                      PipelineResult pResult)
               throws java.lang.Exception
This method performs two checks on all the ShippingGroups in the given Order. The first check is to see if all the CommerceItems in the Order are assigned to ShippingGroups. The second check is to determine if all the required properties are not null or empty String. This method requires that an Order, an OrderManager, and optionally a Locale 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, an OrderManager, and optionally a Locale 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)

addHashedError

protected void addHashedError(PipelineResult pResult,
                              java.lang.String pKey,
                              java.lang.String pId,
                              java.lang.Object pError)
This method adds an error to the PipelineResult object. This method, rather than just storing a single error object in pResult, stores a Map of errors. This allows more than one error to be stored using the same key in the pResult object. pKey is used to reference a HashMap of errors in pResult. So, calling pResult.getError(pKey) will return an object which should be cast to a Map. Each entry within the map is keyed by pId and its value is pError.

Parameters:
pResult - the PipelineResult object supplied in runProcess()
pKey - the key to use to store the HashMap in the PipelineResult object
pId - the key to use to store the error message within the HashMap in the PipelineResult object
pError - the error object to store in the HashMap
See Also:
PipelineResult, runProcess(Object, PipelineResult)