blob: f11cd19d828bbda8009c13b6df3c1fbd620c36b3 [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.wsdl.tests.util;
import java.util.Iterator;
import javax.wsdl.Binding;
import javax.wsdl.BindingFault;
import javax.wsdl.BindingInput;
import javax.wsdl.BindingOperation;
import javax.wsdl.BindingOutput;
import javax.wsdl.Definition;
import javax.wsdl.Fault;
import javax.wsdl.Import;
import javax.wsdl.Input;
import javax.wsdl.Message;
import javax.wsdl.Operation;
import javax.wsdl.Output;
import javax.wsdl.Part;
import javax.wsdl.Port;
import javax.wsdl.PortType;
import javax.wsdl.Service;
import javax.wsdl.Types;
import javax.wsdl.extensions.ExtensibilityElement;
import junit.framework.TestCase;
/**
* @author Kihup Boo
*/
public abstract class WSDL4JDefinitionVisitor extends TestCase
{
protected Definition definition;
/**
* Use DefinitionVisitor(Definition definition)
*/
private WSDL4JDefinitionVisitor()
{
}
// Added for JUnit
public WSDL4JDefinitionVisitor(String name)
{
super(name);
}
protected WSDL4JDefinitionVisitor(Definition definition)
{
this.definition = definition;
}
// main entry
public void visit()
{
visitDefinition(definition);
}
protected void visitDefinition(Definition def)
{
Iterator iterator = def.getImports().entrySet().iterator();
while (iterator.hasNext())
visitImport((Import)iterator.next());
Types types = def.getTypes();
if (types != null)
visitTypes(types);
iterator = def.getMessages().values().iterator();
while (iterator.hasNext())
visitMessage((Message)iterator.next());
iterator = def.getPortTypes().values().iterator();
while (iterator.hasNext())
visitPortType((PortType)iterator.next());
iterator = def.getBindings().values().iterator();
while (iterator.hasNext())
visitBinding((Binding)iterator.next());
iterator = def.getServices().values().iterator();
while (iterator.hasNext())
visitService((Service)iterator.next());
iterator = def.getExtensibilityElements().iterator();
while (iterator.hasNext())
visitExtensibilityElement((ExtensibilityElement)iterator.next());
}
abstract protected void visitImport(Import wsdlImport);
abstract protected void visitTypes(Types types);
protected void visitMessage(Message message)
{
Iterator iterator = message.getParts().values().iterator();
while (iterator.hasNext())
visitPart((Part)iterator.next());
}
abstract protected void visitPart(Part part);
protected void visitPortType(PortType portType)
{
Iterator iterator = portType.getOperations().iterator();
while (iterator.hasNext())
visitOperation((Operation)iterator.next());
}
protected void visitOperation(Operation operation)
{
Input input = operation.getInput();
visitInput((Input)input);
Output output = operation.getOutput();
visitOutput((Output)output);
Iterator iterator = operation.getFaults().entrySet().iterator();
while (iterator.hasNext())
visitFault((Fault)iterator.next());
}
protected abstract void visitInput(Input input);
protected abstract void visitOutput(Output output);
protected abstract void visitFault(Fault fault);
protected void visitBinding(Binding binding)
{
Iterator iterator = binding.getBindingOperations().iterator();
while (iterator.hasNext())
visitBindingOperation((BindingOperation)iterator.next());
iterator = binding.getExtensibilityElements().iterator();
while (iterator.hasNext())
visitExtensibilityElement((ExtensibilityElement)iterator.next());
}
protected void visitBindingOperation(BindingOperation operation)
{
BindingInput input = operation.getBindingInput();
visitBindingInput((BindingInput)input);
BindingOutput output = operation.getBindingOutput();
visitBindingOutput((BindingOutput)output);
Iterator iterator = operation.getBindingFaults().entrySet().iterator();
while (iterator.hasNext())
visitBindingFault((BindingFault)iterator.next());
iterator = operation.getExtensibilityElements().iterator();
while (iterator.hasNext())
visitExtensibilityElement((ExtensibilityElement)iterator.next());
}
protected void visitBindingInput(BindingInput input)
{
Iterator iterator = input.getExtensibilityElements().iterator();
while (iterator.hasNext())
visitExtensibilityElement((ExtensibilityElement)iterator.next());
}
protected void visitBindingOutput(BindingOutput output)
{
Iterator iterator = output.getExtensibilityElements().iterator();
while (iterator.hasNext())
visitExtensibilityElement((ExtensibilityElement)iterator.next());
}
protected void visitBindingFault(BindingFault fault)
{
Iterator iterator = fault.getExtensibilityElements().iterator();
while (iterator.hasNext())
visitExtensibilityElement((ExtensibilityElement)iterator.next());
}
protected void visitService(Service service)
{
Iterator iterator = service.getPorts().values().iterator();
while (iterator.hasNext())
visitPort((Port)iterator.next());
iterator = service.getExtensibilityElements().iterator();
while (iterator.hasNext())
visitExtensibilityElement((ExtensibilityElement)iterator.next());
}
protected void visitPort(Port port)
{
Iterator iterator = port.getExtensibilityElements().iterator();
while (iterator.hasNext())
visitExtensibilityElement((ExtensibilityElement)iterator.next());
}
abstract protected void visitExtensibilityElement(ExtensibilityElement extensibilityElement);
}