com.silverpeas.notification.delayed
Class DelayedNotificationManager

java.lang.Object
  extended by com.silverpeas.notification.delayed.DelayedNotificationManager
All Implemented Interfaces:
DelayedNotification

@Service
@Transactional
public class DelayedNotificationManager
extends Object
implements DelayedNotification

Author:
Yohann Chastagnier

Constructor Summary
DelayedNotificationManager()
           
 
Method Summary
 int deleteDelayedNotifications(Collection<Long> ids)
           
 void deleteDelayedNotificationUserSetting(DelayedNotificationUserSetting delayedNotificationUserSetting)
           
 void deleteDelayedNotificationUserSetting(int id)
           
 List<Integer> findAllUsersToBeNotified(Set<NotifChannel> aimedChannels)
           
 Map<NotifChannel,List<DelayedNotificationData>> findDelayedNotificationByUserIdGroupByChannel(int userId, Set<NotifChannel> aimedChannels)
           
 List<DelayedNotificationUserSetting> findDelayedNotificationUserSettingByUserId(int userId)
           
 List<Integer> findUsersToBeNotified(Date date, Set<NotifChannel> aimedChannels, DelayedNotificationFrequency defaultDelayedNotificationFrequency)
           
 DelayedNotificationFrequency getDefaultDelayedNotificationFrequency()
          Gets the default frequency from the file of notification manager settings.
 DelayedNotificationUserSetting getDelayedNotificationUserSetting(int id)
           
 DelayedNotificationUserSetting getDelayedNotificationUserSettingByUserIdAndChannel(int userId, NotifChannel channel)
           
 NotificationResourceData getExistingResource(String resourceId, String resourceType, String componentInstanceId)
           
 Set<DelayedNotificationFrequency> getPossibleFrequencies()
          Gets the possible frequencies.
 DelayedNotificationFrequency getUserFrequency(Integer userId, NotifChannel channel)
          Gets the user notification frequency
 Set<NotifChannel> getWiredChannels()
          For now, only the SMTP channel can be delayed (mail)
 void saveDelayedNotification(DelayedNotificationData delayedNotificationData)
           
 DelayedNotificationUserSetting saveDelayedNotificationUserSetting(int userId, NotifChannel channel, DelayedNotificationFrequency frequency)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DelayedNotificationManager

public DelayedNotificationManager()
Method Detail

findDelayedNotificationByUserIdGroupByChannel

@Transactional(readOnly=true)
public Map<NotifChannel,List<DelayedNotificationData>> findDelayedNotificationByUserIdGroupByChannel(int userId,
                                                                                                                   Set<NotifChannel> aimedChannels)
Specified by:
findDelayedNotificationByUserIdGroupByChannel in interface DelayedNotification

findAllUsersToBeNotified

@Transactional(readOnly=true)
public List<Integer> findAllUsersToBeNotified(Set<NotifChannel> aimedChannels)
Specified by:
findAllUsersToBeNotified in interface DelayedNotification

findUsersToBeNotified

@Transactional(readOnly=true)
public List<Integer> findUsersToBeNotified(Date date,
                                                         Set<NotifChannel> aimedChannels,
                                                         DelayedNotificationFrequency defaultDelayedNotificationFrequency)
Specified by:
findUsersToBeNotified in interface DelayedNotification

saveDelayedNotification

public void saveDelayedNotification(DelayedNotificationData delayedNotificationData)
Specified by:
saveDelayedNotification in interface DelayedNotification

deleteDelayedNotifications

public int deleteDelayedNotifications(Collection<Long> ids)
Specified by:
deleteDelayedNotifications in interface DelayedNotification

getExistingResource

@Transactional(readOnly=true)
public NotificationResourceData getExistingResource(String resourceId,
                                                                  String resourceType,
                                                                  String componentInstanceId)
Specified by:
getExistingResource in interface DelayedNotification

getDelayedNotificationUserSetting

@Transactional(readOnly=true)
public DelayedNotificationUserSetting getDelayedNotificationUserSetting(int id)
Specified by:
getDelayedNotificationUserSetting in interface DelayedNotification

findDelayedNotificationUserSettingByUserId

@Transactional(readOnly=true)
public List<DelayedNotificationUserSetting> findDelayedNotificationUserSettingByUserId(int userId)
Specified by:
findDelayedNotificationUserSettingByUserId in interface DelayedNotification

getDelayedNotificationUserSettingByUserIdAndChannel

@Transactional(readOnly=true)
public DelayedNotificationUserSetting getDelayedNotificationUserSettingByUserIdAndChannel(int userId,
                                                                                                        NotifChannel channel)
Specified by:
getDelayedNotificationUserSettingByUserIdAndChannel in interface DelayedNotification

saveDelayedNotificationUserSetting

public DelayedNotificationUserSetting saveDelayedNotificationUserSetting(int userId,
                                                                         NotifChannel channel,
                                                                         DelayedNotificationFrequency frequency)
Specified by:
saveDelayedNotificationUserSetting in interface DelayedNotification

deleteDelayedNotificationUserSetting

public void deleteDelayedNotificationUserSetting(int id)
Specified by:
deleteDelayedNotificationUserSetting in interface DelayedNotification

deleteDelayedNotificationUserSetting

public void deleteDelayedNotificationUserSetting(DelayedNotificationUserSetting delayedNotificationUserSetting)
Specified by:
deleteDelayedNotificationUserSetting in interface DelayedNotification

getWiredChannels

@Transactional(propagation=NOT_SUPPORTED)
public Set<NotifChannel> getWiredChannels()
Description copied from interface: DelayedNotification
For now, only the SMTP channel can be delayed (mail)

Specified by:
getWiredChannels in interface DelayedNotification
Returns:

getPossibleFrequencies

@Transactional(propagation=NOT_SUPPORTED)
public Set<DelayedNotificationFrequency> getPossibleFrequencies()
Description copied from interface: DelayedNotification
Gets the possible frequencies. At least, the default frequency.

Specified by:
getPossibleFrequencies in interface DelayedNotification
Returns:

getDefaultDelayedNotificationFrequency

@Transactional(propagation=NOT_SUPPORTED)
public DelayedNotificationFrequency getDefaultDelayedNotificationFrequency()
Description copied from interface: DelayedNotification
Gets the default frequency from the file of notification manager settings. If that not exists, DelayedNotificationFrequency.NONE is returned.

Specified by:
getDefaultDelayedNotificationFrequency in interface DelayedNotification
Returns:

getUserFrequency

@Transactional(readOnly=true)
public DelayedNotificationFrequency getUserFrequency(Integer userId,
                                                                   NotifChannel channel)
Description copied from interface: DelayedNotification
Gets the user notification frequency

Specified by:
getUserFrequency in interface DelayedNotification
Returns:


Copyright © 2016 Silverpeas. All Rights Reserved.