package com.cerb4.impex;
import org.dom4j.Document;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
public class XMLThread extends Thread {
Document doc = null;
String fileName = "";
public XMLThread(Document doc, String filename) {
this.doc = doc;
this.fileName = filename;
}
@Override
public synchronized void start() {
Boolean isVerbose = Boolean.valueOf(Configuration.get("verbose", "false"));
String sExportEncoding = Configuration.get("exportEncoding", "ISO-8859-1");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding(sExportEncoding);
format.setOmitEncoding(false);
OutputStream fileOutputStream = null;
XMLWriter writer = null;
try {
fileOutputStream = new FileOutputStream(this.fileName);
writer = new XMLWriter(new OutputStreamWriter(fileOutputStream, sExportEncoding), format);
writer.write(doc);
} catch (Exception exception) {
exception.printStackTrace();
} finally {
if (writer != null) {
try {
writer.flush();
writer.close();
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
StreamUtils.closeSilently(fileOutputStream);
doc.clearContent();
doc = null;
}
if (isVerbose)
System.out.println("Wrote " + this.fileName);
this.interrupt();
}
}