]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/common/exceptions/InternalCompilerError.java
Tons of dependency fixes and updates
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / common / exceptions / InternalCompilerError.java
index ae3bdd87ca368ed06cddf8c42f209ea339c63b1f..a3b64613428c465168cb210211ef19010e8570cf 100644 (file)
@@ -22,6 +22,11 @@ public class InternalCompilerError extends RuntimeException {
         this.location = Locations.NO_LOCATION;
     }
     
+    public InternalCompilerError(String message, Throwable cause) {
+        super(message, cause);
+        this.location = Locations.NO_LOCATION;
+    }
+    
     public InternalCompilerError(long location, String message) {
         super(message);
         this.location = location;
@@ -31,5 +36,21 @@ public class InternalCompilerError extends RuntimeException {
         super(cause);
         this.location = Locations.NO_LOCATION;
     }
+    
+    public InternalCompilerError(long location, Throwable cause) {
+        super(cause);
+        this.location = location;
+    }
+    
+    public static InternalCompilerError injectLocation(long location, Throwable cause) {
+        if(cause instanceof InternalCompilerError) {
+            InternalCompilerError e = (InternalCompilerError)cause;
+            if(e.location == Locations.NO_LOCATION)
+                e.location = location;
+            return e;
+        }
+        else
+            return new InternalCompilerError(location, cause);
+    }
    
 }