XmlDebugger.java
01 /*
02  *
03  * Licensed to the Apache Software Foundation (ASF) under one
04  * or more contributor license agreements.  See the NOTICE file
05  * distributed with this work for additional information
06  * regarding copyright ownership.  The ASF licenses this file
07  * to you under the Apache License, Version 2.0 (the
08  * "License"); you may not use this file except in compliance
09  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  */
21 package org.apache.qpid.qman.debug;
22 
23 import javax.management.ObjectName;
24 
25 import org.apache.muse.util.xml.XmlUtils;
26 import org.apache.qpid.transport.util.Logger;
27 import org.w3c.dom.Element;
28 import org.w3c.dom.Node;
29 
30 /**
31  * Utility class used for debbugging XML messages
32  
33  @author Andrea Gazzarini
34  */
35 public class XmlDebugger {
36   public final static Logger LOGGER = Logger.get(XmlDebugger.class);
37   
38   /**
39    * Prints out to log the given node.
40    
41    @param node the xml node to be printed out.
42    */
43   public static void debug(Node node
44   {
45     if (LOGGER.isDebugEnabled())
46     {
47       LOGGER.debug(XmlUtils.toString(node, false,true));
48     }
49   }
50 
51   /**
52    * Prints out to log the given node.
53    
54    @param node the xml node to be printed out.
55    */
56   public static void debug(ObjectName resourceId, Node node
57   {
58     if (LOGGER.isDebugEnabled())
59     {
60       LOGGER.debug(resourceId+" : "+XmlUtils.toString(node, false,true));
61     }
62   }
63 
64   
65   /**
66    * Prints out to log the given element array.
67    
68    @param elements the element array to be printed out.
69    */
70   public static void debug(Element [] elements
71   {
72     if (LOGGER.isDebugEnabled())
73     {
74       StringBuilder builder = new StringBuilder();
75       for (Element element : elements) {
76         builder.append(XmlUtils.toString(element,false,true));
77         builder.append(System.getProperty("line.separator"));
78       }
79       LOGGER.debug(builder.toString());
80     }
81   }
82   
83   /**
84    * Prints out to log the given node.
85    
86    @param node the xml node to be printed out.
87    */
88   public static void debug(String node
89   {
90       LOGGER.debug(node);
91   }
92 }