home *** CD-ROM | disk | FTP | other *** search
- package com.sun.xml.tree;
-
- import java.util.Locale;
- import org.w3c.dom.Element;
- import org.w3c.dom.Node;
-
- public class TreeWalker {
- private Node startPoint;
- private Node current;
-
- public TreeWalker(Node var1) {
- if (var1 == null) {
- throw new IllegalArgumentException(XmlDocument.catalog.getMessage(Locale.getDefault(), "TW-004"));
- } else if (!(var1 instanceof NodeBase)) {
- throw new IllegalArgumentException(XmlDocument.catalog.getMessage(Locale.getDefault(), "TW-003"));
- } else {
- this.startPoint = this.current = var1;
- }
- }
-
- public Node getCurrent() {
- return this.current;
- }
-
- public Node getNext() {
- if (this.current == null) {
- return null;
- } else {
- switch (this.current.getNodeType()) {
- case 1:
- case 9:
- case 11:
- Node var1 = this.current.getFirstChild();
- if (var1 != null) {
- this.current = var1;
- return var1;
- }
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 10:
- for(Node var2 = this.current; var2 != null && var2 != this.startPoint; var2 = var2.getParentNode()) {
- Node var3 = var2.getNextSibling();
- if (var3 != null) {
- this.current = var3;
- return var3;
- }
- }
-
- this.current = null;
- return null;
- default:
- throw new InternalError(((NodeBase)this.startPoint).getMessage("TW-000", new Object[]{Short.toString(this.current.getNodeType())}));
- }
- }
- }
-
- public Element getNextElement(String var1) {
- for(Node var2 = this.getNext(); var2 != null; var2 = this.getNext()) {
- if (var2.getNodeType() == 1 && (var1 == null || var1.equals(var2.getNodeName()))) {
- return (Element)var2;
- }
- }
-
- this.current = null;
- return null;
- }
-
- public Node removeCurrent() {
- if (this.current == null) {
- throw new IllegalStateException(((NodeBase)this.startPoint).getMessage("TW-001"));
- } else {
- Node var1 = this.current;
- Node var2 = this.current.getParentNode();
- Node var3 = null;
- if (var2 == null) {
- throw new IllegalStateException(((NodeBase)this.startPoint).getMessage("TW-002"));
- } else {
- for(Node var4 = this.current; var4 != null && var4 != this.startPoint; var4 = var4.getParentNode()) {
- var3 = var4.getNextSibling();
- if (var3 != null) {
- this.current = var3;
- break;
- }
- }
-
- var2.removeChild(var1);
- return var3;
- }
- }
- }
-
- public void reset() {
- this.current = this.startPoint;
- }
- }
-