diff options
Diffstat (limited to 'bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddPartCommand.java')
-rw-r--r-- | bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddPartCommand.java | 210 |
1 files changed, 0 insertions, 210 deletions
diff --git a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddPartCommand.java b/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddPartCommand.java deleted file mode 100644 index 2ed9d68c2..000000000 --- a/bundles/org.eclipse.wst.wsdl.ui/src/org/eclipse/wst/wsdl/ui/internal/commands/AddPartCommand.java +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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.wsdl.ui.internal.commands; - -import java.util.Iterator; -import java.util.List; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsdl.Definition; -import org.eclipse.wst.wsdl.Message; -import org.eclipse.wst.wsdl.Part; -import org.eclipse.wst.wsdl.WSDLElement; -import org.eclipse.wst.wsdl.WSDLFactory; -import org.eclipse.wst.wsdl.XSDSchemaExtensibilityElement; -import org.eclipse.wst.wsdl.internal.impl.PartImpl; -import org.eclipse.wst.wsdl.internal.impl.WSDLElementImpl; -import org.eclipse.wst.wsdl.util.WSDLConstants; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDSchema; - - -public final class AddPartCommand extends WSDLElementCommand -{ - private Message message; - private String name; - private Part part; - private Part originalPart; - - private QName typeOrElementName; - private boolean useType = true; - - public AddPartCommand - (Message message, - String name) - { - this.message = message; - this.name = name; - } - - public AddPartCommand - (Message message, - String name, - String namespace, - String localName, - boolean useType) - { - this.message = message; - this.name = name; - this.useType = useType; - typeOrElementName = new QName(namespace,localName); - } - - /* - * Constructor used to create a Part based on the given Part. In essence, this will - * create a copy of the given Part. - */ - public AddPartCommand - (Message message, - Part originalPart, - String name) - { - this.message = message; - this.name = name; - this.originalPart = originalPart; - } - - /** - * @deprecated - */ - public AddPartCommand - (Message message, - String name, - String namespace, - String localName) - { - this.message = message; - this.name = name; - typeOrElementName = new QName(namespace,localName); - } - - public void setName(String name) - { - this.name = name; - } - - public WSDLElement getWSDLElement() - { - return part; - } - - public void run() - { - if (typeOrElementName == null) - typeOrElementName = createDefaultTypeName(); - - // Add namespace to the Definitions if it is not there yet. - addNamespaceDeclaration(); - - part = WSDLFactory.eINSTANCE.createPart(); - part.setName(name); - - if (originalPart == null) { - if (useType) - part.setTypeName(typeOrElementName); - else - part.setElementName(typeOrElementName); - } - else { - if (originalPart.getTypeName() != null) - part.setTypeName(originalPart.getTypeName()); - - String newElementName = null; - if (originalPart.getElementName() != null) { - - boolean createNewElement = true; - if (originalPart.getElementDeclaration() != null && originalPart.getElementDeclaration().getElement() != null) { - if (!(originalPart.getElementDeclaration().getElement() instanceof IDOMNode)) { - createNewElement = false; - } - } - - if (createNewElement) { - newElementName = getNewNameHelper(name, originalPart.getEnclosingDefinition(), false); - part.setElementName(new QName(originalPart.getElementName().getNamespaceURI(), newElementName)); - - if (originalPart.getEnclosingDefinition() != null) { - if (newElementName == null) { - newElementName = getNewNameHelper(name, originalPart.getEnclosingDefinition(), false); - } - - AddXSDElementDeclarationCommand elementAction = new AddXSDElementDeclarationCommand(originalPart.getEnclosingDefinition(), newElementName); - elementAction.run(); - } - } - else { - part.setElementName(new QName(originalPart.getElementName().getNamespaceURI(), originalPart.getElementName().getLocalPart())); - } - } - } - - part.setEnclosingDefinition(message.getEnclosingDefinition()); - ((PartImpl)part).reconcileReferences(false); - message.addPart(part); - } - - private void addNamespaceDeclaration() - { - Definition definition = message.getEnclosingDefinition(); - if (!definition.getNamespaces().containsValue(typeOrElementName.getNamespaceURI())) - { - definition.addNamespace("p",typeOrElementName.getNamespaceURI()); - ((WSDLElementImpl)definition).updateElement(false); - } - } - - private QName createDefaultTypeName() - { - QName qname = new QName(WSDLConstants.SCHEMA_FOR_SCHEMA_URI_2001,"string"); - return qname; - } - - private String getNewNameHelper(String base, Definition def, boolean isType) - { - String name = base; - int count = 0; - - // Ugly.... Redo this... - // Get a list of Elements... - List elementList = null; - if (def.getETypes() != null) { - List xsdsList = def.getETypes().getEExtensibilityElements(); - if (xsdsList != null) { - Iterator xsdsIterator = xsdsList.iterator(); - XSDSchemaExtensibilityElement xsdElement = (XSDSchemaExtensibilityElement) xsdsIterator.next(); - XSDSchema schema = xsdElement.getSchema(); - if (schema != null) { - elementList = schema.getElementDeclarations(); - } - } - } - - if (elementList != null) { - int index = 0; - while (index < elementList.size()) { - XSDElementDeclaration elementDeclaration = (XSDElementDeclaration) elementList.get(index); - - if (name.equals(elementDeclaration.getName())) { - count++; - name = name + count; - index = 0; - } - else { - index++; - } - } - } - - return name; - } -} |