]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scenegraph.ui/src/org/simantics/scenegraph/ui/NodeProxy.java
Merge "Documented difference of RuntimeEnvironmentRequest and Runti...quest2"
[simantics/platform.git] / bundles / org.simantics.scenegraph.ui / src / org / simantics / scenegraph / ui / NodeProxy.java
index 2b811c94d1f84a25b7a507d889732986e1987803..a9307c6e2f9868a9316dbc3d2b3ed8fcf1de8eac 100644 (file)
-/*******************************************************************************\r
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
- * in Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *     VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.scenegraph.ui;\r
-\r
-import java.lang.ref.WeakReference;\r
-\r
-import org.simantics.scenegraph.INode;\r
-\r
-/**\r
- * @author Tuukka Lehtonen\r
- */\r
-class NodeProxy {\r
-\r
-    WeakReference<INode> ref;\r
-    String               id;\r
-\r
-    NodeProxy(INode n) {\r
-        this(n, null);\r
-    }\r
-\r
-    NodeProxy(INode n, String id) {\r
-        this.ref = new WeakReference<INode>(n);\r
-        this.id = id;\r
-    }\r
-\r
-    INode getNode() {\r
-        return ref.get();\r
-    }\r
-\r
-    @Override\r
-    public String toString() {\r
-        StringBuilder sb = new StringBuilder();\r
-        INode n = getNode();\r
-        if (id != null) {\r
-            sb.append("[");\r
-            sb.append(id);\r
-            sb.append("] ");\r
-        }\r
-        if (n == null) {\r
-            sb.append("(collected)");\r
-        } else {\r
-            sb.append(n.getSimpleClassName());\r
-        }\r
-        return sb.toString();\r
-    }\r
-\r
-    public String getTypeName() {\r
-        INode n = getNode();\r
-        return n == null ? "-" : n.getSimpleClassName();\r
-    }\r
-\r
-    public String getInternalId() {\r
-        INode n = getNode();\r
-        if (n == null)\r
-            return "-";\r
-        return n.getId().toString();\r
-    }\r
-\r
-    public String getId() {\r
-        return id;\r
-    }\r
-\r
-    @Override\r
-    public int hashCode() {\r
-        final int prime = 31;\r
-        int result = 1;\r
-        result = prime * result + ((id == null) ? 0 : id.hashCode());\r
-        INode node = getNode();\r
-        result = prime * result + ((node == null) ? 0 : node.hashCode());\r
-        return result;\r
-    }\r
-\r
-    @Override\r
-    public boolean equals(Object obj) {\r
-        if (this == obj)\r
-            return true;\r
-        if (obj == null)\r
-            return false;\r
-        if (getClass() != obj.getClass())\r
-            return false;\r
-        NodeProxy other = (NodeProxy) obj;\r
-        if (id == null) {\r
-            if (other.id != null)\r
-                return false;\r
-        } else if (!id.equals(other.id))\r
-            return false;\r
-\r
-        INode node = getNode();\r
-        INode otherNode = other.getNode();\r
-        if (node == null || otherNode == null)\r
-            // Collected nodes are never equal to any other node\r
-            return false;\r
-\r
-        return node.equals(otherNode);\r
-    }\r
-\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.scenegraph.ui;
+
+import java.lang.ref.WeakReference;
+
+import org.simantics.scenegraph.INode;
+
+/**
+ * @author Tuukka Lehtonen
+ */
+class NodeProxy {
+
+    WeakReference<INode> ref;
+    String               id;
+
+    NodeProxy(INode n) {
+        this(n, null);
+    }
+
+    NodeProxy(INode n, String id) {
+        this.ref = new WeakReference<INode>(n);
+        this.id = id;
+    }
+
+    INode getNode() {
+        return ref.get();
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        INode n = getNode();
+        if (id != null) {
+            sb.append("[");
+            sb.append(id);
+            sb.append("] ");
+        }
+        if (n == null) {
+            sb.append("(collected)");
+        } else {
+            sb.append(n.getSimpleClassName());
+        }
+        return sb.toString();
+    }
+
+    public String getTypeName() {
+        INode n = getNode();
+        return n == null ? "-" : n.getSimpleClassName();
+    }
+
+    public String getInternalId() {
+        INode n = getNode();
+        if (n == null)
+            return "-";
+        return Long.toString(n.getId());
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((id == null) ? 0 : id.hashCode());
+        INode node = getNode();
+        result = prime * result + ((node == null) ? 0 : node.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        NodeProxy other = (NodeProxy) obj;
+        if (id == null) {
+            if (other.id != null)
+                return false;
+        } else if (!id.equals(other.id))
+            return false;
+
+        INode node = getNode();
+        INode otherNode = other.getNode();
+        if (node == null || otherNode == null)
+            // Collected nodes are never equal to any other node
+            return false;
+
+        return node.equals(otherNode);
+    }
+
 }
\ No newline at end of file