]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/commands/CommandSessionImportEntry.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / commands / CommandSessionImportEntry.java
diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/commands/CommandSessionImportEntry.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/commands/CommandSessionImportEntry.java
new file mode 100644 (file)
index 0000000..8ea79fa
--- /dev/null
@@ -0,0 +1,70 @@
+package org.simantics.scl.compiler.commands;\r
+\r
+import java.util.Collection;\r
+\r
+public class CommandSessionImportEntry implements Comparable<CommandSessionImportEntry> {\r
+    public String moduleName;\r
+    public String localName;\r
+    \r
+    public boolean persistent;\r
+    public boolean hasError;\r
+    public boolean disabled;\r
+    \r
+    public CommandSessionImportEntry(String moduleName, String localName,\r
+            boolean persistent) {\r
+        this.moduleName = moduleName;\r
+        this.localName = localName;\r
+        this.persistent = persistent;\r
+    }\r
+\r
+    public CommandSessionImportEntry(String moduleName, String localName) {\r
+        this.moduleName = moduleName;\r
+        this.localName = localName;\r
+    }\r
+\r
+    public CommandSessionImportEntry(String moduleName) {\r
+        this(moduleName, "");\r
+    }\r
+    \r
+    public void addTo(Collection<CommandSessionImportEntry> entries) {\r
+        for(CommandSessionImportEntry entry : entries)\r
+            if(entry.moduleName.equals(moduleName) && entry.localName.equals(localName)) {\r
+                entry.persistent |= persistent;\r
+                entry.disabled &= disabled;\r
+                return;\r
+            }\r
+        entries.add(this);\r
+    }\r
+\r
+    @Override\r
+    public int compareTo(CommandSessionImportEntry o) {\r
+        int cmp = moduleName.compareTo(o.moduleName);\r
+        if(cmp != 0)\r
+            return cmp;\r
+        return localName.compareTo(o.localName);\r
+    }\r
+\r
+    public String getStatusString() {\r
+        StringBuilder b = new StringBuilder();\r
+        boolean first = true;\r
+        if(persistent) {\r
+            first = false;\r
+            b.append("persistent");\r
+        }\r
+        if(disabled) {\r
+            if(first)\r
+                first = false;\r
+            else\r
+                b.append(", ");\r
+            b.append("disabled");\r
+        }\r
+        if(hasError) {\r
+            if(first)\r
+                first = false;\r
+            else\r
+                b.append(", ");\r
+            b.append("has errors");\r
+        }\r
+        return b.toString();\r
+    }\r
+}\r