diff options
Diffstat (limited to 'bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeDeclarationCommand.java')
-rw-r--r-- | bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeDeclarationCommand.java | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeDeclarationCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeDeclarationCommand.java deleted file mode 100644 index 15355640eb..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeDeclarationCommand.java +++ /dev/null @@ -1,176 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2006 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.xsd.ui.internal.common.commands; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils; -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDAttributeGroupDefinition; -import org.eclipse.xsd.XSDAttributeUse; -import org.eclipse.xsd.XSDComplexTypeDefinition; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDModelGroup; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.util.XSDConstants; -import org.w3c.dom.Text; - -public class AddXSDAttributeDeclarationCommand extends BaseCommand -{ - XSDComplexTypeDefinition xsdComplexTypeDefinition; - XSDModelGroup xsdModelGroup; - XSDConcreteComponent parent; - boolean isReference; - - public AddXSDAttributeDeclarationCommand(String label, XSDComplexTypeDefinition xsdComplexTypeDefinition) - { - super(label); - this.xsdComplexTypeDefinition = xsdComplexTypeDefinition; - } - - public AddXSDAttributeDeclarationCommand(String label, XSDConcreteComponent parent) - { - super(label); - this.parent = parent; - } - - public void execute() - { - XSDAttributeDeclaration attribute = XSDFactory.eINSTANCE.createXSDAttributeDeclaration(); - try - { - if (parent == null) - { - beginRecording(xsdComplexTypeDefinition.getElement()); - if (!isReference) - { - attribute.setName(getNewName("NewAttribute")); //$NON-NLS-1$ - attribute.setTypeDefinition(xsdComplexTypeDefinition.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string")); //$NON-NLS-1$ - } - else - { - attribute.setResolvedAttributeDeclaration(setGlobalAttributeReference(xsdComplexTypeDefinition.getSchema())); - } - XSDAttributeUse attributeUse = XSDFactory.eINSTANCE.createXSDAttributeUse(); - attributeUse.setAttributeDeclaration(attribute); - attributeUse.setContent(attribute); - - if (xsdComplexTypeDefinition.getAttributeContents() != null) - { - xsdComplexTypeDefinition.getAttributeContents().add(attributeUse); - formatChild(xsdComplexTypeDefinition.getElement()); - } - } - else - { - beginRecording(parent.getElement()); - if (parent instanceof XSDSchema) - { - XSDSchema xsdSchema = (XSDSchema) parent; - attribute = createGlobalXSDAttributeDeclaration(xsdSchema); - } - else if (parent instanceof XSDAttributeGroupDefinition) - { - if (!isReference) - { - attribute.setTypeDefinition(parent.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string")); //$NON-NLS-1$ - - List list = new ArrayList(); - Iterator i = ((XSDAttributeGroupDefinition) parent).getResolvedAttributeGroupDefinition().getAttributeUses().iterator(); - while (i.hasNext()) - { - XSDAttributeUse use = (XSDAttributeUse) i.next(); - list.add(use.getAttributeDeclaration()); - } - attribute.setName(XSDCommonUIUtils.createUniqueElementName("NewAttribute", list)); //$NON-NLS-1$ - } - else - { - attribute.setResolvedAttributeDeclaration(setGlobalAttributeReference(parent.getSchema())); - } - - XSDAttributeUse attributeUse = XSDFactory.eINSTANCE.createXSDAttributeUse(); - attributeUse.setAttributeDeclaration(attribute); - attributeUse.setContent(attribute); - - ((XSDAttributeGroupDefinition) parent).getResolvedAttributeGroupDefinition().getContents().add(attributeUse); - formatChild(parent.getElement()); - } - } - } - finally - { - endRecording(); - } - addedXSDConcreteComponent = attribute; - } - - ArrayList names; - - protected String getNewName(String description) - { - ArrayList usedAttributeNames = new ArrayList(); - usedAttributeNames.addAll(XSDCommonUIUtils.getAllAttributes(xsdComplexTypeDefinition)); - usedAttributeNames.addAll(XSDCommonUIUtils.getInheritedAttributes(xsdComplexTypeDefinition)); - return XSDCommonUIUtils.createUniqueElementName(description, usedAttributeNames); //$NON-NLS-1$ - } - - public void setReference(boolean isReference) - { - this.isReference = isReference; - } - - protected XSDAttributeDeclaration createGlobalXSDAttributeDeclaration(XSDSchema xsdSchema) - { - ensureSchemaElement(xsdSchema); - XSDAttributeDeclaration attribute = XSDFactory.eINSTANCE.createXSDAttributeDeclaration(); - attribute.setTypeDefinition(xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("string")); //$NON-NLS-1$ - attribute.setName(XSDCommonUIUtils.createUniqueElementName("NewAttribute", xsdSchema.getAttributeDeclarations())); //$NON-NLS-1$ - Text textNode = xsdSchema.getDocument().createTextNode("\n"); //$NON-NLS-1$ - xsdSchema.getElement().appendChild(textNode); - xsdSchema.getContents().add(attribute); - return attribute; - } - - protected XSDAttributeDeclaration setGlobalAttributeReference(XSDSchema xsdSchema) - { - List list = xsdSchema.getAttributeDeclarations(); - XSDAttributeDeclaration referencedAttribute = null; - boolean isUserDefined = false; - for (Iterator i = list.iterator(); i.hasNext(); ) - { - Object obj = i.next(); - if (obj instanceof XSDAttributeDeclaration) - { - XSDAttributeDeclaration attr = (XSDAttributeDeclaration) obj; - if (!XSDConstants.SCHEMA_INSTANCE_URI_2001.equals(attr.getTargetNamespace())) - { - referencedAttribute = attr; - isUserDefined = true; - break; - } - } - } - if (!isUserDefined) - { - referencedAttribute = createGlobalXSDAttributeDeclaration(xsdSchema); - Text textNode = xsdSchema.getDocument().createTextNode("\n"); //$NON-NLS-1$ - xsdSchema.getElement().appendChild(textNode); - xsdSchema.getContents().add(referencedAttribute); - } - - return referencedAttribute; - } - -} |