1 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 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 public void setElementName(String elementName) 43 { 44 _elementName = elementName; 45 } 46 47 public String getElementName() 48 { 49 return _elementName; 50 } 51 52 public void addAttribute(Attribute attribute) 53 { 54 if (_attributes == null) 55 { 56 _attributes = new ArrayList (); 57 _attributesMap = new HashMap (); 58 } 59 60 _attributes.add(attribute); 61 _attributesMap.put(attribute.getName(), attribute); 62 } 63 64 public void addElement(Element element) 65 { 66 if (_elements == null) 67 _elements = new ArrayList (); 68 69 _elements.add(element); 70 } 71 72 public synchronized List getAttributes() 73 { 74 if (_attributes == null) 75 return Collections.EMPTY_LIST; 76 77 if (_safeAttributes == null) 78 _safeAttributes = Collections.unmodifiableList(_attributes); 79 80 return _safeAttributes; 81 } 82 83 public String getContent() 84 { 85 if (_content == null) 86 return ""; 87 88 return _content; 89 } 90 91 public synchronized List getElements() 92 { 93 if (_elements == null) 94 return Collections.EMPTY_LIST; 95 96 if (_safeElements == null) 97 _safeElements = Collections.unmodifiableList(_elements); 98 99 return _safeElements; 100 } 101 102 public String getAttributeValue(String attributeName) 103 { 104 if (_attributesMap == null) 105 return null; 106 107 Attribute a = (Attribute) _attributesMap.get(attributeName); 108 109 if (a == null) 110 return null; 111 112 return a.getValue(); 113 } 114 115 public boolean isEmpty() 116 { 117 return _elements == null || _elements.size() == 0; 118 } 119 120 public void setContent(String string) 121 { 122 _content = string; 123 } 124 125 public String toString() 126 { 127 ToStringBuilder builder = new ToStringBuilder(this); 128 129 builder.append("elementName", _elementName); 130 builder.append("attributes", _attributes); 131 builder.append("elements", _elements); 132 builder.append("content", _content); 133 134 return builder.toString(); 135 } 136 } 137 | Popular Tags |