]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scenegraph.profile/src/org/simantics/scenegraph/profile/common/ObserverGroupValueListener.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scenegraph.profile / src / org / simantics / scenegraph / profile / common / ObserverGroupValueListener.java
diff --git a/bundles/org.simantics.scenegraph.profile/src/org/simantics/scenegraph/profile/common/ObserverGroupValueListener.java b/bundles/org.simantics.scenegraph.profile/src/org/simantics/scenegraph/profile/common/ObserverGroupValueListener.java
new file mode 100644 (file)
index 0000000..1acdc05
--- /dev/null
@@ -0,0 +1,54 @@
+package org.simantics.scenegraph.profile.common;\r
+\r
+import org.simantics.db.common.utils.Logger;\r
+import org.simantics.db.procedure.Listener;\r
+import org.simantics.scenegraph.profile.Group;\r
+import org.simantics.scenegraph.profile.Observer;\r
+\r
+/**\r
+ * @author Tuukka Lehtonen\r
+ */\r
+public abstract class ObserverGroupValueListener<T> implements Listener<T> {\r
+\r
+    protected ObserverGroupListener listener;\r
+    protected Observer              observer;\r
+    protected Group                 group;\r
+    protected Object                data;\r
+\r
+    public ObserverGroupValueListener(ObserverGroupListener listener, Observer observer, Group group, Object data) {\r
+        this.listener = listener;\r
+        this.observer = observer;\r
+        this.group = group;\r
+        this.data = data;\r
+    }\r
+\r
+    @Override\r
+    public void exception(Throwable t) {\r
+        Logger.defaultLogError(t);\r
+    }\r
+\r
+    @Override\r
+    public boolean isDisposed() {\r
+        return listener.isDisposed();\r
+    }\r
+\r
+    @Override\r
+    public int hashCode() {\r
+        return listener.hashCode() + 31 * data.hashCode();\r
+//        return observer.hashCode() + 31 * group.hashCode() + 41*data.hashCode();\r
+    }\r
+\r
+    @Override\r
+    public boolean equals(Object object) {\r
+        if (this == object)\r
+            return true;\r
+        else if (object == null)\r
+            return false;\r
+        else if (getClass() != object.getClass())\r
+            return false;\r
+        ObserverGroupValueListener<?> other = (ObserverGroupValueListener<?>) object;\r
+        return listener.equals(other.listener) && data.equals(other.data);\r
+//        return observer.equals(other.observer) && group.equals(other.group) && data.equals(other.data);\r
+    }\r
+\r
+}\r