-package org.simantics.db.layer0.genericrelation;\r
-\r
-import gnu.trove.set.hash.THashSet;\r
-\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-import java.util.Set;\r
-\r
-import org.simantics.db.Resource;\r
-\r
-class DependenciesListenerStore {\r
- \r
- private final Map<Resource,Set<Runnable>> listeners = new HashMap<Resource,Set<Runnable>>();\r
-\r
- public synchronized void addListener(Resource model, Runnable listener) {\r
- Set<Runnable> list = listeners.get(model);\r
- if(list == null) {\r
- list = new THashSet<Runnable>();\r
- listeners.put(model, list);\r
- }\r
- list.add(listener);\r
- if (DependenciesRelation.DEBUG_LISTENERS) {\r
- System.out.println("DependenciesRelation.addListener(" + listener + "), " + listeners.size() + " total listeners");\r
- new Exception("DependenciesRelation.addListener(" + listener + ")").printStackTrace(System.out);\r
- }\r
- }\r
-\r
- public synchronized void removeListener(Resource model, Runnable listener) {\r
- Set<Runnable> list = listeners.get(model);\r
- if(list == null) return;\r
- list.remove(listener);\r
- if (DependenciesRelation.DEBUG_LISTENERS) {\r
- System.out.println("DependenciesRelation.removeListener(" + listener + "), " + listeners.size() + " total listeners");\r
- new Exception("DependenciesRelation.removeListener(" + listener + ")").printStackTrace(System.out);\r
- }\r
- }\r
-\r
- public synchronized void fireListeners(Resource model) {\r
- Set<Runnable> list = listeners.get(model);\r
- if(list == null) return;\r
- for (Runnable r : list) {\r
- r.run();\r
- }\r
- }\r
-\r
+package org.simantics.db.layer0.genericrelation;
+
+import gnu.trove.set.hash.THashSet;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.simantics.db.Resource;
+
+class DependenciesListenerStore {
+
+ private final Map<Resource,Set<Runnable>> listeners = new HashMap<Resource,Set<Runnable>>();
+
+ public synchronized void addListener(Resource model, Runnable listener) {
+ Set<Runnable> list = listeners.get(model);
+ if(list == null) {
+ list = new THashSet<Runnable>();
+ listeners.put(model, list);
+ }
+ list.add(listener);
+ if (DependenciesRelation.DEBUG_LISTENERS) {
+ System.out.println("DependenciesRelation.addListener(" + listener + "), " + listeners.size() + " total listeners");
+ new Exception("DependenciesRelation.addListener(" + listener + ")").printStackTrace(System.out);
+ }
+ }
+
+ public synchronized void removeListener(Resource model, Runnable listener) {
+ Set<Runnable> list = listeners.get(model);
+ if(list == null) return;
+ list.remove(listener);
+ if (DependenciesRelation.DEBUG_LISTENERS) {
+ System.out.println("DependenciesRelation.removeListener(" + listener + "), " + listeners.size() + " total listeners");
+ new Exception("DependenciesRelation.removeListener(" + listener + ")").printStackTrace(System.out);
+ }
+ }
+
+ public synchronized void fireListeners(Resource model) {
+ Set<Runnable> list = listeners.get(model);
+ if(list == null) return;
+ for (Runnable r : list) {
+ r.run();
+ }
+ }
+
}
\ No newline at end of file