blob: 4b6d79a633cfca6ded3428fd56b65af51af4c760 [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.ui.internal.visitor;
import java.util.Iterator;
import org.eclipse.wst.wsdl.Binding;
import org.eclipse.wst.wsdl.BindingInput;
import org.eclipse.wst.wsdl.BindingOperation;
import org.eclipse.wst.wsdl.BindingOutput;
import org.eclipse.wst.wsdl.Definition;
import org.eclipse.wst.wsdl.Fault;
import org.eclipse.wst.wsdl.Input;
import org.eclipse.wst.wsdl.Message;
import org.eclipse.wst.wsdl.Operation;
import org.eclipse.wst.wsdl.Output;
import org.eclipse.wst.wsdl.Part;
import org.eclipse.wst.wsdl.Port;
import org.eclipse.wst.wsdl.PortType;
import org.eclipse.wst.wsdl.Service;
import org.eclipse.xsd.XSDTypeDefinition;
public class WSDLVisitor
{
protected Definition definition;
public WSDLVisitor(Definition definition)
{
this.definition = definition;
}
public void visitDefinition()
{
visitBindings();
visitMessages();
visitPortTypes();
visitServices();
}
public void visitBindings()
{
for (Iterator iterator = definition.getEBindings().iterator(); iterator.hasNext(); )
{
Binding binding = (Binding)iterator.next();
visitBinding(binding);
}
}
public void visitMessages()
{
for (Iterator iterator = definition.getEMessages().iterator(); iterator.hasNext(); )
{
Message message = (Message)iterator.next();
visitMessage(message);
}
}
public void visitPortTypes()
{
for (Iterator iterator = definition.getEPortTypes().iterator(); iterator.hasNext(); )
{
PortType portType = (PortType)iterator.next();
visitPortType(portType);
}
}
public void visitServices()
{
for (Iterator iterator = definition.getEServices().iterator(); iterator.hasNext(); )
{
Service service = (Service)iterator.next();
visitService(service);
}
}
public void visitBinding(Binding binding)
{
PortType portType = binding.getEPortType();
if (portType != null)
{
visitPortType(portType);
}
for (Iterator iterator = binding.getEBindingOperations().iterator(); iterator.hasNext(); )
{
BindingOperation bindingOperation = (BindingOperation)iterator.next();
visitBindingOperation(bindingOperation);
}
}
public void visitPortType(PortType portType)
{
for (Iterator iterator = portType.getEOperations().iterator(); iterator.hasNext(); )
{
Operation operation = (Operation)iterator.next();
visitOperation(operation);
}
}
public void visitBindingOperation(BindingOperation bindingOperation)
{
BindingInput bindingInput = bindingOperation.getEBindingInput();
BindingOutput bindingOutput = bindingOperation.getEBindingOutput();
}
public void visitOperation(Operation operation)
{
Input input = operation.getEInput();
Output output = operation.getEOutput();
if (input != null)
{
visitInput(input);
}
if (output != null)
{
visitOutput(output);
}
for (Iterator iterator = operation.getEFaults().iterator(); iterator.hasNext(); )
{
Fault fault = (Fault)iterator.next();
if (fault != null)
{
visitFault(fault);
}
}
}
public void visitPart(Part part)
{
XSDTypeDefinition type = part.getTypeDefinition();
}
public void visitMessage(Message message)
{
for (Iterator iterator = message.getEParts().iterator(); iterator.hasNext(); )
{
Part part = (Part)iterator.next();
visitPart(part);
}
}
public void visitInput(Input input)
{
Message message = input.getEMessage();
if (message != null)
{
visitMessage(message);
}
}
public void visitOutput(Output output)
{
Message message = output.getEMessage();
if (message != null)
{
visitMessage(message);
}
}
public void visitFault(Fault fault)
{
Message message = fault.getEMessage();
if (message != null)
{
visitMessage(message);
}
}
public void visitPort(Port port)
{
Binding binding = port.getEBinding();
if (binding != null)
{
visitBinding(binding);
}
}
public void visitService(Service service)
{
for (Iterator iterator = service.getEPorts().iterator(); iterator.hasNext(); )
{
Port port = (Port)iterator.next();
visitPort(port);
}
}
}