]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.diagram/src/org/simantics/diagram/synchronization/graph/GraphSynchronizationContext.java
Some enhancements to GraphLayer-related utilities for Diagram layers
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / synchronization / graph / GraphSynchronizationContext.java
index 893e8311e0001735ab0840e5cf00fce6cca9f0db..86dec9fa5e514dfd10aef14f681243a0d30d2131 100644 (file)
@@ -1,62 +1,62 @@
-/*******************************************************************************\r
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
- * in Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *     VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.diagram.synchronization.graph;\r
-\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.diagram.internal.DebugPolicy;\r
-import org.simantics.diagram.synchronization.IModifiableSynchronizationContext;\r
-import org.simantics.diagram.synchronization.IModificationQueue;\r
-import org.simantics.diagram.synchronization.SynchronizationHints;\r
-import org.simantics.utils.datastructures.hints.HintContext;\r
-import org.simantics.utils.datastructures.hints.IHintContext;\r
-import org.simantics.utils.datastructures.hints.IHintContext.Key;\r
-\r
-/**\r
- * @author Tuukka Lehtonen\r
- */\r
-public class GraphSynchronizationContext implements IModifiableSynchronizationContext {\r
-\r
-    private final IHintContext ctx = new HintContext();\r
-\r
-    public GraphSynchronizationContext(ReadGraph graph, IModificationQueue modificationQueue) {\r
-        ctx.setHint(GraphSynchronizationHints.SESSION, graph.getSession());\r
-        ctx.setHint(GraphSynchronizationHints.BASIC_RESOURCES, BasicResources.getInstance(graph));\r
-        ctx.setHint(SynchronizationHints.MODIFICATION_QUEUE, modificationQueue);\r
-    }\r
-\r
-    public static GraphSynchronizationContext getWriteInstance(WriteGraph graph, IModificationQueue modificationQueue) {\r
-        GraphSynchronizationContext ctx = new GraphSynchronizationContext(graph, modificationQueue);\r
-        ctx.ctx.setHint(GraphSynchronizationHints.READ_TRANSACTION, graph);\r
-        ctx.ctx.setHint(GraphSynchronizationHints.WRITE_TRANSACTION, graph);\r
-        return ctx;\r
-    }\r
-\r
-    @Override\r
-    public <T> T get(Key key) {\r
-        return ctx.getHint(key);\r
-    }\r
-\r
-    @Override\r
-    public <T> T set(Key key, Object value) {\r
-        if (DebugPolicy.DEBUG_SYNC_CONTEXT)\r
-            System.out.println(this + ".set(" + key + "): " + value);\r
-\r
-        if (value == null)\r
-            return ctx.removeHint(key);\r
-\r
-        T t = ctx.getHint(key);\r
-        ctx.setHint(key, value);\r
-        return t;\r
-    }\r
-\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.diagram.synchronization.graph;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.WriteGraph;
+import org.simantics.diagram.internal.DebugPolicy;
+import org.simantics.diagram.synchronization.IModifiableSynchronizationContext;
+import org.simantics.diagram.synchronization.IModificationQueue;
+import org.simantics.diagram.synchronization.SynchronizationHints;
+import org.simantics.utils.datastructures.hints.HintContext;
+import org.simantics.utils.datastructures.hints.IHintContext;
+import org.simantics.utils.datastructures.hints.IHintContext.Key;
+
+/**
+ * @author Tuukka Lehtonen
+ */
+public class GraphSynchronizationContext implements IModifiableSynchronizationContext {
+
+    private final IHintContext ctx = new HintContext();
+
+    public GraphSynchronizationContext(ReadGraph graph, IModificationQueue modificationQueue) {
+        ctx.setHint(GraphSynchronizationHints.SESSION, graph.getSession());
+        ctx.setHint(GraphSynchronizationHints.BASIC_RESOURCES, BasicResources.getInstance(graph));
+        ctx.setHint(SynchronizationHints.MODIFICATION_QUEUE, modificationQueue);
+    }
+
+    public static GraphSynchronizationContext getWriteInstance(WriteGraph graph, IModificationQueue modificationQueue) {
+        GraphSynchronizationContext ctx = new GraphSynchronizationContext(graph, modificationQueue);
+        ctx.ctx.setHint(GraphSynchronizationHints.READ_TRANSACTION, graph);
+        ctx.ctx.setHint(GraphSynchronizationHints.WRITE_TRANSACTION, graph);
+        return ctx;
+    }
+
+    @Override
+    public <T> T get(Key key) {
+        return ctx.getHint(key);
+    }
+
+    @Override
+    public <T> T set(Key key, Object value) {
+        if (DebugPolicy.DEBUG_SYNC_CONTEXT)
+            System.out.println(this + ".set(" + key + "): " + value);
+
+        if (value == null)
+            return ctx.removeHint(key);
+
+        T t = ctx.getHint(key);
+        ctx.setHint(key, value);
+        return t;
+    }
+
 }
\ No newline at end of file