Coverage Report - org.webslinger.servlet.webxml.Configured
 
Classes in this File Line Coverage Branch Coverage Complexity
Configured
41%
18/44
53%
8/15
0
 
 1  
 package org.webslinger.servlet.webxml;
 2  
 
 3  
 import java.util.HashMap;
 4  
 import java.util.Map;
 5  
 
 6  
 import org.w3c.dom.Element;
 7  
 import org.w3c.dom.Node;
 8  
 
 9  
 import org.webslinger.xml.XmlUtil;
 10  
 
 11  
 public abstract class Configured extends Parameterized implements Comparable {
 12  
     private String icon;
 13  
     private String name;
 14  
     private String displayName;
 15  
     private String description;
 16  
     private String className;
 17  
 
 18  21
     protected Configured(Element element, String nameElementName, String classElementName) {
 19  21
         Node node = element.getFirstChild();
 20  336
         while (node != null) {
 21  315
             if (node instanceof Element) {
 22  147
                 String nodeName = node.getNodeName();
 23  147
                 if ("icon".equals(nodeName)) {
 24  0
                     icon = XmlUtil.getNodeSubText(node);
 25  147
                 } else if (nameElementName.equals(nodeName)) {
 26  21
                     name = XmlUtil.getNodeSubText(node);
 27  126
                 } else if ("display-name".equals(nodeName)) {
 28  0
                     displayName = XmlUtil.getNodeSubText(node);
 29  126
                 } else if ("description".equals(nodeName)) {
 30  0
                     description = XmlUtil.getNodeSubText(node);
 31  126
                 } else if (classElementName.equals(nodeName)) {
 32  21
                     className = XmlUtil.getNodeSubText(node);
 33  105
                 } else if ("init-param".equals(nodeName)) {
 34  84
                     parseParameter(node);
 35  
                 }
 36  
             }
 37  315
             node = node.getNextSibling();
 38  
         }
 39  21
     }
 40  
 
 41  
     public String getIcon() {
 42  0
         return icon;
 43  
     }
 44  
 
 45  
     public String getName() {
 46  42
         return name;
 47  
     }
 48  
 
 49  
     public String getDisplayName() {
 50  0
         return displayName;
 51  
     }
 52  
 
 53  
     public String getDescription() {
 54  0
         return description;
 55  
     }
 56  
 
 57  
     public String getClassName() {
 58  42
         return className;
 59  
     }
 60  
 
 61  
     public int hashCode() {
 62  0
         return getClass().hashCode() ^ getName().hashCode();
 63  
     }
 64  
 
 65  
     public boolean equals(Object o) {
 66  0
         if (!(o instanceof Configured)) return false;
 67  0
         Configured other = (Configured) o;
 68  0
         return getClass().equals(o.getClass()) && getName().equals(other.getName());
 69  
     }
 70  
 
 71  
     public int compareTo(Object o) {
 72  0
         if (!getClass().equals(o.getClass())) return -1;
 73  0
         Configured other = (Configured) o;
 74  0
         return getName().compareTo(other.getName());
 75  
     }
 76  
 
 77  
     protected static void parseParameter(Map<String, String> parameters, Node node) {
 78  0
         node = node.getFirstChild();
 79  0
         String name = null;
 80  0
         String value = null;
 81  0
         while (node != null) {
 82  0
             if (node instanceof Element) {
 83  0
                 String nodeName = node.getNodeName();
 84  0
                 if ("param-name".equals(nodeName)) {
 85  0
                     name = XmlUtil.getNodeSubText(node);
 86  0
                 } else if ("param-value".equals(nodeName)) {
 87  0
                     value = XmlUtil.getNodeSubText(node);
 88  
                 }
 89  
             }
 90  0
             node = node.getNextSibling();
 91  
         }
 92  0
         parameters.put(name, value);
 93  0
     }
 94  
 }