package org.bindgen.processor; import javax.tools.Diagnostic; import javax.tools.DiagnosticCollector; import javax.tools.JavaFileObject; /** * Exception throw when compilation fails during a test case execution. * * @author igor.vaynberg */ public class CompilationErrorException extends Exception { private static final long serialVersionUID = 1L; private final DiagnosticCollector<JavaFileObject> diagnosticCollector; /** * Constructor * * @param diagnosticCollector collector that contains compilation errors */ public CompilationErrorException(DiagnosticCollector<JavaFileObject> diagnosticCollector) { super(message(diagnosticCollector)); this.diagnosticCollector = diagnosticCollector; } /** * @return diagnostic collector */ public DiagnosticCollector<JavaFileObject> getDiagnosticCollector() { return this.diagnosticCollector; } private static String message(DiagnosticCollector<JavaFileObject> dc) { StringBuilder message = new StringBuilder(); for (Diagnostic<?> d : dc.getDiagnostics()) { switch (d.getKind()) { case ERROR: message.append("ERROR: " + d.toString() + "\n"); } } return message.toString(); } }