Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/soap/SOAPValidator.java')
-rw-r--r--bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/soap/SOAPValidator.java604
1 files changed, 0 insertions, 604 deletions
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/soap/SOAPValidator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/soap/SOAPValidator.java
deleted file mode 100644
index 47f85701d..000000000
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/soap/SOAPValidator.java
+++ /dev/null
@@ -1,604 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.validation.internal.wsdl11.soap;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.ResourceBundle;
-
-import javax.wsdl.Binding;
-import javax.wsdl.BindingFault;
-import javax.wsdl.BindingOperation;
-import javax.wsdl.Definition;
-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.extensions.ExtensibilityElement;
-import javax.wsdl.extensions.soap.SOAPOperation;
-import javax.xml.namespace.QName;
-
-import org.eclipse.wst.wsdl.validation.internal.util.MessageGenerator;
-import org.eclipse.wst.wsdl.validation.internal.wsdl11.IWSDL11ValidationInfo;
-import org.eclipse.wst.wsdl.validation.internal.wsdl11.IWSDL11Validator;
-
-import com.ibm.wsdl.BindingFaultImpl;
-import com.ibm.wsdl.BindingImpl;
-import com.ibm.wsdl.BindingInputImpl;
-import com.ibm.wsdl.BindingOperationImpl;
-import com.ibm.wsdl.BindingOutputImpl;
-import com.ibm.wsdl.PortImpl;
-import com.ibm.wsdl.extensions.soap.SOAPAddressImpl;
-import com.ibm.wsdl.extensions.soap.SOAPBindingImpl;
-import com.ibm.wsdl.extensions.soap.SOAPBodyImpl;
-import com.ibm.wsdl.extensions.soap.SOAPFaultImpl;
-import com.ibm.wsdl.extensions.soap.SOAPHeaderFaultImpl;
-import com.ibm.wsdl.extensions.soap.SOAPHeaderImpl;
-import com.ibm.wsdl.extensions.soap.SOAPOperationImpl;
-
-/**
- * The SOAP validator plugs into the WSDL validator to provide
- * validation for all elements in a WSDL document within the SOAP namespace.
- *
- */
-public class SOAPValidator implements IWSDL11Validator
-{
- private static String SOAP_RESOURCE_BUNDLE_NAME = "validatewsdlsoap";
-
- private final String _ERROR_INVALID_PORT_ELEMENT = "_ERROR_INVALID_PORT_ELEMENT";
- private final String _ERROR_INVALID_BINDING_ELEMENT = "_ERROR_INVALID_BINDING_ELEMENT";
- private final String _ERROR_INVALID_BINDING_OPERATION_ELEMENT = "_ERROR_INVALID_BINDING_OPERATION_ELEMENT";
- private final String _ERROR_INVALID_HEADER_BODY_ELEMENT = "_ERROR_INVALID_HEADER_BODY_ELEMENT";
- private final String _ERROR_INVALID_FAULT_ELEMENT = "_ERROR_INVALID_FAULT_ELEMENT";
- private final String _ERROR_INVALID_SOAP_ELEMENT_FOR_LOCATION = "_ERROR_INVALID_SOAP_ELEMENT_FOR_LOCATION";
- private final String _ERROR_NO_LOCATION_FOR_ADDRESS = "_ERROR_NO_LOCATION_FOR_ADDRESS";
- private final String _ERROR_NO_SOAPBINDING_FOR_ADDRESS = "_ERROR_NO_SOAPBINDING_FOR_ADDRESS";
- private final String _ERROR_INVALID_BINDING_STYLE = "_ERROR_INVALID_BINDING_STYLE";
- private final String _ERROR_INVALID_BINDING_URI = "_ERROR_INVALID_BINDING_URI";
- private final String _ERROR_INVALID_OPERATION_STYLE = "_ERROR_INVALID_OPERATION_STYLE";
- private final String _ERROR_NO_SOAPBINDING_FOR_OPERATION = "_ERROR_NO_SOAPBINDING_FOR_OPERATION";
- private final String _ERROR_INVALID_BODY_ENCODING_STYLE = "_ERROR_INVALID_BODY_ENCODING_STYLE";
- //private final String _ERROR_INVALID_BODY_NAMESPACE_FOR_ENCODED = "_ERROR_INVALID_BODY_NAMESPACE_FOR_ENCODED";
- private final String _ERROR_INVALID_BODY_USE = "_ERROR_INVALID_BODY_USE";
- private final String _ERROR_INVALID_BODY_PART_NOT_TYPE = "_ERROR_INVALID_BODY_PART_NOT_TYPE";
- private final String _ERROR_INVALID_BODY_PART_UNDEFINED = "_ERROR_INVALID_BODY_PART_UNDEFINED";
- private final String _ERROR_NO_SOAPBINDING_FOR_BODY = "_ERROR_NO_SOAPBINDING_FOR_BODY";
- private final String _ERROR_HEADER_MESSAGE_UNDEFINED = "_ERROR_HEADER_MESSAGE_UNDEFINED";
- private final String _ERROR_HEADER_PART_UNDEFINED = "_ERROR_HEADER_PART_UNDEFINED";
- private final String _ERROR_HEADER_USE_UNDEFINED = "_ERROR_HEADER_USE_UNDEFINED";
- private final String _ERROR_HEADER_ENCODINGSTYLE_UNDEFINED = "_ERROR_HEADER_ENCODINGSTYLE_UNDEFINED";
- private final String _ERROR_HEADER_NAMESPACE_UNDEFINED = "_ERROR_HEADER_NAMESPACE_UNDEFINED";
- private final String _ERROR_NO_SOAPBINDING_FOR_HEADER = "_ERROR_NO_SOAPBINDING_FOR_HEADER";
- private final String _ERROR_HEADERFAULT_MESSAGE_UNDEFINED = "_ERROR_HEADERFAULT_MESSAGE_UNDEFINED";
- private final String _ERROR_HEADERFAULT_PART_UNDEFINED = "_ERROR_HEADERFAULT_PART_UNDEFINED";
- private final String _ERROR_HEADERFAULT_USE_UNDEFINED = "_ERROR_HEADERFAULT_USE_UNDEFINED";
- private final String _ERROR_HEADERFAULT_ENCODINGSTYLE_UNDEFINED = "_ERROR_HEADERFAULT_ENCODINGSTYLE_UNDEFINED";
- private final String _ERROR_HEADERFAULT_NAMESPACE_UNDEFINED = "_ERROR_HEADERFAULT_NAMESPACE_UNDEFINED";
- private final String _ERROR_INVALID_FAULT_NAME = "_ERROR_INVALID_FAULT_NAME";
- //private final String _ERROR_INVALID_FAULT_ENCODING_STYLE = "_ERROR_INVALID_FAULT_ENCODING_STYLE";
- //private final String _ERROR_INVALID_FAULT_NAMESPACE_FOR_ENCODED = "_ERROR_INVALID_FAULT_NAMESPACE_FOR_ENCODED";
-
- private final String ENCODED = "encoded";
- private final String LITERAL = "literal";
- private final String RPC = "rpc";
- private final String DOCUMENT = "document";
-
- private final String QUOTE = "'";
- private final String EMPTY_STRING = "";
-
- protected MessageGenerator messagegenerator;
-
- /**
- * Default constructor.
- */
- public SOAPValidator()
- {
- ResourceBundle rb = ResourceBundle.getBundle(SOAP_RESOURCE_BUNDLE_NAME, Locale.getDefault());
- messagegenerator = new MessageGenerator(rb);
- }
-
- /**
- * @see org.eclipse.wst.wsdl.validation.internal.wsdl11.IWSDL11Validator#validate(java.lang.Object, java.util.List, org.eclipse.wsdl.validate.wsdl11.IWSDL11ValidationInfo)
- */
- public void validate(Object element, List parents, IWSDL11ValidationInfo valInfo)
- {
- // Port SOAP definition
- // make sure every port has only one address element defined
- // if it is an address element, validate it
- if (parents.get(0).getClass() == PortImpl.class)
- {
- if (element.getClass() == SOAPAddressImpl.class)
- {
- validateAddress(element, parents, valInfo);
- }
- else
- {
- ExtensibilityElement e = (ExtensibilityElement)element;
- valInfo.addError(
- messagegenerator.getString(_ERROR_INVALID_PORT_ELEMENT, QUOTE + e.getElementType().getLocalPart() + QUOTE), element);
- }
- }
-
- // Binding SOAP definition
- // A SOAP Binding must have a style or rpc or document or no style defined - defaults to document
- // Must have a transport uri defined - check if the uri is empty
- else if (parents.get(0).getClass() == BindingImpl.class)
- {
- if (element.getClass() == SOAPBindingImpl.class)
- {
- validateBinding(element, parents, valInfo);
- }
- else
- {
- ExtensibilityElement e = (ExtensibilityElement)element;
- valInfo.addError(
- messagegenerator.getString(_ERROR_INVALID_BINDING_ELEMENT, QUOTE + e.getElementType().getLocalPart() + QUOTE), element);
- }
- }
- // Binding Operation SOAP definition
- // A SOAP Operation may have a style defined in which case it must be document or rpc
- // and may have a soapAction uri defined
- else if (parents.get(0).getClass() == BindingOperationImpl.class)
- {
- if (element.getClass() == SOAPOperationImpl.class)
- {
- validateOperation(element, parents, valInfo);
- }
- else
- {
- ExtensibilityElement e = (ExtensibilityElement)element;
- valInfo.addError(
- messagegenerator.getString(
- _ERROR_INVALID_BINDING_OPERATION_ELEMENT,
- QUOTE + e.getElementType().getLocalPart() + QUOTE), element);
- }
-
- }
- else if (
- parents.get(0).getClass() == BindingInputImpl.class || parents.get(0).getClass() == BindingOutputImpl.class)
- {
- // validate the SOAP body
- if (element.getClass() == SOAPBodyImpl.class)
- {
- validateBody(element, parents, valInfo);
- }
- // valiate the SOAP header
- else if (element.getClass() == SOAPHeaderImpl.class)
- {
- validateHeader(element, parents, valInfo);
- }
- else
- {
- ExtensibilityElement e = (ExtensibilityElement)element;
- valInfo.addError(
- messagegenerator.getString(_ERROR_INVALID_HEADER_BODY_ELEMENT, QUOTE + e.getElementType().getLocalPart() + QUOTE), element);
- }
- }
- else if (parents.get(0).getClass() == BindingFaultImpl.class)
- {
- if (element.getClass() == SOAPFaultImpl.class)
- {
- validateFault(element, parents, valInfo);
- }
- else
- {
- ExtensibilityElement e = (ExtensibilityElement)element;
- valInfo.addError(
- messagegenerator.getString(_ERROR_INVALID_FAULT_ELEMENT, QUOTE + e.getElementType().getLocalPart() + QUOTE), element);
- }
- }
- // in this case there has been a SOAP element defined that is not defined for this point in the SOAP namespace
- else
- {
- ExtensibilityElement e = (ExtensibilityElement)element;
- valInfo.addError(
- messagegenerator.getString(
- _ERROR_INVALID_SOAP_ELEMENT_FOR_LOCATION,
- QUOTE + e.getElementType().getLocalPart() + QUOTE), element);
- }
-
- }
-
- /**
- * Ensure that the SOAP address has a value specified for it's uri and that the binding has a SOAP
- * Binding defined.
- *
- * @param element The SOAP address element.
- * @param parents A list of parents of the SOAP address element.
- * @param valInfo The validation info for this validation.
- */
- protected void validateAddress(Object element, List parents, IWSDL11ValidationInfo valInfo)
- {
- SOAPAddressImpl sa = (SOAPAddressImpl)element;
-
- String uri = sa.getLocationURI();
- if (uri == null || uri.equalsIgnoreCase(EMPTY_STRING))
- {
- valInfo.addError(messagegenerator.getString(_ERROR_NO_LOCATION_FOR_ADDRESS), sa);
- }
-
- Port port = (Port)parents.get(0);
-
- Binding binding = port.getBinding();
-
- if (!hasSoapBinding(binding))
- {
- valInfo.addError(
- messagegenerator.getString(
- _ERROR_NO_SOAPBINDING_FOR_ADDRESS,
- QUOTE + binding.getQName().getLocalPart() + QUOTE,
- QUOTE + port.getName() + QUOTE), sa);
- }
- }
-
- /**
- * Ensure the SOAP Binding defined is valid. A SOAP Binding must have a style of rpc or document
- * or no style defined (defaults to document.) A valid (non empty) URI must also be specified.
- *
- * @param element The SOAP binding element.
- * @param parents A list of parents of the SOAP binding element.
- * @param valInfo The validation info for this validation.
- */
- protected void validateBinding(Object element, List parents, IWSDL11ValidationInfo valInfo)
- {
- SOAPBindingImpl sb = (SOAPBindingImpl)element;
-
- String style = sb.getStyle();
- String uri = sb.getTransportURI();
-
- if (style != null && !style.equalsIgnoreCase(RPC) && !style.equalsIgnoreCase(DOCUMENT))
- {
- valInfo.addError(
- messagegenerator.getString(_ERROR_INVALID_BINDING_STYLE, QUOTE + sb.getStyle() + QUOTE), element);
- }
- if (uri.equalsIgnoreCase(EMPTY_STRING))
- {
- valInfo.addError(messagegenerator.getString(_ERROR_INVALID_BINDING_URI), element);
- }
- }
-
- /**
- * An operation may have a style defined. If it is defined it must be rpc or document. It may also have a
- * uri defined which must be non empty. It may have a soapAction defined as well.
- *
- * @param element The SOAP operation element.
- * @param parents A list of parents of the SOAP operation element.
- * @param valInfo The validation info for this validation.
- */
- protected void validateOperation(Object element, List parents, IWSDL11ValidationInfo valInfo)
- {
- SOAPOperation so = (SOAPOperation)element;
-
- String soapStyle = so.getStyle();
-
- if (soapStyle != null && !soapStyle.equalsIgnoreCase(RPC) && !soapStyle.equalsIgnoreCase(DOCUMENT))
- {
- valInfo.addError(messagegenerator.getString(_ERROR_INVALID_OPERATION_STYLE), element);
- }
-
- Binding binding = (Binding)parents.get(1);
- if (!hasSoapBinding(binding))
- {
- valInfo.addError(
- messagegenerator.getString(_ERROR_NO_SOAPBINDING_FOR_OPERATION, QUOTE + binding.getQName().getLocalPart() + QUOTE), so);
- }
- }
-
- /**
- * Validate the SOAP body. If encoded a body must have an encodingStyle. Also,
- * if specified, all of the parts listed must be defined parts and in the encoding use case, the parts
- * must have types defined.
- *
- * @param element The SOAP body element.
- * @param parents A list of parents of the SOAP body element.
- * @param valInfo The validation info for this validation.
- */
- protected void validateBody(Object element, List parents, IWSDL11ValidationInfo valInfo)
- {
- SOAPBodyImpl sb = (SOAPBodyImpl)element;
-
- String use = sb.getUse();
-
- // if the use = encoded then there must be encodingStyles.
- if (use != null && use.equalsIgnoreCase(ENCODED))
- {
- List encodingStyles = sb.getEncodingStyles();
- if (encodingStyles == null || encodingStyles.size() == 0)
- {
- valInfo.addError(messagegenerator.getString(_ERROR_INVALID_BODY_ENCODING_STYLE), sb);
- }
- }
- else if (use != null && !use.equalsIgnoreCase(LITERAL))
- {
- valInfo.addError(messagegenerator.getString(_ERROR_INVALID_BODY_USE, QUOTE + use + QUOTE), sb);
- }
-
- //Check that the parts are valid
- // parts must be defined in the message specified for the operation
- List parts = sb.getParts();
-
- if (parts != null)
- {
- Iterator partsIterator = parts.iterator();
- while (partsIterator.hasNext())
- {
- String part = (String)partsIterator.next();
- BindingOperation bo = (BindingOperation)parents.get(1);
- Operation o = bo.getOperation();
-
- if (o != null && !o.isUndefined())
- {
- // get the message from the input or output if it exists
- Message mess = null;
- if (parents.get(0).getClass() == BindingInputImpl.class)
- {
- Input input = o.getInput();
-
- if (input != null)
- {
- mess = input.getMessage();
- }
- }
- else if (parents.get(0).getClass() == BindingOutputImpl.class)
- {
- Output output = o.getOutput();
-
- if (output != null)
- {
- mess = output.getMessage();
- }
- }
-
- if (mess != null && !mess.isUndefined())
- {
- Part p = mess.getPart(part);
-
- if (p != null)
- {
- // if the use is encoded the parts must all have a type defined
- if (use != null && use.equalsIgnoreCase(ENCODED))
- {
- if (p.getTypeName() == null)
- {
- // part error - part needs to be type and isn't
- valInfo.addError(
- messagegenerator.getString(_ERROR_INVALID_BODY_PART_NOT_TYPE, QUOTE + part + QUOTE), sb);
- }
- }
- }
- else
- {
- //part error - part isn't defined
- valInfo.addError(
- messagegenerator.getString(_ERROR_INVALID_BODY_PART_UNDEFINED, QUOTE + part + QUOTE), sb);
- }
- }
- else
- {
- //part error - input isn't defined
- valInfo.addError(
- messagegenerator.getString(_ERROR_INVALID_BODY_PART_UNDEFINED, QUOTE + part + QUOTE), sb);
- }
- }
- else
- {
- // parts error - operation isn't defined
- valInfo.addError(
- messagegenerator.getString(_ERROR_INVALID_BODY_PART_UNDEFINED, QUOTE + part + QUOTE), sb);
- }
- }
- }
-
- Binding binding = (Binding)parents.get(2);
- if (!hasSoapBinding(binding))
- {
- valInfo.addError(
- messagegenerator.getString(_ERROR_NO_SOAPBINDING_FOR_BODY, QUOTE + binding.getQName().getLocalPart() + QUOTE), sb);
- }
- }
-
- /**
- * A SOAP header must have a message, part and use defined. If the use is encoded, must
- * also have a non-empty encodingStyle and namespace defined.
- * A SOAP header may have headerfaults defined as well.
- *
- * @param element The SOAP header element.
- * @param parents A list of parents of the SOAP header element.
- * @param valInfo The validation info for this validation.
- */
- protected void validateHeader(Object element, List parents, IWSDL11ValidationInfo valInfo)
- {
- SOAPHeaderImpl soapHeader = (SOAPHeaderImpl)element;
-
- QName messageQName = soapHeader.getMessage();
- Message message = ((Definition)parents.get(parents.size() - 1)).getMessage(messageQName);
- if (message == null)
- {
- // message undefined
- valInfo.addError(
- messagegenerator.getString(_ERROR_HEADER_MESSAGE_UNDEFINED, QUOTE + messageQName.getLocalPart() + QUOTE), soapHeader);
- }
- else
- {
- String partname = soapHeader.getPart();
- Part part = message.getPart(partname);
- if (part == null)
- {
- // part undefined
- valInfo.addError(
- messagegenerator.getString(
- _ERROR_HEADER_PART_UNDEFINED,
- QUOTE + partname + QUOTE,
- QUOTE + messageQName.getLocalPart() + QUOTE), soapHeader);
- }
- }
-
- String use = soapHeader.getUse();
- if (use != null && !use.equalsIgnoreCase(LITERAL) && !use.equalsIgnoreCase(ENCODED))
- {
- // use undefined
- valInfo.addError(
- messagegenerator.getString(_ERROR_HEADER_USE_UNDEFINED, QUOTE + use + QUOTE), soapHeader);
- }
-
- if (use.equalsIgnoreCase(ENCODED))
- {
- List encodingStyles = soapHeader.getEncodingStyles();
- if (encodingStyles == null || encodingStyles.isEmpty())
- {
- // no encodingStyle defined
- valInfo.addError(messagegenerator.getString(_ERROR_HEADER_ENCODINGSTYLE_UNDEFINED), soapHeader);
- }
-
- String namespace = soapHeader.getNamespaceURI();
- if (namespace == null || namespace.equalsIgnoreCase(EMPTY_STRING))
- {
- // no namespace defined
- valInfo.addError(messagegenerator.getString(_ERROR_HEADER_NAMESPACE_UNDEFINED), soapHeader);
- }
- }
-
- List headerFaults = soapHeader.getSOAPHeaderFaults();
- if (headerFaults != null)
- {
- Iterator iheaderFaults = headerFaults.iterator();
- while (iheaderFaults.hasNext())
- {
- validateHeaderFault(iheaderFaults.next(), parents, valInfo);
- }
- }
-
- Binding binding = (Binding)parents.get(2);
- if (!hasSoapBinding(binding))
- {
- valInfo.addError(
- messagegenerator.getString(_ERROR_NO_SOAPBINDING_FOR_HEADER, QUOTE + binding.getQName().getLocalPart() + QUOTE), soapHeader);
- }
- }
-
- /**
- * A SOAP headerfault must have a message, part and use defined. If the use is encoded, must
- * also have a non-empty encodingStyle and namespace defined.
- *
- * @param element The SOAP header fault element.
- * @param parents A list of parents of the SOAP header fault element.
- * @param valInfo The validation info for this validation.
- */
- protected void validateHeaderFault(Object element, List parents, IWSDL11ValidationInfo valInfo)
- {
- SOAPHeaderFaultImpl soapHeaderFault = (SOAPHeaderFaultImpl)element;
-
- QName messageQName = soapHeaderFault.getMessage();
- Message message = ((Definition)parents.get(parents.size() - 1)).getMessage(messageQName);
- if (message == null)
- {
- // message undefined
- valInfo.addError(
- messagegenerator.getString(_ERROR_HEADERFAULT_MESSAGE_UNDEFINED, QUOTE + messageQName.getLocalPart() + QUOTE), soapHeaderFault);
- }
- else
- {
- String partname = soapHeaderFault.getPart();
- Part part = message.getPart(partname);
- if (part == null)
- {
- // part undefined
- valInfo.addError(
- messagegenerator.getString(
- _ERROR_HEADERFAULT_PART_UNDEFINED,
- QUOTE + partname + QUOTE,
- QUOTE + messageQName.getLocalPart() + QUOTE), soapHeaderFault);
- }
- }
-
- String use = soapHeaderFault.getUse();
- if (use != null && !use.equalsIgnoreCase(LITERAL) && !use.equalsIgnoreCase(ENCODED))
- {
- // use undefined
- valInfo.addError(
- messagegenerator.getString(_ERROR_HEADERFAULT_USE_UNDEFINED, QUOTE + use + QUOTE), soapHeaderFault);
- }
-
- if (use.equalsIgnoreCase(ENCODED))
- {
- List encodingStyles = soapHeaderFault.getEncodingStyles();
- if (encodingStyles == null || encodingStyles.isEmpty())
- {
- // no encodingStyle defined
- valInfo.addError(
- messagegenerator.getString(_ERROR_HEADERFAULT_ENCODINGSTYLE_UNDEFINED), soapHeaderFault);
- }
-
- String namespace = soapHeaderFault.getNamespaceURI();
- if (namespace == null || namespace.equalsIgnoreCase(EMPTY_STRING))
- {
- // no namespace defined
- valInfo.addError(
- messagegenerator.getString(_ERROR_HEADERFAULT_NAMESPACE_UNDEFINED), soapHeaderFault);
- }
- }
- }
-
- /**
- * Validate the SOAP fault. A SOAP fault must have a name defined that corresponds with the name
- * specified in the portType. If encoded a fault must have an encodingStyle and a namespaceURI.
- *
- * @param element The SOAP fault element.
- * @param parents A list of parents of the SOAP fault element.
- * @param validationInfo The validation info for this validation.
- */
- protected void validateFault(Object element, List parents, IWSDL11ValidationInfo valInfo)
- {
- SOAPFaultImpl fault = (SOAPFaultImpl)element;
-
- String name = fault.getName();
-
- String parentName = ((BindingFault)parents.get(0)).getName();
-
- if (!name.equals(parentName))
- {
- valInfo.addError(
- messagegenerator.getString(_ERROR_INVALID_FAULT_NAME, QUOTE + name + QUOTE, QUOTE + parentName + QUOTE), fault);
- }
-
- }
-
- /**
- * Method hasSoapBinding. - helper Method
- * Given a binding returns true if it has a SOAP binding defined.
- *
- * @param binding - the SOAP binding to check
- * @return true if a binding has a SOAP binding defined, false otherwise
- */
- protected boolean hasSoapBinding(Binding binding)
- {
- if (binding != null)
- {
- List extelems = binding.getExtensibilityElements();
- if (extelems != null)
- {
- Iterator iextelems = extelems.iterator();
- while (iextelems.hasNext())
- {
- if (iextelems.next().getClass() == SOAPBindingImpl.class)
- {
- return true;
- }
- }
- }
- }
- return false;
- }
-}

Back to the top