All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sun.org.apache.xpath.internal.domapi.XPathNamespaceImpl Maven / Gradle / Ivy

The newest version!
/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
 *
 * The contents of this file are subject to the terms of either the GNU
 * General Public License Version 2 only ("GPL") or the Common Development
 * and Distribution License("CDDL") (collectively, the "License").  You
 * may not use this file except in compliance with the License.  You can
 * obtain a copy of the License at
 * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
 * or packager/legal/LICENSE.txt.  See the License for the specific
 * language governing permissions and limitations under the License.
 *
 * When distributing the software, include this License Header Notice in each
 * file and include the License file at packager/legal/LICENSE.txt.
 *
 * GPL Classpath Exception:
 * Oracle designates this particular file as subject to the "Classpath"
 * exception as provided by Oracle in the GPL Version 2 section of the License
 * file that accompanied this code.
 *
 * Modifications:
 * If applicable, add the following below the License Header, with the fields
 * enclosed by brackets [] replaced by your own identifying information:
 * "Portions Copyright [year] [name of copyright owner]"
 *
 * Contributor(s):
 * If you wish your version of this file to be governed by only the CDDL or
 * only the GPL Version 2, indicate your decision by adding "[Contributor]
 * elects to include this software in this distribution under the [CDDL or GPL
 * Version 2] license."  If you don't indicate a single choice of license, a
 * recipient has the option to distribute your version of this file under
 * either the CDDL, the GPL Version 2 or to extend the choice of license to
 * its licensees as provided above.  However, if you add GPL Version 2 code
 * and therefore, elected the GPL Version 2 license, then the option applies
 * only if the new code is made subject to such option by the copyright
 * holder.
 *
 *
 * This file incorporates work covered by the following copyright and
 * permission notice:
 *
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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.8 2010-11-01 04:35:07 joehw 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 XPathNamespace interface is returned by 
 * XPathResult 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 
 * DOMException with the code HIERARCHY_REQUEST_ERR
 * . This node is read only, so methods or setting of attributes that would 
 * mutate the node result in a DOMException with the code 
 * NO_MODIFICATION_ALLOWED_ERR.
 * 

The core specification describes attributes of the Node * interface that are different for different node node types but does not * describe XPATH_NAMESPACE_NODE, so here is a description of * those attributes for this node type. All attributes of Node * not described in this section have a null or * false value. *

ownerDocument matches the ownerDocument of the * ownerElement even if the element is later adopted. *

prefix is the prefix of the namespace represented by the * node. *

nodeName is the same as prefix. *

nodeType is equal to XPATH_NAMESPACE_NODE. *

namespaceURI is the namespace URI of the namespace * represented by the node. *

adoptNode, cloneNode, and * importNode fail on this node type by raising a * DOMException with the code NOT_SUPPORTED_ERR.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. *

See also the Document Object Model (DOM) Level 3 XPath Specification. * * 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; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy