diff options
Diffstat (limited to 'bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLUtils.java')
-rw-r--r-- | bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLUtils.java | 411 |
1 files changed, 0 insertions, 411 deletions
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLUtils.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLUtils.java deleted file mode 100644 index 3a7b61b69..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLUtils.java +++ /dev/null @@ -1,411 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingOperation; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.PortType; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; -import javax.wsdl.extensions.soap.SOAPOperation; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; - -/** - * Set of XML related utilities. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public final class WSDLUtils -{ - - /** - * Method isRpcLiteral. - * @param bindingStyle a binding style. - * @param operation a WSDL binding operation artifact. - * @return true if binding is rpc literal. - */ - public static boolean isRpcLiteral( - String bindingStyle, - BindingOperation operation) - { - return checkStyleAndUse( - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC, - WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT, - bindingStyle, - operation); - } - - /** - * Method isDocLiteral. - * @param bindingStyle the binding style. - * @param operation a WSDL binding operation. - * @return true if binding is document literal. - */ - public static boolean isDocLiteral( - String bindingStyle, - BindingOperation operation) - { - return checkStyleAndUse( - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC, - WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT, - bindingStyle, - operation); - } - - /** - * Method checkStyleAndUse. - */ - private static boolean checkStyleAndUse( - String checkStyle, - String checkUse, - String bindingStyle, - BindingOperation bindingOperation) - { - boolean styleFound = false; - boolean styleAndUseFound = false; - - // Find the soapbind:operation element - SOAPOperation soapOperation = getSoapOperation(bindingOperation); - - // If there are no ext elements, then check against binding style - if ((soapOperation == null) || (soapOperation.getStyle() == null)) - { - if (checkStyle.equals(bindingStyle)) - styleFound = true; - } - - else - { - if (checkStyle.equals(soapOperation.getStyle())) - styleFound = true; - } - - // If style found then check use - if (styleFound) - { - // Find the soapbind:body element - SOAPBody soapBody = getInputSoapBody(bindingOperation); - - // If there are no soapbind:body, then check against default use value - if ((soapBody == null) || (soapBody.getUse() == null)) - { - if (checkUse.equals(WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT)) - styleAndUseFound = true; - } - - else - { - if (checkUse.equals(soapBody.getUse())) - styleAndUseFound = true; - } - } - - return styleAndUseFound; - } - - /** - * Get soapbind:binding. - * @param binding a Binding object. - * @return soapbind:binding. - */ - public static SOAPBinding getSoapBinding(Binding binding) - { - SOAPBinding soapBinding = null; - - List extElements = null; - - // Find the soapbind:operation element - if ((extElements = binding.getExtensibilityElements()) != null) - { - for (Iterator iterator = extElements.iterator(); - iterator.hasNext() && (soapBinding == null); - ) - { - Object obj = iterator.next(); - - if (obj instanceof SOAPBinding) - { - soapBinding = (SOAPBinding) obj; - } - } - } - - return soapBinding; - } - - /** - * Get soapbind:operation. - * @param bindingOperation a BindingOperation object. - * @return soapbind:operation. - */ - public static SOAPOperation getSoapOperation(BindingOperation bindingOperation) - { - SOAPOperation soapOperation = null; - - List extElements = null; - - // Find the soapbind:operation element - if ((extElements = bindingOperation.getExtensibilityElements()) != null) - { - for (Iterator iterator = extElements.iterator(); - iterator.hasNext() && (soapOperation == null); - ) - { - Object obj = iterator.next(); - - if (obj instanceof SOAPOperation) - { - soapOperation = (SOAPOperation) obj; - } - } - } - - return soapOperation; - } - - /** - * Get soapbind:body from input element. - * @param bindingOperation the BindingOperation object. - * @return soapbind:body from input element. - */ - public static SOAPBody getInputSoapBody(BindingOperation bindingOperation) - { - SOAPBody soapBody = null; - - List extElements = null; - - // Find the soapbind:body element - if ((extElements = - bindingOperation.getBindingInput().getExtensibilityElements()) - != null) - { - for (Iterator iterator = extElements.iterator(); - iterator.hasNext() && (soapBody == null); - ) - { - Object obj = iterator.next(); - - if (obj instanceof SOAPBody) - { - soapBody = (SOAPBody) obj; - } - } - } - - return soapBody; - } - - /** - * Find messages referenced by a header or headerfault. - * @param definition a Definition object. - * @param binding a Binding object. - * @return messages referenced by a header or headerfault. - */ - public static HashSet findMessages(Definition definition, Binding binding) - { - BindingOperation bindingOperation; - - HashSet tempMessages, bindingMessages = new HashSet(); - - HashSet portTypeMessages = findMessages(binding.getPortType()); - - // Process each operation - Iterator iterator = binding.getBindingOperations().iterator(); - while (iterator.hasNext()) - { - bindingOperation = (BindingOperation) iterator.next(); - - // Process the input and then the output - if (bindingOperation.getBindingInput() != null) - { - tempMessages = - findMessages( - bindingOperation - .getBindingInput() - .getExtensibilityElements() - .iterator(), - portTypeMessages, - definition); - - // Add messages to binding message set - bindingMessages.addAll(tempMessages); - } - - // Process output - if (bindingOperation.getBindingOutput() != null) - { - tempMessages = - findMessages( - bindingOperation - .getBindingOutput() - .getExtensibilityElements() - .iterator(), - portTypeMessages, - definition); - - // Add messages to binding message set - bindingMessages.addAll(tempMessages); - } - } - - return bindingMessages; - } - - /** - * Find the messages that are referenced by a header or headerfault. - * @param portType a PortType object. - * @return he messages that are referenced by a header or headerfault. - */ - public static HashSet findMessages(PortType portType) - { - HashSet messageSet = new HashSet(); - Operation operation; - - Iterator iterator = portType.getOperations().iterator(); - while (iterator.hasNext()) - { - // Get next operation to process - operation = (Operation) iterator.next(); - - // Get input and output message - if (operation.getInput() != null) - messageSet.add(operation.getInput().getMessage()); - if (operation.getOutput() != null) - messageSet.add(operation.getOutput().getMessage()); - - // Process any faults - Iterator faults = operation.getFaults().values().iterator(); - while (faults.hasNext()) - { - messageSet.add(((Fault) faults.next()).getMessage()); - } - } - - return messageSet; - } - - /** - * Find the messages that are referenced by a header or headerfault. - * @param extElementList a list of external elements. - * @param messageSet a set of messages. - * @param definition a Definition object. - * @return the messages that are referenced by a header or headerfault. - */ - protected static HashSet findMessages( - Iterator extElementList, - HashSet messageSet, - Definition definition) - { - HashSet returnSet = new HashSet(); - ExtensibilityElement extElement; - Message saveMessage = null; - - while (extElementList.hasNext()) - { - // Get ext. element - extElement = (ExtensibilityElement) extElementList.next(); - - QName messageQName; - Message message; - - // If this is a soap:header element, then check for message reference - if (extElement instanceof SOAPHeader) - { - SOAPHeader soapHeader = (SOAPHeader) extElement; - if ((messageQName = soapHeader.getMessage()) != null) - { - // If message not found, then create a dummy message element - if ((message = definition.getMessage(messageQName)) == null) - { - message = definition.createMessage(); - message.setQName(messageQName); - message.setUndefined(true); - } - - if (!messageSet.contains(message)) - { - returnSet.add(message); - saveMessage = message; - } - } - - // Process any header faults within this header - Iterator headerFaultList = soapHeader.getSOAPHeaderFaults().iterator(); - while (headerFaultList.hasNext()) - { - // Get soap header fault - SOAPHeaderFault soapHeaderFault = - (SOAPHeaderFault) headerFaultList.next(); - if ((messageQName = soapHeaderFault.getMessage()) != null) - { - // If message not found, then create a dummy message element - if ((message = definition.getMessage(messageQName)) == null) - { - message = definition.createMessage(); - message.setQName(messageQName); - message.setUndefined(true); - } - - // If message not in message set and return set, then add it - if (!messageSet.contains(message) - && ((saveMessage == null) - || (saveMessage != null - && !saveMessage.getQName().equals(message.getQName())))) - returnSet.add(message); - } - } - } - } - - return returnSet; - } - - public static boolean isSOAP12WSDL(WSDLDocument wsdlDocument) - { - boolean result = false; - if (wsdlDocument != null) - { - Binding[] bindings = wsdlDocument.getBindings(); - List extensibilityElementList = new ArrayList(); - if (bindings != null) - { - for (int i = 0; i < bindings.length; i++) - extensibilityElementList.addAll(bindings[i].getExtensibilityElements()); - Iterator iterator = extensibilityElementList.iterator(); - while (iterator.hasNext()) - { - ExtensibilityElement e = (ExtensibilityElement) iterator.next(); - if (WSIConstants.NS_URI_WSDL_SOAP12.equals(e.getElementType().getNamespaceURI())) - { - result = true; - break; - } - } - } - } - return result; - } -} |