package com.jds.jn.config.properties; import com.jds.swing.JColor; /** * Author: VISTALL * Company: J Develop Station * Date: 20:38:54/10.04.2010 */ public class ObjectParse { public static Object parse(Class<?> clazz, String val) { val = val.trim(); if (clazz.isAssignableFrom(Byte.class) || clazz.isAssignableFrom(Byte.TYPE)) { return Byte.parseByte(val); } if (clazz.isAssignableFrom(Short.class) || clazz.isAssignableFrom(Short.TYPE)) { return Short.parseShort(val); } if (clazz.isAssignableFrom(Integer.class) || clazz.isAssignableFrom(Integer.TYPE)) { return Integer.parseInt(val); } if (clazz.isAssignableFrom(Long.class) || clazz.isAssignableFrom(Long.TYPE)) { return Long.parseLong(val); } if (clazz.isAssignableFrom(Float.class) || clazz.isAssignableFrom(Float.TYPE)) { return Float.parseFloat(val); } if (clazz.isAssignableFrom(Double.class) || clazz.isAssignableFrom(Double.TYPE)) { return Double.parseDouble(val); } if (clazz.isAssignableFrom(Boolean.class) || clazz.isAssignableFrom(Boolean.TYPE)) { return Boolean.parseBoolean(val); } if (clazz.isAssignableFrom(String.class)) { return String.valueOf(val); } if(clazz.isAssignableFrom(JColor.class)) { return new JColor(JColor.decode(val)); } if (clazz.isEnum()) { for (Object o : clazz.getEnumConstants()) { Enum<?> enu = (Enum<?>) o; if (enu.name().equals(val)) { return enu; } } System.out.println("Not found value for enum: " + clazz.getSimpleName() + "; value: " + val); return null; } if (clazz.isAssignableFrom(Object.class)) { return val; } return null; } }