public void writeTextTo(Writer writer) throws XMLStreamException, IOException { if (parser != null) { XMLStreamReaderUtils.writeTextTo(parser, writer); } else { switch (currentEvent) { case CHARACTERS: case CDATA: case SPACE: OMText text = (OMText)lastNode; if (text.isCharacters()) { writer.write(text.getTextCharacters()); } else { // TODO: we should cover the binary case in an optimized way writer.write(text.getText()); } break; case COMMENT: writer.write(((OMComment)lastNode).getValue()); break; default: throw new IllegalStateException(); } } }
Writer out = new Base64DecodingOutputStreamWriter(blob.getOutputStream()); try { writeTextTo(reader, out); switch (reader.next()) { case XMLStreamConstants.CHARACTERS: writeTextTo(reader, out); break; case XMLStreamConstants.END_ELEMENT: