package com.mxgraph.io; import com.mxgraph.model.mxCell; import com.mxgraph.model.mxCellPath; import com.mxgraph.model.mxICell; import com.mxgraph.util.mxUtils; import java.io.PrintStream; import java.util.Hashtable; import java.util.Map; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; public class mxCodec { protected Document document; protected Map objects; protected boolean encodeDefaults; public mxCodec() { this(mxUtils.createDocument()); } public mxCodec(Document paramDocument) { this.objects = new Hashtable(); this.encodeDefaults = false; if (paramDocument == null) paramDocument = mxUtils.createDocument(); this.document = paramDocument; } public Document getDocument() { return this.document; } public void setDocument(Document paramDocument) { this.document = paramDocument; } public boolean isEncodeDefaults() { return this.encodeDefaults; } public void setEncodeDefaults(boolean paramBoolean) { this.encodeDefaults = paramBoolean; } public Map getObjects() { return this.objects; } public Object putObject(String paramString, Object paramObject) { return this.objects.put(paramString, paramObject); } public Object getObject(String paramString) { Object localObject = null; if (paramString != null) { localObject = this.objects.get(paramString); if (localObject == null) { localObject = lookup(paramString); if (localObject == null) { Node localNode = getElementById(paramString); if (localNode != null) localObject = decode(localNode); } } } return localObject; } public Object lookup(String paramString) { return null; } public Node getElementById(String paramString) { return getElementById(paramString, null); } public Node getElementById(String paramString1, String paramString2) { if (paramString2 == null) paramString2 = "id"; String str = "//*[@" + paramString2 + "='" + paramString1 + "']"; return mxUtils.selectSingleNode(this.document, str); } public String getId(Object paramObject) { String str = null; if (paramObject != null) { str = reference(paramObject); if ((str == null) && (paramObject instanceof mxICell)) { str = ((mxICell)paramObject).getId(); if (str == null) { str = mxCellPath.create((mxICell)paramObject); if (str.length() == 0) str = "root"; } } } return str; } public String reference(Object paramObject) { return null; } public Node encode(Object paramObject) { Node localNode = null; if (paramObject != null) { String str = mxCodecRegistry.getName(paramObject); mxObjectCodec localmxObjectCodec = mxCodecRegistry.getCodec(str); if (localmxObjectCodec != null) localNode = localmxObjectCodec.encode(this, paramObject); else if (paramObject instanceof Node) localNode = ((Node)paramObject).cloneNode(true); else System.err.println("No codec for " + str); } return localNode; } public Object decode(Node paramNode) { return decode(paramNode, null); } public Object decode(Node paramNode, Object paramObject) { Object localObject = null; if ((paramNode != null) && (paramNode.getNodeType() == 1)) { mxObjectCodec localmxObjectCodec = mxCodecRegistry.getCodec(paramNode.getNodeName()); try { if (localmxObjectCodec != null) { localObject = localmxObjectCodec.decode(this, paramNode, paramObject); } else { localObject = paramNode.cloneNode(true); ((Element)localObject).removeAttribute("as"); } } catch (Exception localException) { System.err.println("Cannot decode " + paramNode.getNodeName() + ": " + localException.getMessage()); localException.printStackTrace(); } } return localObject; } public void encodeCell(mxICell parammxICell, Node paramNode, boolean paramBoolean) { paramNode.appendChild(encode(parammxICell)); if (!(paramBoolean)) return; int i = parammxICell.getChildCount(); for (int j = 0; j < i; ++j) encodeCell(parammxICell.getChildAt(j), paramNode, paramBoolean); } public mxICell decodeCell(Node paramNode, boolean paramBoolean) { mxICell localmxICell = null; if ((paramNode != null) && (paramNode.getNodeType() == 1)) { mxObjectCodec localmxObjectCodec = mxCodecRegistry.getCodec(paramNode.getNodeName()); Object localObject; if (!(localmxObjectCodec instanceof mxCellCodec)) { for (localObject = paramNode.getFirstChild(); (localObject != null) && (!(localmxObjectCodec instanceof mxCellCodec)); localObject = ((Node)localObject).getNextSibling()) localmxObjectCodec = mxCodecRegistry.getCodec(((Node)localObject).getNodeName()); String str = mxCell.class.getSimpleName(); localmxObjectCodec = mxCodecRegistry.getCodec(str); } if (!(localmxObjectCodec instanceof mxCellCodec)) { localObject = mxCell.class.getSimpleName(); localmxObjectCodec = mxCodecRegistry.getCodec((String)localObject); } localmxICell = (mxICell)localmxObjectCodec.decode(this, paramNode); if (paramBoolean) insertIntoGraph(localmxICell); } return ((mxICell)localmxICell); } public void insertIntoGraph(mxICell parammxICell) { mxICell localmxICell1 = parammxICell.getParent(); mxICell localmxICell2 = parammxICell.getTerminal(true); mxICell localmxICell3 = parammxICell.getTerminal(false); parammxICell.setTerminal(null, false); parammxICell.setTerminal(null, true); parammxICell.setParent(null); if (localmxICell1 != null) localmxICell1.insert(parammxICell); if (localmxICell2 != null) localmxICell2.insertEdge(parammxICell, true); if (localmxICell3 == null) return; localmxICell3.insertEdge(parammxICell, false); } public static void setAttribute(Node paramNode, String paramString, Object paramObject) { if ((paramNode.getNodeType() != 1) || (paramString == null) || (paramObject == null)) return; ((Element)paramNode).setAttribute(paramString, String.valueOf(paramObject)); } } /* Location: C:\Users\platform-001\Desktop\新建文件夹 (2)\jgraphx.jar * Qualified Name: com.mxgraph.io.mxCodec * JD-Core Version: 0.5.3 */