atg.commerce.fulfillment.processor
Class ProcSplitShippingGroupsForFulfillment

java.lang.Object
  extended by atg.commerce.fulfillment.processor.ProcSplitShippingGroupsForFulfillment
All Implemented Interfaces:
PipelineProcessor

public class ProcSplitShippingGroupsForFulfillment
extends java.lang.Object
implements PipelineProcessor

This processor splits the shipping groups passed in the order if the shipping groups are to be fulfilled by more than one fulfiller


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
 
Constructor Summary
ProcSplitShippingGroupsForFulfillment()
           
 
Method Summary
 int[] getRetCodes()
          Returns the valid return codes 1 - The processor completed
 int runProcess(java.lang.Object pParam, PipelineResult pResult)
          This processor splits the shipping groups passed in the order if the shipping groups are to be fulfilled by more than one fulfiller This method requires that an Order and OrderFulfiller object be supplied in pParam in a HashMap.
protected  java.util.List splitShippingGroups(OrderFulfiller of, Order pOrder, java.util.List pShippingGroupsToBeSplit, java.util.List pModificationList)
          This method will split the shipping groups specified by whatever business logic is required.
 
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

ProcSplitShippingGroupsForFulfillment

public ProcSplitShippingGroupsForFulfillment()
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.

runProcess

public int runProcess(java.lang.Object pParam,
                      PipelineResult pResult)
               throws java.lang.Exception
This processor splits the shipping groups passed in the order if the shipping groups are to be fulfilled by more than one fulfiller This method requires that an Order and OrderFulfiller 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 OrderFulfiller 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)

splitShippingGroups

protected java.util.List splitShippingGroups(OrderFulfiller of,
                                             Order pOrder,
                                             java.util.List pShippingGroupsToBeSplit,
                                             java.util.List pModificationList)
                                      throws CommerceException
This method will split the shipping groups specified by whatever business logic is required. The default implementation will be splitting the shipping groups according to fulfillers and will use the OrderFulfillmentTools.splitShippingGroupsByFulfiller. Should the implementor wish to choose a different algorithm for how shipping groups are split, this method should be overriden.

Parameters:
pOrder - the order which contains the shipping groups to be split
pShippingGroupsToBeSplit - the List of @see ShippingGroup objects that need to be split
Returns:
a List of the shipping groups that have been newly created.
Throws:
CommerceException
See Also:
OrderFulfillmentTools.splitShippingGroupsByFulfiller(atg.commerce.order.Order, java.util.List, java.util.List)