]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/issues/SCLIssuesTableEntry.java
SCL expressions to SCL Issues view
[simantics/platform.git] / bundles / org.simantics.scl.osgi / src / org / simantics / scl / osgi / issues / SCLIssuesTableEntry.java
diff --git a/bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/issues/SCLIssuesTableEntry.java b/bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/issues/SCLIssuesTableEntry.java
new file mode 100644 (file)
index 0000000..c9c21e8
--- /dev/null
@@ -0,0 +1,32 @@
+package org.simantics.scl.osgi.issues;
+
+import org.simantics.scl.compiler.errors.CompilationError;
+import org.simantics.scl.compiler.errors.Locations;
+
+public abstract class SCLIssuesTableEntry implements Comparable<SCLIssuesTableEntry> {
+    public final String moduleName;
+    public final CompilationError error;
+
+    public SCLIssuesTableEntry(String moduleName, CompilationError error) {
+        this.moduleName = moduleName;
+        this.error = error;
+    }
+
+    public abstract void openLocation();
+
+    @Override
+    public int compareTo(SCLIssuesTableEntry o) {
+        if(this == o)
+            return 0;
+        int cmp = error.severity.compareTo(o.error.severity);
+        if(cmp != 0)
+            return cmp;
+        cmp = moduleName.compareTo(o.moduleName);
+        if(cmp != 0)
+            return cmp;
+        cmp = Locations.compare(error.location, o.error.location);
+        if(cmp != 0)
+            return cmp;
+        return error.description.compareTo(o.error.description);
+    }
+}