diff options
Diffstat (limited to 'bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDElementFragment.java')
-rw-r--r-- | bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDElementFragment.java | 297 |
1 files changed, 0 insertions, 297 deletions
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDElementFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDElementFragment.java deleted file mode 100644 index 4c1b3cba5..000000000 --- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDElementFragment.java +++ /dev/null @@ -1,297 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 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 - * yyyymmdd bug Email and other contact information - * -------- -------- ----------------------------------------------------------- - * 20060119 123539 jesper@selskabet.org - Jesper Møller - *******************************************************************************/ -package org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl; - -import java.util.Hashtable; -import java.util.Vector; -import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataException; -import org.eclipse.wst.ws.internal.explorer.platform.util.MultipartFormDataParser; -import org.eclipse.wst.ws.internal.explorer.platform.wsdl.constants.FragmentConstants; -import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDElementFragment; -import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDFragment; -import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDForm; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -public class XSDElementFragment extends XSDDelegationFragment implements IXSDElementFragment -{ - private int minOccurs_; - private int maxOccurs_; - private boolean isNil_; - - - public XSDElementFragment(String id, String name, XSDToFragmentConfiguration config) - { - super(id, name, config); - if (config != null) - { - minOccurs_ = config.getMinOccurs(); - maxOccurs_ = config.getMaxOccurs(); - } - else - { - minOccurs_ = FragmentConstants.DEFAULT_MIN_OCCURS; - maxOccurs_ = FragmentConstants.DEFAULT_MAX_OCCURS; - } - } - - public boolean processParameterValues(MultipartFormDataParser parser) throws MultipartFormDataException - { - IXSDFragment elementTypeFragment = getXSDDelegationFragment(); - setIsNil(parser); - if(isNil_)return true; - - if (!elementTypeFragment.processParameterValues(parser)) - return false; - String[] params = getParameterValues(elementTypeFragment.getID()); - if (params != null && !withinRange(params.length)) - return false; - return true; - } - - public boolean setIsNil(MultipartFormDataParser parser) throws MultipartFormDataException - { - String nil = parser.getParameter(getNilID()); - if(nil != null) isNil_ = true; - else isNil_ = false; - return isNil_; - } - - public boolean validateAllParameterValues() - { - IXSDFragment elementTypeFragment = getXSDDelegationFragment(); - String[] params = getParameterValues(elementTypeFragment.getID()); - if (params != null && !withinRange(params.length)) - return false; - if (!elementTypeFragment.validateAllParameterValues()) - return false; - return true; - } - - public boolean validateParameterValues(String paramKey) - { - String[] params = getParameterValues(paramKey); - if (params != null && !withinRange(params.length)) - return false; - if (!getXSDDelegationFragment().validateParameterValues(paramKey)) - return false; - return true; - } - - public boolean validateParameterValue(String paramKey, int paramIndex) - { - if (!withinRange(paramIndex + 1)) - return false; - XSDElementDeclaration xsdElement = (XSDElementDeclaration)getXSDToFragmentConfiguration().getXSDComponent(); - String param = getParameterValue(paramKey, paramIndex); - if (param != null && param.length() <= 0 && !xsdElement.isNillable()) - return false; - if (!getXSDDelegationFragment().validateParameterValue(paramKey, paramIndex)) - return false; - return true; - } - - public void setXSDToFragmentConfiguration(XSDToFragmentConfiguration config) - { - super.setXSDToFragmentConfiguration(config); - minOccurs_ = config.getMinOccurs(); - maxOccurs_ = config.getMaxOccurs(); - } - - public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments) - { - Element[] instanceDocumentsCopy = instanceDocuments; - XSDToFragmentConfiguration config = getXSDToFragmentConfiguration(); - String wsdlPartName = config.getWSDLPartName(); - NodeList nl = instanceDocumentsCopy[0].getChildNodes(); - - if(instanceDocumentsCopy[0].hasAttribute(XSI_NIL_ATTRIBUTE)){ - String nil = instanceDocumentsCopy[0].getAttribute(XSI_NIL_ATTRIBUTE); - if(nil.equals(TRUE)) isNil_ = true; - } - - - if (config.getIsWSDLPart() && config.getStyle() == FragmentConstants.STYLE_RPC && wsdlPartName != null && wsdlPartName.length() > 0 && instanceDocumentsCopy.length == 1 && wsdlPartName.equals(instanceDocumentsCopy[0].getTagName())) - { - Vector childElements = new Vector(); - for (int i = 0; i < nl.getLength(); i++) - { - Node node = nl.item(i); - if (node.getNodeType() == Node.ELEMENT_NODE) - childElements.add(node); - } - instanceDocumentsCopy = (Element[])childElements.toArray(new Element[0]); - } - IXSDFragment elementTypeFragment = getXSDDelegationFragment(); - instanceDocumentsCopy = getInstanceDocumentsByTagName(instanceDocumentsCopy, getName()); - return elementTypeFragment.setParameterValuesFromInstanceDocuments(setElementsTagName(instanceDocumentsCopy, elementTypeFragment.getName())); - } - - public static String XSI_NIL_ATTRIBUTE = "xsi:nil"; - public static String TRUE = "true"; - public Element[] genInstanceDocumentsFromParameterValues(boolean genXSIType, Hashtable namespaceTable, Document doc) - { - - Element[] instanceDocuments = getXSDDelegationFragment().genInstanceDocumentsFromParameterValues(genXSIType, namespaceTable, doc); - if(isNil_){ - for(int j=0;j < instanceDocuments.length;j++){ - instanceDocuments[j].setAttribute(XSI_NIL_ATTRIBUTE,TRUE); - NodeList nodeList = instanceDocuments[j].getChildNodes(); - int length = nodeList.getLength(); - for(int i =0;i < length;i++){ - instanceDocuments[j].removeChild(nodeList.item(0)); - } - } - } - instanceDocuments = setElementsTagName(instanceDocuments, getInstanceDocumentTagName(namespaceTable)); - XSDToFragmentConfiguration config = getXSDToFragmentConfiguration(); - String wsdlPartName = config.getWSDLPartName(); - if (config.getIsWSDLPart() && config.getStyle() == FragmentConstants.STYLE_RPC && wsdlPartName != null && wsdlPartName.length() > 0) - { - Element[] instanceDocumentsCopy = instanceDocuments; - instanceDocuments = new Element[1]; - instanceDocuments[0] = doc.createElement(wsdlPartName); - for (int i = 0; i < instanceDocumentsCopy.length; i++) - { - if (instanceDocumentsCopy[i] != null) - instanceDocuments[0].appendChild(instanceDocumentsCopy[i]); - } - } - return instanceDocuments; - } - - protected boolean isInstanceNamespaceQualified() - { - XSDToFragmentConfiguration config = getXSDToFragmentConfiguration(); - if (config.getPartEncoding() == FragmentConstants.ENCODING_LITERAL) - { - XSDElementDeclaration xsdElement = (XSDElementDeclaration)config.getXSDComponent(); - // Try to resolve the element, since an element with a ref can never be global - if (xsdElement.getResolvedElementDeclaration() != null) - xsdElement = xsdElement.getResolvedElementDeclaration(); - - if (xsdElement.isGlobal()) - return true; - else - { - if (xsdElement.isSetForm()) - return (xsdElement.getForm().getValue() == XSDForm.QUALIFIED); - else - return (xsdElement.getSchema().getElementFormDefault().getValue() == XSDForm.QUALIFIED); - } - } - else - return false; - } - - protected String getInstanceDocumentTagName(Hashtable namespaceTable) - { - XSDToFragmentConfiguration config = getXSDToFragmentConfiguration(); - XSDElementDeclaration xsdElement = (XSDElementDeclaration)config.getXSDComponent(); - StringBuffer tagName = new StringBuffer(); - if (isInstanceNamespaceQualified()) - { - String nsURI = null; - // port to org.eclipse.xsd - if (xsdElement.getResolvedElementDeclaration() != null) - nsURI = xsdElement.getResolvedElementDeclaration().getTargetNamespace(); - else - nsURI = xsdElement.getTargetNamespace(); - if (nsURI != null && nsURI.length() > 0) - { - String prefix = getPrefixFromNamespaceURI(nsURI, namespaceTable); - tagName.append(prefix); - tagName.append(FragmentConstants.COLON); - } - } - String xsdElementName = xsdElement.getName(); - if (xsdElementName == null || xsdElementName.length() <= 0) - { - // port to org.eclipse.xsd - if (xsdElement.getResolvedElementDeclaration() != null) - xsdElementName = xsdElement.getResolvedElementDeclaration().getName(); - else - xsdElementName = getName(); - } - tagName.append(xsdElementName); - return tagName.toString(); - } - - private boolean withinRange(int size) - { - if (size < minOccurs_) - return false; - if (maxOccurs_ != FragmentConstants.UNBOUNDED && size > maxOccurs_) - return false; - return true; - } - - public void setMinOccurs(int minOccurs) - { - minOccurs_ = minOccurs; - } - - public int getMinOccurs() - { - return minOccurs_; - } - - public void setMaxOccurs(int maxOccurs) - { - maxOccurs_ = maxOccurs; - } - - public int getMaxOccurs() - { - return maxOccurs_; - } - - public boolean isNillable() - { - if(getXSDToFragmentConfiguration().getXSDComponent().getElement().getAttribute("nillable").equals("true")) - return true; - return false; - } - - public boolean isNil() - { - return isNil_; - } - - - public String getNilID() - { - return getID() + IXSDElementFragment.NIL; - } - - public String getInformationFragment() - { - return "/wsdl/fragment/XSDDefaultInfoFragmentJSP.jsp"; - } - - public String getReadFragment() - { - return "/wsdl/fragment/XSDElementRFragmentJSP.jsp"; - } - - public String getWriteFragment() - { - return "/wsdl/fragment/XSDElementWFragmentJSP.jsp"; - } - -} |