1 package org.apache.tools.ant.taskdefs.optional.jmx.converter; 2 3 52 53 54 import java.util.Map ; 55 import java.util.TreeMap ; 56 57 68 public class DefaultValueConverter implements ValueConverter { 69 70 private static String [] supportedTypes = null; 71 72 private static Map primitiveToClass = new TreeMap (); 74 static { 75 primitiveToClass.put("boolean", Boolean .class); 76 primitiveToClass.put("byte", Byte .class); 77 primitiveToClass.put("char", Character .class); 78 primitiveToClass.put("double", Double .class); 79 primitiveToClass.put("float", Float .class); 80 primitiveToClass.put("int", Integer .class); 81 primitiveToClass.put("long", Long .class); 82 primitiveToClass.put("short", Short .class); 83 84 87 supportedTypes = new String [primitiveToClass.size()+1]; supportedTypes[0] = String .class.getName(); 89 90 java.util.Iterator it = primitiveToClass.keySet().iterator(); 91 92 int counter = 1; while (it.hasNext()) { 94 supportedTypes[counter] = (String ) it.next(); 95 counter++; 96 } 97 } 98 99 103 public DefaultValueConverter() { 104 } 105 106 public Object valueOf(String value, String type) throws Exception { 107 108 112 Class targetClass = null; 113 114 targetClass = (Class ) primitiveToClass.get(type); 117 if (targetClass == null) { 118 targetClass = java.lang.Class.forName(type); 120 } 121 122 try { 123 java.lang.reflect.Method valueOfMethod = null; 126 try { 127 Class [] paramTypes = {java.lang.String .class}; 128 valueOfMethod = targetClass.getMethod("valueOf",paramTypes); 129 } catch (NoSuchMethodException x) { 130 Class [] paramTypes = {java.lang.Object .class}; 131 valueOfMethod = targetClass.getMethod("valueOf",paramTypes); 132 } 133 134 Object [] argValues = {value}; 137 return valueOfMethod.invoke(null,argValues); 138 } catch (NoSuchMethodException x2) { 139 Class [] paramTypes = {java.lang.String .class}; 144 java.lang.reflect.Constructor stringConstructor = targetClass.getConstructor(paramTypes); 145 Object [] argValues = {value}; 146 return stringConstructor.newInstance(argValues); 147 } 148 149 } 150 151 public String [] getSupportedTypes() { 152 return supportedTypes; 153 } 154 155 156 } 157 158 | Popular Tags |