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;
}
}