summaryrefslogtreecommitdiff
path: root/gnu/java/lang/management/BeanImpl.java
diff options
context:
space:
mode:
authorAndrew John Hughes <gnu_andrew@member.fsf.org>2006-12-11 00:10:40 +0000
committerAndrew John Hughes <gnu_andrew@member.fsf.org>2006-12-11 00:10:40 +0000
commitfcd8917ecbf247d7028825fd399ab81d3e920a06 (patch)
treeafbccc2645ca69c90183f9305748189a3b3f9d96 /gnu/java/lang/management/BeanImpl.java
parent66244ee7ec1484ed591c51642b04ff1c1814f5e7 (diff)
downloadclasspath-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.java70
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;