1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package gov.nist.secauto.metaschema.core.datatype.markup.flexmark;
28
29 import com.vladsch.flexmark.parser.ListOptions;
30
31 import java.util.Map;
32
33 import javax.xml.namespace.QName;
34 import javax.xml.stream.XMLStreamException;
35 import javax.xml.stream.XMLStreamWriter;
36
37 import edu.umd.cs.findbugs.annotations.NonNull;
38
39 public class MarkupXmlStreamWriter
40 extends AbstractMarkupWriter<XMLStreamWriter, XMLStreamException> {
41
42 public MarkupXmlStreamWriter(
43 @NonNull String namespace,
44 @NonNull ListOptions listOptions,
45 @NonNull XMLStreamWriter writer) {
46 super(namespace, listOptions, writer);
47 }
48
49 @Override
50 public void writeEmptyElement(QName qname, Map<String, String> attributes) throws XMLStreamException {
51 XMLStreamWriter stream = getStream();
52 stream.writeEmptyElement(qname.getNamespaceURI(), qname.getLocalPart());
53
54 for (Map.Entry<String, String> entry : attributes.entrySet()) {
55 stream.writeAttribute(entry.getKey(), entry.getValue());
56 }
57 }
58
59 @Override
60 public void writeElementStart(QName qname, Map<String, String> attributes) throws XMLStreamException {
61 XMLStreamWriter stream = getStream();
62 stream.writeStartElement(qname.getNamespaceURI(), qname.getLocalPart());
63
64 for (Map.Entry<String, String> entry : attributes.entrySet()) {
65 stream.writeAttribute(entry.getKey(), entry.getValue());
66 }
67 }
68
69 @Override
70 public void writeElementEnd(QName qname) throws XMLStreamException {
71 getStream().writeEndElement();
72 }
73
74 @Override
75 public void writeText(CharSequence text) throws XMLStreamException {
76 getStream().writeCharacters(text.toString());
77
78 }
79
80 @Override
81 protected void writeHtmlEntityInternal(String entityText) throws XMLStreamException {
82 getStream().writeEntityRef(entityText);
83 }
84
85 @Override
86 protected void writeComment(CharSequence text) throws XMLStreamException {
87 getStream().writeComment(text.toString());
88 }
89 }