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