Red Hat Application Migration Toolkit
package org.exolab.castor.mapping.handlers; import java.util.Hashtable; import org.exolab.castor.mapping.MapHandler; import org.exolab.castor.mapping.handlers.J1MapHandler; public final class MapHandlers { private static final String J2MAP_CLASSNAME = "java.util.Map"; private static final String J2MAP_HANDLER_CLASSNAME = "org.exolab.castor.mapping.handlers.J2MapHandler"; private static final MapHandler HASHTABLE_HANDLER = new J1MapHandler(); private static MapHandler _anymapHandler; private static Class _j2mapClass = null; public static MapHandler getHandler(Object object) { return object == null?null:getHandler(object.getClass()); } public static MapHandler getHandler(Class clazz) { return clazz == null?null:(Hashtable.class.isAssignableFrom(clazz)?HASHTABLE_HANDLER:(_j2mapClass != null && _j2mapClass.isAssignableFrom(clazz)?_anymapHandler:null)); } static { if(_j2mapClass == null) { try { ClassLoader iae = MapHandlers.class.getClassLoader(); if(iae != null) { _j2mapClass = iae.loadClass("java.util.Map"); } else { _j2mapClass = Class.forName("java.util.Map"); } Class handler = Class.forName("org.exolab.castor.mapping.handlers.J2MapHandler"); _anymapHandler = (MapHandler)handler.newInstance(); } catch (ClassNotFoundException var2) { ; } catch (InstantiationException var3) { ; } catch (IllegalAccessException var4) { ; } } } }