diff --git a/src/main/java/de/kosit/validationtool/api/Result.java b/src/main/java/de/kosit/validationtool/api/Result.java index 86ab193..c750b1c 100644 --- a/src/main/java/de/kosit/validationtool/api/Result.java +++ b/src/main/java/de/kosit/validationtool/api/Result.java @@ -14,22 +14,42 @@ import net.sf.saxon.s9api.XdmNode; */ public interface Result { - /** Der generierte Report. */ + /** + * Zeigt an, ob die Verarbeitung durch den Validator erfolgreich durchlaufen wurde. Diese Funktion macht ausdrücklich + * keine Aussage über die zur Akzeptanz. + * + * @return true, wenn die Verarbeitung komplett und erfolgreich durchlaufen wurde + * @see #getAcceptRecommendation() + */ + boolean isProcessingSuccessful(); + + /** + * Gibt eine Liste mit Verarbeitungsfehlermeldungen zurück. + * + * @return Liste mit Fehlermeldungen + */ + List getProcessingErrors(); + + /** + * Der generierte Report. + */ XdmNode getReport(); - /** Das evaluierte Ergebnis. */ + /** + * Das evaluierte Ergebnis. + */ AcceptRecommendation getAcceptRecommendation(); /** * Gibt den Report als W3C-{@link Document} zurück. - * + * * @return der Report */ Document getReportDocument(); /** * Schnellzugriff auf die Empfehlung zur Weiterverarbeitung des Dokuments. - * + * * @return true wenn {@link AcceptRecommendation#ACCEPTABLE} */ boolean isAcceptable(); diff --git a/src/main/java/de/kosit/validationtool/impl/DefaultCheck.java b/src/main/java/de/kosit/validationtool/impl/DefaultCheck.java index 9c295cd..fd9d3ea 100644 --- a/src/main/java/de/kosit/validationtool/impl/DefaultCheck.java +++ b/src/main/java/de/kosit/validationtool/impl/DefaultCheck.java @@ -135,6 +135,8 @@ public class DefaultCheck implements Check { if (t.getSchemaValidationResult() != null) { result.setSchemaViolations(convertErrors(t.getSchemaValidationResult().getErrors())); } + result.setProcessingSuccessful(!t.isStopped() && t.isFinished()); + result.getProcessingErrors().addAll(t.getReportInput().getProcessingError().getError()); result.setSchematronResult(t.getReportInput().getValidationResultsSchematron().stream() .map(e -> e.getResults().getSchematronOutput()).collect(Collectors.toList())); return result; diff --git a/src/main/java/de/kosit/validationtool/impl/DefaultResult.java b/src/main/java/de/kosit/validationtool/impl/DefaultResult.java index df681b9..78bd0d2 100644 --- a/src/main/java/de/kosit/validationtool/impl/DefaultResult.java +++ b/src/main/java/de/kosit/validationtool/impl/DefaultResult.java @@ -49,10 +49,17 @@ public class DefaultResult implements Result { @Getter private List schemaViolations = new ArrayList<>(); + @Getter + private List processingErrors = new ArrayList<>(); + @Getter @Setter(AccessLevel.PACKAGE) private List schematronResult; + @Getter + @Setter + private boolean processingSuccessful; + public DefaultResult(final XdmNode report, final AcceptRecommendation recommendation, final ContentRepository repository) { this.report = report; this.acceptRecommendation = recommendation; @@ -76,10 +83,9 @@ public class DefaultResult implements Result { */ @Override public boolean isAcceptable() { - return AcceptRecommendation.ACCEPTABLE.equals(this.acceptRecommendation); + return isProcessingSuccessful() && AcceptRecommendation.ACCEPTABLE.equals(this.acceptRecommendation); } - public List extractHtmlAsString() { return extractHtml().stream().map(DefaultResult::convertToString).collect(Collectors.toList()); }