Clover coverage report - Code Coverage for hivemind release 1.1
Coverage timestamp: Tue Oct 25 2005 10:47:07 EDT
file stats: LOC: 136   Methods: 11
NCLOC: 91   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
ElementImpl.java 94.4% 97.3% 90.9% 95.5%
coverage coverage
 1    // Copyright 2004, 2005 The Apache Software Foundation
 2    //
 3    // Licensed under the Apache License, Version 2.0 (the "License");
 4    // you may not use this file except in compliance with the License.
 5    // You may obtain a copy of the License at
 6    //
 7    // http://www.apache.org/licenses/LICENSE-2.0
 8    //
 9    // Unless required by applicable law or agreed to in writing, software
 10    // distributed under the License is distributed on an "AS IS" BASIS,
 11    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 12    // See the License for the specific language governing permissions and
 13    // limitations under the License.
 14   
 15    package org.apache.hivemind.impl;
 16   
 17    import java.util.ArrayList;
 18    import java.util.Collections;
 19    import java.util.HashMap;
 20    import java.util.List;
 21    import java.util.Map;
 22   
 23    import org.apache.hivemind.Attribute;
 24    import org.apache.hivemind.Element;
 25    import org.apache.hivemind.util.ToStringBuilder;
 26   
 27    /**
 28    * Implementation of {@link org.apache.hivemind.Element}.
 29    *
 30    * @author Howard Lewis Ship
 31    */
 32    public final class ElementImpl extends BaseLocatable implements Element
 33    {
 34    private String _elementName;
 35    private String _content;
 36    private List _elements;
 37    private List _safeElements;
 38    private List _attributes;
 39    private Map _attributesMap;
 40    private List _safeAttributes;
 41   
 42  5650 public void setElementName(String elementName)
 43    {
 44  5650 _elementName = elementName;
 45    }
 46   
 47  3869 public String getElementName()
 48    {
 49  3869 return _elementName;
 50    }
 51   
 52  9659 public void addAttribute(Attribute attribute)
 53    {
 54  9659 if (_attributes == null)
 55    {
 56  5489 _attributes = new ArrayList();
 57  5489 _attributesMap = new HashMap();
 58    }
 59   
 60  9659 _attributes.add(attribute);
 61  9659 _attributesMap.put(attribute.getName(), attribute);
 62    }
 63   
 64  1195 public void addElement(Element element)
 65    {
 66  1195 if (_elements == null)
 67  1172 _elements = new ArrayList();
 68   
 69  1195 _elements.add(element);
 70    }
 71   
 72  3851 public synchronized List getAttributes()
 73    {
 74  3851 if (_attributes == null)
 75  67 return Collections.EMPTY_LIST;
 76   
 77  3784 if (_safeAttributes == null)
 78  3784 _safeAttributes = Collections.unmodifiableList(_attributes);
 79   
 80  3784 return _safeAttributes;
 81    }
 82   
 83  25 public String getContent()
 84    {
 85  25 if (_content == null)
 86  1 return "";
 87   
 88  24 return _content;
 89    }
 90   
 91  3849 public synchronized List getElements()
 92    {
 93  3849 if (_elements == null)
 94  3366 return Collections.EMPTY_LIST;
 95   
 96  483 if (_safeElements == null)
 97  482 _safeElements = Collections.unmodifiableList(_elements);
 98   
 99  483 return _safeElements;
 100    }
 101   
 102  12076 public String getAttributeValue(String attributeName)
 103    {
 104  12076 if (_attributesMap == null)
 105  3 return null;
 106   
 107  12073 Attribute a = (Attribute) _attributesMap.get(attributeName);
 108   
 109  12073 if (a == null)
 110  5349 return null;
 111   
 112  6724 return a.getValue();
 113    }
 114   
 115  0 public boolean isEmpty()
 116    {
 117  0 return _elements == null || _elements.size() == 0;
 118    }
 119   
 120  5643 public void setContent(String string)
 121    {
 122  5643 _content = string;
 123    }
 124   
 125  235 public String toString()
 126    {
 127  235 ToStringBuilder builder = new ToStringBuilder(this);
 128   
 129  235 builder.append("elementName", _elementName);
 130  235 builder.append("attributes", _attributes);
 131  235 builder.append("elements", _elements);
 132  235 builder.append("content", _content);
 133   
 134  235 return builder.toString();
 135    }
 136    }