19f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/* 29f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Licensed to the Apache Software Foundation (ASF) under one 39f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * or more contributor license agreements. See the NOTICE file 49f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * distributed with this work for additional information 59f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * regarding copyright ownership. The ASF licenses this file 69f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * to you under the Apache License, Version 2.0 (the "License"); 79f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * you may not use this file except in compliance with the License. 89f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * You may obtain a copy of the License at 99f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * http://www.apache.org/licenses/LICENSE-2.0 119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Unless required by applicable law or agreed to in writing, software 139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS, 149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * See the License for the specific language governing permissions and 169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * limitations under the License. 179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/* 199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * $Id: DTMNodeProxy.java 889881 2009-12-12 03:47:15Z zongaro $ 209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonpackage org.apache.xml.dtm.ref; 229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport java.util.Vector; 249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.apache.xml.dtm.DTM; 269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.apache.xml.dtm.DTMDOMException; 279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.apache.xpath.NodeSet; 289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.Attr; 309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.CDATASection; 319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.Comment; 329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.DOMException; 339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.DOMImplementation; 349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.Document; 359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.DocumentFragment; 369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.DocumentType; 379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.Element; 389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.EntityReference; 399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.NamedNodeMap; 409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.Node; 419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.NodeList; 429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.ProcessingInstruction; 439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.Text; 449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.UserDataHandler; 469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.DOMConfiguration; 479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonimport org.w3c.dom.TypeInfo; 489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/** 509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>DTMNodeProxy</code> presents a DOM Node API front-end to the DTM model. 519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <p> 529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * It does _not_ attempt to address the "node identity" question; no effort 539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * is made to prevent the creation of multiple proxies referring to a single 549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DTM node. Users can create a mechanism for managing this, or relinquish the 559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * use of "==" and use the .sameNodeAs() mechanism, which is under 569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * consideration for future versions of the DOM. 579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <p> 589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DTMNodeProxy may be subclassed further to present specific DOM node types. 599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom 619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @xsl.usage internal 629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilsonpublic class DTMNodeProxy 649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson implements Node, Document, Text, Element, Attr, 659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ProcessingInstruction, Comment, DocumentFragment 669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson{ 679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** The DTM for this node. */ 699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public DTM dtm; 709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** The DTM node handle. */ 729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int node; 739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** The return value as Empty String. */ 759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private static final String EMPTYSTRING = ""; 769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** The DOMImplementation object */ 789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson static final DOMImplementation implementation=new DTMNodeProxyImplementation(); 799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Create a DTMNodeProxy Node representing a specific Node in a DTM 829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param dtm The DTM Reference, must be non-null. 849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param node The DTM node handle. 859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public DTMNodeProxy(DTM dtm, int node) 879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson this.dtm = dtm; 899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson this.node = node; 909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * NON-DOM: Return the DTM model 949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The DTM that this proxy is a representative for. 969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final DTM getDTM() 989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dtm; 1009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * NON-DOM: Return the DTM node number 1049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The DTM node handle. 1069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final int getDTMNodeNumber() 1089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return node; 1109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Test for equality based on node number. 1149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param node A DTM node proxy reference. 1169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return true if the given node has the same handle as this node. 1189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final boolean equals(Node node) 1209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson try 1239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson DTMNodeProxy dtmp = (DTMNodeProxy) node; 1259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // return (dtmp.node == this.node); 1279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Patch attributed to Gary L Peskin <garyp@firstech.com> 1289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (dtmp.node == this.node) && (dtmp.dtm == this.dtm); 1299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson catch (ClassCastException cce) 1319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 1339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Test for equality based on node number. 1389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param node A DTM node proxy reference. 1409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return true if the given node has the same handle as this node. 1429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final boolean equals(Object node) 1449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson try 1479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // DTMNodeProxy dtmp = (DTMNodeProxy)node; 1509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // return (dtmp.node == this.node); 1519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Patch attributed to Gary L Peskin <garyp@firstech.com> 1529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return equals((Node) node); 1539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson catch (ClassCastException cce) 1559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 1579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * FUTURE DOM: Test node identity, in lieu of Node==Node 1629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param other 1649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return true if the given node has the same handle as this node. 1669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final boolean sameNodeAs(Node other) 1689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (!(other instanceof DTMNodeProxy)) 1719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 1729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson DTMNodeProxy that = (DTMNodeProxy) other; 1749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return this.dtm == that.dtm && this.node == that.node; 1769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node 1829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 1839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final String getNodeName() 1849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 1859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dtm.getNodeName(node); 1869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 1879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 1889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 1899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * A PI's "target" states what processor channel the PI's data 1909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * should be directed to. It is defined differently in HTML and XML. 1919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <p> 1929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * In XML, a PI's "target" is the first (whitespace-delimited) token 1939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * following the "<?" token that begins the PI. 1949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <p> 1959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * In HTML, target is always null. 1969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <p> 1979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Note that getNodeName is aliased to getTarget. 1989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 1999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final String getTarget() 2029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 2039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dtm.getNodeName(node); 2049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } // getTarget():String 2059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 2079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node as of DOM Level 2 2109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final String getLocalName() 2129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 2139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dtm.getLocalName(node); 2149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 2159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 2179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The prefix for this node. 2189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node as of DOM Level 2 2199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final String getPrefix() 2219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 2229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dtm.getPrefix(node); 2239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 2249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 2269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param prefix 2289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 2309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node as of DOM Level 2 -- DTMNodeProxy is read-only 2319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final void setPrefix(String prefix) throws DOMException 2339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 2349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR); 2359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 2369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 2389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node as of DOM Level 2 2419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final String getNamespaceURI() 2439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 2449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dtm.getNamespaceURI(node); 2459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 2469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** Ask whether we support a given DOM feature. 2489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * In fact, we do not _fully_ support any DOM feature -- we're a 2499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * read-only subset -- so arguably we should always return false. 2509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Or we could say that we support DOM Core Level 2 but all nodes 2519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * are read-only. Unclear which answer is least misleading. 2529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * NON-DOM method. This was present in early drafts of DOM Level 2, 2549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * but was renamed isSupported. It's present here only because it's 2559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * cheap, harmless, and might help some poor fool who is still trying 2569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * to use an early Working Draft of the DOM. 2579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param feature 2599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param version 2609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return false 2629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final boolean supports(String feature, String version) 2649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 2659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return implementation.hasFeature(feature,version); 2669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson //throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 2679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 2689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** Ask whether we support a given DOM feature. 2709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * In fact, we do not _fully_ support any DOM feature -- we're a 2719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * read-only subset -- so arguably we should always return false. 2729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param feature 2749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param version 2759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return false 2779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node as of DOM Level 2 2789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final boolean isSupported(String feature, String version) 2809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 2819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return implementation.hasFeature(feature,version); 2829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 2839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 2849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 2869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 2899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 2909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node 2919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 2929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final String getNodeValue() throws DOMException 2939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 2949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dtm.getNodeValue(node); 2959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 2969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 2979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 2989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return The string value of the node 2999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 3019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 3029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final String getStringValue() throws DOMException 3039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 3049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dtm.getStringValue(node).toString(); 3059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 3069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 3089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param nodeValue 3109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 3129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node -- DTMNodeProxy is read-only 3139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 3149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final void setNodeValue(String nodeValue) throws DOMException 3159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 3169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR); 3179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 3189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 3209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node 3239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 3249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final short getNodeType() 3259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 3269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (short) dtm.getNodeType(node); 3279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 3289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 3309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node 3339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 3349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Node getParentNode() 3359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 3369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (getNodeType() == Node.ATTRIBUTE_NODE) 3389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 3399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int newnode = dtm.getParent(node); 3419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (newnode == DTM.NULL) ? null : dtm.getNode(newnode); 3439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 3449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 3469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node 3499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 3509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Node getOwnerNode() 3519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 3529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int newnode = dtm.getParent(node); 3549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (newnode == DTM.NULL) ? null : dtm.getNode(newnode); 3569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 3579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 3599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node 3629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 3639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final NodeList getChildNodes() 3649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 3659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Annoyingly, AxisIterators do not currently implement DTMIterator, so 3679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // we can't just wap DTMNodeList around an Axis.CHILD iterator. 3689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Instead, we've created a special-case operating mode for that object. 3699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return new DTMChildIterNodeList(dtm,node); 3709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 3729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 3739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 3759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node 3789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 3799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Node getFirstChild() 3809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 3819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int newnode = dtm.getFirstChild(node); 3839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (newnode == DTM.NULL) ? null : dtm.getNode(newnode); 3859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 3869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 3889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 3909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node 3919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 3929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Node getLastChild() 3939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 3949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int newnode = dtm.getLastChild(node); 3969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 3979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (newnode == DTM.NULL) ? null : dtm.getNode(newnode); 3989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 3999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node 4049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Node getPreviousSibling() 4069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 4079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int newnode = dtm.getPreviousSibling(node); 4099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (newnode == DTM.NULL) ? null : dtm.getNode(newnode); 4119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 4129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node 4179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Node getNextSibling() 4199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 4209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Attr's Next is defined at DTM level, but not at DOM level. 4229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (dtm.getNodeType(node) == Node.ATTRIBUTE_NODE) 4239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 4249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int newnode = dtm.getNextSibling(node); 4269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (newnode == DTM.NULL) ? null : dtm.getNode(newnode); 4289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 4299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // DTMNamedNodeMap m_attrs; 4319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node 4369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final NamedNodeMap getAttributes() 4389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 4399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return new DTMNamedNodeMap(dtm, node); 4419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 4429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Method hasAttribute 4459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param name 4489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean hasAttribute(String name) 4529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 4539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return DTM.NULL != dtm.getAttributeNode(node,null,name); 4549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 4559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Method hasAttributeNS 4589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param namespaceURI 4619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param localName 4629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean hasAttributeNS(String namespaceURI, String localName) 4669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 4679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return DTM.NULL != dtm.getAttributeNode(node,namespaceURI,localName); 4689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 4699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node 4749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Document getOwnerDocument() 4769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 4779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Note that this uses the DOM-compatable version of the call 4789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (Document)(dtm.getNode(dtm.getOwnerDocument(node))); 4799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 4809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param newChild 4849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param refChild 4859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 4899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node -- DTMNodeProxy is read-only 4909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 4919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Node insertBefore(Node newChild, Node refChild) 4929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws DOMException 4939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 4949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR); 4959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 4969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 4979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 4989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 4999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param newChild 5009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param oldChild 5019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 5059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node -- DTMNodeProxy is read-only 5069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Node replaceChild(Node newChild, Node oldChild) 5089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws DOMException 5099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR); 5119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 5129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 5149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param oldChild 5169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 5209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node -- DTMNodeProxy is read-only 5219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Node removeChild(Node oldChild) throws DOMException 5239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR); 5259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 5269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 5289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param newChild 5309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 5349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node -- DTMNodeProxy is read-only 5359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Node appendChild(Node newChild) throws DOMException 5379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR); 5399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 5409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 5429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node 5459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final boolean hasChildNodes() 5479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (DTM.NULL != dtm.getFirstChild(node)); 5499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 5509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 5529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param deep 5549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Node -- DTMNodeProxy is read-only 5579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Node cloneNode(boolean deep) 5599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 5619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 5629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 5649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document 5679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final DocumentType getDoctype() 5699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 5719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 5729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 5749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document 5779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final DOMImplementation getImplementation() 5799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return implementation; 5819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 5829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 5839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** This is a bit of a problem in DTM, since a DTM may be a Document 5849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Fragment and hence not have a clear-cut Document Element. We can 5859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * make it work in the well-formed cases but would that be confusing for others? 5869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 5889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document 5899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 5909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Element getDocumentElement() 5919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int dochandle=dtm.getDocument(); 5939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int elementhandle=DTM.NULL; 5949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for(int kidhandle=dtm.getFirstChild(dochandle); 5959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson kidhandle!=DTM.NULL; 5969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson kidhandle=dtm.getNextSibling(kidhandle)) 5979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 5989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson switch(dtm.getNodeType(kidhandle)) 5999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 6009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.ELEMENT_NODE: 6019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if(elementhandle!=DTM.NULL) 6029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 6039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson elementhandle=DTM.NULL; // More than one; ill-formed. 6049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson kidhandle=dtm.getLastChild(dochandle); // End loop 6059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson else 6079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson elementhandle=kidhandle; 6089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson break; 6099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // These are harmless; document is still wellformed 6119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.COMMENT_NODE: 6129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.PROCESSING_INSTRUCTION_NODE: 6139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.DOCUMENT_TYPE_NODE: 6149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson break; 6159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson default: 6179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson elementhandle=DTM.NULL; // ill-formed 6189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson kidhandle=dtm.getLastChild(dochandle); // End loop 6199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson break; 6209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if(elementhandle==DTM.NULL) 6239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 6249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson else 6259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (Element)(dtm.getNode(elementhandle)); 6269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 6299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param tagName 6319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 6359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document 6369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 6379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Element createElement(String tagName) throws DOMException 6389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 6399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 6409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 6439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document 6469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 6479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final DocumentFragment createDocumentFragment() 6489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 6499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 6509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 6539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param data 6559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document 6589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 6599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Text createTextNode(String data) 6609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 6619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 6629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 6659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param data 6679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document 6709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 6719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Comment createComment(String data) 6729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 6739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 6749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 6779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param data 6799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 6839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document 6849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 6859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final CDATASection createCDATASection(String data) 6869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws DOMException 6879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 6889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 6899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 6909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 6919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 6929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param target 6949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param data 6959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 6989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 6999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document 7009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 7019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final ProcessingInstruction createProcessingInstruction( 7029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String target, String data) throws DOMException 7039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 7059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 7089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param name 7109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 7149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document 7159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 7169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Attr createAttribute(String name) throws DOMException 7179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 7199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 7229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param name 7249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 7289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document 7299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 7309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final EntityReference createEntityReference(String name) 7319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws DOMException 7329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 7349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 7369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 7379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param tagname 7399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document 7429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 7439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final NodeList getElementsByTagName(String tagname) 7449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Vector listVector = new Vector(); 7469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Node retNode = dtm.getNode(node); 7479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (retNode != null) 7489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson boolean isTagNameWildCard = "*".equals(tagname); 7509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (DTM.ELEMENT_NODE == retNode.getNodeType()) 7519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson NodeList nodeList = retNode.getChildNodes(); 7539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int i = 0; i < nodeList.getLength(); i++) 7549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson traverseChildren(listVector, nodeList.item(i), tagname, 7569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson isTagNameWildCard); 7579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } else if (DTM.DOCUMENT_NODE == retNode.getNodeType()) { 7599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson traverseChildren(listVector, dtm.getNode(node), tagname, 7609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson isTagNameWildCard); 7619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int size = listVector.size(); 7649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson NodeSet nodeSet = new NodeSet(size); 7659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int i = 0; i < size; i++) 7669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson nodeSet.addNode((Node) listVector.elementAt(i)); 7689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (NodeList) nodeSet; 7709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 7729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param listVector 7749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param tempNode 7759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param tagname 7769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param isTagNameWildCard 7779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 7799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Private method to be used for recursive iterations to obtain elements by tag name. 7809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 7819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private final void traverseChildren 7829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ( 7839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Vector listVector, 7849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Node tempNode, 7859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String tagname, 7869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson boolean isTagNameWildCard) { 7879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (tempNode == null) 7889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return; 7909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson else 7929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (tempNode.getNodeType() == DTM.ELEMENT_NODE 7949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson && (isTagNameWildCard || tempNode.getNodeName().equals(tagname))) 7959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 7969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson listVector.add(tempNode); 7979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 7989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if(tempNode.hasChildNodes()) 7999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson NodeList nodeList = tempNode.getChildNodes(); 8019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int i = 0; i < nodeList.getLength(); i++) 8029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson traverseChildren(listVector, nodeList.item(i), tagname, 8049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson isTagNameWildCard); 8059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 8119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param importedNode 8139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param deep 8149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 8189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document as of DOM Level 2 -- DTMNodeProxy is read-only 8199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 8209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Node importNode(Node importedNode, boolean deep) 8219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws DOMException 8229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR); 8249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 8279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param namespaceURI 8299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param qualifiedName 8309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 8349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document as of DOM Level 2 8359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 8369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Element createElementNS( 8379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String namespaceURI, String qualifiedName) throws DOMException 8389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 8409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 8439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param namespaceURI 8459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param qualifiedName 8469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 8509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document as of DOM Level 2 8519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 8529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Attr createAttributeNS( 8539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String namespaceURI, String qualifiedName) throws DOMException 8549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 8569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 8589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 8599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param namespaceURI 8619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param localName 8629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document as of DOM Level 2 8659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 8669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final NodeList getElementsByTagNameNS(String namespaceURI, 8679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String localName) 8689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Vector listVector = new Vector(); 8709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Node retNode = dtm.getNode(node); 8719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (retNode != null) 8729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson boolean isNamespaceURIWildCard = "*".equals(namespaceURI); 8749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson boolean isLocalNameWildCard = "*".equals(localName); 8759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (DTM.ELEMENT_NODE == retNode.getNodeType()) 8769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson NodeList nodeList = retNode.getChildNodes(); 8789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for(int i = 0; i < nodeList.getLength(); i++) 8799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson traverseChildren(listVector, nodeList.item(i), namespaceURI, localName, isNamespaceURIWildCard, isLocalNameWildCard); 8819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson else if(DTM.DOCUMENT_NODE == retNode.getNodeType()) 8849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson traverseChildren(listVector, dtm.getNode(node), namespaceURI, localName, isNamespaceURIWildCard, isLocalNameWildCard); 8869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int size = listVector.size(); 8899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson NodeSet nodeSet = new NodeSet(size); 8909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int i = 0; i < size; i++) 8919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 8929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson nodeSet.addNode((Node)listVector.elementAt(i)); 8939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (NodeList) nodeSet; 8959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 8969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 8979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 8989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param listVector 8999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param tempNode 9009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param namespaceURI 9019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param localname 9029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param isNamespaceURIWildCard 9039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param isLocalNameWildCard 9049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Private method to be used for recursive iterations to obtain elements by tag name 9069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * and namespaceURI. 9079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 9089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private final void traverseChildren 9099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ( 9109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Vector listVector, 9119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Node tempNode, 9129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String namespaceURI, 9139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String localname, 9149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson boolean isNamespaceURIWildCard, 9159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson boolean isLocalNameWildCard) 9169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (tempNode == null) 9189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return; 9209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson else 9229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (tempNode.getNodeType() == DTM.ELEMENT_NODE 9249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson && (isLocalNameWildCard 9259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson || tempNode.getLocalName().equals(localname))) 9269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String nsURI = tempNode.getNamespaceURI(); 9289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if ((namespaceURI == null && nsURI == null) 9299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson || isNamespaceURIWildCard 9309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson || (namespaceURI != null && namespaceURI.equals(nsURI))) 9319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson listVector.add(tempNode); 9339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if(tempNode.hasChildNodes()) 9369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson NodeList nl = tempNode.getChildNodes(); 9389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for(int i = 0; i < nl.getLength(); i++) 9399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson traverseChildren(listVector, nl.item(i), namespaceURI, localname, 9419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson isNamespaceURIWildCard, isLocalNameWildCard); 9429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 9479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param elementId 9499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Document as of DOM Level 2 9529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 9539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Element getElementById(String elementId) 9549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (Element) dtm.getNode(dtm.getElementById(elementId)); 9569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 9599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param offset 9619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 9659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Text 9669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 9679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Text splitText(int offset) throws DOMException 9689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 9709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 9739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 9779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.CharacterData 9789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 9799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final String getData() throws DOMException 9809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dtm.getNodeValue(node); 9829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 9859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param data 9879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 9899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.CharacterData 9909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 9919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final void setData(String data) throws DOMException 9929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 9939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 9949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 9959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 9969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 9979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 9999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.CharacterData 10009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final int getLength() 10029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // %OPT% This should do something smarter? 10049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dtm.getNodeValue(node).length(); 10059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 10089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param offset 10109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param count 10119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 10159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.CharacterData 10169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final String substringData(int offset, int count) throws DOMException 10189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return getData().substring(offset,offset+count); 10209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 10239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param arg 10259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 10279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.CharacterData 10289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final void appendData(String arg) throws DOMException 10309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 10329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 10359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param offset 10379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param arg 10389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 10409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.CharacterData 10419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final void insertData(int offset, String arg) throws DOMException 10439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 10459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 10489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param offset 10509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param count 10519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 10539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.CharacterData 10549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final void deleteData(int offset, int count) throws DOMException 10569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 10589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 10619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param offset 10639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param count 10649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param arg 10659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 10679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.CharacterData 10689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final void replaceData(int offset, int count, String arg) 10709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws DOMException 10719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 10739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 10769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Element 10799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final String getTagName() 10819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dtm.getNodeName(node); 10839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 10869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param name 10889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 10909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Element 10919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 10929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final String getAttribute(String name) 10939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 10949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 10959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson DTMNamedNodeMap map = new DTMNamedNodeMap(dtm, node); 10969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Node node = map.getNamedItem(name); 10979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null == node) ? EMPTYSTRING : node.getNodeValue(); 10989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 10999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 11019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param name 11039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param value 11049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 11069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Element 11079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final void setAttribute(String name, String value) 11099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws DOMException 11109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 11119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 11129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 11139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 11159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param name 11179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 11199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Element 11209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final void removeAttribute(String name) throws DOMException 11229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 11239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 11249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 11259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 11279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param name 11299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Element 11329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Attr getAttributeNode(String name) 11349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 11359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson DTMNamedNodeMap map = new DTMNamedNodeMap(dtm, node); 11379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (Attr)map.getNamedItem(name); 11389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 11399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 11419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param newAttr 11439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 11479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Element 11489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Attr setAttributeNode(Attr newAttr) throws DOMException 11509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 11519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 11529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 11539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 11559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param oldAttr 11579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 11619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Element 11629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Attr removeAttributeNode(Attr oldAttr) throws DOMException 11649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 11659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 11669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 11679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 11699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Introduced in DOM Level 2. 11709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean hasAttributes() 11749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 11759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return DTM.NULL != dtm.getFirstAttribute(node); 11769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 11779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** @see org.w3c.dom.Element */ 11799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final void normalize() 11809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 11819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 11829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 11839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 11849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 11859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param namespaceURI 11879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param localName 11889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 11909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Element 11919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 11929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final String getAttributeNS(String namespaceURI, String localName) 11939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 11949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Node retNode = null; 11959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int n = dtm.getAttributeNode(node,namespaceURI,localName); 11969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if(n != DTM.NULL) 11979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson retNode = dtm.getNode(n); 11989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (null == retNode) ? EMPTYSTRING : retNode.getNodeValue(); 11999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param namespaceURI 12049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param qualifiedName 12059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param value 12069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 12089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Element 12099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final void setAttributeNS( 12119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String namespaceURI, String qualifiedName, String value) 12129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws DOMException 12139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 12159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param namespaceURI 12209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param localName 12219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 12239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Element 12249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final void removeAttributeNS(String namespaceURI, String localName) 12269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws DOMException 12279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 12299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param namespaceURI 12349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param localName 12359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Element 12389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Attr getAttributeNodeNS(String namespaceURI, String localName) 12409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Attr retAttr = null; 12429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int n = dtm.getAttributeNode(node,namespaceURI,localName); 12439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if(n != DTM.NULL) 12449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson retAttr = (Attr) dtm.getNode(n); 12459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return retAttr; 12469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param newAttr 12519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 12559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Element 12569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Attr setAttributeNodeNS(Attr newAttr) throws DOMException 12589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 12609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Attr 12669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final String getName() 12689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dtm.getNodeName(node); 12709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Attr 12769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final boolean getSpecified() 12789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // We really don't know which attributes might have come from the 12809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // source document versus from the DTD. Treat them all as having 12819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // been provided by the user. 12829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // %REVIEW% if/when we become aware of DTDs/schemae. 12839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return true; 12849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Attr 12909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 12919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final String getValue() 12929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 12939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dtm.getNodeValue(node); 12949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 12959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 12969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 12979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 12989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param value 12999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Attr 13009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 13019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final void setValue(String value) 13029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 13049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 13059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 13079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Get the owner element of an attribute. 13089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @see org.w3c.dom.Attr as of DOM Level 2 13119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 13129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public final Element getOwnerElement() 13139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (getNodeType() != Node.ATTRIBUTE_NODE) 13159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 13169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // In XPath and DTM data models, unlike DOM, an Attr's parent is its 13179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // owner element. 13189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int newnode = dtm.getParent(node); 13199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (newnode == DTM.NULL) ? null : (Element)(dtm.getNode(newnode)); 13209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 13219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 13239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * NEEDSDOC Method adoptNode 13249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * NEEDSDOC @param source 13279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @throws DOMException 13319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 13329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public Node adoptNode(Node source) throws DOMException 13339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 13369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 13379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 13399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <p>Based on the <a 13409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document 13419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Object Model (DOM) Level 3 Core Specification of 07 April 2004.</a>. 13429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <p> 13439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * An attribute specifying, as part of the XML declaration, the encoding 13449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * of this document. This is <code>null</code> when unspecified. 13459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 13469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 13499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getInputEncoding() 13509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 13539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 13549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 13569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <p>Based on the <a 13579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document 13589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Object Model (DOM) Level 3 Core Specification of 07 April 2004.</a>. 13599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <p> 13609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * An attribute specifying whether errors checking is enforced or not. 13619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * When set to <code>false</code>, the implementation is free to not 13629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * test every possible error case normally defined on DOM operations, 13639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * and not raise any <code>DOMException</code>. In case of error, the 13649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * behavior is undefined. This attribute is <code>true</code> by 13659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * defaults. 13669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 13679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 13709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean getStrictErrorChecking() 13719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 13749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 13759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 13779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <p>Based on the <a 13789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document 13799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Object Model (DOM) Level 3 Core Specification of 07 April 2004.</a>. 13809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <p> 13819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * An attribute specifying whether errors checking is enforced or not. 13829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * When set to <code>false</code>, the implementation is free to not 13839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * test every possible error case normally defined on DOM operations, 13849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * and not raise any <code>DOMException</code>. In case of error, the 13859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * behavior is undefined. This attribute is <code>true</code> by 13869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * defaults. 13879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 13889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 13899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * NEEDSDOC @param strictErrorChecking 13909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 13919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setStrictErrorChecking(boolean strictErrorChecking) 13929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 13939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 13949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 13959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 13969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** Inner class to support getDOMImplementation. 13979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 13989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson static class DTMNodeProxyImplementation implements DOMImplementation 13999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public DocumentType createDocumentType(String qualifiedName,String publicId, String systemId) 14019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 14039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public Document createDocument(String namespaceURI,String qualfiedName,DocumentType doctype) 14059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Could create a DTM... but why, when it'd have to be permanantly empty? 14079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DTMDOMException(DOMException.NOT_SUPPORTED_ERR); 14089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** Ask whether we support a given DOM feature. 14109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 14119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * In fact, we do not _fully_ support any DOM feature -- we're a 14129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * read-only subset -- so arguably we should always return false. 14139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * On the other hand, it may be more practically useful to return 14149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * true and simply treat the whole DOM as read-only, failing on the 14159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * methods we can't support. I'm not sure which would be more useful 14169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * to the caller. 14179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 14189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean hasFeature(String feature,String version) 14199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson { 14209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if( ("CORE".equals(feature.toUpperCase()) || "XML".equals(feature.toUpperCase())) 14219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson && 14229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ("1.0".equals(version) || "2.0".equals(version)) 14239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ) 14249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return true; 14259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 14269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 14299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * This method returns a specialized object which implements the 14309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * specialized APIs of the specified feature and version. The 14319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * specialized object may also be obtained by using binding-specific 14329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * casting methods but is not necessarily expected to, as discussed in Mixed DOM implementations 14339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson. 14349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param feature The name of the feature requested (case-insensitive). 14359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param version This is the version number of the feature to test. If 14369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * the version is <code>null</code> or the empty string, supporting 14379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * any version of the feature will cause the method to return an 14389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * object that supports at least one version of the feature. 14399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return Returns an object which implements the specialized APIs of 14409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * the specified feature and version, if any, or <code>null</code> if 14419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * there is no object which implements interfaces associated with that 14429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * feature. If the <code>DOMObject</code> returned by this method 14439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * implements the <code>Node</code> interface, it must delegate to the 14449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * primary core <code>Node</code> and not return results inconsistent 14459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * with the primary core <code>Node</code> such as attributes, 14469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * childNodes, etc. 14479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 14489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 14499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public Object getFeature(String feature, String version) { 14509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // we don't have any alternate node, either this node does the job 14519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // or we don't have anything that does 14529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson //return hasFeature(feature, version) ? this : null; 14539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; //PENDING 14549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson //RAMESH : Pending proper implementation of DOM Level 3 14609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public Object setUserData(String key, 14629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Object data, 14639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson UserDataHandler handler) { 14649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return getOwnerDocument().setUserData( key, data, handler); 14659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 14689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Retrieves the object associated to a key on a this node. The object 14699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * must first have been set to this node by calling 14709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>setUserData</code> with the same key. 14719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param key The key the object is associated to. 14729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return Returns the <code>DOMObject</code> associated to the given key 14739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * on this node, or <code>null</code> if there was none. 14749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 14759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 14769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public Object getUserData(String key) { 14779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return getOwnerDocument().getUserData( key); 14789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 14799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 14809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 14819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * This method returns a specialized object which implements the 14829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * specialized APIs of the specified feature and version. The 14839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * specialized object may also be obtained by using binding-specific 14849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * casting methods but is not necessarily expected to, as discussed in Mixed DOM implementations. 14859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param feature The name of the feature requested (case-insensitive). 14869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param version This is the version number of the feature to test. If 14879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * the version is <code>null</code> or the empty string, supporting 14889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * any version of the feature will cause the method to return an 14899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * object that supports at least one version of the feature. 14909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return Returns an object which implements the specialized APIs of 14919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * the specified feature and version, if any, or <code>null</code> if 14929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * there is no object which implements interfaces associated with that 14939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * feature. If the <code>DOMObject</code> returned by this method 14949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * implements the <code>Node</code> interface, it must delegate to the 14959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * primary core <code>Node</code> and not return results inconsistent 14969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * with the primary core <code>Node</code> such as attributes, 14979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * childNodes, etc. 14989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 14999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 15009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public Object getFeature(String feature, String version) { 15019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // we don't have any alternate node, either this node does the job 15029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // or we don't have anything that does 15039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return isSupported(feature, version) ? this : null; 15049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 15069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 15079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Tests whether two nodes are equal. 15089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <br>This method tests for equality of nodes, not sameness (i.e., 15099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * whether the two nodes are references to the same object) which can be 15109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * tested with <code>Node.isSameNode</code>. All nodes that are the same 15119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * will also be equal, though the reverse may not be true. 15129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <br>Two nodes are equal if and only if the following conditions are 15139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * satisfied: The two nodes are of the same type.The following string 15149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * attributes are equal: <code>nodeName</code>, <code>localName</code>, 15159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> 15169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * , <code>baseURI</code>. This is: they are both <code>null</code>, or 15179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * they have the same length and are character for character identical. 15189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The <code>attributes</code> <code>NamedNodeMaps</code> are equal. 15199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * This is: they are both <code>null</code>, or they have the same 15209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * length and for each node that exists in one map there is a node that 15219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * exists in the other map and is equal, although not necessarily at the 15229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * same index.The <code>childNodes</code> <code>NodeLists</code> are 15239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * equal. This is: they are both <code>null</code>, or they have the 15249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * same length and contain equal nodes at the same index. This is true 15259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * for <code>Attr</code> nodes as for any other type of node. Note that 15269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * normalization can affect equality; to avoid this, nodes should be 15279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * normalized before being compared. 15289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <br>For two <code>DocumentType</code> nodes to be equal, the following 15299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * conditions must also be satisfied: The following string attributes 15309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * are equal: <code>publicId</code>, <code>systemId</code>, 15319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>internalSubset</code>.The <code>entities</code> 15329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>NamedNodeMaps</code> are equal.The <code>notations</code> 15339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>NamedNodeMaps</code> are equal. 15349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <br>On the other hand, the following do not affect equality: the 15359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>ownerDocument</code> attribute, the <code>specified</code> 15369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * attribute for <code>Attr</code> nodes, the 15379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>isWhitespaceInElementContent</code> attribute for 15389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>Text</code> nodes, as well as any user data or event listeners 15399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * registered on the nodes. 15409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param arg The node to compare equality with. 15419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param deep If <code>true</code>, recursively compare the subtrees; if 15429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>false</code>, compare only the nodes themselves (and its 15439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * attributes, if it is an <code>Element</code>). 15449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return If the nodes, and possibly subtrees are equal, 15459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>true</code> otherwise <code>false</code>. 15469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 15479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 15489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean isEqualNode(Node arg) { 15499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (arg == this) { 15509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return true; 15519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (arg.getNodeType() != getNodeType()) { 15539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 15549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // in theory nodeName can't be null but better be careful 15569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // who knows what other implementations may be doing?... 15579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (getNodeName() == null) { 15589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (arg.getNodeName() != null) { 15599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 15609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson else if (!getNodeName().equals(arg.getNodeName())) { 15639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 15649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 15669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (getLocalName() == null) { 15679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (arg.getLocalName() != null) { 15689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 15699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson else if (!getLocalName().equals(arg.getLocalName())) { 15729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 15739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 15759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (getNamespaceURI() == null) { 15769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (arg.getNamespaceURI() != null) { 15779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 15789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson else if (!getNamespaceURI().equals(arg.getNamespaceURI())) { 15819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 15829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 15849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (getPrefix() == null) { 15859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (arg.getPrefix() != null) { 15869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 15879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson else if (!getPrefix().equals(arg.getPrefix())) { 15909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 15919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 15939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (getNodeValue() == null) { 15949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (arg.getNodeValue() != null) { 15959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 15969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 15989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson else if (!getNodeValue().equals(arg.getNodeValue())) { 15999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 16009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /* 16029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (getBaseURI() == null) { 16039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (((NodeImpl) arg).getBaseURI() != null) { 16049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 16059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson else if (!getBaseURI().equals(((NodeImpl) arg).getBaseURI())) { 16089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 16099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson*/ 16119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return true; 16129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 16149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 16159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3: 16169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Look up the namespace URI associated to the given prefix, starting from this node. 16179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Use lookupNamespaceURI(null) to lookup the default namespace 16189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 16199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param namespaceURI 16209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return th URI for the namespace 16219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 16229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 16239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String lookupNamespaceURI(String specifiedPrefix) { 16249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson short type = this.getNodeType(); 16259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson switch (type) { 16269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.ELEMENT_NODE : { 16279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 16289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String namespace = this.getNamespaceURI(); 16299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String prefix = this.getPrefix(); 16309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (namespace !=null) { 16319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // REVISIT: is it possible that prefix is empty string? 16329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (specifiedPrefix== null && prefix==specifiedPrefix) { 16339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // looking for default namespace 16349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return namespace; 16359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } else if (prefix != null && prefix.equals(specifiedPrefix)) { 16369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // non default namespace 16379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return namespace; 16389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (this.hasAttributes()) { 16419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson NamedNodeMap map = this.getAttributes(); 16429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson int length = map.getLength(); 16439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson for (int i=0;i<length;i++) { 16449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Node attr = map.item(i); 16459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String attrPrefix = attr.getPrefix(); 16469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String value = attr.getNodeValue(); 16479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson namespace = attr.getNamespaceURI(); 16489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (namespace !=null && namespace.equals("http://www.w3.org/2000/xmlns/")) { 16499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // at this point we are dealing with DOM Level 2 nodes only 16509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (specifiedPrefix == null && 16519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson attr.getNodeName().equals("xmlns")) { 16529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // default namespace 16539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return value; 16549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } else if (attrPrefix !=null && 16559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson attrPrefix.equals("xmlns") && 16569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson attr.getLocalName().equals(specifiedPrefix)) { 16579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // non default namespace 16589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return value; 16599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /* 16649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson NodeImpl ancestor = (NodeImpl)getElementAncestor(this); 16659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (ancestor != null) { 16669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return ancestor.lookupNamespaceURI(specifiedPrefix); 16679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 16699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 16709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/* 16729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.DOCUMENT_NODE : { 16739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return((NodeImpl)((Document)this).getDocumentElement()).lookupNamespaceURI(specifiedPrefix) ; 16749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson*/ 16769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.ENTITY_NODE : 16779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.NOTATION_NODE: 16789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.DOCUMENT_FRAGMENT_NODE: 16799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.DOCUMENT_TYPE_NODE: 16809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // type is unknown 16819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 16829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.ATTRIBUTE_NODE:{ 16839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (this.getOwnerElement().getNodeType() == Node.ELEMENT_NODE) { 16849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return getOwnerElement().lookupNamespaceURI(specifiedPrefix); 16859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 16879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson default:{ 16899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /* 16909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson NodeImpl ancestor = (NodeImpl)getElementAncestor(this); 16919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (ancestor != null) { 16929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return ancestor.lookupNamespaceURI(specifiedPrefix); 16939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 16959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 16969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 16989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 16999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 17019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 17029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3: 17039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * This method checks if the specified <code>namespaceURI</code> is the 17049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * default namespace or not. 17059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param namespaceURI The namespace URI to look for. 17069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return <code>true</code> if the specified <code>namespaceURI</code> 17079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * is the default namespace, <code>false</code> otherwise. 17089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 17099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 17109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean isDefaultNamespace(String namespaceURI){ 17119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /* 17129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // REVISIT: remove casts when DOM L3 becomes REC. 17139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson short type = this.getNodeType(); 17149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson switch (type) { 17159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.ELEMENT_NODE: { 17169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String namespace = this.getNamespaceURI(); 17179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String prefix = this.getPrefix(); 17189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 17199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // REVISIT: is it possible that prefix is empty string? 17209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (prefix == null || prefix.length() == 0) { 17219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (namespaceURI == null) { 17229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (namespace == namespaceURI); 17239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return namespaceURI.equals(namespace); 17259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (this.hasAttributes()) { 17279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson ElementImpl elem = (ElementImpl)this; 17289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson NodeImpl attr = (NodeImpl)elem.getAttributeNodeNS("http://www.w3.org/2000/xmlns/", "xmlns"); 17299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (attr != null) { 17309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String value = attr.getNodeValue(); 17319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (namespaceURI == null) { 17329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return (namespace == value); 17339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return namespaceURI.equals(value); 17359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 17389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson NodeImpl ancestor = (NodeImpl)getElementAncestor(this); 17399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (ancestor != null) { 17409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return ancestor.isDefaultNamespace(namespaceURI); 17419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 17439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.DOCUMENT_NODE:{ 17459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return((NodeImpl)((Document)this).getDocumentElement()).isDefaultNamespace(namespaceURI); 17469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 17489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.ENTITY_NODE : 17499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.NOTATION_NODE: 17509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.DOCUMENT_FRAGMENT_NODE: 17519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.DOCUMENT_TYPE_NODE: 17529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // type is unknown 17539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 17549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.ATTRIBUTE_NODE:{ 17559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (this.ownerNode.getNodeType() == Node.ELEMENT_NODE) { 17569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return ownerNode.isDefaultNamespace(namespaceURI); 17579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 17589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 17609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson default:{ 17629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson NodeImpl ancestor = (NodeImpl)getElementAncestor(this); 17639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (ancestor != null) { 17649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return ancestor.isDefaultNamespace(namespaceURI); 17659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 17679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 17699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson*/ 17719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 17729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 17749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 17759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3: 17769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Look up the prefix associated to the given namespace URI, starting from this node. 17779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 17789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param namespaceURI 17799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return the prefix for the namespace 17809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 17819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String lookupPrefix(String namespaceURI){ 17829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 17839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // REVISIT: When Namespaces 1.1 comes out this may not be true 17849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // Prefix can't be bound to null namespace 17859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (namespaceURI == null) { 17869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 17879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 17899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson short type = this.getNodeType(); 17909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 17919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson switch (type) { 17929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/* 17939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.ELEMENT_NODE: { 17949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 17959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String namespace = this.getNamespaceURI(); // to flip out children 17969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return lookupNamespacePrefix(namespaceURI, (ElementImpl)this); 17979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 17989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 17999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.DOCUMENT_NODE:{ 18009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return((NodeImpl)((Document)this).getDocumentElement()).lookupPrefix(namespaceURI); 18019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 18029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson*/ 18039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.ENTITY_NODE : 18049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.NOTATION_NODE: 18059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.DOCUMENT_FRAGMENT_NODE: 18069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.DOCUMENT_TYPE_NODE: 18079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // type is unknown 18089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 18099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson case Node.ATTRIBUTE_NODE:{ 18109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (this.getOwnerElement().getNodeType() == Node.ELEMENT_NODE) { 18119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return getOwnerElement().lookupPrefix(namespaceURI); 18129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 18139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 18149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 18159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 18169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson default:{ 18179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/* 18189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson NodeImpl ancestor = (NodeImpl)getElementAncestor(this); 18199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (ancestor != null) { 18209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return ancestor.lookupPrefix(namespaceURI); 18219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 18229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson*/ 18239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 18249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 18259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 18269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 18279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 18289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 18299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Returns whether this node is the same node as the given one. 18309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <br>This method provides a way to determine whether two 18319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>Node</code> references returned by the implementation reference 18329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * the same object. When two <code>Node</code> references are references 18339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * to the same object, even if through a proxy, the references may be 18349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * used completely interchangably, such that all attributes have the 18359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * same values and calling the same DOM method on either reference 18369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * always has exactly the same effect. 18379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param other The node to test against. 18389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return Returns <code>true</code> if the nodes are the same, 18399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>false</code> otherwise. 18409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 18419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 18429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean isSameNode(Node other) { 18439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // we do not use any wrapper so the answer is obvious 18449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return this == other; 18459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 18469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 18479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 18489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * This attribute returns the text content of this node and its 18499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * descendants. When it is defined to be null, setting it has no effect. 18509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * When set, any possible children this node may have are removed and 18519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * replaced by a single <code>Text</code> node containing the string 18529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * this attribute is set to. On getting, no serialization is performed, 18539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * the returned string does not contain any markup. No whitespace 18549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * normalization is performed, the returned string does not contain the 18559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * element content whitespaces . Similarly, on setting, no parsing is 18569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * performed either, the input string is taken as pure textual content. 18579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <br>The string returned is made of the text content of this node 18589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * depending on its type, as defined below: 18599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <table border='1'> 18609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <tr> 18619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <th>Node type</th> 18629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <th>Content</th> 18639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * </tr> 18649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <tr> 18659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <td valign='top' rowspan='1' colspan='1'> 18669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, 18679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOCUMENT_FRAGMENT_NODE</td> 18689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> 18699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * attribute value of every child node, excluding COMMENT_NODE and 18709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * PROCESSING_INSTRUCTION_NODE nodes</td> 18719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * </tr> 18729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <tr> 18739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <td valign='top' rowspan='1' colspan='1'>ATTRIBUTE_NODE, TEXT_NODE, 18749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> 18759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <td valign='top' rowspan='1' colspan='1'> 18769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>nodeValue</code></td> 18779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * </tr> 18789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <tr> 18799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> 18809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <td valign='top' rowspan='1' colspan='1'> 18819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * null</td> 18829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * </tr> 18839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * </table> 18849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @exception DOMException 18859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. 18869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @exception DOMException 18879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOMSTRING_SIZE_ERR: Raised when it would return more characters than 18889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * fit in a <code>DOMString</code> variable on the implementation 18899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * platform. 18909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 18919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 18929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setTextContent(String textContent) 18939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws DOMException { 18949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson setNodeValue(textContent); 18959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 18969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 18979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 18989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * This attribute returns the text content of this node and its 18999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * descendants. When it is defined to be null, setting it has no effect. 19009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * When set, any possible children this node may have are removed and 19019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * replaced by a single <code>Text</code> node containing the string 19029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * this attribute is set to. On getting, no serialization is performed, 19039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * the returned string does not contain any markup. No whitespace 19049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * normalization is performed, the returned string does not contain the 19059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * element content whitespaces . Similarly, on setting, no parsing is 19069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * performed either, the input string is taken as pure textual content. 19079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <br>The string returned is made of the text content of this node 19089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * depending on its type, as defined below: 19099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <table border='1'> 19109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <tr> 19119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <th>Node type</th> 19129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <th>Content</th> 19139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * </tr> 19149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <tr> 19159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <td valign='top' rowspan='1' colspan='1'> 19169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, 19179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOCUMENT_FRAGMENT_NODE</td> 19189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> 19199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * attribute value of every child node, excluding COMMENT_NODE and 19209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * PROCESSING_INSTRUCTION_NODE nodes</td> 19219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * </tr> 19229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <tr> 19239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <td valign='top' rowspan='1' colspan='1'>ATTRIBUTE_NODE, TEXT_NODE, 19249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> 19259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <td valign='top' rowspan='1' colspan='1'> 19269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>nodeValue</code></td> 19279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * </tr> 19289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <tr> 19299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> 19309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <td valign='top' rowspan='1' colspan='1'> 19319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * null</td> 19329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * </tr> 19339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * </table> 19349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @exception DOMException 19359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. 19369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @exception DOMException 19379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOMSTRING_SIZE_ERR: Raised when it would return more characters than 19389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * fit in a <code>DOMString</code> variable on the implementation 19399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * platform. 19409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 19419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 19429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getTextContent() throws DOMException { 19439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return dtm.getStringValue(node).toString(); 19449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 19459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 19469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 19479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Compares a node with this node with regard to their position in the 19489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * document. 19499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param other The node to compare against this node. 19509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @return Returns how the given node is positioned relatively to this 19519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * node. 19529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 19539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 19549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public short compareDocumentPosition(Node other) throws DOMException { 19559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return 0; 19569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 19579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 19589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 19599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The absolute base URI of this node or <code>null</code> if undefined. 19609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * This value is computed according to . However, when the 19619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>Document</code> supports the feature "HTML" , the base URI is 19629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * computed using first the value of the href attribute of the HTML BASE 19639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * element if any, and the value of the <code>documentURI</code> 19649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * attribute from the <code>Document</code> interface otherwise. 19659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <br> When the node is an <code>Element</code>, a <code>Document</code> 19669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * or a a <code>ProcessingInstruction</code>, this attribute represents 19679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * the properties [base URI] defined in . When the node is a 19689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>Notation</code>, an <code>Entity</code>, or an 19699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>EntityReference</code>, this attribute represents the 19709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * properties [declaration base URI] in the . How will this be affected 19719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * by resolution of relative namespace URIs issue?It's not.Should this 19729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * only be on Document, Element, ProcessingInstruction, Entity, and 19739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Notation nodes, according to the infoset? If not, what is it equal to 19749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * on other nodes? Null? An empty string? I think it should be the 19759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * parent's.No.Should this be read-only and computed or and actual 19769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * read-write attribute?Read-only and computed (F2F 19 Jun 2000 and 19779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * teleconference 30 May 2001).If the base HTML element is not yet 19789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * attached to a document, does the insert change the Document.baseURI? 19799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Yes. (F2F 26 Sep 2001) 19809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 19819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 19829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getBaseURI() { 19839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 19849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 19859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 19869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 19879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3 19889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Renaming node 19899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 19909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public Node renameNode(Node n, 19919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String namespaceURI, 19929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson String name) 19939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws DOMException{ 19949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return n; 19959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 19969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 19979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 19989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3 19999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Normalize document. 20009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 20019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void normalizeDocument(){ 20029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 20039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 20049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 20059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 20069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The configuration used when <code>Document.normalizeDocument</code> is 20079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * invoked. 20089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 20099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 20109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public DOMConfiguration getDomConfig(){ 20119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 20129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 20139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 20149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** DOM Level 3 feature: documentURI */ 20159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson protected String fDocumentURI; 20169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 20179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 20189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3 20199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 20209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setDocumentURI(String documentURI){ 20219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 20229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson fDocumentURI= documentURI; 20239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 20249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 20259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 20269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3 20279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * The location of the document or <code>null</code> if undefined. 20289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <br>Beware that when the <code>Document</code> supports the feature 20299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * "HTML" , the href attribute of the HTML BASE element takes precedence 20309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * over this attribute. 20319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 20329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 20339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getDocumentURI(){ 20349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return fDocumentURI; 20359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 20369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 20379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** DOM Level 3 feature: Document actualEncoding */ 20389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson protected String actualEncoding; 20399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 20409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 20419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3 20429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * An attribute specifying the actual encoding of this document. This is 20439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>null</code> otherwise. 20449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <br> This attribute represents the property [character encoding scheme] 20459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * defined in . 20469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 20479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 20489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getActualEncoding() { 20499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return actualEncoding; 20509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 20519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 20529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 20539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3 20549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * An attribute specifying the actual encoding of this document. This is 20559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <code>null</code> otherwise. 20569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * <br> This attribute represents the property [character encoding scheme] 20579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * defined in . 20589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 20599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 20609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setActualEncoding(String value) { 20619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson actualEncoding = value; 20629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 20639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 20649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 20659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3 20669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 20679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public Text replaceWholeText(String content) 20689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throws DOMException{ 20699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/* 20709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 20719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (needsSyncData()) { 20729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson synchronizeData(); 20739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 20749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 20759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // make sure we can make the replacement 20769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (!canModify(nextSibling)) { 20779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, 20789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NO_MODIFICATION_ALLOWED_ERR", null)); 20799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 20809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 20819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Node parent = this.getParentNode(); 20829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (content == null || content.length() == 0) { 20839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson // remove current node 20849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (parent !=null) { // check if node in the tree 20859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson parent.removeChild(this); 20869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; 20879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 20889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 20899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Text currentNode = null; 20909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (isReadOnly()){ 20919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Text newNode = this.ownerDocument().createTextNode(content); 20929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (parent !=null) { // check if node in the tree 20939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson parent.insertBefore(newNode, this); 20949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson parent.removeChild(this); 20959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson currentNode = newNode; 20969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } else { 20979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return newNode; 20989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 20999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } else { 21009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson this.setData(content); 21019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson currentNode = this; 21029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson Node sibling = currentNode.getNextSibling(); 21049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson while ( sibling !=null) { 21059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson parent.removeChild(sibling); 21069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson sibling = currentNode.getNextSibling(); 21079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return currentNode; 21109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson*/ 21119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; //Pending 21129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 21159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3 21169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Returns all text of <code>Text</code> nodes logically-adjacent text 21179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * nodes to this node, concatenated in document order. 21189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @since DOM Level 3 21199f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 21209f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getWholeText(){ 21219f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21229f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson/* 21239f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (needsSyncData()) { 21249f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson synchronizeData(); 21259f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21269f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (nextSibling == null) { 21279f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return data; 21289f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21299f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson StringBuffer buffer = new StringBuffer(); 21309f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson if (data != null && data.length() != 0) { 21319f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson buffer.append(data); 21329f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21339f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson getWholeText(nextSibling, buffer); 21349f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return buffer.toString(); 21359f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson*/ 21369f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; // PENDING 21379f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21389f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21399f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 21409f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3 21419f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * Returns whether this text node contains whitespace in element content, 21429f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * often abusively called "ignorable whitespace". 21439f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 21449f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean isElementContentWhitespace(){ 21459f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; 21469f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21479f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21489f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 21499f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * NON-DOM: set the type of this attribute to be ID type. 21509f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * 21519f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * @param id 21529f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 21539f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setIdAttribute(boolean id){ 21549f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson //PENDING 21559f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21569f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21579f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 21589f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3: register the given attribute node as an ID attribute 21599f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 21609f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setIdAttribute(String name, boolean makeId) { 21619f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson //PENDING 21629f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21639f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21649f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21659f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 21669f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3: register the given attribute node as an ID attribute 21679f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 21689f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setIdAttributeNode(Attr at, boolean makeId) { 21699f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson //PENDING 21709f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21719f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21729f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson /** 21739f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson * DOM Level 3: register the given attribute node as an ID attribute 21749f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson */ 21759f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setIdAttributeNS(String namespaceURI, String localName, 21769f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson boolean makeId) { 21779f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson //PENDING 21789f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21799f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21809f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public TypeInfo getSchemaTypeInfo(){ 21819f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return null; //PENDING 21829f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21839f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21849f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean isId() { 21859f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return false; //PENDING 21869f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21879f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21889f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21899f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private String xmlEncoding; 21909f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21919f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getXmlEncoding( ) { 21929f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return xmlEncoding; 21939f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21949f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21959f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setXmlEncoding( String xmlEncoding ) { 21969f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson this.xmlEncoding = xmlEncoding; 21979f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 21989f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 21999f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private boolean xmlStandalone; 22009f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 22019f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public boolean getXmlStandalone() { 22029f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return xmlStandalone; 22039f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 22049f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 22059f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setXmlStandalone(boolean xmlStandalone) throws DOMException { 22069f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson this.xmlStandalone = xmlStandalone; 22079f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 22089f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 22099f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson private String xmlVersion; 22109f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 22119f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public String getXmlVersion() { 22129f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson return xmlVersion; 22139f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 22149f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson 22159f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson public void setXmlVersion(String xmlVersion) throws DOMException { 22169f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson this.xmlVersion = xmlVersion; 22179f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson } 22189f8118474e9513f7a5b7d2a05e4a0fb15d1a6569Jesse Wilson} 2219