1 /* 2 * Java HTML Tidy - JTidy 3 * HTML parser and pretty printer 4 * 5 * Copyright (c) 1998-2000 World Wide Web Consortium (Massachusetts 6 * Institute of Technology, Institut National de Recherche en 7 * Informatique et en Automatique, Keio University). All Rights 8 * Reserved. 9 * 10 * Contributing Author(s): 11 * 12 * Dave Raggett <dsr@w3.org> 13 * Andy Quick <ac.quick@sympatico.ca> (translation to Java) 14 * Gary L Peskin <garyp@firstech.com> (Java development) 15 * Sami Lempinen <sami@lempinen.net> (release management) 16 * Fabrizio Giustina <fgiust at users.sourceforge.net> 17 * 18 * The contributing author(s) would like to thank all those who 19 * helped with testing, bug fixes, and patience. This wouldn't 20 * have been possible without all of you. 21 * 22 * COPYRIGHT NOTICE: 23 * 24 * This software and documentation is provided "as is," and 25 * the copyright holders and contributing author(s) make no 26 * representations or warranties, express or implied, including 27 * but not limited to, warranties of merchantability or fitness 28 * for any particular purpose or that the use of the software or 29 * documentation will not infringe any third party patents, 30 * copyrights, trademarks or other rights. 31 * 32 * The copyright holders and contributing author(s) will not be 33 * liable for any direct, indirect, special or consequential damages 34 * arising out of any use of the software or documentation, even if 35 * advised of the possibility of such damage. 36 * 37 * Permission is hereby granted to use, copy, modify, and distribute 38 * this source code, or portions hereof, documentation and executables, 39 * for any purpose, without fee, subject to the following restrictions: 40 * 41 * 1. The origin of this source code must not be misrepresented. 42 * 2. Altered versions must be plainly marked as such and must 43 * not be misrepresented as being the original source. 44 * 3. This Copyright notice may not be removed or altered from any 45 * source or altered source distribution. 46 * 47 * The copyright holders and contributing author(s) specifically 48 * permit, without fee, and encourage the use of this source code 49 * as a component for supporting the Hypertext Markup Language in 50 * commercial products. If you use this source code in a product, 51 * acknowledgment is not required but would be appreciated. 52 * 53 */ 54 package org.w3c.tidy; 55 56 /** 57 * DOMNodeListImpl. The items in the <code>NodeList</code> are accessible via an integral index, starting from 0. 58 * @author Dave Raggett <a href="mailto:dsr@w3.org">dsr@w3.org </a> 59 * @author Andy Quick <a href="mailto:ac.quick@sympatico.ca">ac.quick@sympatico.ca </a> (translation to Java) 60 * @author Fabrizio Giustina 61 * @version $Revision: 779 $ ($Author: fgiust $) 62 */ 63 public class DOMNodeListImpl implements org.w3c.dom.NodeList 64 { 65 66 /** 67 * Parent Node. 68 */ 69 private Node parent; 70 71 /** 72 * Instantiates a new DOM node list. 73 * @param parent parent Node 74 */ 75 protected DOMNodeListImpl(Node parent) 76 { 77 this.parent = parent; 78 } 79 80 /** 81 * @see org.w3c.dom.NodeList#item(int) 82 */ 83 public org.w3c.dom.Node item(int index) 84 { 85 if (parent == null) 86 { 87 return null; 88 } 89 90 int i = 0; 91 Node node = this.parent.content; 92 while (node != null) 93 { 94 if (i >= index) 95 { 96 break; 97 } 98 i++; 99 node = node.next; 100 } 101 if (node != null) 102 { 103 return node.getAdapter(); 104 } 105 106 return null; 107 } 108 109 /** 110 * @see org.w3c.dom.NodeList#getLength 111 */ 112 public int getLength() 113 { 114 if (parent == null) 115 { 116 return 0; 117 } 118 119 int len = 0; 120 Node node = this.parent.content; 121 while (node != null) 122 { 123 len++; 124 node = node.next; 125 } 126 return len; 127 } 128 129 }