Skip to content

Commit 99c2693

Browse files
author
Flurb
committed
Refactoring
Signed-off-by: Flurb <[email protected]>
1 parent a130456 commit 99c2693

File tree

5 files changed

+137
-131
lines changed

5 files changed

+137
-131
lines changed

validator/src/main/java/org/lfenergy/compas/scl/validator/xsd/SclInfo.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import org.lfenergy.compas.scl.validator.exception.SclValidatorException;
77

8-
import javax.xml.XMLConstants;
98
import javax.xml.stream.XMLInputFactory;
109
import javax.xml.stream.XMLStreamException;
1110
import javax.xml.stream.events.StartElement;

validator/src/main/java/org/lfenergy/compas/scl/validator/xsd/SclResourceResolver.java

Lines changed: 0 additions & 129 deletions
This file was deleted.

validator/src/main/java/org/lfenergy/compas/scl/validator/xsd/XSDValidator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import javax.xml.validation.Validator;
1414

1515
import org.lfenergy.compas.scl.validator.model.ValidationError;
16+
import org.lfenergy.compas.scl.validator.xsd.resourceresolver.ResourceResolver;
1617
import org.slf4j.Logger;
1718
import org.slf4j.LoggerFactory;
1819
import org.xml.sax.ErrorHandler;
@@ -34,7 +35,7 @@ public XSDValidator(List<ValidationError> errorList, String sclData) {
3435

3536
try {
3637
var factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
37-
factory.setResourceResolver(new SclResourceResolver(sclVersion));
38+
factory.setResourceResolver(new ResourceResolver(sclVersion));
3839
var schema = factory.newSchema(
3940
new StreamSource(getClass().getClassLoader().getResourceAsStream("xsd/SCL" + sclVersion + "/SCL.xsd")));
4041
validator = schema.newValidator();
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
package org.lfenergy.compas.scl.validator.xsd.resourceresolver;
2+
3+
import org.lfenergy.compas.scl.validator.exception.SclValidatorException;
4+
import org.w3c.dom.ls.LSInput;
5+
6+
import java.io.BufferedInputStream;
7+
import java.io.IOException;
8+
import java.io.InputStream;
9+
import java.io.Reader;
10+
import java.nio.charset.StandardCharsets;
11+
12+
import static org.lfenergy.compas.scl.validator.exception.SclValidatorErrorCode.RESOURCE_RESOLVER_FAILED;
13+
14+
public class ResourceInput implements LSInput {
15+
private String publicId;
16+
private String systemId;
17+
private final BufferedInputStream inputStream;
18+
19+
public ResourceInput(String publicId, String sysId, InputStream input) {
20+
this.publicId = publicId;
21+
this.systemId = sysId;
22+
this.inputStream = new BufferedInputStream(input);
23+
}
24+
25+
public String getPublicId() {
26+
return publicId;
27+
}
28+
29+
@Override
30+
public void setPublicId(String publicId) {
31+
this.publicId = publicId;
32+
}
33+
34+
@Override
35+
public String getBaseURI() {
36+
return null;
37+
}
38+
39+
@Override
40+
public InputStream getByteStream() {
41+
return null;
42+
}
43+
44+
@Override
45+
public boolean getCertifiedText() {
46+
return false;
47+
}
48+
49+
@Override
50+
public Reader getCharacterStream() {
51+
return null;
52+
}
53+
54+
@Override
55+
public String getEncoding() {
56+
return null;
57+
}
58+
59+
@Override
60+
public String getStringData() {
61+
synchronized (inputStream) {
62+
try {
63+
return new String(inputStream.readAllBytes(), StandardCharsets.UTF_8);
64+
} catch (IOException e) {
65+
throw new SclValidatorException(RESOURCE_RESOLVER_FAILED,
66+
"StringData of ResourceResolver cannot be retrieved");
67+
}
68+
}
69+
}
70+
71+
@Override
72+
public void setBaseURI(String baseURI) {
73+
// Needs override, but nothing to implement.
74+
}
75+
76+
@Override
77+
public void setByteStream(InputStream byteStream) {
78+
// Needs override, but nothing to implement.
79+
}
80+
81+
@Override
82+
public void setCertifiedText(boolean certifiedText) {
83+
// Needs override, but nothing to implement.
84+
}
85+
86+
@Override
87+
public void setCharacterStream(Reader characterStream) {
88+
// Needs override, but nothing to implement.
89+
}
90+
91+
@Override
92+
public void setEncoding(String encoding) {
93+
// Needs override, but nothing to implement.
94+
}
95+
96+
@Override
97+
public void setStringData(String stringData) {
98+
// Needs override, but nothing to implement.
99+
}
100+
101+
@Override
102+
public String getSystemId() {
103+
return systemId;
104+
}
105+
106+
@Override
107+
public void setSystemId(String systemId) {
108+
this.systemId = systemId;
109+
}
110+
}
111+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// SPDX-FileCopyrightText: 2022 Alliander N.V.
2+
//
3+
// SPDX-License-Identifier: Apache-2.0
4+
package org.lfenergy.compas.scl.validator.xsd.resourceresolver;
5+
6+
import org.w3c.dom.ls.LSInput;
7+
import org.w3c.dom.ls.LSResourceResolver;
8+
9+
import java.io.InputStream;
10+
11+
public class ResourceResolver implements LSResourceResolver {
12+
private final String sclVersion;
13+
14+
ResourceResolver(String sclVersion) {
15+
this.sclVersion = sclVersion;
16+
}
17+
18+
public LSInput resolveResource(String type, String namespaceURI,
19+
String publicId, String systemId, String baseURI) {
20+
InputStream resourceAsStream = this.getClass().getClassLoader()
21+
.getResourceAsStream("xsd/SCL" + sclVersion + "/" + systemId);
22+
return new ResourceInput(publicId, systemId, resourceAsStream);
23+
}
24+
}

0 commit comments

Comments
 (0)