Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java168
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;
- }
-}

Back to the top