package com.constellio.data.io.concurrent.data;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import org.jdom2.Document;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
public class XmlView extends ReaderWriterDataWrapper<Document>{
private Document document;
private final SAXBuilder builder = new SAXBuilder();
private final XMLOutputter xmlOutput = new XMLOutputter(Format.getPrettyFormat());
@Override
public void init(Reader reader) {
try {
document = builder.build(reader);
} catch (JDOMException | IOException e) {
throw new RuntimeException(e);
}
}
@Override
public void toBytes(Writer writer) {
try {
xmlOutput.output(document, writer);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Override
public Document getData() {
return document.clone();
}
@Override
public XmlView setData(Document data) {
this.document = data;
return this;
}
}