(fix) add schematron validation (was accidentally removed)

This commit is contained in:
Andreas Penski (init) 2019-05-10 10:19:38 +02:00
parent 4858a31767
commit a461c3f2b7

View file

@ -33,6 +33,7 @@ import de.kosit.validationtool.impl.tasks.CreateReportAction;
import de.kosit.validationtool.impl.tasks.DocumentParseAction; import de.kosit.validationtool.impl.tasks.DocumentParseAction;
import de.kosit.validationtool.impl.tasks.ScenarioSelectionAction; import de.kosit.validationtool.impl.tasks.ScenarioSelectionAction;
import de.kosit.validationtool.impl.tasks.SchemaValidationAction; import de.kosit.validationtool.impl.tasks.SchemaValidationAction;
import de.kosit.validationtool.impl.tasks.SchematronValidationAction;
import de.kosit.validationtool.impl.tasks.ValidateReportInputAction; import de.kosit.validationtool.impl.tasks.ValidateReportInputAction;
import de.kosit.validationtool.model.reportInput.CreateReportInput; import de.kosit.validationtool.model.reportInput.CreateReportInput;
import de.kosit.validationtool.model.reportInput.DocumentIdentificationType; import de.kosit.validationtool.model.reportInput.DocumentIdentificationType;
@ -56,40 +57,42 @@ public class DefaultCheck implements Check {
private static final String ENGINE_VERSION = "1.0.0"; private static final String ENGINE_VERSION = "1.0.0";
@Getter @Getter
private ScenarioRepository repository; private final ScenarioRepository repository;
@Getter @Getter
private ContentRepository contentRepository; private final ContentRepository contentRepository;
private ConversionService conversionService; private final ConversionService conversionService;
@Getter @Getter
private List<CheckAction> checkSteps; private final List<CheckAction> checkSteps;
/** /**
* Erzeugt eine neue Instanz mit der angegebenen Konfiguration. * Erzeugt eine neue Instanz mit der angegebenen Konfiguration.
* *
* @param configuration die Konfiguration * @param configuration die Konfiguration
*/ */
public DefaultCheck(CheckConfiguration configuration) { public DefaultCheck(final CheckConfiguration configuration) {
Processor processor = ObjectFactory.createProcessor(); final Processor processor = ObjectFactory.createProcessor();
conversionService = new ConversionService(); this.conversionService = new ConversionService();
contentRepository = new ContentRepository(processor, configuration.getScenarioRepository()); this.contentRepository = new ContentRepository(processor, configuration.getScenarioRepository());
repository = new ScenarioRepository(processor, contentRepository); this.repository = new ScenarioRepository(processor, this.contentRepository);
repository.initialize(configuration); this.repository.initialize(configuration);
checkSteps = new ArrayList<>(); this.checkSteps = new ArrayList<>();
checkSteps.add(this::createDocumentIdentification); this.checkSteps.add(DefaultCheck::createDocumentIdentification);
checkSteps.add(new DocumentParseAction()); this.checkSteps.add(new DocumentParseAction());
checkSteps.add(new ScenarioSelectionAction(repository)); this.checkSteps.add(new ScenarioSelectionAction(this.repository));
checkSteps.add(new SchemaValidationAction()); this.checkSteps.add(new SchemaValidationAction());
checkSteps.add(new ValidateReportInputAction(conversionService, contentRepository.getReportInputSchema())); this.checkSteps.add(new SchematronValidationAction(configuration.getScenarioRepository()));
checkSteps.add(new CreateReportAction(processor, conversionService, repository, configuration.getScenarioRepository())); this.checkSteps.add(new ValidateReportInputAction(this.conversionService, this.contentRepository.getReportInputSchema()));
this.checkSteps
.add(new CreateReportAction(processor, this.conversionService, this.repository, configuration.getScenarioRepository()));
} }
protected static CreateReportInput createReport() { protected static CreateReportInput createReport() {
CreateReportInput type = new CreateReportInput(); final CreateReportInput type = new CreateReportInput();
EngineType e = new EngineType(); final EngineType e = new EngineType();
e.setName(ENGINE_NAME); e.setName(ENGINE_NAME);
type.setEngine(e); type.setEngine(e);
type.setTimestamp(ObjectFactory.createTimestamp()); type.setTimestamp(ObjectFactory.createTimestamp());
@ -98,16 +101,16 @@ public class DefaultCheck implements Check {
} }
@Override @Override
public XdmNode checkInput(Input input) { public XdmNode checkInput(final Input input) {
CheckAction.Bag t = new CheckAction.Bag(input, createReport()); final CheckAction.Bag t = new CheckAction.Bag(input, createReport());
return runCheckInternal(t); return runCheckInternal(t);
} }
protected XdmNode runCheckInternal(CheckAction.Bag t) { protected XdmNode runCheckInternal(final CheckAction.Bag t) {
long started = System.currentTimeMillis(); final long started = System.currentTimeMillis();
log.info("Checking content of {}", t.getInput().getName()); log.info("Checking content of {}", t.getInput().getName());
for (final CheckAction action : checkSteps) { for (final CheckAction action : this.checkSteps) {
long start = System.currentTimeMillis(); final long start = System.currentTimeMillis();
if (!action.isSkipped(t)) { if (!action.isSkipped(t)) {
action.check(t); action.check(t);
} }
@ -124,9 +127,9 @@ public class DefaultCheck implements Check {
return t.getReport(); return t.getReport();
} }
private boolean createDocumentIdentification(CheckAction.Bag transporter) { private static boolean createDocumentIdentification(final CheckAction.Bag transporter) {
DocumentIdentificationType i = new DocumentIdentificationType(); final DocumentIdentificationType i = new DocumentIdentificationType();
DocumentIdentificationType.DocumentHash h = new DocumentIdentificationType.DocumentHash(); final DocumentIdentificationType.DocumentHash h = new DocumentIdentificationType.DocumentHash();
h.setHashAlgorithm(transporter.getInput().getDigestAlgorithm()); h.setHashAlgorithm(transporter.getInput().getDigestAlgorithm());
h.setHashValue(transporter.getInput().getHashCode()); h.setHashValue(transporter.getInput().getHashCode());
i.setDocumentHash(h); i.setDocumentHash(h);