/** * Returns the element whose namespace definitions apply to this node. Use * this element when mapping prefixes to URIs and vice versa. */ private NodeImpl getNamespacingElement() { switch (this.getNodeType()) { case ELEMENT_NODE: return this; case DOCUMENT_NODE: return (NodeImpl) ((Document) this).getDocumentElement(); case ENTITY_NODE: case NOTATION_NODE: case DOCUMENT_FRAGMENT_NODE: case DOCUMENT_TYPE_NODE: return null; case ATTRIBUTE_NODE: return (NodeImpl) ((Attr) this).getOwnerElement(); case TEXT_NODE: case CDATA_SECTION_NODE: case ENTITY_REFERENCE_NODE: case PROCESSING_INSTRUCTION_NODE: case COMMENT_NODE: return getContainingElement(); default: throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Unsupported node type " + getNodeType()); } }
public final void setNodeValue(String nodeValue) throws DOMException { switch (getNodeType()) { case CDATA_SECTION_NODE: case COMMENT_NODE: case TEXT_NODE: ((CharacterData) this).setData(nodeValue); return; case PROCESSING_INSTRUCTION_NODE: ((ProcessingInstruction) this).setData(nodeValue); return; case ATTRIBUTE_NODE: ((Attr) this).setValue(nodeValue); return; case ELEMENT_NODE: case ENTITY_REFERENCE_NODE: case ENTITY_NODE: case DOCUMENT_NODE: case DOCUMENT_TYPE_NODE: case DOCUMENT_FRAGMENT_NODE: case NOTATION_NODE: return; // do nothing! default: throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Unsupported node type " + getNodeType()); } }
/** * This implementation walks the entire document looking for an element * with the given ID attribute. We should consider adding an index to speed * navigation of large documents. */ Element getElementById(String name) { for (Attr attr : attributes) { if (attr.isId() && name.equals(attr.getValue())) { return this; } } /* * TODO: Remove this behavior. * The spec explicitly says that this is a bad idea. From * Document.getElementById(): "Attributes with the name "ID" * or "id" are not of type ID unless so defined. */ if (name.equals(getAttribute("id"))) { return this; } for (NodeImpl node : children) { if (node.getNodeType() == Node.ELEMENT_NODE) { Element element = ((ElementImpl) node).getElementById(name); if (element != null) { return element; } } } return null; }
/** * Recursively change the document of {@code node} without also changing its * parent node. Only adoptNode() should invoke this method, otherwise nodes * will be left in an inconsistent state. */ private void changeDocumentToThis(NodeImpl node) { Map<String, UserData> userData = node.document.getUserDataMapForRead(node); if (!userData.isEmpty()) { getUserDataMap(node).putAll(userData); } node.document = this; // change the document on all child nodes NodeList list = node.getChildNodes(); for (int i = 0; i < list.getLength(); i++) { changeDocumentToThis((NodeImpl) list.item(i)); } // change the document on all attribute nodes if (node.getNodeType() == Node.ELEMENT_NODE) { NamedNodeMap attributes = node.getAttributes(); for (int i = 0; i < attributes.getLength(); i++) { changeDocumentToThis((AttrImpl) attributes.item(i)); } } }
public final String getBaseURI() { switch (getNodeType()) { case DOCUMENT_NODE: return sanitizeUri(((Document) this).getDocumentURI()); "Unsupported node type " + getNodeType());
switch (node.getNodeType()) { case ATTRIBUTE_NODE: AttrImpl attr = (AttrImpl) node; "Cannot rename nodes of type " + node.getNodeType());
switch (node.getNodeType()) { case ATTRIBUTE_NODE: if ("xmlns".equals(qualifiedName) "Cannot rename nodes of type " + node.getNodeType());
void getElementsByTagName(NodeListImpl out, String name) { for (NodeImpl node : children) { if (node.getNodeType() == Node.ELEMENT_NODE) { ElementImpl element = (ElementImpl) node; if (matchesNameOrWildcard(name, element.getNodeName())) { out.add(element); } element.getElementsByTagName(out, name); } } }
public final void setTextContent(String textContent) throws DOMException { switch (getNodeType()) { case DOCUMENT_TYPE_NODE: case DOCUMENT_NODE: "Unsupported node type " + getNodeType());
switch (nodeImpl.getNodeType()) { case Node.ATTRIBUTE_NODE: AttrImpl attr = (AttrImpl) node; case Node.NOTATION_NODE: throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Cannot adopt nodes of type " + nodeImpl.getNodeType());
void getElementsByTagNameNS(NodeListImpl out, String namespaceURI, String localName) { for (NodeImpl node : children) { if (node.getNodeType() == Node.ELEMENT_NODE) { ElementImpl element = (ElementImpl) node; if (matchesNameOrWildcard(namespaceURI, element.getNamespaceURI()) && matchesNameOrWildcard(localName, element.getLocalName())) { out.add(element); } element.getElementsByTagNameNS(out, namespaceURI, localName); } } }
void getElementsByTagName(NodeListImpl out, String name) { for (NodeImpl node : children) { if (node.getNodeType() == Node.ELEMENT_NODE) { ElementImpl element = (ElementImpl) node; if (matchesNameOrWildcard(name, element.getNodeName())) { out.add(element); } element.getElementsByTagName(out, name); } } }
void getElementsByTagName(NodeListImpl out, String name) { for (NodeImpl node : children) { if (node.getNodeType() == Node.ELEMENT_NODE) { ElementImpl element = (ElementImpl) node; if (matchesNameOrWildcard(name, element.getNodeName())) { out.add(element); } element.getElementsByTagName(out, name); } } }
void getElementsByTagName(NodeListImpl out, String name) { for (NodeImpl node : children) { if (node.getNodeType() == Node.ELEMENT_NODE) { ElementImpl element = (ElementImpl) node; if (matchesNameOrWildcard(name, element.getNodeName())) { out.add(element); } element.getElementsByTagName(out, name); } } }
void getElementsByTagName(NodeListImpl out, String name) { for (NodeImpl node : children) { if (node.getNodeType() == Node.ELEMENT_NODE) { ElementImpl element = (ElementImpl) node; if (matchesNameOrWildcard(name, element.getNodeName())) { out.add(element); } element.getElementsByTagName(out, name); } } }
void getElementsByTagName(NodeListImpl out, String name) { for (NodeImpl node : children) { if (node.getNodeType() == Node.ELEMENT_NODE) { ElementImpl element = (ElementImpl) node; if (matchesNameOrWildcard(name, element.getNodeName())) { out.add(element); } element.getElementsByTagName(out, name); } } }
void getElementsByTagNameNS(NodeListImpl out, String namespaceURI, String localName) { for (NodeImpl node : children) { if (node.getNodeType() == Node.ELEMENT_NODE) { ElementImpl element = (ElementImpl) node; if (matchesNameOrWildcard(namespaceURI, element.getNamespaceURI()) && matchesNameOrWildcard(localName, element.getLocalName())) { out.add(element); } element.getElementsByTagNameNS(out, namespaceURI, localName); } } }
void getElementsByTagNameNS(NodeListImpl out, String namespaceURI, String localName) { for (NodeImpl node : children) { if (node.getNodeType() == Node.ELEMENT_NODE) { ElementImpl element = (ElementImpl) node; if (matchesNameOrWildcard(namespaceURI, element.getNamespaceURI()) && matchesNameOrWildcard(localName, element.getLocalName())) { out.add(element); } element.getElementsByTagNameNS(out, namespaceURI, localName); } } }
void getElementsByTagNameNS(NodeListImpl out, String namespaceURI, String localName) { for (NodeImpl node : children) { if (node.getNodeType() == Node.ELEMENT_NODE) { ElementImpl element = (ElementImpl) node; if (matchesNameOrWildcard(namespaceURI, element.getNamespaceURI()) && matchesNameOrWildcard(localName, element.getLocalName())) { out.add(element); } element.getElementsByTagNameNS(out, namespaceURI, localName); } } }
void getElementsByTagNameNS(NodeListImpl out, String namespaceURI, String localName) { for (NodeImpl node : children) { if (node.getNodeType() == Node.ELEMENT_NODE) { ElementImpl element = (ElementImpl) node; if (matchesNameOrWildcard(namespaceURI, element.getNamespaceURI()) && matchesNameOrWildcard(localName, element.getLocalName())) { out.add(element); } element.getElementsByTagNameNS(out, namespaceURI, localName); } } }