Skip to content

Commit 16a41b0

Browse files
authored
Merge pull request #658 from metafacture/657-rdf-marker-configurator
2 parents e3efe87 + ab97285 commit 16a41b0

File tree

1 file changed

+41
-3
lines changed

1 file changed

+41
-3
lines changed

metafacture-linkeddata/src/main/java/org/metafacture/linkeddata/RdfMacroPipe.java

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
* @author Markus Michael Geipel
3030
*
3131
*/
32-
@Description("Expands some macros for RDF/XML")
32+
@Description("Expands some macros for RDF/XML. When using Fix, configure `referenceMarker` to any char but the default `*`")
3333
@In(StreamReceiver.class)
3434
@Out(StreamReceiver.class)
3535
@FluxCommand("rdf-macros")
@@ -41,6 +41,8 @@ public final class RdfMacroPipe extends DefaultStreamPipe<StreamReceiver> {
4141
public static final String RDF_ABOUT = "~rdf:about";
4242
public static final String XML_LANG = "~xml:lang";
4343
private String autoAddedSubject = "";
44+
private char referenceMarker = REFERENCE_MARKER;
45+
private char languageMarker = LANGUAGE_MARKER;
4446

4547
/**
4648
* Creates an instance of {@link RdfMacroPipe}.
@@ -57,6 +59,42 @@ public void setAutoAddedSubject(final String autoAddedSubject) {
5759
this.autoAddedSubject = autoAddedSubject;
5860
}
5961

62+
/**
63+
* Sets the single char reference marker.
64+
*
65+
* @param referenceMarker the reference marker
66+
*/
67+
public void setReferenceMarker(final String referenceMarker) {
68+
this.referenceMarker = referenceMarker.charAt(0);
69+
}
70+
71+
/**
72+
* Gets the reference marker.
73+
*
74+
* @return the reference marker
75+
*/
76+
public char getReferenceMarker() {
77+
return referenceMarker;
78+
}
79+
80+
/**
81+
* Sets the single char language marker.
82+
*
83+
* @param languageMarker the language marker
84+
*/
85+
public void setLanguageMarker(final String languageMarker) {
86+
this.languageMarker = languageMarker.charAt(0);
87+
}
88+
89+
/**
90+
* Gets the language marker.
91+
*
92+
* @return the language marker
93+
*/
94+
public char getLanguageMarker() {
95+
return languageMarker;
96+
}
97+
6098
@Override
6199
public void startRecord(final String identifier) {
62100
getReceiver().startRecord(identifier);
@@ -87,8 +125,8 @@ public void endEntity() {
87125

88126
@Override
89127
public void literal(final String name, final String value) {
90-
final int index = name.indexOf(LANGUAGE_MARKER);
91-
if (!name.isEmpty() && name.charAt(0) == REFERENCE_MARKER) {
128+
final int index = name.indexOf(languageMarker);
129+
if (!name.isEmpty() && name.charAt(0) == referenceMarker) {
92130
getReceiver().startEntity(name.substring(1));
93131
getReceiver().literal(RDF_REFERENCE, value);
94132
getReceiver().endEntity();

0 commit comments

Comments
 (0)