田源
2024-03-07 4b4083fd73dc27ece42f4835483565eef0e4f608
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
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
 */