atg.commerce.pricing.priceLists
Class ItemListPriceCalculator

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.commerce.pricing.priceLists.ItemListPriceCalculator
All Implemented Interfaces:
ItemPriceSourceHandler, ItemSchemePriceCalculator, NameContextBindingListener, NameContextElement, NameResolver, AdminableService, ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, VariableArgumentApplicationLogging, ComponentNameResolver, Service, ServiceListener, java.util.EventListener

public class ItemListPriceCalculator
extends GenericService
implements ItemSchemePriceCalculator, ItemPriceSourceHandler

A calculator which determines the list price of an item and sets the itemPriceInfo to be that amount. The pricing scheme for that item is list pricing.

See Also:
ItemSchemePriceCalculator

Field Summary
static java.lang.String CLASS_VERSION
          Class version string
 
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
ItemListPriceCalculator()
           
 
Method Summary
 ItemPriceSource getItemPriceSource(ItemPriceInfo pPriceQuote, CommerceItem pItem, RepositoryItem pPricingModel, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters)
          This method is called by the calculator to return the ItemPriceSource that should be used to price the given CommerceItem
 java.lang.Double getListPrice(ItemPriceSource pItemPriceSource, RepositoryItem pPrice, ItemPriceInfo pPriceQuote, CommerceItem pItem, RepositoryItem pPricingModel, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters)
          This method is called by the calculator to provide the list price to price the given commerce item.
 java.lang.String getListPricePropertyName()
          the name of the property for the ListPrice
 PricingTools getPricingTools()
          pricing tools to help with price calculation
 boolean populateItemPriceSource(ItemPriceSource pItemPriceSource, Order pOrder, CommerceItem pCommerceItem, CommerceItem pParentCommerceItem, java.util.Map pExtraParameters)
          Sets the listPrice property of the ItemPriceSource based on this calculator's PricingAdjustments totalAdjustment and quantityAdjusted values.
 void priceItem(RepositoryItem pPrice, ItemPriceInfo pPriceQuote, CommerceItem pItem, RepositoryItem pPricingModel, java.util.Locale pLocale, RepositoryItem pProfile, java.util.Map pExtraParameters)
          Sets the list price with the given determined price
 void setListPricePropertyName(java.lang.String pListPricePropertyName)
          the name of the property for the ListPrice
 void setPricingTools(PricingTools pPricingTools)
          pricing tools to help with price calculation
 boolean shouldConsumeSource(ItemPriceSource pItemPriceSource)
          This method is called to determine the given source should be used by the calculator to price the item.
 
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 string

Constructor Detail

ItemListPriceCalculator

public ItemListPriceCalculator()
Method Detail

setPricingTools

public void setPricingTools(PricingTools pPricingTools)
pricing tools to help with price calculation

Parameters:
pPricingTools - new value to set

getPricingTools

public PricingTools getPricingTools()
pricing tools to help with price calculation

Returns:
property PricingTools

setListPricePropertyName

public void setListPricePropertyName(java.lang.String pListPricePropertyName)
the name of the property for the ListPrice

Parameters:
pListPricePropertyName - new value to set

getListPricePropertyName

public java.lang.String getListPricePropertyName()
the name of the property for the ListPrice

Returns:
property ListPricePropertyName

getListPrice

public java.lang.Double getListPrice(ItemPriceSource pItemPriceSource,
                                     RepositoryItem pPrice,
                                     ItemPriceInfo pPriceQuote,
                                     CommerceItem pItem,
                                     RepositoryItem pPricingModel,
                                     java.util.Locale pLocale,
                                     RepositoryItem pProfile,
                                     java.util.Map pExtraParameters)
                              throws PricingException
This method is called by the calculator to provide the list price to price the given commerce item.

This method first checks for a ItemPriceSource and returns its list price. Otherwise, it returns the list price from the given price repository item.

Parameters:
pItemPriceSource - the ItemPriceSource that is being use to price the item. The value can be null when no source is being used.
pPrice - the price object found for the item. This value can be null when a price source is being used.
pPriceQuote - the current price info
pItem - the item being priced
pPricingModel -
pLocale -
pProfile -
pExtraParameters - the extra parameter map
Returns:
the list price
Throws:
PricingException

getItemPriceSource

public ItemPriceSource getItemPriceSource(ItemPriceInfo pPriceQuote,
                                          CommerceItem pItem,
                                          RepositoryItem pPricingModel,
                                          java.util.Locale pLocale,
                                          RepositoryItem pProfile,
                                          java.util.Map pExtraParameters)
This method is called by the calculator to return the ItemPriceSource that should be used to price the given CommerceItem

Specified by:
getItemPriceSource in interface ItemPriceSourceHandler
Parameters:
pPriceQuote - the new ItemPriceInfo for that's being generated in the pricing operation
pItem - the commerce item that's being priced
pPricingModel - the current pricing model
pLocale - the locale
pProfile - the customer profile reference
pExtraParameters - the extra parameter map passed to the pricing operation.
Returns:
If not null, the ItemPriceSource that should be used to price the item.
See Also:
PricingTools.getItemPriceSource(ItemPriceInfo, CommerceItem, RepositoryItem, Locale, RepositoryItem, Map)

priceItem

public void priceItem(RepositoryItem pPrice,
                      ItemPriceInfo pPriceQuote,
                      CommerceItem pItem,
                      RepositoryItem pPricingModel,
                      java.util.Locale pLocale,
                      RepositoryItem pProfile,
                      java.util.Map pExtraParameters)
               throws PricingException
Sets the list price with the given determined price

Specified by:
priceItem in interface ItemSchemePriceCalculator
Parameters:
pPrice - the price as extracted from the PriceList
pPriceQuote - ItemPriceInfo representing the current price quote for the item
pItem - The item to price
pPricingModel - A RepositoryItem representing a PricingModel
pLocale - the locale in which this item should be priced
pProfile - The user's profile
pExtraParameters - A Map of extra parameters to be used in the pricing, may be null
Throws:
PricingException - if there was a problem pricing the input pItem

populateItemPriceSource

public boolean populateItemPriceSource(ItemPriceSource pItemPriceSource,
                                       Order pOrder,
                                       CommerceItem pCommerceItem,
                                       CommerceItem pParentCommerceItem,
                                       java.util.Map pExtraParameters)
Sets the listPrice property of the ItemPriceSource based on this calculator's PricingAdjustments totalAdjustment and quantityAdjusted values.

Specified by:
populateItemPriceSource in interface ItemPriceSourceHandler
Parameters:
pItemPriceSource - the source being generated and populated with pricing data.
pOrder - the Order that contains the commerce item
pCommerceItem - the item for which the source is being created
pParentCommerceItem - the item that contained pCommerceItem
pExtraParameters - an extra parameter map that was original passed to the call to generate the source objects
Returns:
return true if the list price is set.

shouldConsumeSource

public boolean shouldConsumeSource(ItemPriceSource pItemPriceSource)
This method is called to determine the given source should be used by the calculator to price the item. A false return means the calculator will bypass its processing completely and return normally.

This implementation always returns true since the parent price list calculator decides which scheme calculator should price the item based on the priceListScheme in the ItemPriceSource

Specified by:
shouldConsumeSource in interface ItemPriceSourceHandler