atg.projects.store.droplet
Class StorePriceBeansDroplet

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.nucleus.TimedOperationService
              extended by atg.nucleus.servlet.ServletService
                  extended by atg.nucleus.servlet.HttpServletService
                      extended by atg.servlet.DynamoServlet
                          extended by atg.projects.store.droplet.StorePriceBeansDroplet
All Implemented Interfaces:
atg.naming.AbsoluteNameable, atg.naming.NameContextBindingListener, atg.naming.NameContextElement, atg.naming.NameContextParentable, atg.naming.NameResolver, atg.nucleus.AdminableService, atg.nucleus.Configured, atg.nucleus.logging.ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, atg.nucleus.logging.VariableArgumentApplicationLogging, atg.nucleus.naming.ComponentNameResolver, atg.nucleus.Service, atg.nucleus.ServiceListener, atg.servlet.ParameterServlet, java.util.EventListener, javax.servlet.Servlet

public class StorePriceBeansDroplet
extends atg.servlet.DynamoServlet

This droplet generates UnitPriceBeans for the whole order, or for the shipping-group-commerce-item relationship. If an order is specified, there would be generated price beans with quantity equal to 1 (always) for each item in the order specified. If a relationship is specified, price beans for this relationship would be generated, there also would be calculated total amount for the relationthip specified.
This droplet always serves 'output' oparam. If there is 'order' input parameter specified, it would set 'priceBeansMap' output parameter calculated with generatePriceBeansForOrder(Order) method. If there is 'relationship' input parameter set, it would set 'priceBeans', 'priceBeansQuantity' and 'priceBeansAmount' output parameters, see #generatePriceBeansForRelationship(ShippingGroupCommerceItemRelationship) for details.

Version:
$Id: //hosting-blueprint/B2CBlueprint/version/10.2.1/EStore/src/atg/projects/store/droplet/StorePriceBeansDroplet.java#3 $$Change: 788983 $
Author:
ATG

Field Summary
static java.lang.String CLASS_VERSION
          Class version
protected  StorePricingTools mPricingTools
          Pricing tools.
 
Fields inherited from class atg.servlet.DynamoServlet
mAllowCleanupRequest, mParameters
 
Fields inherited from class atg.nucleus.servlet.ServletService
SERVLET_INFO_KEY
 
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
StorePriceBeansDroplet()
           
 
Method Summary
protected  java.util.Map<java.lang.String,StoreUnitPriceBean> generatePriceBeansForOrder(atg.commerce.order.Order pOrder)
          Generates price beans for an order specified.
protected  java.util.List<StoreUnitPriceBean> generatePriceBeansForRelationship(atg.commerce.order.Order pOrder, atg.commerce.order.ShippingGroupCommerceItemRelationship pRelationship)
          Generates price beans for a relationship specified.
protected  long getGwpPriceBeansQuantity(java.util.Collection<StoreUnitPriceBean> pPriceBeans)
          Returns total quantity of GWP items in the list of price beans.
 StorePricingTools getPricingTools()
           
 void service(atg.servlet.DynamoHttpServletRequest pRequest, atg.servlet.DynamoHttpServletResponse pResponse)
          Provides the implementation of service method.
 void setPricingTools(StorePricingTools pPricingTools)
           
 
Methods inherited from class atg.servlet.DynamoServlet
doDelete, doGet, doPost, doPut, getParameter, getParameters, getServletContext, init, service, service, setParameter
 
Methods inherited from class atg.nucleus.servlet.ServletService
destroy, getServletConfig, getServletInfo, setServletInfo
 
Methods inherited from class atg.nucleus.TimedOperationService
getAverageRequestHandlingTime, getHandledRequestCount, getRequestStartTime, getTotalRequestHandlingTime, isKeepingStatistics, notifyHandledRequest, resetStatistics, setKeepingStatistics
 
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
Class version

See Also:
Constant Field Values

mPricingTools

protected StorePricingTools mPricingTools
Pricing tools.

Constructor Detail

StorePriceBeansDroplet

public StorePriceBeansDroplet()
Method Detail

getPricingTools

public StorePricingTools getPricingTools()
Returns:
the pricing tools.

setPricingTools

public void setPricingTools(StorePricingTools pPricingTools)
Parameters:
pPricingTools - - the pricing tools to set.

service

public void service(atg.servlet.DynamoHttpServletRequest pRequest,
                    atg.servlet.DynamoHttpServletResponse pResponse)
             throws javax.servlet.ServletException,
                    java.io.IOException
Provides the implementation of service method.

Overrides:
service in class atg.servlet.DynamoServlet
Parameters:
pRequest - the request to be processed
pResponse - the response object for this request
Throws:
javax.servlet.ServletException - an application specific error occurred processing this request
java.io.IOException - an error occurred reading data from the request or writing data to the response.

generatePriceBeansForRelationship

protected java.util.List<StoreUnitPriceBean> generatePriceBeansForRelationship(atg.commerce.order.Order pOrder,
                                                                               atg.commerce.order.ShippingGroupCommerceItemRelationship pRelationship)
Generates price beans for a relationship specified. This method takes all commerce item's price infos with range located within relationship's range. For each price info it creates a price bean.

Parameters:
pRelationship - - specifies a shipping-group-commerce-item relationsip to build price beans from.
Returns:
list of price beans for the relationship specified.

getGwpPriceBeansQuantity

protected long getGwpPriceBeansQuantity(java.util.Collection<StoreUnitPriceBean> pPriceBeans)
Returns total quantity of GWP items in the list of price beans.

Parameters:
pPriceBeans - The list of price beans to calculate GWP quantity for.
Returns:
The total quantity of GWP items in the list of price beans.

generatePriceBeansForOrder

protected java.util.Map<java.lang.String,StoreUnitPriceBean> generatePriceBeansForOrder(atg.commerce.order.Order pOrder)
Generates price beans for an order specified. This method iterates over all order's commerce items and generates price beans for each item. Each price bean will have a quantity of 1, that is for commerce item with quantity 2 will be created 2 price beans.

Parameters:
pOrder - - order to build price beans from.
Returns:
list of price beans mapped by apropriate commerce item ID.