blob: f65a422b272a8ec2145cca0eb7c1eb52519d433c [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2004 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) {
}
}