Skip to content

Commit f5e5da6

Browse files
author
Mohamed Maza
committed
#79 Fill the Step-Reports
1 parent e5b32d9 commit f5e5da6

25 files changed

+451
-340
lines changed

Diff for: src/main/java/de/kosit/validationtool/cmd/CheckAssertionAction.java

+13-8
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,13 @@
1616

1717
package de.kosit.validationtool.cmd;
1818

19-
import java.util.ArrayList;
20-
import java.util.HashMap;
21-
import java.util.List;
22-
import java.util.Map;
19+
import java.util.*;
2320

2421
import de.kosit.validationtool.impl.tasks.CreateReportAction;
25-
import de.kosit.validationtool.impl.xvrl.XVRLBuilder;
22+
import de.kosit.validationtool.impl.xvrl.XVRLDetectionBuilder;
23+
import de.kosit.validationtool.impl.xvrl.XVRLReportBuilder;
2624
import de.kosit.validationtool.model.reportInput.XMLSyntaxError;
25+
import de.kosit.validationtool.model.xvrl.XVRLDetection;
2726
import de.kosit.validationtool.model.xvrl.XVRLReport;
2827
import org.apache.commons.lang3.StringUtils;
2928

@@ -104,9 +103,15 @@ public ProcessStepResult check(final Process results) {
104103
return processStepResult;
105104
}
106105

