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.
static java.lang.String DEFAULT_PROFILE_TYPE
          This is the type of the profile that is created by the create operation.
protected  atg.repository.Repository mProfileRepository
          Repository.
protected  atg.userprofiling.ProfileTools mProfileTools
          Profile Tools
protected  java.lang.String mProfileType
          Profile Type
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()
           
 atg.userprofiling.ProfileTools getProfileTools()
           
 java.lang.String getProfileType()
           
 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 setProfileTools(atg.userprofiling.ProfileTools pProfileTools)
          Sets the property ProfileTools.
 void setProfileType(java.lang.String pProfileType)
          Sets the property ProfileType.
 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, 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

DEFAULT_PROFILE_TYPE

public static final java.lang.String DEFAULT_PROFILE_TYPE
This is the type of the profile that is created by the create operation.

See Also:
Constant Field Values

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 final java.lang.String RQL_QUERY_FIND_BISN_ITEMS
RQL query to find items.

See Also:
Constant Field Values

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.


mProfileTools

protected atg.userprofiling.ProfileTools mProfileTools
Profile Tools


mProfileType

protected java.lang.String mProfileType
Profile Type

Constructor Detail

BackInStockNotificationService

public BackInStockNotificationService()
Method Detail

setProfileTools

public void setProfileTools(atg.userprofiling.ProfileTools pProfileTools)
Sets the property ProfileTools.


getProfileTools

public atg.userprofiling.ProfileTools getProfileTools()
Returns:
The value of the property ProfileTools.

setProfileType

public void setProfileType(java.lang.String pProfileType)
Sets the property ProfileType.


getProfileType

public java.lang.String getProfileType()
Returns:
The value of the property ProfileType

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.