From 6d6b02658527052a147cd2526e62967a2f04b585 Mon Sep 17 00:00:00 2001 From: TobiasNx Date: Thu, 30 Jan 2025 13:53:36 +0100 Subject: [PATCH] Make language and refrence marker configurable #657 --- .../metafacture/linkeddata/RdfMacroPipe.java | 42 ++++++++++++++++++- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/metafacture-linkeddata/src/main/java/org/metafacture/linkeddata/RdfMacroPipe.java b/metafacture-linkeddata/src/main/java/org/metafacture/linkeddata/RdfMacroPipe.java index d3e3fa3b8..80cceca93 100644 --- a/metafacture-linkeddata/src/main/java/org/metafacture/linkeddata/RdfMacroPipe.java +++ b/metafacture-linkeddata/src/main/java/org/metafacture/linkeddata/RdfMacroPipe.java @@ -41,6 +41,8 @@ public final class RdfMacroPipe extends DefaultStreamPipe { public static final String RDF_ABOUT = "~rdf:about"; public static final String XML_LANG = "~xml:lang"; private String autoAddedSubject = ""; + private String refrenceMarker = REFERENCE_MARKER; + private String languageMarker = LANGUAGE_MARKER; /** * Creates an instance of {@link RdfMacroPipe}. @@ -57,6 +59,42 @@ public void setAutoAddedSubject(final String autoAddedSubject) { this.autoAddedSubject = autoAddedSubject; } + /** + * Sets the refrence marker. + * + * @param refrenceMarker the refrence marker + */ + public void setRefrenceMarker(final String refrenceMarker) { + this.refrenceMarker = refrenceMarker; + } + + /** + * Gets the refrence marker. + * + * @return the refrence marker + */ + public String getRefrenceMarker() { + return refrenceMarker; + } + + /** + * Sets the language marker. + * + * @param languageMarker the language marker + */ + public void setLanguageMarker(final String languageMarker) { + this.languageMarker = languageMarker; + } + + /** + * Gets the language marker. + * + * @return the language marker + */ + public String getLanguageMarker() { + return languageMarker; + } + @Override public void startRecord(final String identifier) { getReceiver().startRecord(identifier); @@ -87,8 +125,8 @@ public void endEntity() { @Override public void literal(final String name, final String value) { - final int index = name.indexOf(LANGUAGE_MARKER); - if (!name.isEmpty() && name.charAt(0) == REFERENCE_MARKER) { + final int index = name.indexOf(languageMarker); + if (!name.isEmpty() && name.charAt(0) == refrenceMarker) { getReceiver().startEntity(name.substring(1)); getReceiver().literal(RDF_REFERENCE, value); getReceiver().endEntity();