Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* JBoss, Home of Professional Open Source.
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.monitor.alarm;
import javax.management.Notification;
import javax.management.ObjectName;
/**
* AlarmNotification
*
* @author Dimitris Andreadis
* @version $Revision: 81038 $
*/
public class AlarmNotification extends Notification
{
// Private Data --------------------------------------------------
/** @since 4.0.4 */
private static final long serialVersionUID = -7041616127511632675L;
/** Set when the alarm refers to some other MBean */
private ObjectName target;
/** The alarm severity */
private int severity;
/** The alarm state */
private int alarmState;
// CTORS ---------------------------------------------------------
/**
* Complete CTOR, creates an AlarmNotification object
*
* Note:
* STATE_CLEARED forces severity to SEVERITY_NORMAL
* STATE_CREATED/CHANGED have valid severities WARNING to UNKNOWN
* STATE_NONE has valid severities NORMAL to UNKNOWN
* Also:
* Out-of-range states are mapped to STATE_NONE
* Out-of-range severities are mapped to SEVERITY_UNKNOWN
*/
public AlarmNotification(
String type, Object source,
ObjectName target, int severity, int alarmState,
long sequenceNumber, long timeStamp, String message
)
{
super(type, source, sequenceNumber, timeStamp, message);
this.target = target;
switch (alarmState)
{
case Alarm.STATE_CLEARED:
this.alarmState = Alarm.STATE_CLEARED;
// forces severity=SEVERITY_NORMAL
this.severity = Alarm.SEVERITY_NORMAL;
break;
case Alarm.STATE_CREATED:
case Alarm.STATE_CHANGED:
this.alarmState = alarmState;
// can't have SEVERITY_NORMAL!
if (severity > Alarm.SEVERITY_NORMAL && severity <= Alarm.SEVERITY_UNKNOWN)
{
this.severity = severity;
}
else // handle out of range severity as SEVERITY_UNKNOWN
{
this.severity = Alarm.SEVERITY_UNKNOWN;
}
break;
case Alarm.STATE_NONE:
default: // handle out of range alarmState as STATE_NONE
this.alarmState = Alarm.STATE_NONE;
if (severity >= Alarm.SEVERITY_NORMAL && severity <= Alarm.SEVERITY_UNKNOWN)
{
this.severity = severity;
}
else // handle out of range severity as SEVERITY_UNKNOWN
{
this.severity = Alarm.SEVERITY_UNKNOWN;
}
break;
}
}
// Static --------------------------------------------------------
/**
* Returns a key that can be used in AlarmTables (maps)
*/
public static Object createKey(Notification n)
{
Object source = getEffectiveSource(n);
return AlarmKey.createKey(source, n.getType());
}
/**
* Returns the effective source for the notification.
* In case of a AlarmNotification with a non-null target
* the target becomes the source.
*/
public static Object getEffectiveSource(Notification n)
{
Object source = n.getSource();
if (n instanceof AlarmNotification)
{
ObjectName target = ((AlarmNotification)n).getTarget();
if (target != null)
{
source = target;
}
}
return source;
}
// Accessors -----------------------------------------------------
/**
* Gets the target MBean name, when the alarm is produced
* by 'source' on behalf of the 'target', or null.
*/
public ObjectName getTarget()
{
return target;
}
/**
* Gets alarm severity
*/
public int getSeverity()
{
return this.severity;
}
/**
* Gets alarm state
*/
public int getAlarmState()
{
return this.alarmState;
}
// Object stuff --------------------------------------------------
/**
* toString()
*/
public String toString()
{
StringBuffer sbuf = new StringBuffer(256);
sbuf.append(AlarmNotification.class.getName());
sbuf.append(" [ type=").append(getType());
sbuf.append(", source=").append(getSource());
sbuf.append(", target=").append(target);
sbuf.append(", severity=").append(Alarm.SEVERITY_STRINGS[severity]);
sbuf.append(", alarmState=").append(Alarm.STATE_STRINGS[alarmState]);
sbuf.append(", sequenceNumber=").append(getSequenceNumber());
sbuf.append(", timeStamp=").append(getTimeStamp());
sbuf.append(", message=").append(getMessage());
sbuf.append(", userData={").append(getUserData());
sbuf.append("} ]");
return sbuf.toString();
}
}