diff options
Diffstat (limited to 'bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceFragment.java')
-rw-r--r-- | bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceFragment.java | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceFragment.java b/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceFragment.java deleted file mode 100644 index bd8edc753..000000000 --- a/bundles/org.eclipse.wst.ws.explorer/wsexplorer-src/org/eclipse/wst/ws/internal/explorer/platform/wsdl/fragment/impl/XSDGroupChoiceFragment.java +++ /dev/null @@ -1,168 +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 - *******************************************************************************/ -package org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.impl; - -import java.util.Hashtable; -import java.util.Vector; -import org.eclipse.emf.common.util.EList; -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.IXSDFragment; -import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.IXSDGroupChoiceFragment; -import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentConfiguration; -import org.eclipse.wst.ws.internal.explorer.platform.wsdl.fragment.XSDToFragmentController; -import org.eclipse.xsd.XSDModelGroup; -import org.eclipse.xsd.XSDParticle; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -public abstract class XSDGroupChoiceFragment extends XSDGroupFragment implements IXSDGroupChoiceFragment { - private XSDParticle[] choices_; - private Hashtable choiceIndexes_; - - public XSDGroupChoiceFragment(String id, String name, XSDToFragmentConfiguration config, XSDToFragmentController controller, XSDModelGroup xsdModelGroup) { - super(id, name, config, controller, xsdModelGroup); - choices_ = null; - choiceIndexes_ = new Hashtable(); - } - - public boolean processParameterValues(MultipartFormDataParser parser) throws MultipartFormDataException { - super.processParameterValues(parser); - String[] groupIDs = getGroupIDs(); - choiceIndexes_.clear(); - boolean paramsValid = true; - for (int i = 0; i < groupIDs.length; i++) { - String selectedChoiceFragID = parser.getParameter(groupIDs[i]); - int choiceIndex = 0; - IXSDFragment[] choiceFrags = getGroupMemberFragments(groupIDs[i]); - for (int j = 0; j < choiceFrags.length; j++) { - if (choiceFrags[j].getID().equals(selectedChoiceFragID)) { - choiceIndex = j; - paramsValid = (paramsValid && choiceFrags[j].validateAllParameterValues()); - break; - } - } - setChoiceIndex(groupIDs[i], choiceIndex); - } - return paramsValid; - } - - public boolean setParameterValuesFromInstanceDocuments(Element[] instanceDocuments) { - removeGroupIDs(); - choiceIndexes_.clear(); - boolean paramsValid = true; - if (instanceDocuments != null) { - for (int i = 0; i < instanceDocuments.length; i++) { - String groupID = createGroupChoiceInstance(0); - IXSDFragment[] choiceFrags = getGroupMemberFragments(groupID); - for (int j = 0; j < choiceFrags.length; j++) { - if (choiceFrags[j].getName().equals(trimPrefix(instanceDocuments[i].getTagName()))) { - XSDToFragmentConfiguration xsdConfig = choiceFrags[j].getXSDToFragmentConfiguration(); - Element[] childInstances = getInstanceDocumentPartition(instanceDocuments, i, xsdConfig.getMinOccurs(), xsdConfig.getMaxOccurs()); - if (!choiceFrags[j].setParameterValuesFromInstanceDocuments(childInstances)) - paramsValid = false; - setChoiceIndex(groupID, j); - if (childInstances.length > 0) - i = i + childInstances.length - 1; // minus 1 because there's an i++ in the outer for loop - break; - } - } - } - } - return paramsValid; - } - - private Element[] getInstanceDocumentPartition(Element[] instanceDocuments, int start, int minSize, int maxSize) { - String tagName = instanceDocuments[start].getTagName(); - int size = 1; - for (int i = start + 1; i < instanceDocuments.length; i++) { - if (instanceDocuments[i].getTagName().equals(tagName)) - size++; - else - break; - } - if (maxSize != FragmentConstants.UNBOUNDED && size > maxSize) { - size = size - minSize; - if (size > maxSize) - size = maxSize; - } - Element[] subset = new Element[size]; - for (int j = 0; j < subset.length; j++) { - subset[j] = instanceDocuments[start + j]; - } - return subset; - } - - public Element[] genInstanceDocumentsFromParameterValues(boolean genXSIType, Hashtable namespaceTable, Document doc) { - Vector instanceDocumentsCopy = new Vector(); - String[] groupIDs = getGroupIDs(); - for (int i = 0; i < groupIDs.length; i++) { - IXSDFragment[] choiceFrags = getGroupMemberFragments(groupIDs[i]); - int choiceIndex = getChoiceIndex(groupIDs[i]); - Element[] choiceFragInstances = choiceFrags[choiceIndex].genInstanceDocumentsFromParameterValues(genXSIType, namespaceTable, doc); - for (int j = 0; j < choiceFragInstances.length; j++) { - instanceDocumentsCopy.add(choiceFragInstances[j]); - } - } - Element[] instanceDocuments = new Element[instanceDocumentsCopy.size()]; - instanceDocumentsCopy.copyInto(instanceDocuments); - return instanceDocuments; - } - - public XSDParticle[] getChoices() { - if (choices_ == null) { - EList particles = getXSDModelGroup().getParticles(); - choices_ = new XSDParticle[particles.size()]; - for (int i = 0; i < choices_.length; i++) { - choices_[i] = (XSDParticle)particles.get(i); - } - } - return choices_; - } - - public String createGroupChoiceInstance(int choiceIndex) { - getChoices(); - if (choiceIndex < 0 || choiceIndex > choices_.length - 1) - return null; - String groupID = createGroupInstance(); - setChoiceIndex(groupID, choiceIndex); - return groupID; - } - - public String createInstance() { - return createGroupChoiceInstance(0); - } - - public int getChoiceIndex(String groupID) { - Integer index = (Integer)choiceIndexes_.get(groupID); - if (index != null) - return index.intValue(); - else - return 0; - } - - public void setChoiceIndex(String groupID, int choiceIndex) { - choiceIndexes_.put(groupID, new Integer(choiceIndex)); - } - - public boolean validateAllParameterValues() - { - String[] groupIDs = getGroupIDs(); - for (int i = 0; i < groupIDs.length; i++) - { - int selectionIndex = getChoiceIndex(groupIDs[i]); - if (!getGroupMemberFragments(groupIDs[i])[selectionIndex].validateAllParameterValues()) - return false; - } - return true; - } -} |