Skip to content

Commit 75c8037

Browse files
author
yury.vasyutinskiy
committed
Adding writeRawValue method support to ToXmlGenerator.
This will allow to write 'writteRawValue' code in the same fashion as Json one.
1 parent e6ada96 commit 75c8037

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

src/main/java/com/fasterxml/jackson/dataformat/xml/ser/ToXmlGenerator.java

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,82 @@ public void writeUTF8String(byte[] text, int offset, int length) throws IOExcept
654654
/**********************************************************
655655
*/
656656

657+
@Override
658+
public void writeRawValue(String text) throws IOException {
659+
// [dataformat-xml#39]
660+
if (_stax2Emulation) {
661+
_reportUnimplementedStax2("writeRawValue");
662+
}
663+
try {
664+
_verifyValueWrite("write raw value");
665+
if (_nextName == null) {
666+
handleMissingName();
667+
}
668+
669+
if (_nextIsAttribute) {
670+
_xmlWriter.writeAttribute(_nextName.getNamespaceURI(), _nextName.getLocalPart(), text);
671+
} else {
672+
_xmlWriter.writeStartElement(_nextName.getNamespaceURI(), _nextName.getLocalPart());
673+
_xmlWriter.writeRaw(text);
674+
_xmlWriter.writeEndElement();
675+
}
676+
} catch (XMLStreamException e) {
677+
StaxUtil.throwXmlAsIOException(e);
678+
}
679+
}
680+
681+
@Override
682+
public void writeRawValue(String text, int offset, int len) throws IOException {
683+
// [dataformat-xml#39]
684+
if (_stax2Emulation) {
685+
_reportUnimplementedStax2("writeRawValue");
686+
}
687+
try {
688+
_verifyValueWrite("write raw value");
689+
if (_nextName == null) {
690+
handleMissingName();
691+
}
692+
693+
if (_nextIsAttribute) {
694+
_xmlWriter.writeAttribute(_nextName.getNamespaceURI(), _nextName.getLocalPart(), text.substring(offset, offset + len));
695+
} else {
696+
_xmlWriter.writeStartElement(_nextName.getNamespaceURI(), _nextName.getLocalPart());
697+
_xmlWriter.writeRaw(text, offset, len);
698+
_xmlWriter.writeEndElement();
699+
}
700+
} catch (XMLStreamException e) {
701+
StaxUtil.throwXmlAsIOException(e);
702+
}
703+
}
704+
705+
@Override
706+
public void writeRawValue(char[] text, int offset, int len) throws IOException {
707+
// [dataformat-xml#39]
708+
if (_stax2Emulation) {
709+
_reportUnimplementedStax2("writeRawValue");
710+
}
711+
_verifyValueWrite("write raw value");
712+
if (_nextName == null) {
713+
handleMissingName();
714+
}
715+
try {
716+
if (_nextIsAttribute) {
717+
_xmlWriter.writeAttribute(_nextName.getNamespaceURI(), _nextName.getLocalPart(), new String(text, offset, len));
718+
} else {
719+
_xmlWriter.writeStartElement(_nextName.getNamespaceURI(), _nextName.getLocalPart());
720+
_xmlWriter.writeRaw(text, offset, len);
721+
_xmlWriter.writeEndElement();
722+
}
723+
} catch (XMLStreamException e) {
724+
StaxUtil.throwXmlAsIOException(e);
725+
}
726+
}
727+
728+
@Override
729+
public void writeRawValue(SerializableString text) throws IOException {
730+
_reportUnsupportedOperation();
731+
}
732+
657733
@Override
658734
public void writeRaw(String text) throws IOException
659735
{

0 commit comments

Comments
 (0)