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.NameContextBindingListener, atg.naming.NameContextElement, atg.naming.NameResolver, atg.nucleus.AdminableService, 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.


Field Summary
static java.lang.String CLASS_VERSION
          Class version
protected  atg.commerce.pricing.PricingTools 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,atg.commerce.pricing.UnitPriceBean> generatePriceBeansForOrder(atg.commerce.order.Order pOrder)
          Generates price beans for an order specified.
protected  java.util.List<atg.commerce.pricing.UnitPriceBean> generatePriceBeansForRelationship(atg.commerce.order.ShippingGroupCommerceItemRelationship pRelationship)
          Generates price beans for a relationship specified.
 atg.commerce.pricing.PricingTools getPricingTools()
           
 void service(atg.servlet.DynamoHttpServletRequest pRequest, atg.servlet.DynamoHttpServletResponse pResponse)
           
 void setPricingTools(atg.commerce.pricing.PricingTools pPricingTools)
           
 
Methods inherited from class atg.servlet.DynamoServlet
doDelete, doGet, doPost, doPut, getParameter, getParameters, getServletContext, service, service, setParameter
 
Methods inherited from class atg.nucleus.servlet.ServletService
destroy, getServletConfig, getServletInfo, init, 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, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, 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, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
 
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


mPricingTools

protected atg.commerce.pricing.PricingTools mPricingTools
Pricing tools.

Constructor Detail

StorePriceBeansDroplet

public StorePriceBeansDroplet()
Method Detail

getPricingTools

public atg.commerce.pricing.PricingTools getPricingTools()
Returns:
the pricing tools.

setPricingTools

public void setPricingTools(atg.commerce.pricing.PricingTools 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
Overrides:
service in class atg.servlet.DynamoServlet
Throws:
javax.servlet.ServletException
java.io.IOException

generatePriceBeansForRelationship

protected java.util.List<atg.commerce.pricing.UnitPriceBean> generatePriceBeansForRelationship(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.

generatePriceBeansForOrder

protected java.util.Map<java.lang.String,atg.commerce.pricing.UnitPriceBean> 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.