com.jalios.jcms
Class NotificationManager

java.lang.Object
  extended by com.jalios.jcms.NotificationManager
All Implemented Interfaces:
JcmsConstants, JaliosConstants

public class NotificationManager
extends Object
implements JcmsConstants

This class is instantiated by a Channel in method initAfterLoad() only if property 'notification.enabled' is set to true. The NotificationManager handles 4 alarms, one per hour, one per day, one per week, one per month. A single AlarmManager listens to these alarms and launches notifications threads (@see NotificationThread) each time an alarm is fired. CAUTION: NotificationThread checks the server is not 127.0.0.1 nor localhost, to avoid emails being sent by mistake while staging.

Version:
$Revision: 27753 $

Field Summary
protected  AlarmManager alarmMgr
           
static String CHANGES
           
protected  Channel channel
           
static int DAILY
           
protected  AlarmEntry dayAlarmEntry
           
static String DELETIONS
           
protected  AlarmEntry hourAlarmEntry
           
static int HOURLY
           
protected  AlarmEntry minuteAlarmEntry
           
static int MINUTED
           
protected  AlarmEntry monthAlarmEntry
           
static int MONTHLY
           
static int MUTATION_ALL
           
static int MUTATION_CREATE
           
static int MUTATION_MAJOR
           
static int[] MUTATION_TYPES
           
static String[] PERIOD_LABELS
           
static int[] PERIODS_1
           
static int[] PERIODS_2
           
protected  int reinit
          Variable used to reinitialize the NotificationManager in case a PastDateException is thrown in initialization stage.
static String REVISION
           
static int USE_CRITERIA_GROUP_AND_MEMBER
           
static int USE_CRITERIA_GROUP_ONLY
           
static int USE_CRITERIA_MEMBER_ONLY
           
protected  AlarmEntry weekAlarmEntry
           
static int WEEKLY
           
 
Fields inherited from interface com.jalios.jcms.JcmsConstants
ADATE_SEARCH, ADMIN_NOTES_PROP, ADVANCED_TAB, ARCHIVES_DIR, ASCII_WIDTH, CATEGORY_TAB, CDATE_SEARCH, COMMON_ALARM, CONTENT_TAB, COOKIE_MAX_AGE, CTRL_TOPIC_INTERNAL, CTRL_TOPIC_REF, CTRL_TOPIC_VALUE, CTRL_TOPIC_WRITE, CUSTOM_PROP, DOCCHOOSER_HEIGHT, DOCCHOOSER_WIDTH, DOCS_DIR, EDATE_SEARCH, EMAIL_REGEXP, ERROR_MSG, FORBIDDEN_FILE_ACCESS, FORBIDDEN_REDIRECT, FORCE_REDIRECT, ICON_ARCHIVE, ICON_LOCK, ICON_LOCK_STRONG, ICON_WARN, ICON_WH_BOOK_CLOSED, ICON_WH_BOOK_OPEN, INFORMATION_MSG, JALIOS_JUNIT_PROP, JCMS_CADDY, JCMS_MSG_LIST, JSYNC_DOWNLOAD_DIR, JSYNC_SYNC_ALARM, LOG_FILE, LOG_TOPIC_SECURITY, LOGGER_PROP, LOGGER_XMLPROP, MBR_PHOTO_DIR, MDATE_SEARCH, MONITOR_XML, OP_CREATE, OP_DEEP_COPY, OP_DEEP_DELETE, OP_DELETE, OP_MERGE, OP_UPDATE, PDATE_SEARCH, PHOTO_DIR, PHOTO_ICON, PHOTO_ICON_HEIGHT, PHOTO_ICON_WIDTH, PHOTO_LARGE, PHOTO_LARGE_HEIGHT, PHOTO_LARGE_WIDTH, PHOTO_NORMAL, PHOTO_NORMAL_HEIGHT, PHOTO_NORMAL_WIDTH, PHOTO_SMALL, PHOTO_SMALL_HEIGHT, PHOTO_SMALL_WIDTH, PHOTO_TINY, PHOTO_TINY_HEIGHT, PHOTO_TINY_WIDTH, PREVIOUS_TAB, PRINT_VIEW, PRIVATE_FILE_ACCESS, PUBLIC_FILE_ACCESS, READ_RIGHT_TAB, SDATE_SEARCH, SEARCHENGINE_ALARM, SESSION_AUTHORIZED_FILENAMES_SET, STATS_REPORT_DIR, STATUS_PROP, STORE_XML, TEMPLATE_TAB, THUMBNAIL_LARGE_HEIGHT, THUMBNAIL_LARGE_WIDTH, THUMBNAIL_SMALL_HEIGHT, THUMBNAIL_SMALL_WIDTH, UDATE_SEARCH, UPDATE_RIGHT_TAB, UPLOAD_DIR, URL_REGEXP, WARNING_MSG, WEBAPP_PROP, WFEXPRESS_ALARM, WFREMINDER_ALARM, WORKFLOW_TAB, WORKFLOW_XML
 
Fields inherited from interface com.jalios.util.JaliosConstants
CRLF, MILLIS_IN_ONE_DAY, MILLIS_IN_ONE_HOUR, MILLIS_IN_ONE_MINUTE, MILLIS_IN_ONE_MONTH, MILLIS_IN_ONE_SECOND, MILLIS_IN_ONE_WEEK, MILLIS_IN_ONE_YEAR
 
