| /* |
| * Copyright (c) 2002 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Common Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * Contributors: |
| * IBM - Initial API and implementation |
| * Jens Lukowski/Innoopract - initial renaming/restructuring |
| * |
| */ |
| package org.eclipse.wst.xml.core.internal.contentmodel.util; |
| |
| import org.w3c.dom.Attr; |
| import org.w3c.dom.CDATASection; |
| import org.w3c.dom.Comment; |
| import org.w3c.dom.Document; |
| import org.w3c.dom.DocumentType; |
| import org.w3c.dom.Element; |
| import org.w3c.dom.NamedNodeMap; |
| import org.w3c.dom.Node; |
| import org.w3c.dom.NodeList; |
| import org.w3c.dom.ProcessingInstruction; |
| import org.w3c.dom.Text; |
| |
| // todo.. move this class to another package (perhaps xmlutility) |
| // |
| public class DOMVisitor |
| { |
| public void visitNode(Node node) |
| { |
| switch (node.getNodeType()) |
| { |
| case Node.ATTRIBUTE_NODE : |
| { |
| visitAttr((Attr)node); |
| break; |
| } |
| case Node.CDATA_SECTION_NODE : |
| { |
| visitCDATASection((CDATASection)node); |
| break; |
| } |
| case Node.COMMENT_NODE : |
| { |
| visitComment((Comment)node); |
| break; |
| } |
| case Node.DOCUMENT_NODE : |
| { |
| visitDocument((Document)node); |
| break; |
| } |
| case Node.DOCUMENT_TYPE_NODE : |
| { |
| visitDocumentType((DocumentType)node); |
| break; |
| } |
| case Node.ELEMENT_NODE : |
| { |
| visitElement((Element)node); |
| break; |
| } |
| case Node.PROCESSING_INSTRUCTION_NODE : |
| { |
| visitProcessingInstruction((ProcessingInstruction)node); |
| break; |
| } |
| case Node.TEXT_NODE : |
| { |
| visitText((Text)node); |
| break; |
| } |
| } |
| } |
| |
| protected void visitDocument(Document document) |
| { |
| visitChildNodesHelper(document); |
| } |
| |
| protected void visitDocumentType(DocumentType doctype) |
| { |
| |
| } |
| |
| protected void visitElement(Element element) |
| { |
| visitAttributesHelper(element); |
| visitChildNodesHelper(element); |
| } |
| |
| |
| public void visitAttr(Attr attr) |
| { |
| } |
| |
| protected void visitText(Text text) |
| { |
| } |
| |
| protected void visitCDATASection(CDATASection cdataSection) |
| { |
| } |
| |
| protected void visitComment(Comment comment) |
| { |
| } |
| |
| protected void visitProcessingInstruction(ProcessingInstruction pi) |
| { |
| } |
| |
| |
| protected void visitChildNodesHelper(Node node) |
| { |
| NodeList children = node.getChildNodes(); |
| for (int i = 0; i < children.getLength(); i++) |
| { |
| visitNode(children.item(i)); |
| } |
| } |
| |
| protected void visitAttributesHelper(Node node) |
| { |
| NamedNodeMap map = node.getAttributes(); |
| for (int i = 0; i < map.getLength(); i++ ) |
| { |
| visitNode(map.item(i)); |
| } |
| } |
| } |