You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
325 lines
8.8 KiB
325 lines
8.8 KiB
/*
|
|
* Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
|
|
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
|
*/
|
|
/*
|
|
* Copyright 2002-2004 The Apache Software Foundation.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
/*
|
|
* $Id: XPathNamespaceImpl.java,v 1.2.4.1 2005/09/10 04:10:02 jeffsuttor Exp $
|
|
*/
|
|
|
|
|
|
package com.sun.org.apache.xpath.internal.domapi;
|
|
|
|
import org.w3c.dom.Attr;
|
|
import org.w3c.dom.DOMException;
|
|
import org.w3c.dom.Document;
|
|
import org.w3c.dom.Element;
|
|
import org.w3c.dom.NamedNodeMap;
|
|
import org.w3c.dom.Node;
|
|
import org.w3c.dom.NodeList;
|
|
import org.w3c.dom.xpath.XPathNamespace;
|
|
|
|
import org.w3c.dom.UserDataHandler;
|
|
|
|
/**
|
|
*
|
|
*
|
|
* The <code>XPathNamespace</code> interface is returned by
|
|
* <code>XPathResult</code> interfaces to represent the XPath namespace node
|
|
* type that DOM lacks. There is no public constructor for this node type.
|
|
* Attempts to place it into a hierarchy or a NamedNodeMap result in a
|
|
* <code>DOMException</code> with the code <code>HIERARCHY_REQUEST_ERR</code>
|
|
* . This node is read only, so methods or setting of attributes that would
|
|
* mutate the node result in a DOMException with the code
|
|
* <code>NO_MODIFICATION_ALLOWED_ERR</code>.
|
|
* <p>The core specification describes attributes of the <code>Node</code>
|
|
* interface that are different for different node node types but does not
|
|
* describe <code>XPATH_NAMESPACE_NODE</code>, so here is a description of
|
|
* those attributes for this node type. All attributes of <code>Node</code>
|
|
* not described in this section have a <code>null</code> or
|
|
* <code>false</code> value.
|
|
* <p><code>ownerDocument</code> matches the <code>ownerDocument</code> of the
|
|
* <code>ownerElement</code> even if the element is later adopted.
|
|
* <p><code>prefix</code> is the prefix of the namespace represented by the
|
|
* node.
|
|
* <p><code>nodeName</code> is the same as <code>prefix</code>.
|
|
* <p><code>nodeType</code> is equal to <code>XPATH_NAMESPACE_NODE</code>.
|
|
* <p><code>namespaceURI</code> is the namespace URI of the namespace
|
|
* represented by the node.
|
|
* <p><code>adoptNode</code>, <code>cloneNode</code>, and
|
|
* <code>importNode</code> fail on this node type by raising a
|
|
* <code>DOMException</code> with the code <code>NOT_SUPPORTED_ERR</code>.In
|
|
* future versions of the XPath specification, the definition of a namespace
|
|
* node may be changed incomatibly, in which case incompatible changes to
|
|
* field values may be required to implement versions beyond XPath 1.0.
|
|
* <p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.
|
|
*
|
|
* This implementation wraps the DOM attribute node that contained the
|
|
* namespace declaration.
|
|
* @xsl.usage internal
|
|
*/
|
|
|
|
class XPathNamespaceImpl implements XPathNamespace {
|
|
|
|
// Node that XPathNamespaceImpl wraps
|
|
final private Node m_attributeNode;
|
|
|
|
/**
|
|
* Constructor for XPathNamespaceImpl.
|
|
*/
|
|
XPathNamespaceImpl(Node node) {
|
|
m_attributeNode = node;
|
|
}
|
|
|
|
/**
|
|
* @see com.sun.org.apache.xalan.internal.dom3.xpath.XPathNamespace#getOwnerElement()
|
|
*/
|
|
public Element getOwnerElement() {
|
|
return ((Attr)m_attributeNode).getOwnerElement();
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#getNodeName()
|
|
*/
|
|
public String getNodeName() {
|
|
return "#namespace";
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#getNodeValue()
|
|
*/
|
|
public String getNodeValue() throws DOMException {
|
|
return m_attributeNode.getNodeValue();
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#setNodeValue(String)
|
|
*/
|
|
public void setNodeValue(String arg0) throws DOMException {
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#getNodeType()
|
|
*/
|
|
public short getNodeType() {
|
|
return XPathNamespace.XPATH_NAMESPACE_NODE;
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#getParentNode()
|
|
*/
|
|
public Node getParentNode() {
|
|
return m_attributeNode.getParentNode();
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#getChildNodes()
|
|
*/
|
|
public NodeList getChildNodes() {
|
|
return m_attributeNode.getChildNodes();
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#getFirstChild()
|
|
*/
|
|
public Node getFirstChild() {
|
|
return m_attributeNode.getFirstChild();
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#getLastChild()
|
|
*/
|
|
public Node getLastChild() {
|
|
return m_attributeNode.getLastChild();
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#getPreviousSibling()
|
|
*/
|
|
public Node getPreviousSibling() {
|
|
return m_attributeNode.getPreviousSibling();
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#getNextSibling()
|
|
*/
|
|
public Node getNextSibling() {
|
|
return m_attributeNode.getNextSibling();
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#getAttributes()
|
|
*/
|
|
public NamedNodeMap getAttributes() {
|
|
return m_attributeNode.getAttributes();
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#getOwnerDocument()
|
|
*/
|
|
public Document getOwnerDocument() {
|
|
return m_attributeNode.getOwnerDocument();
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#insertBefore(Node, Node)
|
|
*/
|
|
public Node insertBefore(Node arg0, Node arg1) throws DOMException {
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#replaceChild(Node, Node)
|
|
*/
|
|
public Node replaceChild(Node arg0, Node arg1) throws DOMException {
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#removeChild(Node)
|
|
*/
|
|
public Node removeChild(Node arg0) throws DOMException {
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#appendChild(Node)
|
|
*/
|
|
public Node appendChild(Node arg0) throws DOMException {
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#hasChildNodes()
|
|
*/
|
|
public boolean hasChildNodes() {
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#cloneNode(boolean)
|
|
*/
|
|
public Node cloneNode(boolean arg0) {
|
|
throw new DOMException(DOMException.NOT_SUPPORTED_ERR,null);
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#normalize()
|
|
*/
|
|
public void normalize() {
|
|
m_attributeNode.normalize();
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#isSupported(String, String)
|
|
*/
|
|
public boolean isSupported(String arg0, String arg1) {
|
|
return m_attributeNode.isSupported(arg0, arg1);
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#getNamespaceURI()
|
|
*/
|
|
public String getNamespaceURI() {
|
|
|
|
// For namespace node, the namespaceURI is the namespace URI
|
|
// of the namespace represented by the node.
|
|
return m_attributeNode.getNodeValue();
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#getPrefix()
|
|
*/
|
|
public String getPrefix() {
|
|
return m_attributeNode.getPrefix();
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#setPrefix(String)
|
|
*/
|
|
public void setPrefix(String arg0) throws DOMException {
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#getLocalName()
|
|
*/
|
|
public String getLocalName() {
|
|
|
|
// For namespace node, the local name is the same as the prefix
|
|
return m_attributeNode.getPrefix();
|
|
}
|
|
|
|
/**
|
|
* @see org.w3c.dom.Node#hasAttributes()
|
|
*/
|
|
public boolean hasAttributes() {
|
|
return m_attributeNode.hasAttributes();
|
|
}
|
|
|
|
public String getBaseURI ( ) {
|
|
return null;
|
|
}
|
|
|
|
public short compareDocumentPosition(Node other) throws DOMException {
|
|
return 0;
|
|
}
|
|
|
|
private String textContent;
|
|
|
|
public String getTextContent() throws DOMException {
|
|
return textContent;
|
|
}
|
|
|
|
public void setTextContent(String textContent) throws DOMException {
|
|
this.textContent = textContent;
|
|
}
|
|
|
|
public boolean isSameNode(Node other) {
|
|
return false;
|
|
}
|
|
|
|
public String lookupPrefix(String namespaceURI) {
|
|
return ""; //PENDING
|
|
}
|
|
|
|
public boolean isDefaultNamespace(String namespaceURI) {
|
|
return false;
|
|
}
|
|
|
|
public String lookupNamespaceURI(String prefix) {
|
|
return null;
|
|
}
|
|
|
|
public boolean isEqualNode(Node arg) {
|
|
return false;
|
|
}
|
|
|
|
public Object getFeature(String feature, String version) {
|
|
return null; //PENDING
|
|
}
|
|
|
|
public Object setUserData(String key,
|
|
Object data,
|
|
UserDataHandler handler) {
|
|
return null; //PENDING
|
|
}
|
|
|
|
public Object getUserData(String key) {
|
|
return null;
|
|
}
|
|
}
|