Constructor Summary
NotificationManager()
           
 
Method Summary
static int[] getAvailableMutationTypes()
           
static int[] getAvailablePeriods()
           
static Set<NotificationCriteria> getGroupsCriteriaSet(Member member)
           
static String getMutationTypeLabel(int mutationType)
           
static NotificationCriteria[] getNotificationCriteria(Member member)
           
static String getPeriodLabel(int period)
          Retrieve the property used to retrieve label of the specified period.
static String[] getPeriodLabels()
           
 void init()
           
static boolean isDefault(Notification notification)
          Tell if the given notification is equivalent to no notification at all.
static boolean isDefault(NotificationCriteria[] criterias, int selectionCriteriaMode)
           
static boolean isSameCriteria(NotificationCriteria[] criterias1, NotificationCriteria[] criterias2)
          Compares two arrays of NotificationCriteria
static boolean isSameCriteria(NotificationCriteria criteria1, NotificationCriteria criteria2)
          Compares two NotificationCriteria
 void processNotification(int period)
          Launches a thread that notifies all members who have requested to be alerted of specific changes at each period.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

REVISION

public static final String REVISION
See Also:
Constant Field Values

alarmMgr

protected AlarmManager alarmMgr

channel

protected Channel channel

USE_CRITERIA_GROUP_AND_MEMBER

public static final int USE_CRITERIA_GROUP_AND_MEMBER
See Also:
Constant Field Values

USE_CRITERIA_MEMBER_ONLY

public static final int USE_CRITERIA_MEMBER_ONLY
See Also:
Constant Field Values

USE_CRITERIA_GROUP_ONLY

public static final int USE_CRITERIA_GROUP_ONLY
See Also:
Constant Field Values

HOURLY

public static final int HOURLY
See Also:
Constant Field Values

DAILY

public static final int DAILY
See Also:
Constant Field Values

WEEKLY

public static final int WEEKLY
See Also:
Constant Field Values

MONTHLY

public static final int MONTHLY
See Also:
Constant Field Values

MINUTED

public static final int MINUTED
See Also:
Constant Field Values

PERIODS_1

public static final int[] PERIODS_1

PERIODS_2

public static final int[] PERIODS_2

MUTATION_CREATE

public static final int MUTATION_CREATE
See Also:
Constant Field Values

MUTATION_MAJOR

public static final int MUTATION_MAJOR
See Also:
Constant Field Values

MUTATION_ALL

public static final int MUTATION_ALL
See Also:
Constant Field Values

MUTATION_TYPES

public static final int[] MUTATION_TYPES

PERIOD_LABELS

public static final String[] PERIOD_LABELS

CHANGES

public static final String CHANGES
See Also:
Constant Field Values

DELETIONS

public static final String DELETIONS
See Also:
Constant Field Values

reinit

protected int reinit
Variable used to reinitialize the NotificationManager in case a PastDateException is thrown in initialization stage.


minuteAlarmEntry

protected AlarmEntry minuteAlarmEntry

hourAlarmEntry

protected AlarmEntry hourAlarmEntry

dayAlarmEntry

protected AlarmEntry dayAlarmEntry

weekAlarmEntry

protected AlarmEntry weekAlarmEntry

monthAlarmEntry

protected AlarmEntry monthAlarmEntry
Constructor Detail

NotificationManager

public NotificationManager()
Method Detail

init

public void init()

processNotification

public void processNotification(int period)
Launches a thread that notifies all members who have requested to be alerted of specific changes at each period.

Parameters:
period - The period type

getAvailablePeriods

public static int[] getAvailablePeriods()

getAvailableMutationTypes

public static int[] getAvailableMutationTypes()

getPeriodLabels

public static String[] getPeriodLabels()

getPeriodLabel

public static String getPeriodLabel(int period)
Retrieve the property used to retrieve label of the specified period.

Parameters:
period - a period constant from : MINUTED, HOURLY, DAILY, WEEKLY or MONTHLY
Returns:
a property e.g "ui.work.notification.sch.hour"

getMutationTypeLabel

public static String getMutationTypeLabel(int mutationType)

getNotificationCriteria

public static NotificationCriteria[] getNotificationCriteria(Member member)

getGroupsCriteriaSet

public static Set<NotificationCriteria> getGroupsCriteriaSet(Member member)

isDefault

public static boolean isDefault(Notification notification)
Tell if the given notification is equivalent to no notification at all.

Parameters:
notification -
Returns:
true is notification is equivalent to no notification at all.
Since:
JCMS-5.7.5

isDefault

public static boolean isDefault(NotificationCriteria[] criterias,
                                int selectionCriteriaMode)

isSameCriteria

public static boolean isSameCriteria(NotificationCriteria[] criterias1,
                                     NotificationCriteria[] criterias2)
Compares two arrays of NotificationCriteria

Parameters:
criterias1 -
criterias2 -
Returns:
true if they can be considered as equivalent
Since:
JCMS-5.7.5

isSameCriteria

public static boolean isSameCriteria(NotificationCriteria criteria1,
                                     NotificationCriteria criteria2)
Compares two NotificationCriteria

Parameters:
criteria1 -
criteria2 -
Returns:
true if they can be considered as equivalent
Since:
JCMS-5.7.5


Copyright © 2001-2010 Jalios SA. All Rights Reserved.