| /******************************************************************************* |
| * Copyright (c) 2001, 2007 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; |
| |
| // 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) |
| { |
| java.util.Map imports = def.getImports(); |
| Iterator iterator = imports.keySet().iterator(); |
| Import myImport = null; |
| while (iterator.hasNext()) |
| { |
| myImport = (Import)((java.util.ArrayList)imports.get(iterator.next())).get(0); |
| visitImport(myImport); |
| } |
| |
| 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); |
| |
| java.util.Map faults = operation.getFaults(); |
| Iterator iterator = faults.keySet().iterator(); |
| Fault fault = null; |
| while (iterator.hasNext()) |
| { |
| fault = (Fault)faults.get(iterator.next()); |
| visitFault(fault); |
| } |
| } |
| |
| 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); |
| |
| java.util.Map bindingFaults = operation.getBindingFaults(); |
| Iterator iterator = bindingFaults.keySet().iterator(); |
| BindingFault bindingFault = null; |
| while (iterator.hasNext()) |
| { |
| bindingFault = (BindingFault)bindingFaults.get(iterator.next()); |
| visitBindingFault(bindingFault); |
| } |
| |
| 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); |
| |
| } |