ModelMBeanNotificationInfopublic class ModelMBeanNotificationInfo extends MBeanNotificationInfo implements Cloneable, DescriptorAccessThe ModelMBeanNotificationInfo object describes a notification emitted
by a ModelMBean.
It is a subclass of MBeanNotificationInfo with the addition of an
associated Descriptor and an implementation of the Descriptor interface.
The fields in the descriptor are defined, but not limited to,
the following:
name : notification name
descriptorType : must be "notification"
severity : 0-6 where 0: unknown; 1: non-recoverable;
2: critical, failure; 3: major, severe;
4: minor, marginal, error; 5: warning;
6: normal, cleared, informative
messageID : unique key for message text (to allow translation,
analysis)
messageText : text of notification
log : T - log message F - do not log message
logfile : string fully qualified file name appropriate for
operating system
visibility : 1-4 where 1: always visible 4: rarely visible
presentationString : xml formatted string to allow presentation of data
The default descriptor contains the name, descriptorType, displayName
and severity(=6) fields. |
Fields Summary |
---|
private static final long | oldSerialVersionUID | private static final long | newSerialVersionUID | private static final ObjectStreamField[] | oldSerialPersistentFields | private static final ObjectStreamField[] | newSerialPersistentFields | private static final long | serialVersionUID | private static final ObjectStreamField[] | serialPersistentFields | private static boolean | compat | private Descriptor | notificationDescriptor | private static final String | currClass |
Constructors Summary |
---|
public ModelMBeanNotificationInfo(String[] notifTypes, String name, String description)Constructs a ModelMBeanNotificationInfo object with a default
descriptor.
this(notifTypes,name,description,null);
| public ModelMBeanNotificationInfo(String[] notifTypes, String name, String description, Descriptor descriptor)Constructs a ModelMBeanNotificationInfo object.
super(notifTypes, name, description);
if (tracing())
trace("ModelMBeanNotificationInfo()","Executed");
applyDescriptor(descriptor,"ModelMBeanNotificationInfo()");
| public ModelMBeanNotificationInfo(ModelMBeanNotificationInfo inInfo)Constructs a new ModelMBeanNotificationInfo object from this
ModelMBeanNotfication Object.
this(inInfo.getNotifTypes(),
inInfo.getName(),
inInfo.getDescription(),inInfo.getDescriptor());
|
Methods Summary |
---|
private final void | applyDescriptor(javax.management.Descriptor descriptor, java.lang.String ftag)Set the given descriptor as this.notificationDescriptor.
Creates a default descriptor if the given descriptor is null.
If the given descriptor is null, check its validity.
If it is valid, clones it and set the defaults fields
"displayName" and "severity", if not present.
If it is not valid, throws an exception.
This method is called both by the constructors and by
setDescriptor().
if (descriptor == null) {
if (tracing())
trace(ftag,
"Received null for new descriptor value, " +
"setting descriptor to default values");
notificationDescriptor = createDefaultDescriptor();
} else if (isValid(descriptor)) {
notificationDescriptor =
setDefaults((Descriptor)descriptor.clone());
} else {
throw new RuntimeOperationsException(new
IllegalArgumentException(
"Invalid descriptor passed in parameter"),
"Exception occured in ModelMBeanNotificationInfo " + ftag);
}
| public java.lang.Object | clone()Creates and returns a new ModelMBeanNotificationInfo which is a
duplicate of this ModelMBeanNotificationInfo.
if (tracing())
trace("ModelMBeanNotificationInfo.clone()","Executed");
return(new ModelMBeanNotificationInfo(this));
| private final javax.management.Descriptor | createDefaultDescriptor()Creates default descriptor for notification as follows:
descriptorType=notification,
name=this.getName(),displayname=this.getName(),severity=6
if (tracing())
trace("createDefaultDescriptor()","Executed");
return new DescriptorSupport(new
String[] {"descriptorType=notification",
("name=" + this.getName()),
("displayName=" + this.getName()),
"severity=6"});
| public javax.management.Descriptor | getDescriptor()Returns a copy of the associated Descriptor for the
ModelMBeanNotificationInfo.
if (tracing())
trace("ModelMBeanNotificationInfo.getDescriptor()","Executed");
if (notificationDescriptor == null) {
// Dead code. Should never happen.
if (tracing())
trace("ModelMBeanNotificationInfo.getDescriptor()",
"Received null for new descriptor value, " +
"setting descriptor to default values");
notificationDescriptor = createDefaultDescriptor();
}
return((Descriptor)notificationDescriptor.clone());
| private boolean | isValid(javax.management.Descriptor inDesc)Tests that the descriptor is valid and adds appropriate default
fields not already specified. Field values must be correct for
field names.
Descriptor must have the same name as the notification,
the descriptorType field must be "notification",
boolean results = true;
String badField = "none";
if (inDesc == null) {
badField="nullDescriptor";
return false;
}
if (!inDesc.isValid()) {
// checks for empty descriptors, null,
// checks for empty name and descriptorType adn valid
// values for fields.
badField="invalidDescriptor";
results = false;
} else if (!((String)inDesc.getFieldValue("name")).
equalsIgnoreCase(this.getName())) {
badField="name";
results = false;
} else if (! ((String)inDesc.getFieldValue("descriptorType")).
equalsIgnoreCase("notification")) {
badField="descriptorType";
results = false;
}
if (tracing()) trace("isValid()",("Returning " + results +
": Invalid field is " + badField));
return results;
| private void | readObject(java.io.ObjectInputStream in)Deserializes a {@link ModelMBeanNotificationInfo} from an
{@link ObjectInputStream}.
// New serial form ignores extra field "currClass"
in.defaultReadObject();
| private final javax.management.Descriptor | setDefaults(javax.management.Descriptor descriptor)The following fields will be defaulted if they are not already
set:
displayName=this.getName(),severity=6
if ((descriptor.getFieldValue("displayName")) == null) {
descriptor.setField("displayName",this.getName());
}
if ((descriptor.getFieldValue("severity")) == null) {
descriptor.setField("severity","6");
}
return descriptor;
| public void | setDescriptor(javax.management.Descriptor inDescriptor)Sets associated Descriptor (full replace) for the
ModelMBeanNotificationInfo If the new Descriptor is null,
then the associated Descriptor reverts to a default
descriptor. The Descriptor is validated before it is
assigned. If the new Descriptor is invalid, then a
RuntimeOperationsException wrapping an
IllegalArgumentException is thrown.
if (tracing())
trace("setDescriptor(Descriptor)",
"Executed");
applyDescriptor(inDescriptor,"setDescriptor(Descriptor)");
| public java.lang.String | toString()Returns a human readable string containing
ModelMBeanNotificationInfo.
if (tracing())
trace("toString()","Executed");
final StringBuffer retStr = new StringBuffer();
retStr.append("ModelMBeanNotificationInfo: ")
.append(this.getName());
retStr.append(" ; Description: ")
.append(this.getDescription());
retStr.append(" ; Descriptor: ")
.append(this.getDescriptor());
retStr.append(" ; Types: ");
String[] nTypes = this.getNotifTypes();
for (int i=0; i < nTypes.length; i++) {
if (i > 0) retStr.append(", ");
retStr.append(nTypes[i]);
}
return retStr.toString();
| private void | trace(java.lang.String inClass, java.lang.String inMethod, java.lang.String inText)
Trace.send(Trace.LEVEL_TRACE, Trace.INFO_MODELMBEAN, inClass,
inMethod, Integer.toHexString(this.hashCode()) +
" " + inText);
| private void | trace(java.lang.String inMethod, java.lang.String inText)
trace(currClass, inMethod, inText);
| private boolean | tracing()
// return true;
return Trace.isSelected(Trace.LEVEL_TRACE, Trace.INFO_MODELMBEAN);
| private void | writeObject(java.io.ObjectOutputStream out)Serializes a {@link ModelMBeanNotificationInfo} to an
{@link ObjectOutputStream}.
if (compat) {
// Serializes this instance in the old serial form
//
ObjectOutputStream.PutField fields = out.putFields();
fields.put("notificationDescriptor", notificationDescriptor);
fields.put("currClass", currClass);
out.writeFields();
} else {
// Serializes this instance in the new serial form
//
out.defaultWriteObject();
}
|
|