107-
private static XVRLReport generateXVRLReport(final Result<Integer, XMLSyntaxError> parserResult) {
108-
// TODO create report here
109-
return XVRLBuilder.builder().name("Assertions Validator").addErrors(parserResult.getErrors()).build();
106+
private static XVRLReport generateXVRLReport(final Result<Integer, XMLSyntaxError> assertionResult) {
107+
return XVRLReportBuilder.builder()
108+
.name("Assertions Validator")
109+
.addErrors(assertionResult.getErrors())
110+
.addDetections(Collections.singletonList(XVRLDetectionBuilder.builder()
111+
.addMessageString(assertionResult.getObject().toString())
112+
.setSeverity(XVRLDetection.Severity.INFO)
113+
.build()))
114+
.build();
110115
}
111116

112117
private List<AssertionType> findAssertions(final String name) {

Diff for: src/main/java/de/kosit/validationtool/cmd/ExtractHtmlContentAction.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import de.kosit.validationtool.impl.model.ProcessStepResult;
2222
import de.kosit.validationtool.impl.model.Result;
2323
import de.kosit.validationtool.impl.tasks.CreateReportAction;
24-
import de.kosit.validationtool.impl.xvrl.XVRLBuilder;
24+
import de.kosit.validationtool.impl.xvrl.XVRLReportBuilder;
2525
import de.kosit.validationtool.model.reportInput.XMLSyntaxError;
2626
import de.kosit.validationtool.model.xvrl.XVRLReport;
2727
import lombok.RequiredArgsConstructor;
@@ -75,7 +75,9 @@ public ProcessStepResult check(final Process results) {
7575

7676
private static XVRLReport generateXVRLReport(final Result<Object, XMLSyntaxError> result) {
7777
// TODO create report here
78-
return XVRLBuilder.builder().name("Extract Html Content").addErrors(result.getErrors()).build();
78+
return XVRLReportBuilder.builder().name("Extract Html Content").addErrors(result.getErrors())
79+
.setValid("" + result.getErrors().isEmpty())
80+
.build();
7981
}
8082

8183
private void print(final String origName, final XdmItem xdmItem) {

Diff for: src/main/java/de/kosit/validationtool/cmd/InternalCheck.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,10 @@ public Result checkInput(final Input input) {
6969
final CheckAction.Process process = new CheckAction.Process(input, createXVRLMetadata());
7070
final Result result = runCheckInternal(process);
7171
// TODO where are AssertionResults set?
72-
//if (process.getAssertionResult() != null) {
73-
// this.checkAssertions += process.getAssertionResult().getObject();
74-
// this.failedAssertions += process.getAssertionResult().getErrors().size();
75-
//}
72+
// if (process.getAssertionResult() != null) {
73+
// this.checkAssertions += process.getAssertionResult().getObject();
74+
// this.failedAssertions += process.getAssertionResult().getErrors().size();
75+
// }
7676
return result;
7777
}
7878

Diff for: src/main/java/de/kosit/validationtool/cmd/PrintMemoryStats.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import de.kosit.validationtool.impl.model.ProcessStepResult;
2222
import de.kosit.validationtool.impl.model.Result;
23-
import de.kosit.validationtool.impl.xvrl.XVRLBuilder;
23+
import de.kosit.validationtool.impl.xvrl.XVRLReportBuilder;
2424
import de.kosit.validationtool.model.reportInput.XMLSyntaxError;
2525
import de.kosit.validationtool.model.xvrl.XVRLReport;
2626
import lombok.extern.slf4j.Slf4j;
@@ -59,6 +59,10 @@ public ProcessStepResult check(final Process results) {
5959

6060
private static XVRLReport generateXVRLReport(final Result<Object, XMLSyntaxError> result) {
6161
// TODO create report here
62-
return XVRLBuilder.builder().name("Print Memory Stats").addErrors(result.getErrors()).build();
62+
return XVRLReportBuilder.builder()
63+
.name("Print Memory Stats")
64+
.addErrors(result.getErrors())
65+
.setValid("" + result.getErrors().isEmpty())
66+
.build();
6367
}
6468
}

Diff for: src/main/java/de/kosit/validationtool/cmd/PrintReportAction.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import de.kosit.validationtool.impl.model.ProcessStepResult;
2222
import de.kosit.validationtool.impl.model.Result;
2323
import de.kosit.validationtool.impl.tasks.CreateReportAction;
24-
import de.kosit.validationtool.impl.xvrl.XVRLBuilder;
24+
import de.kosit.validationtool.impl.xvrl.XVRLReportBuilder;
2525
import de.kosit.validationtool.model.reportInput.XMLSyntaxError;
2626
import de.kosit.validationtool.model.xvrl.XVRLReport;
2727
import lombok.RequiredArgsConstructor;
@@ -69,6 +69,10 @@ public ProcessStepResult check(final Process results) {
6969

7070
private static XVRLReport generateXVRLReport(final Result<Object, XMLSyntaxError> result) {
7171
// TODO create report here
72-
return XVRLBuilder.builder().name("Print Report").addErrors(result.getErrors()).build();
72+
return XVRLReportBuilder.builder()
73+
.name("Print Report")
74+
.addErrors(result.getErrors())
75+
.setValid("" + result.getErrors().isEmpty())
76+
.build();
7377
}
7478
}

Diff for: src/main/java/de/kosit/validationtool/cmd/SerializeReportAction.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import de.kosit.validationtool.impl.model.ProcessStepResult;
2222
import de.kosit.validationtool.impl.model.Result;
2323
import de.kosit.validationtool.impl.tasks.CreateReportAction;
24-
import de.kosit.validationtool.impl.xvrl.XVRLBuilder;
24+
import de.kosit.validationtool.impl.xvrl.XVRLReportBuilder;
2525
import de.kosit.validationtool.model.reportInput.XMLSyntaxError;
2626
import de.kosit.validationtool.model.xvrl.XVRLReport;
2727
import lombok.RequiredArgsConstructor;
@@ -73,7 +73,11 @@ public ProcessStepResult check(final Process results) {
7373

7474
private static XVRLReport generateXVRLReport(final Result<Object, XMLSyntaxError> result) {
7575
// TODO create report here
76-
return XVRLBuilder.builder().name("Serialize Report").addErrors(result.getErrors()).build();
76+
return XVRLReportBuilder.builder()
77+
.name("Serialize Report")
78+
.addErrors(result.getErrors())
79+
.setValid("" + result.getErrors().isEmpty())
80+
.build();
7781
}
7882

7983
@Override

Diff for: src/main/java/de/kosit/validationtool/cmd/SerializeReportInputAction.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
import de.kosit.validationtool.impl.model.ProcessStepResult;
2424
import de.kosit.validationtool.impl.model.Result;
25-
import de.kosit.validationtool.impl.xvrl.XVRLBuilder;
25+
import de.kosit.validationtool.impl.xvrl.XVRLReportBuilder;
2626
import de.kosit.validationtool.model.reportInput.XMLSyntaxError;
2727
import de.kosit.validationtool.model.xvrl.XVRLReport;
2828
import lombok.RequiredArgsConstructor;
@@ -66,7 +66,11 @@ public ProcessStepResult check(final Process results) {
6666

6767
private static XVRLReport generateXVRLReport(final Result<Object, XMLSyntaxError> result) {
6868
// TODO create report here
69-
return XVRLBuilder.builder().name("Serialize Report Input").addErrors(result.getErrors()).build();
69+
return XVRLReportBuilder.builder()
70+
.name("Serialize Report Input")
71+
.addErrors(result.getErrors())
72+
.setValid("" + result.getErrors().isEmpty())
73+
.build();
7074
}
7175

7276
@Override

Diff for: src/main/java/de/kosit/validationtool/impl/DefaultCheck.java

+1-12
Original file line numberDiff line numberDiff line change
@@ -96,16 +96,6 @@ public DefaultCheck(final Processor processor, final Configuration... configurat
9696
this.checkSteps.add(new ComputeAcceptanceAction());
9797
}
9898

99-
protected static CreateReportInput createReport() {
100-
final CreateReportInput type = new CreateReportInput();
101-
final EngineType e = new EngineType();
102-
e.setName(EngineInformation.getName() + " " + EngineInformation.getVersion());
103-
type.setEngine(e);
104-
type.setTimestamp(createTimestamp());
105-
type.setFrameworkVersion(EngineInformation.getFrameworkVersion());
106-
return type;
107-
}
108-
10999
protected static XVRLMetadata createXVRLMetadata() {
110100
final XVRLMetadata metadata = new XVRLMetadata();
111101

@@ -169,8 +159,7 @@ private Result createResult(final Process process) {
169159
.getResult(SchematronValidationAction.class);
170160
if (schematronValidationResult != null) {
171161
xvrlResult.setSchematronResult(schematronValidationResult.getObject().stream()
172-
.map(schematronResult -> schematronResult.getResults().getSchematronOutput())
173-
.collect(Collectors.toList()));
162+
.map(schematronResult -> schematronResult.getResults().getSchematronOutput()).collect(Collectors.toList()));
174163
}
175164
xvrlResult.setProcessingSuccessful(!process.isStopped() && process.isFinished());
176165

Diff for: src/main/java/de/kosit/validationtool/impl/tasks/ComputeAcceptanceAction.java

+23-12
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
import java.util.Collections;
2020
import java.util.Optional;
2121

22-
import de.kosit.validationtool.impl.xvrl.XVRLBuilder;
22+
import de.kosit.validationtool.impl.xvrl.XVRLDetectionBuilder;
23+
import de.kosit.validationtool.impl.xvrl.XVRLReportBuilder;
24+
import de.kosit.validationtool.model.xvrl.XVRLDetection;
2325
import de.kosit.validationtool.model.xvrl.XVRLReport;
2426

2527
import lombok.RequiredArgsConstructor;
@@ -46,17 +48,17 @@
4648
public class ComputeAcceptanceAction implements CheckAction {
4749

4850
@Override
49-
public ProcessStepResult check(final Process results) {
51+
public ProcessStepResult check(final Process process) {
5052
final ProcessStepResult stepResult = new ProcessStepResult();
5153
Result<AcceptRecommendation, XMLSyntaxError> result = new Result<>(AcceptRecommendation.UNDEFINED);
52-
if (!results.isStopped() && results.getResult(DocumentParseAction.class).isValid()) {
53-
if (preCondtionsMatch(results)) {
54-
final Result<Scenario, String> scenarioSelection = results.getResult(ScenarioSelectionAction.class);
54+
if (!process.isStopped() && process.getResult(DocumentParseAction.class).isValid()) {
55+
if (preCondtionsMatch(process)) {
56+
final Result<Scenario, String> scenarioSelection = process.getResult(ScenarioSelectionAction.class);
5557
final Optional<XPathSelector> acceptMatch = scenarioSelection.getObject().getAcceptSelector();
56-
if (results.getResult(SchemaValidationAction.class).isValid() && acceptMatch.isPresent()) {
57-
result = evaluateAcceptanceMatch(results, acceptMatch.get());
58+
if (process.getResult(SchemaValidationAction.class).isValid() && acceptMatch.isPresent()) {
59+
result = evaluateAcceptanceMatch(process, acceptMatch.get());
5860
} else {
59-
result = evaluateSchemaAndSchematron(results);
61+
result = evaluateSchemaAndSchematron(process);
6062
}
6163
} else {
6264
XMLSyntaxError xmlSyntaxError = new XMLSyntaxError();
@@ -71,8 +73,15 @@ public ProcessStepResult check(final Process results) {
7173
}
7274

7375
private static XVRLReport generateXVRLReport(final Result<AcceptRecommendation, XMLSyntaxError> currentResult) {
74-
// TODO create report here
75-
return XVRLBuilder.builder().name("Compute Acceptance Validator").addErrors(currentResult.getErrors()).build();
76+
return XVRLReportBuilder.builder()
77+
.name("Compute Acceptance Validator")
78+
.addErrors(currentResult.getErrors())
79+
.addDetections(Collections.singletonList(XVRLDetectionBuilder.builder()
80+
.setSeverity(XVRLDetection.Severity.INFO)
81+
.addMessageString(currentResult.getObject().name())
82+
.build()))
83+
.setValid("" + currentResult.getErrors().isEmpty())
84+
.build();
7685
}
7786

7887
private static Result<AcceptRecommendation, XMLSyntaxError> evaluateSchemaAndSchematron(final Process results) {
@@ -95,11 +104,13 @@ private static boolean hasSchematronErrors(final Process results) {
95104
return !report.getAllErrors().isEmpty();
96105
}
97106

98-
private static Result<AcceptRecommendation, XMLSyntaxError> evaluateAcceptanceMatch(final Process results, final XPathSelector selector) {
107+
private static Result<AcceptRecommendation, XMLSyntaxError> evaluateAcceptanceMatch(final Process results,
108+
final XPathSelector selector) {
99109
try {
100110
final Result<XdmNode, XMLSyntaxError> report = results.getResult(CreateReportAction.class);
101111
selector.setContextItem(report.getObject());
102-
AcceptRecommendation effectiveBooleanValue = selector.effectiveBooleanValue() ? AcceptRecommendation.ACCEPTABLE : AcceptRecommendation.REJECT;
112+
AcceptRecommendation effectiveBooleanValue = selector.effectiveBooleanValue() ? AcceptRecommendation.ACCEPTABLE
113+
: AcceptRecommendation.REJECT;
103114
return new Result<>(effectiveBooleanValue);
104115
} catch (final SaxonApiException e) {
105116
final String msg = String.format("Error evaluating accept recommendation: %s", selector.getUnderlyingXPathContext().toString());

Diff for: src/main/java/de/kosit/validationtool/impl/tasks/CreateDocumentIdentificationAction.java

+23-11
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,17 @@
1818

1919
import de.kosit.validationtool.impl.model.ProcessStepResult;
2020
import de.kosit.validationtool.impl.model.Result;
21-
import de.kosit.validationtool.impl.xvrl.XVRLBuilder;
21+
import de.kosit.validationtool.impl.xvrl.XVRLDetectionBuilder;
22+
import de.kosit.validationtool.impl.xvrl.XVRLReportBuilder;
2223
import de.kosit.validationtool.model.reportInput.DocumentIdentificationType;
2324
import de.kosit.validationtool.model.reportInput.XMLSyntaxError;
2425
import de.kosit.validationtool.model.xvrl.Document;
26+
import de.kosit.validationtool.model.xvrl.XVRLDetection;
2527
import de.kosit.validationtool.model.xvrl.XVRLMetadata;
2628
import de.kosit.validationtool.model.xvrl.XVRLReport;
2729

30+
import java.util.Collections;
31+
2832
/**
2933
* Creates a document identification element for the report by using the generates hash.
3034
*
@@ -34,25 +38,33 @@ public class CreateDocumentIdentificationAction implements CheckAction {
3438

3539
@Override
3640
public ProcessStepResult check(final Process process) {
37-
final DocumentIdentificationType i = new DocumentIdentificationType();
38-
final DocumentIdentificationType.DocumentHash h = new DocumentIdentificationType.DocumentHash();
39-
h.setHashAlgorithm(process.getInput().getDigestAlgorithm());
40-
h.setHashValue(process.getInput().getHashCode());
41-
i.setDocumentHash(h);
42-
i.setDocumentReference(process.getInput().getName());
41+
final DocumentIdentificationType documentIdentificationType = new DocumentIdentificationType();
42+
final DocumentIdentificationType.DocumentHash documentHash = new DocumentIdentificationType.DocumentHash();
43+
documentHash.setHashAlgorithm(process.getInput().getDigestAlgorithm());
44+
documentHash.setHashValue(process.getInput().getHashCode());
45+
documentIdentificationType.setDocumentHash(documentHash);
46+
documentIdentificationType.setDocumentReference(process.getInput().getName());
4347
addDocumentIdentification(process);
4448

4549
ProcessStepResult processStepResult = new ProcessStepResult();
4650
processStepResult.setType(CreateDocumentIdentificationAction.class);
47-
Result<Object, XMLSyntaxError> result = new Result<>(i);
51+
Result<DocumentIdentificationType, XMLSyntaxError> result = new Result<>(documentIdentificationType);
4852
processStepResult.setResult(result);
4953
processStepResult.setReport(generateXVRLReport(result));
5054
return processStepResult;
5155
}
5256

53-
private static XVRLReport generateXVRLReport(final Result<Object, XMLSyntaxError> currentResult) {
54-
// TODO create report here
55-
return XVRLBuilder.builder().name("CreateDocument Identification Validator").addErrors(currentResult.getErrors()).build();
57+
private static XVRLReport generateXVRLReport(final Result<DocumentIdentificationType, XMLSyntaxError> currentResult) {
58+
DocumentIdentificationType result = currentResult.getObject();
59+
return XVRLReportBuilder.builder()
60+
.name("CreateDocument Identification Validator")
61+
.addErrors(currentResult.getErrors())
62+
.addDetections(Collections.singletonList(XVRLDetectionBuilder.builder()
63+
.setSeverity(XVRLDetection.Severity.INFO)
64+
.addMessageString(result.toString()).build()))
65+
.setValid("" + currentResult.getErrors().isEmpty())
66+
.addDocumentIdentification(result.getDocumentReference())
67+
.build();
5668
}
5769

5870
private static void addDocumentIdentification(final Process transporter) {

Diff for: src/main/java/de/kosit/validationtool/impl/tasks/CreateReportAction.java

+12-5
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@
2525
import javax.xml.bind.Marshaller;
2626
import javax.xml.bind.util.JAXBSource;
2727

28-
import de.kosit.validationtool.impl.xvrl.XVRLBuilder;
28+
import de.kosit.validationtool.impl.xvrl.XVRLDetectionBuilder;
29+
import de.kosit.validationtool.impl.xvrl.XVRLReportBuilder;
30+
import de.kosit.validationtool.model.xvrl.XVRLDetection;
2931
import de.kosit.validationtool.model.xvrl.XVRLReport;
3032
import org.xml.sax.ContentHandler;
3133
import org.xml.sax.DTDHandler;
@@ -205,8 +207,7 @@ public ProcessStepResult check(final Process process) {
205207
transformer.setURIResolver(scenario.getUriResolver());
206208

207209
if (scenario.getUnparsedTextURIResolver() != null) {
208-
transformer.getUnderlyingController()
209-
.setUnparsedTextURIResolver(scenario.getUnparsedTextURIResolver());
210+
transformer.getUnderlyingController().setUnparsedTextURIResolver(scenario.getUnparsedTextURIResolver());
210211
}
211212
if (parsedDocument != null) {
212213
transformer.setParameter(new QName("input-document"), parsedDocument);
@@ -233,8 +234,14 @@ public ProcessStepResult check(final Process process) {
233234
}
234235

235236
private static XVRLReport generateXVRLReport(final Result<Object, XMLSyntaxError> currentResult) {
236-
// TODO create report here
237-
return XVRLBuilder.builder().name("Create Report Validator").addErrors(currentResult.getErrors()).build();
237+
return XVRLReportBuilder.builder()
238+
.name("Create Report Validator")
239+
.addErrors(currentResult.getErrors())
240+
.addDetections(currentResult.getObject() != null ? Collections.singletonList(XVRLDetectionBuilder.builder()
241+
.setSeverity(XVRLDetection.Severity.INFO)
242+
.addMessageString(currentResult.getObject().toString()).build()): null)
243+
.setValid("" + currentResult.getErrors().isEmpty())
244+
.build();
238245
}
239246

240247
private XdmNode createErrorInformation(final Collection<XMLSyntaxError> errors) throws SaxonApiException, SAXException {

0 commit comments

Comments
 (0)