fixed sets and formats

This commit is contained in:
Michele Artini 2024-04-23 14:32:43 +02:00
parent e05ed26ff5
commit b654faa55b
5 changed files with 19 additions and 25 deletions

View File

@ -165,9 +165,9 @@ public class OaiService {
return listMetadataFormats() return listMetadataFormats()
.stream() .stream()
.filter(f -> f.getMetadataPrefix().equalsIgnoreCase(metadataPrefix)) .filter(f -> f.getMetadataPrefix().equalsIgnoreCase(metadataPrefix))
.map(OaiMetadataFormat::getXslt) .map(OaiMetadataFormat::getXsltPath)
.map(xsltPath -> this.xsltTransformerFactory.getTransformer(xsltPath, null))
.findFirst() .findFirst()
.map(xslt -> this.xsltTransformerFactory.getTransformerByXSLT(xslt, null))
.orElseThrow(() -> new RuntimeException("Invalid metadata format: " + metadataPrefix)); .orElseThrow(() -> new RuntimeException("Invalid metadata format: " + metadataPrefix));
} }

View File

@ -12,7 +12,7 @@ public class OaiMetadataFormat implements Serializable {
private String metadataNamespace; private String metadataNamespace;
private String xslt; private String xsltPath;
public String getMetadataPrefix() { public String getMetadataPrefix() {
return this.metadataPrefix; return this.metadataPrefix;
@ -38,12 +38,12 @@ public class OaiMetadataFormat implements Serializable {
this.metadataNamespace = metadataNamespace; this.metadataNamespace = metadataNamespace;
} }
public String getXslt() { public String getXsltPath() {
return this.xslt; return this.xsltPath;
} }
public void setXslt(final String xslt) { public void setXslt(final String xsltPath) {
this.xslt = xslt; this.xsltPath = xsltPath;
} }
} }

View File

@ -12,8 +12,6 @@ public class OaiSet implements Serializable {
private String description; private String description;
private String dsId;
public String getSetSpec() { public String getSetSpec() {
return this.setSpec; return this.setSpec;
} }
@ -38,16 +36,4 @@ public class OaiSet implements Serializable {
this.description = description; this.description = description;
} }
public String getDsId() {
return this.dsId;
}
public void setDsId(final String dsId) {
this.dsId = dsId;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
} }

View File

@ -1,5 +1,6 @@
package eu.dnetlib.apps.oai.utils; package eu.dnetlib.apps.oai.utils;
import java.io.FileInputStream;
import java.io.StringWriter; import java.io.StringWriter;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
@ -26,7 +27,7 @@ import net.sf.saxon.s9api.XsltTransformer;
@Component @Component
public class XsltTransformerFactory { public class XsltTransformerFactory {
public Function<String, String> getTransformerByXSLT(final String xsltText, final Map<String, Object> params) { public Function<String, String> getTransformer(final String xsltPath, final Map<String, Object> params) {
final Processor processor = new Processor(false); final Processor processor = new Processor(false);
final List<XmlProcessingError> errorList = new ArrayList<>(); final List<XmlProcessingError> errorList = new ArrayList<>();
@ -35,8 +36,8 @@ public class XsltTransformerFactory {
comp.setErrorList(errorList); comp.setErrorList(errorList);
params.forEach((k, v) -> comp.setParameter(new QName(k), XdmAtomicValue.makeAtomicValue(v))); params.forEach((k, v) -> comp.setParameter(new QName(k), XdmAtomicValue.makeAtomicValue(v)));
try { try (FileInputStream fileInputStream = new FileInputStream(xsltPath)) {
final XsltExecutable xslt = comp.compile(new StreamSource(IOUtils.toInputStream(xsltText, StandardCharsets.UTF_8))); final XsltExecutable xslt = comp.compile(new StreamSource(fileInputStream));
return xml -> { return xml -> {
try { try {
final XdmNode source = processor final XdmNode source = processor

View File

@ -1 +1,8 @@
[] [
{
"metadataPrefix" : "oai_dc",
"metadataSchema" : "http://www.openarchives.org/OAI/2.0/oai_dc.xsd",
"metadataNamespace": "http://www.openarchives.org/OAI/2.0/oai_dc/",
"xsltPath" : "xslt/raw_to_dc.xslt"
}
]