import org.simantics.scl.compiler.common.exceptions.InternalCompilerError;
public class ErrorLog {
- ArrayList<CompilationError> errors = new ArrayList<CompilationError>();
+ ArrayList<CompilationError> errors = new ArrayList<CompilationError>();
+ int errorCount;
long exceptionPosition = Locations.NO_LOCATION;
public void log(String message) {
- errors.add(new CompilationError(message));
+ log(new CompilationError(message));
}
public void log(CompilationError error) {
errors.add(error);
+ if(error.severity != ErrorSeverity.WARNING)
+ ++errorCount;
}
public void log(long locatable, String description) {
log(new CompilationError(locatable, description));
}
+
+ public void logWarning(long locatable, String description) {
+ log(new CompilationError(locatable, description, ErrorSeverity.WARNING));
+ }
public void log(Exception e) {
long location = Locations.NO_LOCATION;
log(new CompilationError(location, e));
}
- public boolean isEmpty() {
- return errors.isEmpty();
+ public boolean hasNoErrors() {
+ return errorCount == 0;
+ }
+
+ public boolean hasErrors() {
+ return errorCount > 0;
+ }
+
+ public boolean hasErrorsOrWarnings() {
+ return !errors.isEmpty();
}
public CompilationError[] getErrors() {
}
public String getErrorsAsString() {
+ Collections.sort(errors);
StringBuilder b = new StringBuilder();
for(CompilationError error : errors)
b.append(error.description).append('\n');
}
public int getErrorCount() {
- return errors.size();
+ return errorCount;
}
}