]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.structural.synchronization.client/src/org/simantics/structural/synchronization/base/ModuleUpdateContext.java
Separate DB and non-DB code to different structural sync bundles
[simantics/platform.git] / bundles / org.simantics.structural.synchronization.client / src / org / simantics / structural / synchronization / base / ModuleUpdateContext.java
diff --git a/bundles/org.simantics.structural.synchronization.client/src/org/simantics/structural/synchronization/base/ModuleUpdateContext.java b/bundles/org.simantics.structural.synchronization.client/src/org/simantics/structural/synchronization/base/ModuleUpdateContext.java
deleted file mode 100644 (file)
index 854a22d..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-package org.simantics.structural.synchronization.base;
-
-import gnu.trove.map.hash.THashMap;
-
-import java.util.ArrayList;
-
-import org.simantics.databoard.binding.mutable.Variant;
-import org.simantics.structural.synchronization.utils.ComponentBase;
-import org.simantics.structural.synchronization.utils.Solver;
-
-public class ModuleUpdateContext<T extends ComponentBase<T>> {
-
-    private ModuleUpdaterBase<T> updater;
-    private final SynchronizationEventHandlerBase<T> handler;
-    public final T component;
-    public CommandBuilder command;
-    private ArrayList<Runnable> postUpdateActions; 
-    private THashMap<String, Variant> storedProperties;
-    
-    private int pendingRuleCount;
-    public boolean stateLoadedFromUndo;
-
-    public ModuleUpdateContext(SynchronizationEventHandlerBase<T> handler, ModuleUpdaterBase<T> updater, T component) {
-       assert(updater != null);
-        this.handler = handler;
-        this.updater = updater;
-        this.component = component;
-    }
-
-    public void incPendingCount() {
-        ++pendingRuleCount;
-    }
-    
-    public void decPendingCount() {
-        --pendingRuleCount;
-        if(pendingRuleCount == 0) {
-               try {
-                       command.apply(getSolver());
-                       command = null;
-               } catch (Exception e) {
-                       handler.reportProblem("Exception while issuing command.", e);
-               }
-            if(getModuleId() <= 0) {
-                setModuleId(getSolver().getId(getModuleName()));
-                component.setModuleId(getModuleId());
-            }
-            if(postUpdateActions != null) {
-                for(Runnable action : postUpdateActions)
-                    try {
-                        action.run();
-                    } catch(Exception e) {
-                        handler.reportProblem("Post update action failed.", e);
-                    }
-                postUpdateActions = null;
-            }
-            handler.resolver.unmarkPending(component);
-        }
-    }
-    
-    public void addPostUpdateAction(Runnable action) {
-        if(postUpdateActions == null)
-            postUpdateActions = new ArrayList<Runnable>(2);
-        postUpdateActions.add(action);
-    }
-
-    public int getModuleId() {
-        return component.getModuleId();
-    }
-    
-    public SynchronizationEventHandlerBase<T> getHandler() {
-        return handler;
-    }
-
-    public void setModuleId(int moduleId) {
-        component.setModuleId(moduleId);
-    }
-
-    public Solver getSolver() {
-       return handler.solver;
-    }
-    
-    public <S> S getConcreteSolver() {
-       return handler.solver.getConcreteSolver();
-    }
-
-    public String getModuleType() {
-        return updater != null ? updater.moduleType : null;
-    }
-
-    public String getModuleName() {
-        return component.solverComponentName;
-    }
-
-    public void setModuleName(String moduleName) {
-        component.solverComponentName = moduleName;
-    }
-
-    public void reportProblem(String description) {
-        handler.reportProblem(description);
-       
-    }
-    
-    public void reportProblem(String description, Exception e) {
-        handler.reportProblem(description, e);
-    }
-
-    public void resolveReference(String connectionPoint, ModuleCallback moduleCallback) {
-        handler.resolver.resolveReference(component, connectionPoint, moduleCallback);
-    }
-    
-    public void storeProperty(String name, Variant value) {
-        if(storedProperties == null)
-            storedProperties = new THashMap<String, Variant>();
-        storedProperties.put(name, value);
-    }
-    
-    public Variant getStoredProperty(String name) {
-        if(storedProperties == null)
-            return null;
-        return storedProperties.get(name);
-    }
-
-    public void addPostSynchronizationAction(Runnable action) {
-        handler.addPostSynchronizationAction(action); 
-    }
-    
-    @SuppressWarnings("unchecked")
-       public <C> C getConcreteCommand() {
-       return (C)command.getConcrete();
-    }
-
-    public void setDidChanges() {
-        handler.setDidChanges();
-    }
-    
-    ArrayList<ResynchronizeAction> resynchronizeActions;
-
-    private class ResynchronizeAction {
-        final String connectionPoint;
-        final ModuleCallback callback;
-        
-        public ResynchronizeAction(String connectionPoint,
-                ModuleCallback callback) {
-            this.connectionPoint = connectionPoint;
-            this.callback = callback;
-        }
-    }
-    
-    public void resynchronize(String connectionPoint, ModuleCallback callback) {
-        if(resynchronizeActions == null) {
-            resynchronizeActions = new ArrayList<ResynchronizeAction>();
-            handler.addPostSynchronizationAction(new Runnable() {
-                @Override
-                public void run() {
-                    ArrayList<ResynchronizeAction> resynchronizeActions = ModuleUpdateContext.this.resynchronizeActions;
-                    ModuleUpdateContext.this.resynchronizeActions = null;
-                    
-                    command = updater.createUpdateCommandBuilder(getModuleName());
-                    for(ResynchronizeAction action : resynchronizeActions)
-                        resolveReference(action.connectionPoint, action.callback);
-                    try {
-                        command.apply(getSolver());
-                    } catch (Exception e) {
-                        handler.reportProblem("Exception while issuing command.", e);
-                    }
-                }
-            });
-        }
-        resynchronizeActions.add(new ResynchronizeAction(connectionPoint, callback));
-    }
-
-}