diff artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java @ 147:9a64e0c1c737

Added code to load user from database. artifacts/trunk@1372 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 02 Mar 2011 18:08:37 +0000
parents a48882c9e096
children c03d3a872cd2
line wrap: on
line diff
--- a/artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java	Wed Mar 02 17:47:54 2011 +0000
+++ b/artifacts-common/src/main/java/de/intevation/artifacts/common/utils/XMLUtils.java	Wed Mar 02 18:08:37 2011 +0000
@@ -8,9 +8,13 @@
 
 package de.intevation.artifacts.common.utils;
 
+import java.io.ByteArrayInputStream;
+import java.io.FileInputStream;
+import java.io.BufferedInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
 
 import javax.xml.namespace.NamespaceContext;
@@ -169,11 +173,29 @@
      * during loading.
      */
     public static final Document parseDocument(File file) {
+        InputStream inputStream = null;
+        try {
+            inputStream = new BufferedInputStream(new FileInputStream(file));
+            return parseDocument(inputStream);
+        }
+        catch (IOException ioe) {
+            logger.error(ioe.getLocalizedMessage(), ioe);
+        }
+        finally {
+            if (inputStream != null) {
+                try { inputStream.close(); }
+                catch (IOException ioe) {}
+            }
+        }
+        return null;
+    }
+
+    public static final Document parseDocument(InputStream inputStream) {
         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
         factory.setNamespaceAware(true);
 
         try {
-            return factory.newDocumentBuilder().parse(file);
+            return factory.newDocumentBuilder().parse(inputStream);
         }
         catch (ParserConfigurationException pce) {
             logger.error(pce.getLocalizedMessage(), pce);
@@ -324,5 +346,12 @@
             ? baos.toByteArray()
             : null;
     }
+
+    public static Document fromByteArray(byte [] data) {
+        if (data == null) {
+            return null;
+        }
+        return parseDocument(new ByteArrayInputStream(data));
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org