diff options
Diffstat (limited to 'branches/sdo-1.1.1-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java')
-rw-r--r-- | branches/sdo-1.1.1-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java | 305 |
1 files changed, 0 insertions, 305 deletions
diff --git a/branches/sdo-1.1.1-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java b/branches/sdo-1.1.1-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java deleted file mode 100644 index ba632a0523..0000000000 --- a/branches/sdo-1.1.1-incubating/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java +++ /dev/null @@ -1,305 +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 java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.StringTokenizer; - -import org.apache.tuscany.sdo.SDOExtendedMetaData; -import org.apache.tuscany.sdo.impl.SDOFactoryImpl.SDOEcoreFactory; -import org.apache.tuscany.sdo.model.ModelFactory; -import org.apache.tuscany.sdo.model.impl.ModelFactoryImpl; -import org.eclipse.emf.ecore.EAnnotation; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EClassifier; -import org.eclipse.emf.ecore.EModelElement; -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.emf.ecore.EPackage.Registry; - -/** - * TODO make demand() methods synchronous? - */ -public class SDOExtendedMetaDataImpl - extends BaseSDOExtendedMetaDataImpl - implements SDOExtendedMetaData -{ - - public SDOExtendedMetaDataImpl() { - this(HelperContextImpl.getBuiltInModelRegistry()); - } - - public SDOExtendedMetaDataImpl(Registry registry) { - super(registry); - ecoreFactory = new SDOEcoreFactory(); - demandMetaData = new SDODemandMetaData(); - } - - public static class SDODemandMetaData extends DemandMetaData { - EClassifier getEObject() { return (EClassifier)((ModelFactoryImpl)ModelFactory.INSTANCE).getDataObject(); } - EClassifier getAnySimpleType() { return (EClassifier)((ModelFactoryImpl)ModelFactory.INSTANCE).getObject(); } - } - - public EPackage getPackage(String namespace) - { - if ("".equals(namespace)) namespace = null; //FB - EPackage result = registry.getEPackage(namespace); - return result == null ? super.getPackage(namespace) : result; - } - - /** - * Returns the listing of alias names as specified by the sdo:aliasNames - * property. - */ - public List getAliasNames(EModelElement modelElement) { - EAnnotation eAnnotation = getAnnotation(modelElement, false); - List list = null; - if (eAnnotation != null) { - String aliasNames = (String)eAnnotation.getDetails().get("aliasNames"); - if (aliasNames != null) { - list = new ArrayList(); - StringTokenizer st = new StringTokenizer(aliasNames, " "); - while (st.hasMoreTokens()) { - String t = st.nextToken(); - list.add(t); - } - } - } - return list; - } - - - public void setAliasNames(EModelElement modelElement, List aliasNames) { - if (aliasNames == null || aliasNames.isEmpty()) { - setAliasNames(modelElement, (String)null); - } else { - StringBuffer buf = new StringBuffer(); - for (int n = 0; n < aliasNames.size(); n++) { - String name = (String) aliasNames.get(n); - buf.append(name); - buf.append(" "); - } - setAliasNames(modelElement, buf.toString()); - } - } - - /** - * Adds an alias name per sdo:aliasName - */ - public void setAliasNames(EModelElement modelElement, String aliasNames) { - EAnnotation eAnnotation = getAnnotation(modelElement, true); - eAnnotation.getDetails().put("aliasNames", aliasNames); - } - - public EPackage.Registry getRegistry() - { - return registry; - } - - boolean featureNamespaceMatchingLax = true; - - public void setFeatureNamespaceMatchingLax(boolean b) { - featureNamespaceMatchingLax = b; - } - - protected boolean isFeatureNamespaceMatchingLax() { - return featureNamespaceMatchingLax; - } - - /* - * (non-Javadoc) - * - * Eagerly pre-cache the "holder"s for static packages. - * - * @see org.eclipse.emf.ecore.util.BasicExtendedMetaData#putPackage(java.lang.String, - * org.eclipse.emf.ecore.EPackage) - */ - public void putPackage(String namespace, EPackage ePackage) { - for (Iterator iterator = ePackage.eAllContents(); iterator.hasNext();) { - Object object = iterator.next(); - if (object instanceof EClassifier) { - this.getName((EClassifier) object); - } else if (object instanceof EStructuralFeature) { - this.getName((EStructuralFeature) object); - } - } - super.putPackage(namespace, ePackage); - } - - /****************************************************************************************************** - * Following methods, getLocalAttribute & getLocalElement, ARE TEMPORARY COPIES FROM THE BASE CLASS. - * One line (the last line)in each method is changed to support lax namespace matching. - * DO NOT EDIT THESE METHODS. THEY WILL BE REMOVED WHEN WE MOVE TO EMF 2.3, WHICH FIXES THE PROBLEM. - ******************************************************************************************************/ - - public EStructuralFeature getLocalAttribute(EClass eClass, String namespace, String name) - { - EStructuralFeature result = null; - if (isFeatureKindSpecific()) - { - List allAttributes = getAllAttributes(eClass); - for (int i = 0, size = allAttributes.size(); i < size; ++i) - { - EStructuralFeature eStructuralFeature = (EStructuralFeature) allAttributes.get(i); - if (name.equals(getName(eStructuralFeature))) - { - String featureNamespace = getNamespace(eStructuralFeature); - if (namespace == null) - { - if (featureNamespace == null) - { - return eStructuralFeature; - } - else if (result == null) - { - result = eStructuralFeature; - } - } - else if (namespace.equals(featureNamespace)) - { - return eStructuralFeature; - } - else if (featureNamespace == null && result == null) - { - result = eStructuralFeature; - } - } - } - } - else - { - for (int i = 0, size = eClass.getFeatureCount(); i < size; ++i) - { - EStructuralFeature eStructuralFeature = eClass.getEStructuralFeature(i); - switch (getFeatureKind(eStructuralFeature)) - { - case UNSPECIFIED_FEATURE: - case ATTRIBUTE_FEATURE: - { - if (name.equals(getName(eStructuralFeature))) - { - String featureNamespace = getNamespace(eStructuralFeature); - if (namespace == null) - { - if (featureNamespace == null) - { - return eStructuralFeature; - } - else if (result == null) - { - result = eStructuralFeature; - } - } - else if (namespace.equals(featureNamespace)) - { - return eStructuralFeature; - } - else if (featureNamespace == null && result == null) - { - result = eStructuralFeature; - } - } - break; - } - } - } - } - - return isFeatureNamespaceMatchingLax() ? result : null; - } - - protected EStructuralFeature getLocalElement(EClass eClass, String namespace, String name) - { - EStructuralFeature result = null; - if (isFeatureKindSpecific()) - { - List allElements = getAllElements(eClass); - for (int i = 0, size = allElements.size(); i < size; ++i) - { - EStructuralFeature eStructuralFeature = (EStructuralFeature) allElements.get(i); - if (name.equals(getName(eStructuralFeature))) - { - String featureNamespace = getNamespace(eStructuralFeature); - if (namespace == null) - { - if (featureNamespace == null) - { - return eStructuralFeature; - } - else if (result == null) - { - result = eStructuralFeature; - } - } - else if (namespace.equals(featureNamespace)) - { - return eStructuralFeature; - } - else if (featureNamespace == null && result == null) - { - result = eStructuralFeature; - } - } - } - } - else - { - for (int i = 0, size = eClass.getFeatureCount(); i < size; ++i) - { - EStructuralFeature eStructuralFeature = eClass.getEStructuralFeature(i); - switch (getFeatureKind(eStructuralFeature)) - { - case UNSPECIFIED_FEATURE: - case ELEMENT_FEATURE: - { - if (name.equals(getName(eStructuralFeature))) - { - String featureNamespace = getNamespace(eStructuralFeature); - if (namespace == null) - { - if (featureNamespace == null) - { - return eStructuralFeature; - } - else if (result == null) - { - result = eStructuralFeature; - } - } - else if (namespace.equals(featureNamespace)) - { - return eStructuralFeature; - } - else if (featureNamespace == null && result == null) - { - result = eStructuralFeature; - } - } - break; - } - } - } - } - - return isFeatureNamespaceMatchingLax() ? result : null; - } -} |