]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scenegraph.loader/src/org/simantics/scenegraph/loader/ScenegraphLoaderUtils.java
Made DB ListenerAdapter abstract to force isDisposed implementation
[simantics/platform.git] / bundles / org.simantics.scenegraph.loader / src / org / simantics / scenegraph / loader / ScenegraphLoaderUtils.java
index acf585dcc91ccb131cb111afeb42d074ffee9e29..e40773002ebfb68fb5bab610b5896c1e0f699001 100644 (file)
@@ -15,7 +15,7 @@ import org.simantics.db.ReadGraph;
 import org.simantics.db.RequestProcessor;
 import org.simantics.db.Resource;
 import org.simantics.db.common.NamedResource;
-import org.simantics.db.common.procedure.adapter.ListenerAdapter;
+import org.simantics.db.common.procedure.adapter.ProcedureAdapter;
 import org.simantics.db.common.request.BinaryRead;
 import org.simantics.db.common.request.ParametrizedPrimitiveRead;
 import org.simantics.db.common.request.ResourceRead;
@@ -29,6 +29,7 @@ import org.simantics.db.layer0.variable.Variable;
 import org.simantics.db.layer0.variable.VariableBuilder;
 import org.simantics.db.layer0.variable.Variables;
 import org.simantics.db.procedure.Listener;
+import org.simantics.db.procedure.Procedure;
 import org.simantics.layer0.Layer0;
 import org.simantics.scenegraph.INode;
 import org.simantics.scenegraph.LoaderNode;
@@ -44,7 +45,7 @@ import org.simantics.utils.threads.ThreadUtils;
 
 public class ScenegraphLoaderUtils {
        
-       static Map<Pair<Variable, String>, Collection<Listener<Object>>> externalMap = new HashMap<Pair<Variable, String>, Collection<Listener<Object>>>(); 
+       static Map<Pair<Variable, String>, Collection<Procedure<Object>>> externalMap = new HashMap<Pair<Variable, String>, Collection<Procedure<Object>>>(); 
        static Map<Pair<Variable, String>, Object> externalValueMap = new HashMap<Pair<Variable, String>, Object>(); 
 
        final public static class ScenegraphPropertyReference<T> {
@@ -59,12 +60,12 @@ public class ScenegraphLoaderUtils {
                        public void register(ReadGraph graph, final Listener<T> procedure) {
                                Object value = externalValueMap.get(parameter);
                                procedure.execute((T)value);
-                               Collection<Listener<Object>> listeners = externalMap.get(parameter);
+                               Collection<Procedure<Object>> listeners = externalMap.get(parameter);
                                if(listeners == null) {
-                                       listeners = new ArrayList<Listener<Object>>();
+                                       listeners = new ArrayList<Procedure<Object>>();
                                        externalMap.put(parameter, listeners);
                                }
-                               listeners.add(new ListenerAdapter<Object>() {
+                               listeners.add(new ProcedureAdapter<Object>() {
                                        
                                        @Override
                                        public void execute(Object result) {
@@ -353,9 +354,9 @@ public class ScenegraphLoaderUtils {
                public Boolean apply(String property, Object value) {
                        Pair<Variable, String> key = Pair.make(reference.first, reference.second + "#" + property);
                        externalValueMap.put(key, value);
-                       Collection<Listener<Object>> listeners = externalMap.get(key);
+                       Collection<Procedure<Object>> listeners = externalMap.get(key);
                        if(listeners != null) {
-                               for(Listener<Object> listener : listeners) listener.execute(value);
+                               for(Procedure<Object> listener : listeners) listener.execute(value);
                        }
                        return true;
                }