MBeanNotificationInfopublic class MBeanNotificationInfo extends MBeanFeatureInfo implements CloneableThe MBeanNotificationInfo class is used to describe the
characteristics of the different notification instances
emitted by an MBean, for a given Java class of notification.
If an MBean emits notifications that can be instances of different Java classes,
then the metadata for that MBean should provide an MBeanNotificationInfo
object for each of these notification Java classes.
Instances of this class are immutable. Subclasses may be
mutable but this is not recommended.
This class extends javax.management.MBeanFeatureInfo
and thus provides name and description fields.
The name field should be the fully qualified Java class name of
the notification objects described by this class.
The getNotifTypes method returns an array of
strings containing the notification types that the MBean may
emit. The notification type is a dot-notation string which
describes what the emitted notification is about, not the Java
class of the notification. A single generic notification class can
be used to send notifications of several types. All of these types
are returned in the string array result of the
getNotifTypes method. |
Fields Summary |
---|
static final long | serialVersionUID | private static final String[] | NO_TYPES | static final MBeanNotificationInfo[] | NO_NOTIFICATIONS | private final String[] | types | private final transient boolean | arrayGettersSafe |
Constructors Summary |
---|
public MBeanNotificationInfo(String[] notifTypes, String name, String description)Constructs an MBeanNotificationInfo object.
this(notifTypes, name, description, null);
| public MBeanNotificationInfo(String[] notifTypes, String name, String description, Descriptor descriptor)Constructs an MBeanNotificationInfo object.
super(name, description, descriptor);
/* We do not validate the notifTypes, since the spec just says
they are dot-separated, not that they must look like Java
classes. E.g. the spec doesn't forbid "sun.prob.25" as a
notifType, though it doesn't explicitly allow it
either. */
if (notifTypes == null)
notifTypes = NO_TYPES;
this.types = notifTypes;
this.arrayGettersSafe =
MBeanInfo.arrayGettersSafe(this.getClass(),
MBeanNotificationInfo.class);
|
Methods Summary |
---|
public java.lang.Object | clone()Returns a shallow clone of this instance.
The clone is obtained by simply calling super.clone(),
thus calling the default native shallow cloning mechanism
implemented by Object.clone().
No deeper cloning of any internal field is made.
try {
return super.clone() ;
} catch (CloneNotSupportedException e) {
// should not happen as this class is cloneable
return null;
}
| public boolean | equals(java.lang.Object o)Compare this MBeanNotificationInfo to another.
if (o == this)
return true;
if (!(o instanceof MBeanNotificationInfo))
return false;
MBeanNotificationInfo p = (MBeanNotificationInfo) o;
return (p.getName().equals(getName()) &&
p.getDescription().equals(getDescription()) &&
p.getDescriptor().equals(getDescriptor()) &&
Arrays.equals(p.fastGetNotifTypes(), fastGetNotifTypes()));
| private java.lang.String[] | fastGetNotifTypes()
if (arrayGettersSafe)
return types;
else
return getNotifTypes();
| public java.lang.String[] | getNotifTypes()Returns the array of strings (in dot notation) containing the
notification types that the MBean may emit.
if (types.length == 0)
return NO_TYPES;
else
return (String[]) types.clone();
| public int | hashCode()
int hash = getName().hashCode();
for (int i = 0; i < types.length; i++)
hash ^= types[i].hashCode();
return hash;
| public java.lang.String | toString()
return
getClass().getName() + "[" +
"description=" + getDescription() + ", " +
"name=" + getName() + ", " +
"notifTypes=" + Arrays.asList(fastGetNotifTypes()) + ", " +
"descriptor=" + getDescriptor() +
"]";
|
|