29
29
* @author Markus Michael Geipel
30
30
*
31
31
*/
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 `*` " )
33
33
@ In (StreamReceiver .class )
34
34
@ Out (StreamReceiver .class )
35
35
@ FluxCommand ("rdf-macros" )
@@ -41,6 +41,8 @@ public final class RdfMacroPipe extends DefaultStreamPipe<StreamReceiver> {
41
41
public static final String RDF_ABOUT = "~rdf:about" ;
42
42
public static final String XML_LANG = "~xml:lang" ;
43
43
private String autoAddedSubject = "" ;
44
+ private char referenceMarker = REFERENCE_MARKER ;
45
+ private char languageMarker = LANGUAGE_MARKER ;
44
46
45
47
/**
46
48
* Creates an instance of {@link RdfMacroPipe}.
@@ -57,6 +59,42 @@ public void setAutoAddedSubject(final String autoAddedSubject) {
57
59
this .autoAddedSubject = autoAddedSubject ;
58
60
}
59
61
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
+
60
98
@ Override
61
99
public void startRecord (final String identifier ) {
62
100
getReceiver ().startRecord (identifier );
@@ -87,8 +125,8 @@ public void endEntity() {
87
125
88
126
@ Override
89
127
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 ) {
92
130
getReceiver ().startEntity (name .substring (1 ));
93
131
getReceiver ().literal (RDF_REFERENCE , value );
94
132
getReceiver ().endEntity ();
0 commit comments