package com.mxgraph.io; import com.mxgraph.model.mxGraphModel.mxCollapseChange; import com.mxgraph.model.mxGraphModel.mxGeometryChange; import com.mxgraph.model.mxGraphModel.mxStyleChange; import com.mxgraph.model.mxGraphModel.mxValueChange; import com.mxgraph.model.mxGraphModel.mxVisibleChange; import java.util.ArrayList; import java.util.Collection; import java.util.Hashtable; import java.util.List; import java.util.Map; public class mxCodecRegistry { protected static Hashtable codecs = new Hashtable(); protected static Hashtable aliases = new Hashtable(); protected static List packages = new ArrayList(); public static mxObjectCodec register(mxObjectCodec parammxObjectCodec) { if (parammxObjectCodec != null) { String str1 = parammxObjectCodec.getName(); codecs.put(str1, parammxObjectCodec); String str2 = getName(parammxObjectCodec.getTemplate()); if (!(str2.equals(str1))) addAlias(str2, str1); } return parammxObjectCodec; } public static void addAlias(String paramString1, String paramString2) { aliases.put(paramString1, paramString2); } public static mxObjectCodec getCodec(String paramString) { String str = (String)aliases.get(paramString); if (str != null) paramString = str; mxObjectCodec localmxObjectCodec = (mxObjectCodec)codecs.get(paramString); if (localmxObjectCodec == null) { Object localObject = getInstanceForName(paramString); if (localObject != null) try { localmxObjectCodec = new mxObjectCodec(localObject); register(localmxObjectCodec); } catch (Exception localException) { } } return localmxObjectCodec; } public static void addPackage(String paramString) { packages.add(paramString); } public static Object getInstanceForName(String paramString) { Class localClass = getClassForName(paramString); if (localClass != null) { if (localClass.isEnum()) return localClass.getEnumConstants()[0]; try { return localClass.newInstance(); } catch (Exception localException) { } } return null; } public static Class getClassForName(String paramString) { try { return Class.forName(paramString); } catch (Exception i) { int i = 0; if (i >= packages.size()) break label67; try { String str = (String)packages.get(i); return Class.forName(str + "." + paramString); } catch (Exception localException2) { ++i; } } label67: return null; } public static String getName(Object paramObject) { Class localClass = paramObject.getClass(); if ((localClass.isArray()) || (Collection.class.isAssignableFrom(localClass)) || (Map.class.isAssignableFrom(localClass))) return "Array"; if (packages.contains(localClass.getPackage().getName())) return localClass.getSimpleName(); return localClass.getName(); } static { addPackage("com.mxgraph"); addPackage("com.mxgraph.util"); addPackage("com.mxgraph.model"); addPackage("com.mxgraph.view"); addPackage("java.lang"); addPackage("java.util"); register(new mxObjectCodec(new ArrayList())); register(new mxModelCodec()); register(new mxCellCodec()); register(new mxStylesheetCodec()); register(new mxRootChangeCodec()); register(new mxChildChangeCodec()); register(new mxTerminalChangeCodec()); register(new mxGenericChangeCodec(new mxGraphModel.mxValueChange(), "value")); register(new mxGenericChangeCodec(new mxGraphModel.mxStyleChange(), "style")); register(new mxGenericChangeCodec(new mxGraphModel.mxGeometryChange(), "geometry")); register(new mxGenericChangeCodec(new mxGraphModel.mxCollapseChange(), "collapsed")); register(new mxGenericChangeCodec(new mxGraphModel.mxVisibleChange(), "visible")); } } /* Location: C:\Users\platform-001\Desktop\新建文件夹 (2)\jgraphx.jar * Qualified Name: com.mxgraph.io.mxCodecRegistry * JD-Core Version: 0.5.3 */