atg.projects.store.collections.validator
Class ExcludeItemsInCartValidator

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.projects.store.collections.validator.ExcludeItemsInCartValidator
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.service.collections.validator.CollectionObjectValidator, java.util.EventListener

public class ExcludeItemsInCartValidator
extends atg.nucleus.GenericService
implements atg.service.collections.validator.CollectionObjectValidator

This validator generates filtered results based on the products in the current order. All products in the unfiltered collection that are in the current order are excluded from the filtered results. This validator is useful for filtering upsell products or related products etc. to prevent promoting a product that is already in the cart.

Version:
$Id: //hosting-blueprint/B2CBlueprint/version/10.2/EStore/src/atg/projects/store/collections/validator/ExcludeItemsInCartValidator.java#2 $Change: 630322 $
Author:
Yekaterina Kostenevich

Field Summary
static java.lang.String CLASS_VERSION
          Class version string
protected  atg.commerce.catalog.CatalogTools mCatalogTools
          property: catalogTools
protected  java.lang.String mShoppingCartPath
          property: shoppingCartPath
 
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
ExcludeItemsInCartValidator()
           
 
Method Summary
protected  java.util.Collection createProductIdCollection(atg.commerce.order.Order pOrder)
          This method creates a collection of product ids.
protected  java.lang.String findCommerceItemProductId(atg.commerce.order.CommerceItem pCommerceItem)
          This method returns the product id associated with a commerce item.
 atg.commerce.order.Order findOrder()
          Finds the current order using the nucleus specified by the shoppingCartPath property.
 atg.commerce.catalog.CatalogTools getCatalogTools()
           
 java.lang.String getShoppingCartPath()
           
 void setCatalogTools(atg.commerce.catalog.CatalogTools pCatalogTools)
           
 void setShoppingCartPath(java.lang.String pShoppingCartPath)
           
 boolean shouldApplyValidator()
          Check if validator should be applied.
 boolean validateObject(java.lang.Object pObject)
          This method validates the passed in product based on the products in the current order.
 
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 string

See Also:
Constant Field Values

mShoppingCartPath

protected java.lang.String mShoppingCartPath
property: shoppingCartPath


mCatalogTools

protected atg.commerce.catalog.CatalogTools mCatalogTools
property: catalogTools

Constructor Detail

ExcludeItemsInCartValidator

public ExcludeItemsInCartValidator()
Method Detail

setShoppingCartPath

public void setShoppingCartPath(java.lang.String pShoppingCartPath)
Parameters:
pShoppingCartPath - the shopping cart nucleus path to set

getShoppingCartPath

public java.lang.String getShoppingCartPath()
Returns:
the shopping cart nucleus path

setCatalogTools

public void setCatalogTools(atg.commerce.catalog.CatalogTools pCatalogTools)
Parameters:
pCatalogTools - the CatalogTools to set

getCatalogTools

public atg.commerce.catalog.CatalogTools getCatalogTools()
Returns:
the CatalogTools

validateObject

public boolean validateObject(java.lang.Object pObject)
This method validates the passed in product based on the products in the current order.

Specified by:
validateObject in interface atg.service.collections.validator.CollectionObjectValidator
Parameters:
pObject - product to validate
Returns:
true if pObject passes validation or if no validation was carried out, otherwise false.

findOrder

public atg.commerce.order.Order findOrder()
Finds the current order using the nucleus specified by the shoppingCartPath property.

Returns:
the order

shouldApplyValidator

public boolean shouldApplyValidator()
Check if validator should be applied. Return false if the order does not have commerce items in it.

Returns:
true if validator should be applied.

findCommerceItemProductId

protected java.lang.String findCommerceItemProductId(atg.commerce.order.CommerceItem pCommerceItem)
This method returns the product id associated with a commerce item.

Parameters:
pCommerceItem - the commerce item
Returns:
the product id. Null is returned if the commerce item does not reference a product id in the auxiliary data.

createProductIdCollection

protected java.util.Collection createProductIdCollection(atg.commerce.order.Order pOrder)
This method creates a collection of product ids. A product id is included for each product commerce item in the order.

Parameters:
pOrder - the order
Returns:
a collection of product ids.