--- /dev/null
+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