1 package org.simantics.scenegraph.profile.common;
\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
9 * @author Tuukka Lehtonen
\r
11 public abstract class ObserverGroupValueListener<T> implements Listener<T> {
\r
13 protected ObserverGroupListener listener;
\r
14 protected Observer observer;
\r
15 protected Group group;
\r
16 protected Object data;
\r
18 public ObserverGroupValueListener(ObserverGroupListener listener, Observer observer, Group group, Object data) {
\r
19 this.listener = listener;
\r
20 this.observer = observer;
\r
26 public void exception(Throwable t) {
\r
27 Logger.defaultLogError(t);
\r
31 public boolean isDisposed() {
\r
32 return listener.isDisposed();
\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
42 public boolean equals(Object object) {
\r
45 else if (object == null)
\r
47 else if (getClass() != object.getClass())
\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