]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/commands/CommandSessionImportEntry.java
(refs #7250) Merging master, minor CHR bugfixes
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / commands / CommandSessionImportEntry.java
1 package org.simantics.scl.compiler.commands;
2
3 import java.util.Collection;
4
5 public class CommandSessionImportEntry implements Comparable<CommandSessionImportEntry> {
6     public String moduleName;
7     public String localName;
8     
9     public boolean persistent;
10     public boolean hasError;
11     public boolean disabled;
12     
13     public CommandSessionImportEntry(String moduleName, String localName,
14             boolean persistent) {
15         this.moduleName = moduleName;
16         this.localName = localName;
17         this.persistent = persistent;
18     }
19
20     public CommandSessionImportEntry(String moduleName, String localName) {
21         this.moduleName = moduleName;
22         this.localName = localName;
23     }
24
25     public CommandSessionImportEntry(String moduleName) {
26         this(moduleName, "");
27     }
28     
29     public void addTo(Collection<CommandSessionImportEntry> entries) {
30         for(CommandSessionImportEntry entry : entries)
31             if(entry.moduleName.equals(moduleName) && entry.localName.equals(localName)) {
32                 entry.persistent |= persistent;
33                 entry.disabled &= disabled;
34                 return;
35             }
36         entries.add(this);
37     }
38
39     @Override
40     public int compareTo(CommandSessionImportEntry o) {
41         int cmp = moduleName.compareTo(o.moduleName);
42         if(cmp != 0)
43             return cmp;
44         return localName.compareTo(o.localName);
45     }
46
47     public String getStatusString() {
48         StringBuilder b = new StringBuilder();
49         boolean first = true;
50         if(persistent) {
51             first = false;
52             b.append("persistent");
53         }
54         if(disabled) {
55             if(first)
56                 first = false;
57             else
58                 b.append(", ");
59             b.append("disabled");
60         }
61         if(hasError) {
62             if(first)
63                 first = false;
64             else
65                 b.append(", ");
66             b.append("has errors");
67         }
68         return b.toString();
69     }
70 }