User: squirest
Date: 02/03/08 09:04:43
Modified: src/main/javax/management/modelmbean
ModelMBeanNotificationInfo.java
Log:
setDescriptor handling in constructors and clone impl
Revision Changes Path
1.2 +31 -9
jmx/src/main/javax/management/modelmbean/ModelMBeanNotificationInfo.java
Index: ModelMBeanNotificationInfo.java
===================================================================
RCS file:
/cvsroot/jboss/jmx/src/main/javax/management/modelmbean/ModelMBeanNotificationInfo.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ModelMBeanNotificationInfo.java 10 Dec 2001 17:24:35 -0000 1.1
+++ ModelMBeanNotificationInfo.java 8 Mar 2002 17:04:42 -0000 1.2
@@ -6,6 +6,8 @@
*/
package javax.management.modelmbean;
+import org.jboss.mx.modelmbean.ModelMBeanConstants;
+
import javax.management.MBeanNotificationInfo;
import javax.management.Descriptor;
import javax.management.DescriptorAccess;
@@ -16,7 +18,7 @@
* @see javax.management.modelmbean.ModelMBeanAttributeInfo
*
* @author <a href="mailto:[EMAIL PROTECTED]">Juha Lindfors</a>.
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class ModelMBeanNotificationInfo
extends MBeanNotificationInfo
@@ -32,15 +34,18 @@
public ModelMBeanNotificationInfo(String[] notifTypes, String name, String
description)
{
super(notifTypes, name, description);
- // FIXME: create default descriptor
+ setDescriptor(createDefaultDescriptor());
}
public ModelMBeanNotificationInfo(String[] notifTypes, String name, String
description,
Descriptor descriptor)
{
this(notifTypes, name, description);
- setDescriptor(descriptor);
+ if (descriptor == null || !descriptor.isValid())
+ setDescriptor(createDefaultDescriptor());
+ else
+ setDescriptor(descriptor);
}
public ModelMBeanNotificationInfo(ModelMBeanNotificationInfo inInfo)
@@ -58,17 +63,24 @@
public void setDescriptor(Descriptor inDescriptor)
{
- // FIXME: if null inDescriptor, create default descriptor
- // FIXME: check validity of descriptor fields (name & descriptorType are
required fields)
- this.descriptor = descriptor;
+ if (inDescriptor == null)
+ inDescriptor = createDefaultDescriptor();
+
+ if (!inDescriptor.isValid())
+ // FIXME: give more detailed error
+ throw new IllegalArgumentException("Invalid descriptor.");
+
+ this.descriptor = inDescriptor;
}
// Cloneable implementation --------------------------------------
- public Object clone()
+ public Object clone() throws CloneNotSupportedException
{
- // FIXME: NYI
- throw new Error("NYI");
+ ModelMBeanNotificationInfo clone = (ModelMBeanNotificationInfo)super.clone();
+ clone.descriptor = (Descriptor)this.descriptor.clone();
+
+ return clone;
}
// Object overrides ----------------------------------------------
@@ -77,6 +89,16 @@
// FIXME: human readable string
return super.toString();
}
+
+ // Private -------------------------------------------------------
+ private Descriptor createDefaultDescriptor()
+ {
+ DescriptorSupport descr = new DescriptorSupport();
+ descr.setField(ModelMBeanConstants.NAME, super.getName());
+ descr.setField(ModelMBeanConstants.DESCRIPTOR_TYPE,
ModelMBeanConstants.NOTIFICATION_DESCRIPTOR);
+ return descr;
+ }
+
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development