diff --git a/src/main/java/de/kosit/validationtool/api/Result.java b/src/main/java/de/kosit/validationtool/api/Result.java index 5581e29..dcbe19d 100644 --- a/src/main/java/de/kosit/validationtool/api/Result.java +++ b/src/main/java/de/kosit/validationtool/api/Result.java @@ -2,6 +2,7 @@ package de.kosit.validationtool.api; import java.util.List; +import org.oclc.purl.dsdl.svrl.FailedAssert; import org.oclc.purl.dsdl.svrl.SchematronOutput; import org.w3c.dom.Document; @@ -69,6 +70,13 @@ public interface Result { */ List getSchematronResult(); + /** + * Returns {@link org.oclc.purl.dsdl.svrl.FailedAssert FailedAsserts} of a schematron evaluation. + * + * @return list of {@link org.oclc.purl.dsdl.svrl.FailedAssert FailedAsserts}, if any, empty list otherwise + */ + List getFailedAsserts(); + /** * Liefert ein true, wenn keine Schema-Violations vorhanden sind. * @@ -82,4 +90,11 @@ public interface Result { * @return true wenn well-formed */ boolean isWellformed(); + + /** + * Returns true, if schematron has been checked and the result does not contain any {@link FailedAssert FailedAsserts}. + * + * @return true, if valid + */ + boolean isSchematronValid(); } diff --git a/src/main/java/de/kosit/validationtool/impl/DefaultResult.java b/src/main/java/de/kosit/validationtool/impl/DefaultResult.java index b878cee..e8be8ac 100644 --- a/src/main/java/de/kosit/validationtool/impl/DefaultResult.java +++ b/src/main/java/de/kosit/validationtool/impl/DefaultResult.java @@ -127,12 +127,19 @@ public class DefaultResult implements Result { * * @return die {@link FailedAssert} */ + @Override public List getFailedAsserts() { return filterSchematronResult(FailedAssert.class); } private List filterSchematronResult(final Class type) { - return getSchematronResult().stream().filter(type::isInstance).map(type::cast).collect(Collectors.toList()); + return getSchematronResult() != null + ? getSchematronResult().stream().filter(type::isInstance).map(type::cast).collect(Collectors.toList()) + : Collections.emptyList(); } + @Override + public boolean isSchematronValid() { + return getSchematronResult() != null && getFailedAsserts().isEmpty(); + } }