Red Hat Application Migration Toolkit
package org.exolab.castor.xml.descriptors; import java.sql.Time; import java.sql.Timestamp; import java.util.Date; import java.util.Enumeration; import java.util.Locale; import java.util.Vector; import org.exolab.castor.xml.XMLClassDescriptor; import org.exolab.castor.xml.descriptors.DateClassDescriptor; import org.exolab.castor.xml.descriptors.EnumerationDescriptor; import org.exolab.castor.xml.descriptors.LocaleDescriptor; import org.exolab.castor.xml.descriptors.SQLDateClassDescriptor; import org.exolab.castor.xml.descriptors.SQLTimeClassDescriptor; import org.exolab.castor.xml.descriptors.SQLTimestampClassDescriptor; import org.exolab.castor.xml.descriptors.StringClassDescriptor; import org.exolab.castor.xml.descriptors.VectorClassDescriptor; public final class CoreDescriptors { private static final String LIST_CLASS_NAME = "java.util.List"; private static final String LIST_DESCRIPTOR_NAME = "org.exolab.castor.xml.descriptors.ListClassDescriptor"; private static final Class LIST_CLASS = getListClass(); private static final XMLClassDescriptor DATE_DESCRIPTOR = new DateClassDescriptor(); private static final XMLClassDescriptor ENUMERATION_DESCRIPTOR = new EnumerationDescriptor(); private static final XMLClassDescriptor LIST_DESCRIPTOR = getListClassDescriptor(); private static final XMLClassDescriptor LOCALE_DESCRIPTOR = new LocaleDescriptor(); private static final XMLClassDescriptor SQL_DATE_DESCRIPTOR = new SQLDateClassDescriptor(); private static final XMLClassDescriptor SQL_TIME_DESCRIPTOR = new SQLTimeClassDescriptor(); private static final XMLClassDescriptor SQL_TIMESTAMP_DESCRIPTOR = new SQLTimestampClassDescriptor(); private static final XMLClassDescriptor STRING_DESCRIPTOR = new StringClassDescriptor(); private static final XMLClassDescriptor VECTOR_DESCRIPTOR = new VectorClassDescriptor(); public static XMLClassDescriptor getDescriptor(Class clazz) { return clazz == null?null:(clazz == String.class?STRING_DESCRIPTOR:(clazz == Date.class?DATE_DESCRIPTOR:(Enumeration.class.isAssignableFrom(clazz)?ENUMERATION_DESCRIPTOR:(clazz != Vector.class && !Vector.class.isAssignableFrom(clazz)?(LIST_DESCRIPTOR != null && (LIST_CLASS == clazz || LIST_CLASS.isAssignableFrom(clazz))?LIST_DESCRIPTOR:(clazz == Locale.class?LOCALE_DESCRIPTOR:(clazz == java.sql.Date.class?SQL_DATE_DESCRIPTOR:(clazz == Time.class?SQL_TIME_DESCRIPTOR:(clazz == Timestamp.class?SQL_TIMESTAMP_DESCRIPTOR:null))))):VECTOR_DESCRIPTOR)))); } private static XMLClassDescriptor getListClassDescriptor() { if(LIST_CLASS == null) { return null; } else { ClassLoader loader = CoreDescriptors.class.getClassLoader(); Class descriptorClass = null; try { if(loader == null) { descriptorClass = Class.forName("org.exolab.castor.xml.descriptors.ListClassDescriptor"); } else { descriptorClass = loader.loadClass("org.exolab.castor.xml.descriptors.ListClassDescriptor"); } } catch (ClassNotFoundException var6) { ; } XMLClassDescriptor listDescriptor = null; if(descriptorClass != null) { try { listDescriptor = (XMLClassDescriptor)descriptorClass.newInstance(); } catch (InstantiationException var4) { ; } catch (IllegalAccessException var5) { ; } } else { listDescriptor = null; } return listDescriptor; } } private static Class getListClass() { Class listClass = null; ClassLoader loader = null; try { loader = Vector.class.getClassLoader(); if(loader == null) { listClass = Class.forName("java.util.List"); } else { listClass = loader.loadClass("java.util.List"); } } catch (ClassNotFoundException var3) { ; } return listClass; } }