1 package org.simantics.xml.sax.base;
\r
4 import java.io.FileOutputStream;
\r
5 import java.io.IOException;
\r
7 import javax.xml.stream.XMLOutputFactory;
\r
8 import javax.xml.stream.XMLStreamException;
\r
9 import javax.xml.stream.XMLStreamWriter;
\r
11 import org.simantics.db.ReadGraph;
\r
12 import org.simantics.db.Resource;
\r
13 import org.simantics.db.Session;
\r
14 import org.simantics.db.common.request.ReadRequest;
\r
15 import org.simantics.db.exception.DatabaseException;
\r
16 import org.simantics.message.ILogger;
\r
17 import org.simantics.message.MessageService;
\r
19 public class AbstractExporter {
\r
21 private Session session;
\r
23 private ILogger logger;
\r
24 private Resource root;
\r
25 private XMLWriter xmlWriter;
\r
27 public AbstractExporter(Session session, File file , Resource root, XMLWriter xmlWriter) {
\r
28 this.session = session;
\r
31 this.xmlWriter = xmlWriter;
\r
34 public AbstractExporter(Session session, File file , Resource root) {
\r
35 this.session = session;
\r
40 public void setXmlWriter(XMLWriter xmlWriter) {
\r
41 this.xmlWriter = xmlWriter;
\r
44 public void doExport() throws DatabaseException {
\r
45 doExport(MessageService.getDefault());
\r
48 public void doExport(ILogger logger) throws DatabaseException {
\r
49 ExportRequest req = new ExportRequest();
\r
50 session.syncRequest(req);
\r
54 private class ExportRequest extends ReadRequest {
\r
56 public void run(ReadGraph graph) throws DatabaseException {
\r
57 XMLStreamWriter writer = null;
\r
59 XMLOutputFactory output = XMLOutputFactory.newInstance();
\r
60 writer = output.createXMLStreamWriter(new FileOutputStream(file),"UTF-8");
\r
61 writer.writeStartDocument("UTF-8", "1.0");
\r
62 xmlWriter.write(root, writer);
\r
64 writer.writeEndDocument();
\r
66 } catch (IOException|XMLStreamException e) {
\r
69 } catch (XMLStreamException err) {
\r
72 throw new DatabaseException(e);
\r