public class AlarmThresholdFilter extends Object implements NotificationFilter
AlarmNotification
s
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 period
milliseconds of the first notification, notification number threshold + 1
is delivered to notification listeners and counting restarts from notification
number threshold + 2
.
Alarm notification equivalence is tested using the AlarmNotification.equals(java.lang.Object)
method.
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 |
---|
AlarmThresholdFilter(int threshold,
long period)
Create an
AlarmThresholdFilter . |
Modifier and Type | Method and Description |
---|---|
boolean |
isNotificationEnabled(Notification notification)
Determine whether the specified notification should be delivered to notification
listeners using this notification filter.
|
public AlarmThresholdFilter(int threshold, long period)
AlarmThresholdFilter
.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)
isNotificationEnabled
in interface NotificationFilter
notification
- the notification to be sent.true
if the notification should be delivered to notification
listeners, false
otherwise. This method always returns
false
if notification
is not an instance of
AlarmNotification
.