]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.server.io/src/org/simantics/document/server/io/CommandContextImpl.java
Remove merge semantics of CommandContext keys
[simantics/platform.git] / bundles / org.simantics.document.server.io / src / org / simantics / document / server / io / CommandContextImpl.java
index 3277bbd1edfe02440a1b944f7f6c192c4808875c..8ff198cbf9d2712493f52b04793dad59c2d5d6a1 100644 (file)
@@ -66,8 +66,8 @@ public class CommandContextImpl implements CommandContextMutable {
                if (context != null) {
                        Map<String,List<List<Object>>> from = context.getData(); 
                        for (Map.Entry<String, List<List<Object>>> entry : from.entrySet()) {
-                               List<List<Object>> rows = ensureRowsAvailable(entry.getKey());
-                               rows.addAll(entry.getValue());
+                               String key = entry.getKey();
+                               putValue(key, context.getValue(key));
                        }
                }
                return this;
@@ -80,11 +80,24 @@ public class CommandContextImpl implements CommandContextMutable {
        @Override
        public String toString() {
                StringBuilder sb = new StringBuilder();
+               sb.append("CommandContext:\n");
                for (Map.Entry<String, List<List<Object>>> entry : data.entrySet()) {
-                        sb.append(entry.getKey());
-                        sb.append(":");
-                        sb.append(entry.getValue());
-                        sb.append("\n");
+                       String key = entry.getKey();
+                       if(key.startsWith("__")) continue;
+                       sb.append(key);
+                       sb.append(":");
+                       List<List<Object>> value = entry.getValue();
+                       if(value.size() == 1) {
+                               List<Object> t = (List<Object>)value.get(0);
+                               if(t.size() == 2) {
+                                       sb.append(t.get(1));
+                               } else {
+                                       sb.append(t);
+                               }
+                       } else {
+                               sb.append(value);
+                       }
+                       sb.append("\n");
                }
                return sb.toString();
        }