Skip to content

Commit af6224d

Browse files
authored
Merge pull request #233 from entur/add_support_for_jaxb_validators
Add support for JAXB validators
2 parents ba86255 + 66deabb commit af6224d

File tree

54 files changed

+1336
-368
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+1336
-368
lines changed

pom.xml

+36-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>org.entur</groupId>
77
<artifactId>netex-validator-java</artifactId>
8-
<version>2.0.27-SNAPSHOT</version>
8+
<version>3.0.0-SNAPSHOT</version>
99

1010
<name>netex-validator-java</name>
1111
<description>Library for validating NeTEx datasets against the Nordic NeTEx Profile.</description>
@@ -55,7 +55,9 @@
5555
<jdk.version>17</jdk.version>
5656

5757
<netex-java-model.version>2.0.15</netex-java-model.version>
58+
<netex-parser-java.version>3.1.23</netex-parser-java.version>
5859
<saxon.version>11.6</saxon.version>
60+
<geotools.version>32.0</geotools.version>
5961
<snakeyaml.version>2.3</snakeyaml.version>
6062
<slf4j.version>2.0.16</slf4j.version>
6163

@@ -108,12 +110,38 @@
108110
<artifactId>netex-java-model</artifactId>
109111
<version>${netex-java-model.version}</version>
110112
</dependency>
113+
<dependency>
114+
<groupId>org.entur</groupId>
115+
<artifactId>netex-parser-java</artifactId>
116+
<version>${netex-parser-java.version}</version>
117+
</dependency>
111118
<dependency>
112119
<groupId>net.sf.saxon</groupId>
113120
<artifactId>Saxon-HE</artifactId>
114121
<version>${saxon.version}</version>
115122
</dependency>
116123

124+
<dependency>
125+
<groupId>org.geotools</groupId>
126+
<artifactId>gt-coverage</artifactId>
127+
<version>${geotools.version}</version>
128+
</dependency>
129+
<dependency>
130+
<groupId>org.geotools</groupId>
131+
<artifactId>gt-geotiff</artifactId>
132+
<version>${geotools.version}</version>
133+
</dependency>
134+
<dependency>
135+
<groupId>org.geotools</groupId>
136+
<artifactId>gt-api</artifactId>
137+
<version>${geotools.version}</version>
138+
</dependency>
139+
<dependency>
140+
<groupId>org.geotools</groupId>
141+
<artifactId>gt-geojson-core</artifactId>
142+
<version>${geotools.version}</version>
143+
</dependency>
144+
117145
<dependency>
118146
<groupId>org.yaml</groupId>
119147
<artifactId>snakeyaml</artifactId>
@@ -364,6 +392,13 @@
364392
</plugin>
365393
</plugins>
366394
</build>
395+
<repositories>
396+
<repository>
397+
<id>osgeo</id>
398+
<name>Open Source Geospatial Foundation Repository</name>
399+
<url>https://repo.osgeo.org/repository/release/</url>
400+
</repository>
401+
</repositories>
367402
<profiles>
368403
<profile>
369404
<id>sonar</id>

src/main/java/org/entur/netex/validation/validator/NetexDatasetValidator.java renamed to src/main/java/org/entur/netex/validation/validator/AbstractDatasetValidator.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,20 @@
22

33
import java.util.Objects;
44

5-
public abstract class NetexDatasetValidator {
5+
/**
6+
* Base class for DatasetValidators.
7+
*/
8+
public abstract class AbstractDatasetValidator implements DatasetValidator {
69

710
private final ValidationReportEntryFactory validationReportEntryFactory;
811

9-
protected NetexDatasetValidator(
12+
protected AbstractDatasetValidator(
1013
ValidationReportEntryFactory validationReportEntryFactory
1114
) {
1215
this.validationReportEntryFactory =
1316
Objects.requireNonNull(validationReportEntryFactory);
1417
}
1518

16-
public abstract ValidationReport validate(ValidationReport validationReport);
17-
1819
protected ValidationReportEntry createValidationReportEntry(
1920
String code,
2021
DataLocation dataLocation,

src/main/java/org/entur/netex/validation/validator/AbstractNetexValidator.java renamed to src/main/java/org/entur/netex/validation/validator/AbstractXPathValidator.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
import org.entur.netex.validation.validator.id.IdVersion;
55

66
/**
7-
* Base class for NeTEx validators.
7+
* Base class for XPath-based validators.
88
*/
9-
public abstract class AbstractNetexValidator implements NetexValidator {
9+
public abstract class AbstractXPathValidator implements XPathValidator {
1010

1111
private final ValidationReportEntryFactory validationReportEntryFactory;
1212

13-
protected AbstractNetexValidator(
13+
protected AbstractXPathValidator(
1414
ValidationReportEntryFactory validationReportEntryFactory
1515
) {
1616
this.validationReportEntryFactory =
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.entur.netex.validation.validator;
2+
3+
/**
4+
* Validator applied to the whole dataset (not individual files).
5+
* This includes validators that require data collected from different files within the dataset.
6+
*/
7+
public interface DatasetValidator {
8+
ValidationReport validate(ValidationReport validationReport);
9+
}
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,18 @@
11
package org.entur.netex.validation.validator;
22

33
import java.util.Set;
4-
import org.entur.netex.validation.validator.xpath.ValidationContext;
54

65
/**
7-
* A validator that updates a {@link ValidationReport} according to a {@link ValidationContext}.
6+
* A Validator applied to a NeTEx file.
87
*/
9-
public interface NetexValidator {
8+
public interface NetexValidator<V extends ValidationContext> {
109
/**
11-
* Validate the document specified in the {@link ValidationContext} and update the given {@link ValidationReport}
12-
* @param validationReport the validation report to be updated.
13-
* @param validationContext the current validation context.
10+
* Validate NeTEx data provided by the validation context and report issues in the validation report.
1411
*/
15-
void validate(
16-
ValidationReport validationReport,
17-
ValidationContext validationContext
18-
);
12+
void validate(ValidationReport validationReport, V validationContext);
1913

2014
/**
2115
* Return the textual descriptions of the validation rules verified by this validator.
22-
* @return the textual descriptions of the rules
2316
*/
2417
Set<String> getRuleDescriptions();
2518
}

0 commit comments

Comments
 (0)