FileDocCategorySizeDatePackage
MBeanNotificationInfo.javaAPI DocJava SE 5 API5324Fri Aug 26 14:57:32 BST 2005javax.management

MBeanNotificationInfo

public class MBeanNotificationInfo extends MBeanFeatureInfo implements Cloneable, Serializable

The 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.

since
1.5

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
immutable
Constructors Summary
public MBeanNotificationInfo(String[] notifTypes, String name, String description)
Constructs an MBeanNotificationInfo object.

param
notifTypes The array of strings (in dot notation) containing the notification types that the MBean may emit. This may be null with the same effect as a zero-length array.
param
name The fully qualified Java class name of the described notifications.
param
description A human readable description of the data.


                                                                
      
				  
				  
	      
	super(name, description);
	

	/* 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.immutable =
	    MBeanInfo.isImmutableClass(this.getClass(),
				       MBeanNotificationInfo.class);
    
Methods Summary
public java.lang.Objectclone()
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 booleanequals(java.lang.Object o)
Compare this MBeanAttributeInfo to another.

param
o the object to compare to.
return
true iff o is an MBeanNotificationInfo such that its {@link #getName()}, {@link #getDescription()}, and {@link #getNotifTypes()} values are equal (not necessarily identical) to those of this MBeanNotificationInfo. Two notification type arrays are equal if their corresponding elements are equal. They are not equal if they have the same elements but in a different order.

	if (o == this)
	    return true;
	if (!(o instanceof MBeanNotificationInfo))
	    return false;
	MBeanNotificationInfo p = (MBeanNotificationInfo) o;
	return (p.getName().equals(getName()) &&
		p.getDescription().equals(getDescription()) &&
		Arrays.equals(p.fastGetNotifTypes(), fastGetNotifTypes()));
    
private java.lang.String[]fastGetNotifTypes()

	if (immutable)
	    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.

return
the array of strings. Changing the returned array has no effect on this MBeanNotificationInfo.

	if (types.length == 0)
            return NO_TYPES;
        else
            return (String[]) types.clone();
    
public inthashCode()

	int hash = getName().hashCode();
	for (int i = 0; i < types.length; i++)
	    hash ^= types[i].hashCode();
	return hash;