- public Optional<String> getAdditionalHeader() {
- return additionalHeader== null ? Optional.<String>absent() : Optional.of(additionalHeader);
+ @Override
+ public String toString() {
+ final StreamResult result = new StreamResult(new StringWriter());
+ final DOMSource source = new DOMSource(doc.getDocumentElement());
+
+ try {
+ // Slight critical section is a tradeoff. This should be reasonably fast.
+ synchronized (TRANSFORMER) {
+ TRANSFORMER.transform(source, result);
+ }
+ } catch (TransformerException e) {
+ throw new IllegalStateException("Failed to encode document", e);
+ }
+
+ return result.getWriter().toString();