X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Ferrors%2FFailure.java;fp=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Ferrors%2FFailure.java;h=5a6cf72b603c3e8a5c5b6667a78099e44d0650c8;hp=0000000000000000000000000000000000000000;hb=969bd23cab98a79ca9101af33334000879fb60c5;hpb=866dba5cd5a3929bbeae85991796acb212338a08 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/errors/Failure.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/errors/Failure.java new file mode 100644 index 000000000..5a6cf72b6 --- /dev/null +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/errors/Failure.java @@ -0,0 +1,53 @@ +package org.simantics.scl.compiler.errors; + +import java.io.PrintStream; + +@SuppressWarnings("rawtypes") +public class Failure implements Failable { + public final CompilationError[] errors; + + public Failure(CompilationError[] errors) { + this.errors = errors; + } + + public Failure(String description) { + this.errors = new CompilationError[] { new CompilationError(description) }; + } + + public Failure(Exception e) { + this.errors = new CompilationError[] { new CompilationError(e) }; + } + + public void printTo(PrintStream out) { + for(CompilationError error : errors) + out.println(error.description); + } + + public String toString(String source) { + return CompilationErrorFormatter.toString(source, errors); + } + + @Override + public String toString() { + return CompilationErrorFormatter.toString(errors); + } + + @Override + public Object getResult() { + throw new IllegalStateException("Module compilation failed."); + } + + @Override + public boolean didSucceed() { + return false; + } + + @Override + public String getDescription() { + StringBuilder b = new StringBuilder(); + b.append("Module compilation failed:"); + for(CompilationError error : errors) + b.append("\n ").append(error.description); + return b.toString(); + } +}