User: juhalindfors Date: 01/12/05 06:12:46 Modified: src/main/javax/management MBeanAttributeInfo.java MBeanConstructorInfo.java MBeanOperationInfo.java Log: std mbean constructors Revision Changes Path 1.2 +26 -6 jmx/src/main/javax/management/MBeanAttributeInfo.java Index: MBeanAttributeInfo.java =================================================================== RCS file: /cvsroot/jboss/jmx/src/main/javax/management/MBeanAttributeInfo.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- MBeanAttributeInfo.java 2001/12/03 02:01:30 1.1 +++ MBeanAttributeInfo.java 2001/12/05 14:12:46 1.2 @@ -3,9 +3,8 @@ */ package javax.management; -public class MBeanAttributeInfo - extends MBeanFeatureInfo - implements java.io.Serializable, java.lang.Cloneable { +public class MBeanAttributeInfo extends MBeanFeatureInfo + implements java.io.Serializable, Cloneable { protected String type = null; protected boolean isReadable = false; @@ -28,10 +27,31 @@ public MBeanAttributeInfo(java.lang.String name, java.lang.String description, java.lang.reflect.Method getter, - java.lang.reflect.Method setter) - throws IntrospectionException { + java.lang.reflect.Method setter) throws IntrospectionException { super(name, description); - throw new Error("NYI"); + + if (getter != null) { + this.isReadable = true; + if (getter.getName().startsWith("is")) + this.isIs = true; + this.type = getter.getReturnType().getName(); + } + + if (setter != null) { + this.isWritable = true; + + if (type == null) { + try { + type = setter.getParameterTypes() [0].getName(); + } + catch (ArrayIndexOutOfBoundsException e) { + throw new IntrospectionException("Attribute setter is lacking type: " + name); + } + } + + if (!(type.equals(setter.getParameterTypes() [0].getName()))) + throw new IntrospectionException("Attribute type mismatch: " + name); + } } public java.lang.Object clone() throws CloneNotSupportedException { 1.2 +11 -2 jmx/src/main/javax/management/MBeanConstructorInfo.java Index: MBeanConstructorInfo.java =================================================================== RCS file: /cvsroot/jboss/jmx/src/main/javax/management/MBeanConstructorInfo.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- MBeanConstructorInfo.java 2001/12/03 02:01:30 1.1 +++ MBeanConstructorInfo.java 2001/12/05 14:12:46 1.2 @@ -4,15 +4,24 @@ package javax.management; public class MBeanConstructorInfo extends MBeanFeatureInfo - implements java.io.Serializable, java.lang.Cloneable { + implements java.io.Serializable, Cloneable { protected MBeanParameterInfo[] signature = null; public MBeanConstructorInfo(java.lang.String description, java.lang.reflect.Constructor constructor) { super(constructor.getName(), description); - throw new Error("NYI"); + + Class[] sign = constructor.getParameterTypes(); + signature = new MBeanParameterInfo[sign.length]; + + for (int i = 0; i < sign.length; ++i) { + String name = sign[i].getName(); + signature[i] = new MBeanParameterInfo(name, name, "MBean Constructor Parameter."); + } + } + public MBeanConstructorInfo(java.lang.String name, java.lang.String description, MBeanParameterInfo[] signature) { 1.2 +40 -20 jmx/src/main/javax/management/MBeanOperationInfo.java Index: MBeanOperationInfo.java =================================================================== RCS file: /cvsroot/jboss/jmx/src/main/javax/management/MBeanOperationInfo.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- MBeanOperationInfo.java 2001/12/03 02:01:30 1.1 +++ MBeanOperationInfo.java 2001/12/05 14:12:46 1.2 @@ -3,42 +3,62 @@ */ package javax.management; -public class MBeanOperationInfo - extends MBeanFeatureInfo - implements java.io.Serializable, java.lang.Cloneable { +public class MBeanOperationInfo extends MBeanFeatureInfo + implements java.io.Serializable, Cloneable { - public static final int INFO = 0x1234; - - public static final int ACTION = 0x332; - + public static final int INFO = 0x1234; + public static final int ACTION = 0x332; public static final int ACTION_INFO = 0xabcd; - - public static final int UNKNOWN = 0xdead; + public static final int UNKNOWN = 0xdead; + protected int impact = UNKNOWN; + protected MBeanParameterInfo[] signature = null; + protected String returnType = null; + public MBeanOperationInfo(java.lang.String description, - java.lang.reflect.Method method) {super("", "");} - public MBeanOperationInfo(java.lang.String name, - java.lang.String description, + java.lang.reflect.Method method) { + super(method.getName(), description); + this.returnType = method.getReturnType().getName(); + + Class[] sign = method.getParameterTypes(); + signature = new MBeanParameterInfo[sign.length]; + + for (int i = 0; i < sign.length; ++i) { + String name = sign[i].getName(); + signature[i] = new MBeanParameterInfo(name, name, "MBean Operation Parameter."); + } + } + + public MBeanOperationInfo(String name, String description, MBeanParameterInfo[] signature, - java.lang.String type, - int impact) {super("", "");} + String returnType, int impact) { + super(name, description); + this.signature = signature; + this.returnType = returnType; + this.impact = impact; + } - public java.lang.Object clone() { - return null; + public java.lang.Object clone() throws CloneNotSupportedException { + MBeanOperationInfo clone = (MBeanOperationInfo)super.clone(); + clone.signature = getSignature(); + clone.returnType = getReturnType(); + clone.impact = getImpact(); + + return clone; } - public java.lang.String getReturnType() { - return null; + public String getReturnType() { + return returnType; } public MBeanParameterInfo[] getSignature() { - return null; + return signature; } public int getImpact() { - return 0; + return impact; } }
_______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development