1 7 8 package org.dom4j.dom; 9 10 import org.dom4j.Element; 11 import org.dom4j.QName; 12 import org.dom4j.tree.DefaultAttribute; 13 14 import org.w3c.dom.DOMException ; 15 import org.w3c.dom.Document ; 16 import org.w3c.dom.NamedNodeMap ; 17 import org.w3c.dom.NodeList ; 18 19 28 public class DOMAttribute extends DefaultAttribute implements org.w3c.dom.Attr { 29 public DOMAttribute(QName qname) { 30 super(qname); 31 } 32 33 public DOMAttribute(QName qname, String value) { 34 super(qname, value); 35 } 36 37 public DOMAttribute(Element parent, QName qname, String value) { 38 super(parent, qname, value); 39 } 40 41 public boolean supports(String feature, String version) { 44 return DOMNodeHelper.supports(this, feature, version); 45 } 46 47 public String getNamespaceURI() { 48 return getQName().getNamespaceURI(); 49 } 50 51 public String getPrefix() { 52 return getQName().getNamespacePrefix(); 53 } 54 55 public void setPrefix(String prefix) throws DOMException { 56 DOMNodeHelper.setPrefix(this, prefix); 57 } 58 59 public String getLocalName() { 60 return getQName().getName(); 61 } 62 63 public String getNodeName() { 64 return getName(); 65 } 66 67 public String getNodeValue() throws DOMException { 71 return DOMNodeHelper.getNodeValue(this); 72 } 73 74 public void setNodeValue(String nodeValue) throws DOMException { 75 DOMNodeHelper.setNodeValue(this, nodeValue); 76 } 77 78 public org.w3c.dom.Node getParentNode() { 79 return null; 83 } 84 85 public NodeList getChildNodes() { 86 return DOMNodeHelper.getChildNodes(this); 87 } 88 89 public org.w3c.dom.Node getFirstChild() { 90 return DOMNodeHelper.getFirstChild(this); 91 } 92 93 public org.w3c.dom.Node getLastChild() { 94 return DOMNodeHelper.getLastChild(this); 95 } 96 97 public org.w3c.dom.Node getPreviousSibling() { 98 return DOMNodeHelper.getPreviousSibling(this); 99 } 100 101 public org.w3c.dom.Node getNextSibling() { 102 return DOMNodeHelper.getNextSibling(this); 103 } 104 105 public NamedNodeMap getAttributes() { 106 return null; 107 } 108 109 public Document getOwnerDocument() { 110 return DOMNodeHelper.getOwnerDocument(this); 111 } 112 113 public org.w3c.dom.Node insertBefore(org.w3c.dom.Node newChild, 114 org.w3c.dom.Node refChild) throws DOMException { 115 checkNewChildNode(newChild); 116 117 return DOMNodeHelper.insertBefore(this, newChild, refChild); 118 } 119 120 public org.w3c.dom.Node replaceChild(org.w3c.dom.Node newChild, 121 org.w3c.dom.Node oldChild) throws DOMException { 122 checkNewChildNode(newChild); 123 124 return DOMNodeHelper.replaceChild(this, newChild, oldChild); 125 } 126 127 public org.w3c.dom.Node removeChild(org.w3c.dom.Node oldChild) 128 throws DOMException { 129 return DOMNodeHelper.removeChild(this, oldChild); 130 } 131 132 public org.w3c.dom.Node appendChild(org.w3c.dom.Node newChild) 133 throws DOMException { 134 checkNewChildNode(newChild); 135 136 return DOMNodeHelper.appendChild(this, newChild); 137 } 138 139 private void checkNewChildNode(org.w3c.dom.Node newChild) 140 throws DOMException { 141 final int nodeType = newChild.getNodeType(); 142 143 if (!((nodeType == org.w3c.dom.Node.TEXT_NODE) 144 || (nodeType == org.w3c.dom.Node.ENTITY_REFERENCE_NODE))) { 145 throw new DOMException (DOMException.HIERARCHY_REQUEST_ERR, 146 "The node cannot be a child of attribute"); 147 } 148 } 149 150 public boolean hasChildNodes() { 151 return DOMNodeHelper.hasChildNodes(this); 152 } 153 154 public org.w3c.dom.Node cloneNode(boolean deep) { 155 return DOMNodeHelper.cloneNode(this, deep); 156 } 157 158 public void normalize() { 159 DOMNodeHelper.normalize(this); 160 } 161 162 public boolean isSupported(String feature, String version) { 163 return DOMNodeHelper.isSupported(this, feature, version); 164 } 165 166 public boolean hasAttributes() { 167 return DOMNodeHelper.hasAttributes(this); 168 } 169 170 public boolean getSpecified() { 174 return true; 175 } 176 177 public org.w3c.dom.Element getOwnerElement() { 180 return DOMNodeHelper.asDOMElement(getParent()); 181 } 182 } 183 184 220 | Popular Tags |