]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
1 package org.simantics.scenegraph.profile.common;\r
2 \r
3 import org.simantics.db.common.utils.Logger;\r
4 import org.simantics.db.procedure.Listener;\r
5 import org.simantics.scenegraph.profile.Group;\r
6 import org.simantics.scenegraph.profile.Observer;\r
7 \r
8 /**\r
9  * @author Tuukka Lehtonen\r
10  */\r
11 public abstract class ObserverGroupValueListener<T> implements Listener<T> {\r
12 \r
13     protected ObserverGroupListener listener;\r
14     protected Observer              observer;\r
15     protected Group                 group;\r
16     protected Object                data;\r
17 \r
18     public ObserverGroupValueListener(ObserverGroupListener listener, Observer observer, Group group, Object data) {\r
19         this.listener = listener;\r
20         this.observer = observer;\r
21         this.group = group;\r
22         this.data = data;\r
23     }\r
24 \r
25     @Override\r
26     public void exception(Throwable t) {\r
27         Logger.defaultLogError(t);\r
28     }\r
29 \r
30     @Override\r
31     public boolean isDisposed() {\r
32         return listener.isDisposed();\r
33     }\r
34 \r
35     @Override\r
36     public int hashCode() {\r
37         return listener.hashCode() + 31 * data.hashCode();\r
38 //        return observer.hashCode() + 31 * group.hashCode() + 41*data.hashCode();\r
39     }\r
40 \r
41     @Override\r
42     public boolean equals(Object object) {\r
43         if (this == object)\r
44             return true;\r
45         else if (object == null)\r
46             return false;\r
47         else if (getClass() != object.getClass())\r
48             return false;\r
49         ObserverGroupValueListener<?> other = (ObserverGroupValueListener<?>) object;\r
50         return listener.equals(other.listener) && data.equals(other.data);\r
51 //        return observer.equals(other.observer) && group.equals(other.group) && data.equals(other.data);\r
52     }\r
53 \r
54 }\r