Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2908.java')
-rw-r--r--bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2908.java297
1 files changed, 0 insertions, 297 deletions
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2908.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2908.java
deleted file mode 100644
index 5208c8af3..000000000
--- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2908.java
+++ /dev/null
@@ -1,297 +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.profile.validator.impl.wsdl;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.wsdl.Binding;
-import javax.xml.namespace.QName;
-
-import org.eclipse.wst.wsi.internal.core.WSIConstants;
-import org.eclipse.wst.wsi.internal.core.WSIException;
-import org.eclipse.wst.wsi.internal.core.WSITag;
-import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException;
-import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException;
-import org.eclipse.wst.wsi.internal.core.profile.TestAssertion;
-import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext;
-import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess;
-import org.eclipse.wst.wsi.internal.core.report.AssertionResult;
-import org.eclipse.wst.wsi.internal.core.xml.XMLUtils;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * AP2908
- *
- * <context>For a candidate wsdl:binding</context>
- * <assertionDescription>The mime:part element in a DESCRIPTION does not have a name attribute.</assertionDescription>
- */
-public class AP2908 extends AssertionProcess implements WSITag
-{
- private final WSDLValidatorImpl validator;
-
- /**
- * @param WSDLValidatorImpl
- */
- public AP2908(WSDLValidatorImpl impl)
- {
- super(impl);
- this.validator = impl;
- }
-
- /* Validates the test assertion.
- * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext)
- */
- public AssertionResult validate(
- TestAssertion testAssertion,
- EntryContext entryContext)
- throws WSIException
- {
- try
- {
- // Getting a wsdl:binding
- Binding wsdlBinding = (Binding) entryContext.getEntry().getEntryDetail();
-
- // Since WSDL4J 1.4 ignores any attributes of mime:part, use Xerces 2.6.2 instead
- Document doc = XMLUtils.parseXMLDocument(validator.wsdlURL);
-
- // Finding the wsdl:binding element being processed
- Element binding = getBindingElement(
- doc.getDocumentElement(), wsdlBinding.getQName().getLocalPart());
-
- List ops = getChildElements(binding, WSDL_OPERATION);
-
- // A variable that indicates a binding contains at least one
- // mime:multipartRelated element
- boolean multipartsFound = false;
-
- // Going through the operation elements
- for (int i = 0; i < ops.size(); i++)
- {
- Element bindingOperation = (Element) ops.get(i);
-
- // Getting wsdl:input and wsdl:output elements of an operation
- Element bindingInput = getChildElement(bindingOperation, WSDL_INPUT);
- Element bindingOutput = getChildElement(bindingOperation, WSDL_OUTPUT);
-
- // Collecting all the mime:multipartRelated elements from wsdl:input and wsdl:output
- List inputMultiparts = getMimeMultipartElements(bindingInput);
- List outputMultiparts = getMimeMultipartElements(bindingOutput);
-
- // If the wsdl:input contains mime:multipartRelated elements
- if (!inputMultiparts.isEmpty())
- {
- multipartsFound = true;
-
- // If there is a mime:part element containing a name attribute,
- // the assertion failed
- if (containsInvalidMimePart(inputMultiparts))
- {
- throw new AssertionFailException("The invalid "
- + "mime:part element is in the wsdl:input of the \""
- + bindingOperation.getAttribute(WSIConstants.ATTR_NAME)
- + "\" binding operation.");
- }
- }
-
- // If the wsdl:output contains mime:multipartRelated elements
- if (!outputMultiparts.isEmpty())
- {
- multipartsFound = true;
-
- // If there is a mime:part element containing a name attribute,
- // the assertion failed
- if (containsInvalidMimePart(outputMultiparts))
- {
- throw new AssertionFailException("The invalid "
- + "mime:part element is in the wsdl:output of the \""
- + bindingOperation.getAttribute(WSIConstants.ATTR_NAME)
- + "\" binding operation.");
- }
- }
- }
- // If the binding contains no one mime:multipartRelated element,
- // the assertion is not applicable
- if (!multipartsFound)
- throw new AssertionNotApplicableException();
- }
- catch (IOException ioe)
- {
- result = AssertionResult.RESULT_NOT_APPLICABLE;
- }
- catch (AssertionNotApplicableException anae)
- {
- result = AssertionResult.RESULT_NOT_APPLICABLE;
- }
- catch (AssertionFailException afe)
- {
- result = AssertionResult.RESULT_FAILED;
- failureDetail = validator.createFailureDetail(
- afe.getMessage(), entryContext);
- }
- // Return assertion result
- return validator.createAssertionResult(
- testAssertion, result, failureDetail);
- }
-
- /**
- * Validates mime:part elements for each of mime:multipartRelated element.
- * @param multiparts a list of mime:multipartRelated elements.
- * @return true, if any mime:part contains a name attribute, false otherwise.
- */
- private boolean containsInvalidMimePart(List multiparts) {
- // Going through a list of mime:multipartRelated elements
- for (int i = 0; i < multiparts.size(); i++)
- {
- // Getting a list of mime:part elements
- List mimeParts =
- getChildElements((Element) multiparts.get(i), WSDL_MIME_PART);
- // Going through all the mime:part elements
- for (int j = 0; j < mimeParts.size(); j++)
- {
- Element mimePart = (Element) mimeParts.get(j);
- // If the mime:part element contains a name attribute,
- // return true
- if (mimePart.getAttributeNode(WSIConstants.ATTR_NAME) != null)
- {
- return true;
- }
- }
- }
- // No one invalid mime:part element is found, return false
- return false;
- }
-
- /**
- * Collects all mime:multipartRelated elements.
- * @param parent an element which the child elements are gathered from.
- * @return the list of mime:multipartRelated elements found.
- */
- private List getMimeMultipartElements(Element parent)
- {
- List mimeMultipartElements = new ArrayList();
- // If the parent is not null
- if (parent != null)
- {
- // Getting the first parent's child
- Element child = XMLUtils.getFirstChild(parent);
- while (child != null)
- {
- // If the child is a mime:multipartRelated element
- if (child.getNamespaceURI().equals(WSDL_MIME_MULTIPART.getNamespaceURI())
- && child.getLocalName().equals(WSDL_MIME_MULTIPART.getLocalPart()))
- {
- // Adding the element to the list being returned
- mimeMultipartElements.add(child);
-
- // Getting mime:partS from the element
- List mimeParts = getChildElements(child, WSDL_MIME_PART);
- // Going through all the mime:part elements
- for (int i = 0; i < mimeParts.size(); i++)
- {
- // Collecting all the mime:multipartRelated elements of this mime:part
- List elems = getMimeMultipartElements((Element) mimeParts.get(i));
- // Adding the elements to the list being returned
- mimeMultipartElements.addAll(elems);
- }
- }
- // Getting the next child
- child = XMLUtils.getNextSibling(child);
- }
- }
-
- return mimeMultipartElements;
- }
-
- /**
- * Looks for an element's child element.
- * @param parent a parent element.
- * @param childName a qualified element name being found.
- * @return an element or null if it is not found.
- */
- private Element getChildElement(Element parent, QName childName)
- {
- // Getting the first parent's child
- Element child = XMLUtils.getFirstChild(parent);
- while (child != null)
- {
- // If the child has the required qualified name
- if (child.getNamespaceURI().equals(childName.getNamespaceURI())
- && child.getLocalName().equals(childName.getLocalPart()))
- {
- // return the child
- return child;
- }
- // Getting the next child
- child = XMLUtils.getNextSibling(child);
- }
- return null;
- }
-
- /**
- * Collects element's child elements.
- * @param parent a parent element.
- * @param childName a qualified element name being found.
- * @return a list of elements found.
- */
- private List getChildElements(Element parent, QName childName)
- {
- List children = new ArrayList();
- if (parent != null)
- {
- // Getting the first parent's child
- Element child = XMLUtils.getFirstChild(parent);
- while (child != null)
- {
- // If the child has the required qualified name
- if (child.getNamespaceURI().equals(childName.getNamespaceURI())
- && child.getLocalName().equals(childName.getLocalPart()))
- {
- // Adding the child to the list
- children.add(child);
- }
- // Getting the next binding's child
- child = XMLUtils.getNextSibling(child);
- }
- }
- return children;
- }
-
- /**
- * Looks for wsdl:binding element.
- * @param definitions a wsdl:definitions element.
- * @param bindingName a name of wsdl:binding element.
- * @return a wsdl:binding element or null if it is not found.
- */
- private Element getBindingElement(Element definitions, String bindingName)
- {
- // Getting the first definitions' child
- Element child = XMLUtils.getFirstChild(definitions);
- while (child != null)
- {
- // If definitions' child is wsdl:binding element
- // and is the same that is being processed by WSDLValidator
- if (child.getNamespaceURI().equals(WSDL_BINDING.getNamespaceURI())
- && child.getLocalName().equals(WSDL_BINDING.getLocalPart())
- && child.getAttribute(WSIConstants.ATTR_NAME).equals(bindingName))
- {
- // return the wsdl:binding element
- return child;
- }
- // Getting the next definitions' child
- child = XMLUtils.getNextSibling(child);
- }
- // return null, is there is no such wsdl:binding
- return null;
- }
-} \ No newline at end of file

Back to the top