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<String, mxObjectCodec> codecs = new Hashtable();
|
protected static Hashtable<String, String> aliases = new Hashtable();
|
protected static List<String> 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
|
*/
|