package org.jboss.monitor.alarm;
import javax.management.Notification;
public class AlarmNotification
extends Notification
{
private int alarmState;
private int severity;
public AlarmNotification(
String type, Object source,
long sequenceNumber, long timeStamp, String message,
int alarmState, int severity
)
{
super(type, source, sequenceNumber, timeStamp, message);
switch (alarmState) {
case Alarm.STATE_CLEARED:
this.alarmState = Alarm.STATE_CLEARED;
this.severity = Alarm.SEVERITY_NORMAL;
break;
case Alarm.STATE_CREATED:
case Alarm.STATE_CHANGED:
this.alarmState = alarmState;
if (severity > Alarm.SEVERITY_NORMAL && severity <= Alarm.SEVERITY_UNKNOWN)
this.severity = severity;
else this.severity = Alarm.SEVERITY_UNKNOWN;
break;
case Alarm.STATE_NONE:
default: this.alarmState = Alarm.STATE_NONE;
if (severity >= Alarm.SEVERITY_NORMAL && severity <= Alarm.SEVERITY_UNKNOWN)
this.severity = severity;
else this.severity = Alarm.SEVERITY_UNKNOWN;
break;
}
}
public int getSeverity()
{
return this.severity;
}
public int getAlarmState()
{
return this.alarmState;
}
public String toString()
{
StringBuffer sbuf = new StringBuffer(256);
sbuf.append(AlarmNotification.class.getName());
sbuf.append(" [ source=").append(this.getSource());
sbuf.append(", type=").append(this.getType());
sbuf.append(", sequenceNumber=").append(this.getSequenceNumber());
sbuf.append(", timeStamp=").append(this.getTimeStamp());
sbuf.append(", message=").append(this.getMessage());
sbuf.append(", userData=").append(this.getUserData());
sbuf.append(", alarmState=").append(Alarm.STATE_STRINGS[this.alarmState]);
sbuf.append(", severity=").append(Alarm.SEVERITY_STRINGS[this.severity]);
sbuf.append(" ]");
return sbuf.toString();
}
}