initial quantum version
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.quantum.sql / src / com / quantum / util / xml / XMLHelper.java
diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/util/xml/XMLHelper.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/util/xml/XMLHelper.java
new file mode 100644 (file)
index 0000000..bf16296
--- /dev/null
@@ -0,0 +1,73 @@
+package com.quantum.util.xml;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Writer;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.FactoryConfigurationError;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.xml.serialize.DOMSerializer;
+import org.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+
+/**
+ * <p>This class constructs a pretty-printing XML Serializer
+ * 
+ * @author BC
+ */
+public class XMLHelper {
+    
+    private XMLHelper() {}
+    
+    public static DOMSerializer createDOMSerializer(Writer writer) 
+        throws IOException {
+        XMLSerializer serializer = new XMLSerializer(writer, createOutputFormat());
+        return serializer.asDOMSerializer();
+    }
+
+    public static DOMSerializer createDOMSerializer(OutputStream stream) 
+        throws IOException {
+        XMLSerializer serializer = new XMLSerializer(stream, createOutputFormat());
+        return serializer.asDOMSerializer();
+    }
+    private static OutputFormat createOutputFormat() {
+        OutputFormat format = new OutputFormat();
+        format.setIndenting(true);
+        format.setLineWidth(80);
+        return format;
+    }
+    
+    public static Document createEmptyDocument() throws ParserConfigurationException {
+        DocumentBuilder builder = createDocumentBuilder();
+        return builder.newDocument();
+    }
+    
+    public static Document createFromInputStream(InputStream stream) 
+        throws IOException, SAXException, ParserConfigurationException {
+        DocumentBuilder builder = createDocumentBuilder();
+        return builder.parse(stream);
+    }
+
+    private static DocumentBuilder createDocumentBuilder()
+        throws FactoryConfigurationError, ParserConfigurationException {
+        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+        return factory.newDocumentBuilder();
+    }
+    
+    public static void write(Writer writer, Document document) 
+        throws IOException {
+        createDOMSerializer(writer).serialize(document);
+    }
+
+    public static void write(OutputStream stream, Document document) 
+        throws IOException {
+        createDOMSerializer(stream).serialize(document);
+    }
+}