public class AlarmThresholdFilter extends Object implements NotificationFilter
AlarmNotifications until a specified number have occurred within a specified time period. Once the threshold has been reached, the next equivalent alarm notification is allowed through the filter, and the cycle restarts. The cycle also restarts if the time period from the first notification expires without a notification being sent. This filter can be used to suppress alarms that occur and then clear up spontaneously.
Formally: Given a series of duplicate alarm notifications, if
threshold + 1 notification are observed within
milliseconds of the first notification, notification number
threshold + 1
is delivered to notification listeners and counting restarts from notification
threshold + 2.
Alarm notification equivalence is tested using the
Notifications that are not instances of
AlarmNotification are suppressed
by this filter.
Note: This filter implementation does not use threads to clear stale timeouts.
Instead, stale timeouts are cleared on each invocation of
isNotificationEnabled. Methods in this class are also thread-safe.
|Constructor and Description|
|Modifier and Type||Method and Description|
Determine whether the specified notification should be delivered to notification listeners using this notification filter.
public AlarmThresholdFilter(int threshold, long period)
threshold- the number of duplicate notifications that must occur within the specified time period before the following duplicate notification is delivered to notification listeners.
period- the period (measured in ms) during which duplicate alarm notifications within the threshold number will be discarded.
public boolean isNotificationEnabled(Notification notification)
notification- the notification to be sent.
trueif the notification should be delivered to notification listeners,
falseotherwise. This method always returns
notificationis not an instance of