diff options
| author | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2006-12-11 00:10:40 +0000 |
|---|---|---|
| committer | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2006-12-11 00:10:40 +0000 |
| commit | fcd8917ecbf247d7028825fd399ab81d3e920a06 (patch) | |
| tree | afbccc2645ca69c90183f9305748189a3b3f9d96 /gnu/java/lang/management/BeanImpl.java | |
| parent | 66244ee7ec1484ed591c51642b04ff1c1814f5e7 (diff) | |
| download | classpath-fcd8917ecbf247d7028825fd399ab81d3e920a06.tar.gz | |
2006-12-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
* gnu/java/lang/management/BeanImpl.java:
(translate(String)): Handle Map and List as
Strings of the form "java.util.Map<K,V>" and
"java.util.List<E>"
* javax/management/MBeanAttributeInfo.java:
(MBeanAttributeInfo(String,String,Method,Method)):
Use generic parameter and return types.
* javax/management/MBeanConstructorInfo.java:
(MBeanConstructorInfo(String, Constructor)):
Use generic parameter types.
* javax/management/MBeanOperationInfo.java:
(MBeanOperationInfo(String, Method)):
Use generic parameter and return types.
Diffstat (limited to 'gnu/java/lang/management/BeanImpl.java')
| -rw-r--r-- | gnu/java/lang/management/BeanImpl.java | 70 |
1 files changed, 31 insertions, 39 deletions
diff --git a/gnu/java/lang/management/BeanImpl.java b/gnu/java/lang/management/BeanImpl.java index dcd63ed75..521719ab6 100644 --- a/gnu/java/lang/management/BeanImpl.java +++ b/gnu/java/lang/management/BeanImpl.java @@ -425,6 +425,34 @@ public class BeanImpl return new OpenMBeanParameterInfoSupport("TransParam", "Translated parameter", SimpleType.VOID); + if (type.startsWith("java.util.Map")) + { + int lparam = type.indexOf("<"); + int comma = type.indexOf(",", lparam); + int rparam = type.indexOf(">", comma); + String key = type.substring(lparam + 1, comma); + OpenType k = translate(key).getOpenType(); + OpenType v = translate(type.substring(comma + 1, rparam)).getOpenType(); + CompositeType ctype = new CompositeType(Map.class.getName(), Map.class.getName(), + new String[] { "key", "value" }, + new String[] { "Map key", "Map value"}, + new OpenType[] { k, v}); + TabularType ttype = new TabularType(key, key, ctype, + new String[] { "key" }); + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + ttype); + } + if (type.startsWith("java.util.List")) + { + int lparam = type.indexOf("<"); + int rparam = type.indexOf(">"); + OpenType e = translate(type.substring(lparam + 1, rparam)).getOpenType(); + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + new ArrayType(1, e) + ); + } Class c; try { @@ -432,8 +460,9 @@ public class BeanImpl } catch (ClassNotFoundException e) { - throw new InternalError("The class for a type used in a management bean " + - "could not be loaded."); + throw (InternalError) + (new InternalError("The class for a type used in a management bean " + + "could not be loaded.").initCause(e)); } if (c.isEnum()) { @@ -474,43 +503,6 @@ public class BeanImpl { /* Ignored; we expect this if this isn't a from(CompositeData) class */ } - if (Map.class.isAssignableFrom(c)) - { - OpenType k = SimpleType.VOID; - OpenType v = SimpleType.VOID; - /* - TypeVariable[] vars = c.getTypeParameters(); - for (int a = 0; a < vars.length; ++a) - { - if (vars[a].getName().equals("K")) - k = getTypeFromClass((Class) vars[a].getGenericDeclaration()); - if (vars[a].getName().equals("V")) - v = getTypeFromClass((Class) vars[a].getGenericDeclaration()); - } - */ - CompositeType ctype = new CompositeType(Map.class.getName(), Map.class.getName(), - new String[] { "key", "value" }, - new String[] { "Map key", "Map value"}, - new OpenType[] { k, v}); - TabularType ttype = new TabularType(c.getName(), c.getName(), ctype, - new String[] { "key" }); - return new OpenMBeanParameterInfoSupport("TransParam", - "Translated parameter", - ttype); - } - if (List.class.isAssignableFrom(c)) - { - OpenType e = SimpleType.VOID; - /* - TypeVariable[] vars = c.getTypeParameters(); - if (vars.length > 0) - e = getTypeFromClass((Class) vars[0].getGenericDeclaration()); - */ - return new OpenMBeanParameterInfoSupport("TransParam", - "Translated parameter", - new ArrayType(1, e) - ); - } if (c.isArray()) { int depth; |
