--- /dev/null
+package org.simantics.interop.mapping.data;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Collection;\r
+\r
+\r
+public class ObjectIdentifiable implements Identifiable {\r
+\r
+ private Object obj;\r
+ \r
+ public ObjectIdentifiable(Object obj) {\r
+ this.obj = obj;\r
+ }\r
+ \r
+ public Object getObject() {\r
+ return obj;\r
+ }\r
+ \r
+ @SuppressWarnings("unchecked")\r
+ @Override\r
+ public <T> T getAdapter(Class<T> clazz) {\r
+ if (clazz == String.class)\r
+ return (T)obj.toString();\r
+ return null;\r
+ }\r
+ \r
+ @Override\r
+ public int hashCode() {\r
+ return obj.hashCode();\r
+ }\r
+ \r
+ @Override\r
+ public boolean equals(Object arg0) {\r
+ if (arg0 == null)\r
+ return false;\r
+ if (this.getClass() != arg0.getClass())\r
+ return false;\r
+ ObjectIdentifiable other = (ObjectIdentifiable)arg0;\r
+ return obj.equals(other.obj);\r
+ }\r
+ \r
+ @Override\r
+ public Identifiable merge(Identifiable other) {\r
+ if (other instanceof ObjectIdentifiable) {\r
+ ObjectSetIdentifiable i = new ObjectSetIdentifiable(this.obj,((ObjectIdentifiable)other).obj);\r
+ return i;\r
+ } else if (other instanceof ObjectSetIdentifiable) {\r
+ Collection<Object> coll = new ArrayList<Object>();\r
+ coll.add(this.obj);\r
+ coll.addAll(((ObjectSetIdentifiable)other).getObjects());\r
+ ObjectSetIdentifiable i = new ObjectSetIdentifiable(coll);\r
+ return i;\r
+ }\r
+ return null;\r
+ }\r
+ \r
+}\r