| /******************************************************************************* |
| * Copyright (c) 2001, 2005 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.wst.dtd.core.internal.emf.util; |
| |
| import java.util.Collection; |
| import java.util.Iterator; |
| import java.util.List; |
| |
| import org.eclipse.wst.dtd.core.internal.emf.DTDAnyContent; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDAttribute; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDElement; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDElementContent; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDElementReferenceContent; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDEmptyContent; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDEntity; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDEntityReferenceContent; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDFile; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDGroupContent; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDGroupKind; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDNotation; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDObject; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDPCDataContent; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDParameterEntityReference; |
| import org.eclipse.wst.dtd.core.internal.emf.DTDRepeatableContent; |
| |
| |
| |
| public class DTDVisitor { |
| |
| public DTDVisitor() { |
| } |
| |
| public void visitDTDFile(DTDFile file) { |
| Collection notations = file.listDTDNotation(); |
| for (Iterator i = notations.iterator(); i.hasNext();) { |
| visitDTDNotation((DTDNotation) i.next()); |
| } |
| |
| Collection entities = file.listDTDEntity(); |
| for (Iterator i = entities.iterator(); i.hasNext();) { |
| visitDTDEntity((DTDEntity) i.next()); |
| } |
| |
| Collection objects = file.listDTDElementAndDTDParameterEntityReference(); |
| for (Iterator i = objects.iterator(); i.hasNext();) { |
| DTDObject object = (DTDObject) i.next(); |
| if (object instanceof DTDElement) { |
| visitDTDElement((DTDElement) object); |
| } // end of if () |
| else { |
| visitDTDParameterEntityReference((DTDParameterEntityReference) object); |
| } // end of if () |
| } |
| |
| } |
| |
| public void visitDTDNotation(DTDNotation notation) { |
| } |
| |
| public void visitDTDEntity(DTDEntity entity) { |
| } |
| |
| public void visitDTDElement(DTDElement element) { |
| visitDTDElementContent(element.getContent()); |
| visitDTDAttributeList(element.getDTDAttribute()); |
| } |
| |
| public void visitDTDParameterEntityReference(DTDParameterEntityReference parmEntity) { |
| |
| } |
| |
| public void visitDTDElementContent(DTDElementContent content) { |
| // System.out.println("visitDTDElementContent : " + content); |
| if (content instanceof DTDEmptyContent) { |
| visitDTDEmptyContent((DTDEmptyContent) content); |
| } |
| else if (content instanceof DTDAnyContent) { |
| visitDTDAnyContent((DTDAnyContent) content); |
| } |
| else if (content instanceof DTDPCDataContent) { |
| visitDTDPCDataContent((DTDPCDataContent) content); |
| } |
| if (content instanceof DTDRepeatableContent) { |
| if (content instanceof DTDGroupContent) { |
| visitDTDGroupContent((DTDGroupContent) content); |
| } |
| else if (content instanceof DTDElementReferenceContent) { |
| visitDTDElementReferenceContent((DTDElementReferenceContent) content); |
| } |
| else { |
| visitDTDEntityReferenceContent((DTDEntityReferenceContent) content); |
| } // end of else |
| |
| // System.out.println("occurrence: " + |
| // (char)((DTDRepeatableContent)content).getOccurrence()); |
| } |
| } |
| |
| public void visitDTDEmptyContent(DTDEmptyContent dtdEmptyContent) { |
| // System.out.println("content: EMPTY"); |
| } |
| |
| public void visitDTDAnyContent(DTDAnyContent dtdAnyContent) { |
| // System.out.println("content: ANY"); |
| } |
| |
| public void visitDTDPCDataContent(DTDPCDataContent pcDataContent) { |
| // System.out.println("content: PCDATA"); |
| } |
| |
| public void visitDTDGroupContent(DTDGroupContent groupContent) { |
| if (groupContent.getGroupKind().getValue() == DTDGroupKind.SEQUENCE) { |
| // System.out.println("content: Sequence"); |
| } |
| else // if (contentgetGroupKind() == DTDGroupKind.CHOICE) |
| { |
| // System.out.println("content: Choice"); |
| } |
| |
| Collection groupContents = groupContent.getContent(); |
| for (Iterator i = groupContents.iterator(); i.hasNext();) { |
| visitDTDElementContent((DTDElementContent) i.next()); |
| } |
| } |
| |
| public void visitDTDElementReferenceContent(DTDElementReferenceContent elementReferenceContent) { |
| } |
| |
| public void visitDTDEntityReferenceContent(DTDEntityReferenceContent entityReferenceContent) { |
| } |
| |
| public void visitDTDAttributeList(List attrs) { |
| Iterator iter = attrs.iterator(); |
| |
| while (iter.hasNext()) { |
| visitDTDAttribute((DTDAttribute) iter.next()); |
| } // end of while () |
| } |
| |
| public void visitDTDAttribute(DTDAttribute attribute) { |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void visitDTDFileGen(DTDFile file) { |
| |
| Collection notations = file.listDTDNotation(); |
| for (Iterator i = notations.iterator(); i.hasNext();) { |
| visitDTDNotation((DTDNotation) i.next()); |
| } |
| |
| Collection entities = file.listDTDEntity(); |
| for (Iterator i = entities.iterator(); i.hasNext();) { |
| visitDTDEntity((DTDEntity) i.next()); |
| } |
| |
| Collection objects = file.listDTDElementAndDTDParameterEntityReference(); |
| for (Iterator i = objects.iterator(); i.hasNext();) { |
| DTDObject object = (DTDObject) i.next(); |
| if (object instanceof DTDElement) { |
| visitDTDElement((DTDElement) object); |
| } // end of if () |
| else { |
| visitDTDParameterEntityReference((DTDParameterEntityReference) object); |
| } // end of if () |
| } |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void visitDTDNotationGen(DTDNotation notation) { |
| |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void visitDTDEntityGen(DTDEntity entity) { |
| |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void visitDTDElementGen(DTDElement element) { |
| |
| visitDTDElementContent(element.getContent()); |
| visitDTDAttributeList(element.getDTDAttribute()); |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void visitDTDParameterEntityReferenceGen(DTDParameterEntityReference parmEntity) { |
| |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void visitDTDElementContentGen(DTDElementContent content) { |
| |
| // System.out.println("visitDTDElementContent : " + content); |
| if (content instanceof DTDEmptyContent) { |
| visitDTDEmptyContent((DTDEmptyContent) content); |
| } |
| else if (content instanceof DTDAnyContent) { |
| visitDTDAnyContent((DTDAnyContent) content); |
| } |
| else if (content instanceof DTDPCDataContent) { |
| visitDTDPCDataContent((DTDPCDataContent) content); |
| } |
| if (content instanceof DTDRepeatableContent) { |
| if (content instanceof DTDGroupContent) { |
| visitDTDGroupContent((DTDGroupContent) content); |
| } |
| else if (content instanceof DTDElementReferenceContent) { |
| visitDTDElementReferenceContent((DTDElementReferenceContent) content); |
| } |
| else { |
| visitDTDEntityReferenceContent((DTDEntityReferenceContent) content); |
| } // end of else |
| |
| // System.out.println("occurrence: " + |
| // (char)((DTDRepeatableContent)content).getOccurrence()); |
| } |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void visitDTDEmptyContentGen(DTDEmptyContent dtdEmptyContent) { |
| |
| // System.out.println("content: EMPTY"); |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void visitDTDAnyContentGen(DTDAnyContent dtdAnyContent) { |
| |
| // System.out.println("content: ANY"); |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void visitDTDPCDataContentGen(DTDPCDataContent pcDataContent) { |
| |
| // System.out.println("content: PCDATA"); |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void visitDTDGroupContentGen(DTDGroupContent groupContent) { |
| |
| if (groupContent.getGroupKind().getValue() == DTDGroupKind.SEQUENCE) { |
| // System.out.println("content: Sequence"); |
| } |
| else // if (contentgetGroupKind() == DTDGroupKind.CHOICE) |
| { |
| // System.out.println("content: Choice"); |
| } |
| |
| Collection groupContents = groupContent.getContent(); |
| for (Iterator i = groupContents.iterator(); i.hasNext();) { |
| visitDTDElementContent((DTDElementContent) i.next()); |
| } |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void visitDTDElementReferenceContentGen(DTDElementReferenceContent elementReferenceContent) { |
| |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void visitDTDEntityReferenceContentGen(DTDEntityReferenceContent entityReferenceContent) { |
| |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void visitDTDAttributeListGen(List attrs) { |
| |
| Iterator iter = attrs.iterator(); |
| |
| while (iter.hasNext()) { |
| visitDTDAttribute((DTDAttribute) iter.next()); |
| } // end of while () |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void visitDTDAttributeGen(DTDAttribute attribute) { |
| |
| } |
| } |