From 2a444004802173fa97afbc389fc4a6600b6d3f88 Mon Sep 17 00:00:00 2001 From: lresende Date: Tue, 10 Nov 2009 19:19:55 +0000 Subject: moving SDO branches git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@834614 13f79535-47bb-0310-9956-ffa450edef68 --- .../sdo/helper/BaseSDOExtendedMetaDataImpl.java | 167 --------------------- 1 file changed, 167 deletions(-) delete mode 100644 branches/sdo-1.1-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/BaseSDOExtendedMetaDataImpl.java (limited to 'branches/sdo-1.1-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/BaseSDOExtendedMetaDataImpl.java') diff --git a/branches/sdo-1.1-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/BaseSDOExtendedMetaDataImpl.java b/branches/sdo-1.1-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/BaseSDOExtendedMetaDataImpl.java deleted file mode 100644 index 88c714f8bf..0000000000 --- a/branches/sdo-1.1-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/BaseSDOExtendedMetaDataImpl.java +++ /dev/null @@ -1,167 +0,0 @@ -/** - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.tuscany.sdo.helper; - -import org.eclipse.emf.ecore.EAttribute; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EClassifier; -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.ecore.EReference; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.emf.ecore.ETypedElement; -import org.eclipse.emf.ecore.EcoreFactory; -import org.eclipse.emf.ecore.EcorePackage; -import org.eclipse.emf.ecore.util.BasicExtendedMetaData; -import org.eclipse.emf.ecore.util.ExtendedMetaData; -import org.eclipse.emf.ecore.xml.type.XMLTypePackage; - -/** - * A BasicExtendedMetaData that uses a supplied (SDO) ecore factory to create properties and types. - */ -public class BaseSDOExtendedMetaDataImpl extends BasicExtendedMetaData -{ - protected EcoreFactory ecoreFactory = EcoreFactory.eINSTANCE; - protected DemandMetaData demandMetaData = new DemandMetaData(); - - public static class DemandMetaData { - EClassifier getEObject() { return EcorePackage.eINSTANCE.getEObject(); } - EClassifier getAnyType() { return XMLTypePackage.eINSTANCE.getAnyType(); } - EClassifier getAnySimpleType() { return XMLTypePackage.eINSTANCE.getAnySimpleType(); } - EClassifier getXMLTypeDocumentRoot() { return XMLTypePackage.eINSTANCE.getXMLTypeDocumentRoot(); } - } - - public BaseSDOExtendedMetaDataImpl(EPackage.Registry registry) - { - super(registry); - } - - public EPackage demandPackage(String namespace) - { - EPackage ePackage = demandRegistry.getEPackage(namespace); - if (ePackage == null) - { - ePackage = ecoreFactory.createEPackage(); - ePackage.setNsURI(namespace); - setQualified(ePackage, namespace != null); - if (namespace != null) - { - ePackage.setNsPrefix - (namespace.equals(ExtendedMetaData.XMLNS_URI) ? - namespace.equals(ExtendedMetaData.XML_URI) ? - "xml" : - "xmlns" : - computePrefix(namespace)); - } - demandRegistry.put(namespace, ePackage); - - // demandDocumentRoot(ePackage); - - EClass documentRootEClass = ecoreFactory.createEClass(); - documentRootEClass.getESuperTypes().add(demandMetaData.getXMLTypeDocumentRoot()); - documentRootEClass.setName("DocumentRoot"); - ePackage.getEClassifiers().add(documentRootEClass); - setDocumentRoot(documentRootEClass); - } - return ePackage; - } - - public EClassifier demandType(String namespace, String name) - { - EPackage ePackage = demandPackage(namespace); - EClassifier eClassifier = getType(ePackage, name); - if (eClassifier != null) - { - return eClassifier; - } - else - { - EClass eClass = ecoreFactory.createEClass(); - eClass.setName(name); - eClass.getESuperTypes().add(demandMetaData.getAnyType()); - setContentKind(eClass, MIXED_CONTENT); - ePackage.getEClassifiers().add(eClass); - return eClass; - } - } - - public EStructuralFeature demandFeature(String namespace, String name, boolean isElement, boolean isReference) - { - EPackage ePackage = demandPackage(namespace); - EClass documentRootEClass = getDocumentRoot(ePackage); - EStructuralFeature eStructuralFeature = - isElement ? - getLocalElement(documentRootEClass, namespace, name) : - getLocalAttribute(documentRootEClass, namespace, name); - if (eStructuralFeature != null) - { - return eStructuralFeature; - } - else - { - if (isReference) - { - EReference eReference = ecoreFactory.createEReference(); - eReference.setContainment(isElement); - eReference.setEType(demandMetaData.getEObject()); - eReference.setName(name); - eReference.setDerived(true); - eReference.setTransient(true); - eReference.setVolatile(true); - documentRootEClass.getEStructuralFeatures().add(eReference); - - setFeatureKind(eReference, isElement ? ELEMENT_FEATURE : ATTRIBUTE_FEATURE); - setNamespace(eReference, namespace); - - // Mark the bound as unspecified so that it won't be considered many - // but can nevertheless be recognized as being unspecified and perhaps still be treat as many. - // - if (isElement) - { - eReference.setUpperBound(ETypedElement.UNSPECIFIED_MULTIPLICITY); - } - - return eReference; - } - else - { - EAttribute eAttribute = ecoreFactory.createEAttribute(); - eAttribute.setName(name); - eAttribute.setEType(demandMetaData.getAnySimpleType()); - eAttribute.setDerived(true); - eAttribute.setTransient(true); - eAttribute.setVolatile(true); - documentRootEClass.getEStructuralFeatures().add(eAttribute); - - setFeatureKind(eAttribute, isElement ? ELEMENT_FEATURE : ATTRIBUTE_FEATURE); - setNamespace(eAttribute, namespace); - - // Mark the bound as unspecified so that it won't be considered many - // but can nevertheless be recognized as being unspecified and perhaps still be treat as many. - // - if (isElement) - { - eAttribute.setUpperBound(ETypedElement.UNSPECIFIED_MULTIPLICITY); - } - - return eAttribute; - } - } - } -} -- cgit v1.2.3