(no commit message)
[utils] / support / general / src / main / java / org / wamblee / xml / DomUtils.java
index 36f6077310b4b17f1ddbccfa76dfdaf37404f65f..0da97dd42913e02830f6a2500c82c8b76f899bf5 100644 (file)
@@ -1,12 +1,12 @@
 /*
- * Copyright 2005 the original author or authors.
- *
+ * Copyright 2005-2010 the original author or authors.
+ * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -15,9 +15,6 @@
  */
 package org.wamblee.xml;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
 import org.apache.xml.serialize.OutputFormat;
 import org.apache.xml.serialize.XMLSerializer;
 
@@ -45,6 +42,8 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 import javax.xml.XMLConstants;
 import javax.xml.parsers.DocumentBuilder;
@@ -54,21 +53,18 @@ import javax.xml.transform.stream.StreamSource;
 import javax.xml.validation.Schema;
 import javax.xml.validation.SchemaFactory;
 
-
 /**
  * Some basic XML utilities for common reoccuring tasks for DOM documents.
- *
+ * 
  * @author Erik Brakkee
  */
 public final class DomUtils {
-    /**
-     * DOCUMENT ME!
-     */
-    private static final Log LOG = LogFactory.getLog(DomUtils.class);
+    private static final Logger LOG = Logger
+        .getLogger(DomUtils.class.getName());
 
-/**
+    /**
      * Disabled default constructor.
-     *
+     * 
      */
     private DomUtils() {
         // Empty.
@@ -76,12 +72,12 @@ public final class DomUtils {
 
     /**
      * Parses an XML document from a string.
-     *
-     * @param aDocument document.
-     *
+     * 
+     * @param aDocument
+     *            document.
+     * 
      * @return
-     *
-     * @throws XMLException DOCUMENT ME!
+     * 
      */
     public static Document read(String aDocument) throws XMLException {
         ByteArrayInputStream is = new ByteArrayInputStream(aDocument.getBytes());
@@ -91,12 +87,12 @@ public final class DomUtils {
 
     /**
      * Parses an XML document from a stream.
-     *
-     * @param aIs Input stream.
-     *
+     * 
+     * @param aIs
+     *            Input stream.
+     * 
      * @return
-     *
-     * @throws XMLException DOCUMENT ME!
+     * 
      */
     public static Document read(InputStream aIs) throws XMLException {
         try {
@@ -114,26 +110,28 @@ public final class DomUtils {
             try {
                 aIs.close();
             } catch (Exception e) {
-                LOG.warn("Error closing XML file", e);
+                LOG.log(Level.WARNING, "Error closing XML file", e);
             }
         }
     }
 
     /**
      * Reads and validates a document against a schema.
-     *
-     * @param aIs Input stream.
-     * @param aSchema Schema.
-     *
+     * 
+     * @param aIs
+     *            Input stream.
+     * @param aSchema
+     *            Schema.
+     * 
      * @return Parsed and validated document.
-     *
-     * @throws XMLException DOCUMENT ME!
+     * 
      */
     public static Document readAndValidate(InputStream aIs, InputStream aSchema)
         throws XMLException {
         try {
-            final Schema                 schema  = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI)
-                .newSchema(new StreamSource(aSchema));
+            final Schema schema = SchemaFactory.newInstance(
+                XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(
+                new StreamSource(aSchema));
 
             final DocumentBuilderFactory factory = DocumentBuilderFactory
                 .newInstance();
@@ -152,24 +150,25 @@ public final class DomUtils {
             try {
                 aSchema.close();
             } catch (Exception e) {
-                LOG.warn("Error closing schema", e);
+                LOG.log(Level.WARNING, "Error closing schema", e);
             }
 
             try {
                 aIs.close();
             } catch (Exception e) {
-                LOG.warn("Error closing XML file", e);
+                LOG.log(Level.WARNING, "Error closing XML file", e);
             }
         }
     }
 
     /**
      * Serializes an XML document to a stream.
-     *
-     * @param aDocument Document to serialize.
-     * @param aOs Output stream.
-     *
-     * @throws IOException DOCUMENT ME!
+     * 
+     * @param aDocument
+     *            Document to serialize.
+     * @param aOs
+     *            Output stream.
+     * 
      */
     public static void serialize(Document aDocument, OutputStream aOs)
         throws IOException {
@@ -179,15 +178,14 @@ public final class DomUtils {
 
     /**
      * Serializes an XML document.
-     *
-     * @param aDocument Document to serialize.
-     *
+     * 
+     * @param aDocument
+     *            Document to serialize.
+     * 
      * @return Serialized document.
-     *
-     * @throws IOException DOCUMENT ME!
+     * 
      */
-    public static String serialize(Document aDocument)
-        throws IOException {
+    public static String serialize(Document aDocument) throws IOException {
         ByteArrayOutputStream os = new ByteArrayOutputStream();
         serialize(aDocument, os);
 
@@ -196,12 +194,12 @@ public final class DomUtils {
 
     /**
      * Converts a dom4j document into a w3c DOM document.
-     *
-     * @param aDocument Document to convert.
-     *
+     * 
+     * @param aDocument
+     *            Document to convert.
+     * 
      * @return W3C DOM document.
-     *
-     * @throws DocumentException DOCUMENT ME!
+     * 
      */
     public static Document convert(org.dom4j.Document aDocument)
         throws DocumentException {
@@ -210,9 +208,10 @@ public final class DomUtils {
 
     /**
      * Converts a W3C DOM document into a dom4j document.
-     *
-     * @param aDocument Document to convert.
-     *
+     * 
+     * @param aDocument
+     *            Document to convert.
+     * 
      * @return Dom4j document.
      */
     public static org.dom4j.Document convert(Document aDocument) {
@@ -222,10 +221,11 @@ public final class DomUtils {
     /**
      * Removes duplicate attributes from a DOM tree.This is useful for
      * postprocessing the output of JTidy as a workaround for a bug in JTidy.
-     *
-     * @param aNode Node to remove duplicate attributes from (recursively).
-     *        Attributes of the node itself are not dealt with. Only the child
-     *        nodes are dealt with.
+     * 
+     * @param aNode
+     *            Node to remove duplicate attributes from (recursively).
+     *            Attributes of the node itself are not dealt with. Only the
+     *            child nodes are dealt with.
      */
     public static void removeDuplicateAttributes(Node aNode) {
         NodeList list = aNode.getChildNodes();
@@ -242,20 +242,21 @@ public final class DomUtils {
 
     /**
      * Removes duplicate attributes from an element.
-     *
-     * @param aElement Element.
+     * 
+     * @param aElement
+     *            Element.
      */
     private static void removeDuplicateAttributes(Element aElement) {
-        NamedNodeMap      attributes       = aElement.getAttributes();
+        NamedNodeMap attributes = aElement.getAttributes();
         Map<String, Attr> uniqueAttributes = new TreeMap<String, Attr>();
-        List<Attr>        attlist          = new ArrayList<Attr>();
+        List<Attr> attlist = new ArrayList<Attr>();
 
         for (int i = 0; i < attributes.getLength(); i++) {
             Attr attribute = (Attr) attributes.item(i);
 
             if (uniqueAttributes.containsKey(attribute.getNodeName())) {
-                LOG.info("Detected duplicate attribute (will be removed)'"
-                    attribute.getNodeName() + "'");
+                LOG.info("Detected duplicate attribute (will be removed)'" +
+                    attribute.getNodeName() + "'");
             }
 
             uniqueAttributes.put(attribute.getNodeName(), attribute);