atg.projects.store.inventory
Class BackInStockNotificationService

java.lang.Object
  extended by atg.nucleus.logging.VariableArgumentApplicationLoggingImpl
      extended by atg.nucleus.GenericService
          extended by atg.projects.store.inventory.BackInStockNotificationService
All Implemented Interfaces:
atg.dms.patchbay.MessageSink, 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, java.util.EventListener

public class BackInStockNotificationService
extends atg.nucleus.GenericService
implements atg.dms.patchbay.MessageSink

This class will be used to notify users when an item is back in stock. It will subscribe to a queue to listen for "UpdateInventory" messages which are only fired when an item goes from Out of Stock to In Stock.


Field Summary
static java.lang.String CLASS_VERSION
          Class version string.
protected  atg.repository.Repository mProfileRepository
          Repository.
protected  StorePropertyManager mPropertyManager
          Property manager.
protected  atg.userprofiling.email.TemplateEmailInfo mTemplateEmailInfo
          Template e-mail information.
protected  atg.userprofiling.email.TemplateEmailSender mTemplateEmailSender
          Template e-mail sender.
static java.lang.String PARAM_PRODUCT_ID
          Product id parameter name.
static java.lang.String PARAM_SKU_ID
          Sku id parameter name.
protected static java.lang.String RQL_QUERY_FIND_BISN_ITEMS
          RQL query to find items.
 
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
BackInStockNotificationService()
           
 
Method Summary
protected  void deleteItemsFromRepository(atg.repository.RepositoryItem[] pItems)
          Helper method to delete repository items.
 void doStartService()
          Initialize service in this method.
 atg.repository.Repository getProfileRepository()
           
 StorePropertyManager getPropertyManager()
           
 atg.userprofiling.email.TemplateEmailInfo getTemplateEmailInfo()
           
 atg.userprofiling.email.TemplateEmailSender getTemplateEmailSender()
           
 void receiveMessage(java.lang.String pPortName, javax.jms.Message pMessage)
          The method called when a message is delivered.
protected  atg.repository.RepositoryItem[] retrieveBackInStockNotifyItems(java.lang.String pSkuId)
          Perform the query to retrieve appropriate back in stock repository items.
protected  void sendBackInStockNotifications(atg.commerce.fulfillment.UpdateInventory pMessage)
          Notify users when an item is back in stock.
protected  void sendEmail(atg.repository.RepositoryItem[] pItems)
          Helper method to do the actual email sending.
 void setProfileRepository(atg.repository.Repository repository)
           
 void setPropertyManager(StorePropertyManager manager)
           
 void setTemplateEmailInfo(atg.userprofiling.email.TemplateEmailInfo info)
           
 void setTemplateEmailSender(atg.userprofiling.email.TemplateEmailSender sender)
           
 
Methods inherited from class atg.nucleus.GenericService
addLogListener, createAdminServlet, 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.


PARAM_SKU_ID

public static final java.lang.String PARAM_SKU_ID
Sku id parameter name.

See Also:
Constant Field Values

PARAM_PRODUCT_ID

public static final java.lang.String PARAM_PRODUCT_ID
Product id parameter name.

See Also:
Constant Field Values

RQL_QUERY_FIND_BISN_ITEMS

protected static java.lang.String RQL_QUERY_FIND_BISN_ITEMS
RQL query to find items.


mTemplateEmailSender

protected atg.userprofiling.email.TemplateEmailSender mTemplateEmailSender
Template e-mail sender.


mProfileRepository

protected atg.repository.Repository mProfileRepository
Repository.


mPropertyManager

protected StorePropertyManager mPropertyManager
Property manager.


mTemplateEmailInfo

protected atg.userprofiling.email.TemplateEmailInfo mTemplateEmailInfo
Template e-mail information.

Constructor Detail

BackInStockNotificationService

public BackInStockNotificationService()
Method Detail

doStartService

public void doStartService()
Initialize service in this method.

Overrides:
doStartService in class atg.nucleus.GenericService

receiveMessage

public void receiveMessage(java.lang.String pPortName,
                           javax.jms.Message pMessage)
                    throws javax.jms.JMSException
The method called when a message is delivered.

Specified by:
receiveMessage in interface atg.dms.patchbay.MessageSink
Parameters:
pPortName - - the message port
pMessage - - the JMS message being received
Throws:
javax.jms.JMSException - if message error occurs

sendBackInStockNotifications

protected void sendBackInStockNotifications(atg.commerce.fulfillment.UpdateInventory pMessage)
Notify users when an item is back in stock.

Parameters:
pMessage - - message to send

deleteItemsFromRepository

protected void deleteItemsFromRepository(atg.repository.RepositoryItem[] pItems)
                                  throws atg.repository.RepositoryException
Helper method to delete repository items.

Parameters:
pItems - - items to delete
Throws:
atg.repository.RepositoryException - if repository error occurs

sendEmail

protected void sendEmail(atg.repository.RepositoryItem[] pItems)
                  throws atg.userprofiling.email.TemplateEmailException
Helper method to do the actual email sending.

Parameters:
pItems - - items
Throws:
atg.userprofiling.email.TemplateEmailException - If an exception occurs while fetching the template for the emial to be send.

retrieveBackInStockNotifyItems

protected atg.repository.RepositoryItem[] retrieveBackInStockNotifyItems(java.lang.String pSkuId)
                                                                  throws atg.repository.RepositoryException
Perform the query to retrieve appropriate back in stock repository items.

Parameters:
pSkuId - - sku ids
Returns:
repository items
Throws:
atg.repository.RepositoryException - if repository error occurs

getTemplateEmailSender

public atg.userprofiling.email.TemplateEmailSender getTemplateEmailSender()
Returns:
template e-mail semder information.

setTemplateEmailSender

public void setTemplateEmailSender(atg.userprofiling.email.TemplateEmailSender sender)
Parameters:
sender - - template e-mail sender information.

getProfileRepository

public atg.repository.Repository getProfileRepository()
Returns:
profile repository.

setProfileRepository

public void setProfileRepository(atg.repository.Repository repository)
Parameters:
repository - - profile repository.

getPropertyManager

public StorePropertyManager getPropertyManager()
Returns:
property manager.

setPropertyManager

public void setPropertyManager(StorePropertyManager manager)
Parameters:
manager - - property manager.

getTemplateEmailInfo

public atg.userprofiling.email.TemplateEmailInfo getTemplateEmailInfo()
Returns:
template e-mail information.

setTemplateEmailInfo

public void setTemplateEmailInfo(atg.userprofiling.email.TemplateEmailInfo info)
Parameters:
info - - template e-mail information.