summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany')
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/AnyTypeDataObject.java34
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOExtendedMetaData.java35
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOFactory.java173
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOPackage.java1599
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOTypeVisitor.java46
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SimpleAnyTypeDataObject.java32
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/XMLStreamHelper.java89
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/BytecodeInterfaceGenerator.java95
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/GenerationException.java39
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/JavaInterfaceGenerator.java176
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/NoJavaImplementationException.java58
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/CopyHelperImpl.java51
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataFactoryImpl.java62
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java303
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/EqualityHelperImpl.java67
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperProviderImpl.java110
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java96
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOXSDEcoreBuilder.java434
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/TypeHelperImpl.java215
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLDocumentImpl.java553
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLHelperImpl.java116
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLStreamHelperImpl.java55
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java218
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/AnyTypeDataObjectImpl.java296
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/AttributeImpl.java732
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ChangeSummaryImpl.java679
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ChangeSummarySettingImpl.java110
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ClassImpl.java773
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataGraphImpl.java816
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectBase.java238
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectImpl.java1507
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataTypeImpl.java750
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DynamicDataObjectImpl.java196
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DynamicStoreDataObjectImpl.java88
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/EnumImpl.java170
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/FactoryBase.java214
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ReferenceImpl.java698
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOFactoryImpl.java332
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOPackageImpl.java2133
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SimpleAnyTypeDataObjectImpl.java330
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/StoreDataObjectImpl.java311
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/BaseDataGraphType.java125
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ChangeSummaryType.java152
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/DataGraphType.java50
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/DataObject.java30
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelFactory.java100
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelPackage.java141
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelsType.java56
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Property.java342
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/TextType.java51
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Type.java371
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Types.java53
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/XSDType.java56
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/BaseDataGraphTypeImpl.java408
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ChangeSummaryTypeImpl.java396
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/DataGraphTypeImpl.java187
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/DataObjectImpl.java54
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java1091
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelPackageImpl.java4331
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelsTypeImpl.java189
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/PropertyImpl.java801
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TextTypeImpl.java170
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TypeImpl.java851
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TypesImpl.java179
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/XSDTypeImpl.java189
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/JavaFactory.java46
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/JavaInfo.java60
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaFactoryImpl.java361
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaInfoImpl.java185
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaPackageImpl.java1149
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/BasicSequence.java134
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataGraphResourceFactoryImpl.java644
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java2564
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java543
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/StAX2SAXAdapter.java242
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/JavaMetaData.java85
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/MetadataFactory.java73
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/SDOMetaDataGroup.java86
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/TypeMetaData.java60
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/XSDMetaData.java60
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/JavaMetaDataImpl.java241
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/MetadataFactoryImpl.java174
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/MetadataPackageImpl.java1015
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/SDOMetaDataGroupImpl.java323
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/TypeMetaDataImpl.java185
-rw-r--r--sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/XSDMetaDataImpl.java185
86 files changed, 33817 insertions, 0 deletions
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/AnyTypeDataObject.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/AnyTypeDataObject.java
new file mode 100644
index 0000000000..5eea403613
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/AnyTypeDataObject.java
@@ -0,0 +1,34 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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;
+
+import commonj.sdo.DataObject;
+
+import org.eclipse.emf.ecore.xml.type.AnyType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Any Type Data Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.apache.tuscany.sdo.SDOPackage#getAnyTypeDataObject()
+ * @model extendedMetaData="kind='mixed'"
+ * @generated
+ */
+public interface AnyTypeDataObject extends DataObject, AnyType {
+} // AnyTypeDataObject
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOExtendedMetaData.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOExtendedMetaData.java
new file mode 100644
index 0000000000..7bc75d8faa
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOExtendedMetaData.java
@@ -0,0 +1,35 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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;
+
+import java.util.List;
+
+import org.apache.tuscany.sdo.helper.SDOExtendedMetaDataImpl;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+
+public interface SDOExtendedMetaData extends ExtendedMetaData {
+
+ SDOExtendedMetaData INSTANCE = new SDOExtendedMetaDataImpl();
+
+ List getAliasNames(EModelElement eModelElement);
+
+ void setAliasNames(EModelElement eModelElement, List aliasNames);
+
+ void setAliasNames(EModelElement eModelElement, String aliasNames);
+
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOFactory.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOFactory.java
new file mode 100644
index 0000000000..5b066bb6e3
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOFactory.java
@@ -0,0 +1,173 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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;
+
+import commonj.sdo.ChangeSummary;
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import org.eclipse.emf.ecore.EFactory;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import commonj.sdo.Property;
+import commonj.sdo.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.SDOPackage
+ * @generated
+ */
+public interface SDOFactory extends EFactory{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ SDOFactory eINSTANCE = org.apache.tuscany.sdo.impl.SDOFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Change Summary</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Change Summary</em>'.
+ * @generated
+ */
+ ChangeSummary createChangeSummary();
+
+ /**
+ * Returns a new object of class '<em>Change Summary Setting</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Change Summary Setting</em>'.
+ * @generated
+ */
+ ChangeSummary.Setting createChangeSummarySetting();
+
+ /**
+ * Returns a new object of class '<em>Data Graph</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Data Graph</em>'.
+ * @generated
+ */
+ DataGraph createDataGraph();
+
+ /**
+ * Returns a new object of class '<em>Any Type Data Object</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Any Type Data Object</em>'.
+ * @generated
+ */
+ AnyTypeDataObject createAnyTypeDataObject();
+
+ /**
+ * Returns a new object of class '<em>Simple Any Type Data Object</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Simple Any Type Data Object</em>'.
+ * @generated
+ */
+ SimpleAnyTypeDataObject createSimpleAnyTypeDataObject();
+
+ /**
+ * Returns a new object of class '<em>Class</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Class</em>'.
+ * @generated
+ */
+ Type createClass();
+
+ /**
+ * Returns a new object of class '<em>Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Data Type</em>'.
+ * @generated
+ */
+ Type createDataType();
+
+ /**
+ * Returns a new object of class '<em>Attribute</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Attribute</em>'.
+ * @generated
+ */
+ Property createAttribute();
+
+ /**
+ * Returns a new object of class '<em>Reference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Reference</em>'.
+ * @generated
+ */
+ Property createReference();
+
+ /**
+ * Returns a new object of class '<em>Enum</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Enum</em>'.
+ * @generated
+ */
+ Type createEnum();
+
+ /**
+ * Returns a new object of class '<em>Dynamic Data Object</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Dynamic Data Object</em>'.
+ * @generated
+ */
+ DataObject createDynamicDataObject();
+
+ /**
+ * Returns a new object of class '<em>Store Data Object</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Store Data Object</em>'.
+ * @generated
+ */
+ DataObject createStoreDataObject();
+
+ /**
+ * Returns a new object of class '<em>Dynamic Store Data Object</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Dynamic Store Data Object</em>'.
+ * @generated
+ */
+ DataObject createDynamicStoreDataObject();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ SDOPackage getSDOPackage();
+
+ ChangeSummary.Setting createChangeSummarySetting(EStructuralFeature eStructuralFeature, Object value, boolean isSet);
+
+} //SDOFactory
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOPackage.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOPackage.java
new file mode 100644
index 0000000000..caa154baf5
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOPackage.java
@@ -0,0 +1,1599 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.change.ChangePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.SDOFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SDOPackage extends EPackage{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "sdo";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.apache.org/tuscany/2005/SDO";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "sdo";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ SDOPackage eINSTANCE = org.apache.tuscany.sdo.impl.SDOPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.impl.DataGraphImpl <em>Data Graph</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.impl.DataGraphImpl
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getDataGraph()
+ * @generated
+ */
+ int DATA_GRAPH = 2;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.impl.ChangeSummaryImpl <em>Change Summary</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.impl.ChangeSummaryImpl
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getChangeSummary()
+ * @generated
+ */
+ int CHANGE_SUMMARY = 0;
+
+ /**
+ * The feature id for the '<em><b>Object Changes</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANGE_SUMMARY__OBJECT_CHANGES = ChangePackage.CHANGE_DESCRIPTION__OBJECT_CHANGES;
+
+ /**
+ * The feature id for the '<em><b>Objects To Detach</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANGE_SUMMARY__OBJECTS_TO_DETACH = ChangePackage.CHANGE_DESCRIPTION__OBJECTS_TO_DETACH;
+
+ /**
+ * The feature id for the '<em><b>Objects To Attach</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANGE_SUMMARY__OBJECTS_TO_ATTACH = ChangePackage.CHANGE_DESCRIPTION__OBJECTS_TO_ATTACH;
+
+ /**
+ * The feature id for the '<em><b>Resource Changes</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANGE_SUMMARY__RESOURCE_CHANGES = ChangePackage.CHANGE_DESCRIPTION__RESOURCE_CHANGES;
+
+ /**
+ * The feature id for the '<em><b>EData Graph</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANGE_SUMMARY__EDATA_GRAPH = ChangePackage.CHANGE_DESCRIPTION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Change Summary</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANGE_SUMMARY_FEATURE_COUNT = ChangePackage.CHANGE_DESCRIPTION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.impl.ChangeSummarySettingImpl <em>Change Summary Setting</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.impl.ChangeSummarySettingImpl
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getChangeSummarySetting()
+ * @generated
+ */
+ int CHANGE_SUMMARY_SETTING = 1;
+
+ /**
+ * The feature id for the '<em><b>Feature Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANGE_SUMMARY_SETTING__FEATURE_NAME = ChangePackage.FEATURE_CHANGE__FEATURE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Data Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANGE_SUMMARY_SETTING__DATA_VALUE = ChangePackage.FEATURE_CHANGE__DATA_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Set</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANGE_SUMMARY_SETTING__SET = ChangePackage.FEATURE_CHANGE__SET;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANGE_SUMMARY_SETTING__VALUE = ChangePackage.FEATURE_CHANGE__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANGE_SUMMARY_SETTING__FEATURE = ChangePackage.FEATURE_CHANGE__FEATURE;
+
+ /**
+ * The feature id for the '<em><b>Reference Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANGE_SUMMARY_SETTING__REFERENCE_VALUE = ChangePackage.FEATURE_CHANGE__REFERENCE_VALUE;
+
+ /**
+ * The feature id for the '<em><b>List Changes</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANGE_SUMMARY_SETTING__LIST_CHANGES = ChangePackage.FEATURE_CHANGE__LIST_CHANGES;
+
+ /**
+ * The number of structural features of the '<em>Change Summary Setting</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANGE_SUMMARY_SETTING_FEATURE_COUNT = ChangePackage.FEATURE_CHANGE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Resource Set</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_GRAPH__RESOURCE_SET = EcorePackage.EOBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Root Resource</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_GRAPH__ROOT_RESOURCE = EcorePackage.EOBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>EChange Summary</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_GRAPH__ECHANGE_SUMMARY = EcorePackage.EOBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>ERoot Object</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_GRAPH__EROOT_OBJECT = EcorePackage.EOBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Data Graph</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_GRAPH_FEATURE_COUNT = EcorePackage.EOBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.impl.DataObjectImpl <em>Data Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.impl.DataObjectImpl
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getDataObject()
+ * @generated
+ */
+ int DATA_OBJECT = 3;
+
+ /**
+ * The meta object id for the '{@link commonj.sdo.Property <em>Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see commonj.sdo.Property
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getProperty()
+ * @generated
+ */
+ int PROPERTY = 4;
+
+ /**
+ * The meta object id for the '{@link commonj.sdo.Sequence <em>Sequence</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see commonj.sdo.Sequence
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getSequence()
+ * @generated
+ */
+ int SEQUENCE = 5;
+
+ /**
+ * The meta object id for the '{@link commonj.sdo.Type <em>Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see commonj.sdo.Type
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getType()
+ * @generated
+ */
+ int TYPE = 6;
+
+ /**
+ * The number of structural features of the '<em>Data Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_OBJECT_FEATURE_COUNT = 0;
+
+ /**
+ * The number of structural features of the '<em>Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_FEATURE_COUNT = 0;
+
+ /**
+ * The number of structural features of the '<em>Sequence</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENCE_FEATURE_COUNT = 0;
+
+ /**
+ * The number of structural features of the '<em>Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TYPE_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.impl.AnyTypeDataObjectImpl <em>Any Type Data Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.impl.AnyTypeDataObjectImpl
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getAnyTypeDataObject()
+ * @generated
+ */
+ int ANY_TYPE_DATA_OBJECT = 7;
+
+ /**
+ * The feature id for the '<em><b>Mixed</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY_TYPE_DATA_OBJECT__MIXED = DATA_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY_TYPE_DATA_OBJECT__ANY = DATA_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Any Attribute</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE = DATA_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Any Type Data Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANY_TYPE_DATA_OBJECT_FEATURE_COUNT = DATA_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.impl.SimpleAnyTypeDataObjectImpl <em>Simple Any Type Data Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.impl.SimpleAnyTypeDataObjectImpl
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getSimpleAnyTypeDataObject()
+ * @generated
+ */
+ int SIMPLE_ANY_TYPE_DATA_OBJECT = 8;
+
+ /**
+ * The feature id for the '<em><b>Mixed</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_ANY_TYPE_DATA_OBJECT__MIXED = ANY_TYPE_DATA_OBJECT__MIXED;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_ANY_TYPE_DATA_OBJECT__ANY = ANY_TYPE_DATA_OBJECT__ANY;
+
+ /**
+ * The feature id for the '<em><b>Any Attribute</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE = ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE;
+
+ /**
+ * The feature id for the '<em><b>Raw Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_ANY_TYPE_DATA_OBJECT__RAW_VALUE = ANY_TYPE_DATA_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_ANY_TYPE_DATA_OBJECT__VALUE = ANY_TYPE_DATA_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Instance Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_ANY_TYPE_DATA_OBJECT__INSTANCE_TYPE = ANY_TYPE_DATA_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Simple Any Type Data Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIMPLE_ANY_TYPE_DATA_OBJECT_FEATURE_COUNT = ANY_TYPE_DATA_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.impl.ClassImpl <em>Class</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.impl.ClassImpl
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getClass_()
+ * @generated
+ */
+ int CLASS = 9;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__EANNOTATIONS = EcorePackage.ECLASS__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__NAME = EcorePackage.ECLASS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Instance Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__INSTANCE_CLASS_NAME = EcorePackage.ECLASS__INSTANCE_CLASS_NAME;
+
+ /**
+ * The feature id for the '<em><b>Instance Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__INSTANCE_CLASS = EcorePackage.ECLASS__INSTANCE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Default Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__DEFAULT_VALUE = EcorePackage.ECLASS__DEFAULT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>EPackage</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__EPACKAGE = EcorePackage.ECLASS__EPACKAGE;
+
+ /**
+ * The feature id for the '<em><b>Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__ABSTRACT = EcorePackage.ECLASS__ABSTRACT;
+
+ /**
+ * The feature id for the '<em><b>Interface</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__INTERFACE = EcorePackage.ECLASS__INTERFACE;
+
+ /**
+ * The feature id for the '<em><b>ESuper Types</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__ESUPER_TYPES = EcorePackage.ECLASS__ESUPER_TYPES;
+
+ /**
+ * The feature id for the '<em><b>EOperations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__EOPERATIONS = EcorePackage.ECLASS__EOPERATIONS;
+
+ /**
+ * The feature id for the '<em><b>EAll Attributes</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__EALL_ATTRIBUTES = EcorePackage.ECLASS__EALL_ATTRIBUTES;
+
+ /**
+ * The feature id for the '<em><b>EAll References</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__EALL_REFERENCES = EcorePackage.ECLASS__EALL_REFERENCES;
+
+ /**
+ * The feature id for the '<em><b>EReferences</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__EREFERENCES = EcorePackage.ECLASS__EREFERENCES;
+
+ /**
+ * The feature id for the '<em><b>EAttributes</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__EATTRIBUTES = EcorePackage.ECLASS__EATTRIBUTES;
+
+ /**
+ * The feature id for the '<em><b>EAll Containments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__EALL_CONTAINMENTS = EcorePackage.ECLASS__EALL_CONTAINMENTS;
+
+ /**
+ * The feature id for the '<em><b>EAll Operations</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__EALL_OPERATIONS = EcorePackage.ECLASS__EALL_OPERATIONS;
+
+ /**
+ * The feature id for the '<em><b>EAll Structural Features</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__EALL_STRUCTURAL_FEATURES = EcorePackage.ECLASS__EALL_STRUCTURAL_FEATURES;
+
+ /**
+ * The feature id for the '<em><b>EAll Super Types</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__EALL_SUPER_TYPES = EcorePackage.ECLASS__EALL_SUPER_TYPES;
+
+ /**
+ * The feature id for the '<em><b>EID Attribute</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__EID_ATTRIBUTE = EcorePackage.ECLASS__EID_ATTRIBUTE;
+
+ /**
+ * The feature id for the '<em><b>EStructural Features</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS__ESTRUCTURAL_FEATURES = EcorePackage.ECLASS__ESTRUCTURAL_FEATURES;
+
+ /**
+ * The number of structural features of the '<em>Class</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASS_FEATURE_COUNT = EcorePackage.ECLASS_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.impl.DataTypeImpl <em>Data Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.impl.DataTypeImpl
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getDataType()
+ * @generated
+ */
+ int DATA_TYPE = 10;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_TYPE__EANNOTATIONS = EcorePackage.EDATA_TYPE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_TYPE__NAME = EcorePackage.EDATA_TYPE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Instance Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_TYPE__INSTANCE_CLASS_NAME = EcorePackage.EDATA_TYPE__INSTANCE_CLASS_NAME;
+
+ /**
+ * The feature id for the '<em><b>Instance Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_TYPE__INSTANCE_CLASS = EcorePackage.EDATA_TYPE__INSTANCE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Default Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_TYPE__DEFAULT_VALUE = EcorePackage.EDATA_TYPE__DEFAULT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>EPackage</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_TYPE__EPACKAGE = EcorePackage.EDATA_TYPE__EPACKAGE;
+
+ /**
+ * The feature id for the '<em><b>Serializable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_TYPE__SERIALIZABLE = EcorePackage.EDATA_TYPE__SERIALIZABLE;
+
+ /**
+ * The number of structural features of the '<em>Data Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_TYPE_FEATURE_COUNT = EcorePackage.EDATA_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.impl.AttributeImpl <em>Attribute</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.impl.AttributeImpl
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getAttribute()
+ * @generated
+ */
+ int ATTRIBUTE = 11;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__EANNOTATIONS = EcorePackage.EATTRIBUTE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__NAME = EcorePackage.EATTRIBUTE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Ordered</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__ORDERED = EcorePackage.EATTRIBUTE__ORDERED;
+
+ /**
+ * The feature id for the '<em><b>Unique</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__UNIQUE = EcorePackage.EATTRIBUTE__UNIQUE;
+
+ /**
+ * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__LOWER_BOUND = EcorePackage.EATTRIBUTE__LOWER_BOUND;
+
+ /**
+ * The feature id for the '<em><b>Upper Bound</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__UPPER_BOUND = EcorePackage.EATTRIBUTE__UPPER_BOUND;
+
+ /**
+ * The feature id for the '<em><b>Many</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__MANY = EcorePackage.EATTRIBUTE__MANY;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__REQUIRED = EcorePackage.EATTRIBUTE__REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>EType</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__ETYPE = EcorePackage.EATTRIBUTE__ETYPE;
+
+ /**
+ * The feature id for the '<em><b>Changeable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__CHANGEABLE = EcorePackage.EATTRIBUTE__CHANGEABLE;
+
+ /**
+ * The feature id for the '<em><b>Volatile</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__VOLATILE = EcorePackage.EATTRIBUTE__VOLATILE;
+
+ /**
+ * The feature id for the '<em><b>Transient</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__TRANSIENT = EcorePackage.EATTRIBUTE__TRANSIENT;
+
+ /**
+ * The feature id for the '<em><b>Default Value Literal</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__DEFAULT_VALUE_LITERAL = EcorePackage.EATTRIBUTE__DEFAULT_VALUE_LITERAL;
+
+ /**
+ * The feature id for the '<em><b>Default Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__DEFAULT_VALUE = EcorePackage.EATTRIBUTE__DEFAULT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Unsettable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__UNSETTABLE = EcorePackage.EATTRIBUTE__UNSETTABLE;
+
+ /**
+ * The feature id for the '<em><b>Derived</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__DERIVED = EcorePackage.EATTRIBUTE__DERIVED;
+
+ /**
+ * The feature id for the '<em><b>EContaining Class</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__ECONTAINING_CLASS = EcorePackage.EATTRIBUTE__ECONTAINING_CLASS;
+
+ /**
+ * The feature id for the '<em><b>ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__ID = EcorePackage.EATTRIBUTE__ID;
+
+ /**
+ * The feature id for the '<em><b>EAttribute Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE__EATTRIBUTE_TYPE = EcorePackage.EATTRIBUTE__EATTRIBUTE_TYPE;
+
+ /**
+ * The number of structural features of the '<em>Attribute</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATTRIBUTE_FEATURE_COUNT = EcorePackage.EATTRIBUTE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.impl.ReferenceImpl <em>Reference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.impl.ReferenceImpl
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getReference()
+ * @generated
+ */
+ int REFERENCE = 12;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__EANNOTATIONS = EcorePackage.EREFERENCE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__NAME = EcorePackage.EREFERENCE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Ordered</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__ORDERED = EcorePackage.EREFERENCE__ORDERED;
+
+ /**
+ * The feature id for the '<em><b>Unique</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__UNIQUE = EcorePackage.EREFERENCE__UNIQUE;
+
+ /**
+ * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__LOWER_BOUND = EcorePackage.EREFERENCE__LOWER_BOUND;
+
+ /**
+ * The feature id for the '<em><b>Upper Bound</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__UPPER_BOUND = EcorePackage.EREFERENCE__UPPER_BOUND;
+
+ /**
+ * The feature id for the '<em><b>Many</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__MANY = EcorePackage.EREFERENCE__MANY;
+
+ /**
+ * The feature id for the '<em><b>Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__REQUIRED = EcorePackage.EREFERENCE__REQUIRED;
+
+ /**
+ * The feature id for the '<em><b>EType</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__ETYPE = EcorePackage.EREFERENCE__ETYPE;
+
+ /**
+ * The feature id for the '<em><b>Changeable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__CHANGEABLE = EcorePackage.EREFERENCE__CHANGEABLE;
+
+ /**
+ * The feature id for the '<em><b>Volatile</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__VOLATILE = EcorePackage.EREFERENCE__VOLATILE;
+
+ /**
+ * The feature id for the '<em><b>Transient</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__TRANSIENT = EcorePackage.EREFERENCE__TRANSIENT;
+
+ /**
+ * The feature id for the '<em><b>Default Value Literal</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__DEFAULT_VALUE_LITERAL = EcorePackage.EREFERENCE__DEFAULT_VALUE_LITERAL;
+
+ /**
+ * The feature id for the '<em><b>Default Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__DEFAULT_VALUE = EcorePackage.EREFERENCE__DEFAULT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Unsettable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__UNSETTABLE = EcorePackage.EREFERENCE__UNSETTABLE;
+
+ /**
+ * The feature id for the '<em><b>Derived</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__DERIVED = EcorePackage.EREFERENCE__DERIVED;
+
+ /**
+ * The feature id for the '<em><b>EContaining Class</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__ECONTAINING_CLASS = EcorePackage.EREFERENCE__ECONTAINING_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Containment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__CONTAINMENT = EcorePackage.EREFERENCE__CONTAINMENT;
+
+ /**
+ * The feature id for the '<em><b>Container</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__CONTAINER = EcorePackage.EREFERENCE__CONTAINER;
+
+ /**
+ * The feature id for the '<em><b>Resolve Proxies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__RESOLVE_PROXIES = EcorePackage.EREFERENCE__RESOLVE_PROXIES;
+
+ /**
+ * The feature id for the '<em><b>EOpposite</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__EOPPOSITE = EcorePackage.EREFERENCE__EOPPOSITE;
+
+ /**
+ * The feature id for the '<em><b>EReference Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE__EREFERENCE_TYPE = EcorePackage.EREFERENCE__EREFERENCE_TYPE;
+
+ /**
+ * The number of structural features of the '<em>Reference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFERENCE_FEATURE_COUNT = EcorePackage.EREFERENCE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.impl.EnumImpl <em>Enum</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.impl.EnumImpl
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getEnum()
+ * @generated
+ */
+ int ENUM = 13;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM__EANNOTATIONS = EcorePackage.EENUM__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM__NAME = EcorePackage.EENUM__NAME;
+
+ /**
+ * The feature id for the '<em><b>Instance Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM__INSTANCE_CLASS_NAME = EcorePackage.EENUM__INSTANCE_CLASS_NAME;
+
+ /**
+ * The feature id for the '<em><b>Instance Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM__INSTANCE_CLASS = EcorePackage.EENUM__INSTANCE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Default Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM__DEFAULT_VALUE = EcorePackage.EENUM__DEFAULT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>EPackage</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM__EPACKAGE = EcorePackage.EENUM__EPACKAGE;
+
+ /**
+ * The feature id for the '<em><b>Serializable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM__SERIALIZABLE = EcorePackage.EENUM__SERIALIZABLE;
+
+ /**
+ * The feature id for the '<em><b>ELiterals</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM__ELITERALS = EcorePackage.EENUM__ELITERALS;
+
+ /**
+ * The number of structural features of the '<em>Enum</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ENUM_FEATURE_COUNT = EcorePackage.EENUM_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.impl.DynamicDataObjectImpl <em>Dynamic Data Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.impl.DynamicDataObjectImpl
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getDynamicDataObject()
+ * @generated
+ */
+ int DYNAMIC_DATA_OBJECT = 14;
+
+ /**
+ * The number of structural features of the '<em>Dynamic Data Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DYNAMIC_DATA_OBJECT_FEATURE_COUNT = DATA_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.impl.StoreDataObjectImpl <em>Store Data Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.impl.StoreDataObjectImpl
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getStoreDataObject()
+ * @generated
+ */
+ int STORE_DATA_OBJECT = 15;
+
+ /**
+ * The number of structural features of the '<em>Store Data Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STORE_DATA_OBJECT_FEATURE_COUNT = DATA_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.impl.DynamicStoreDataObjectImpl <em>Dynamic Store Data Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.impl.DynamicStoreDataObjectImpl
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getDynamicStoreDataObject()
+ * @generated
+ */
+ int DYNAMIC_STORE_DATA_OBJECT = 16;
+
+ /**
+ * The number of structural features of the '<em>Dynamic Store Data Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DYNAMIC_STORE_DATA_OBJECT_FEATURE_COUNT = STORE_DATA_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '<em>EJava List</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.util.List
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getEJavaList()
+ * @generated
+ */
+ int EJAVA_LIST = 17;
+
+ /**
+ * The meta object id for the '<em>EObject Stream Exception</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.io.ObjectStreamException
+ * @see org.apache.tuscany.sdo.impl.SDOPackageImpl#getEObjectStreamException()
+ * @generated
+ */
+ int EOBJECT_STREAM_EXCEPTION = 18;
+
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.ChangeSummary <em>Change Summary</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Change Summary</em>'.
+ * @see commonj.sdo.ChangeSummary
+ * @model instanceClass="commonj.sdo.ChangeSummary"
+ * @generated
+ */
+ EClass getChangeSummary();
+
+ /**
+ * Returns the meta object for the reference '{@link commonj.sdo.ChangeSummary#getEDataGraph <em>EData Graph</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>EData Graph</em>'.
+ * @see commonj.sdo.ChangeSummary#getEDataGraph()
+ * @see #getChangeSummary()
+ * @generated
+ */
+ EReference getChangeSummary_EDataGraph();
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.ChangeSummary.Setting <em>Change Summary Setting</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Change Summary Setting</em>'.
+ * @see commonj.sdo.ChangeSummary.Setting
+ * @model instanceClass="commonj.sdo.ChangeSummary$Setting"
+ * @generated
+ */
+ EClass getChangeSummarySetting();
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.DataGraph <em>Data Graph</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Data Graph</em>'.
+ * @see commonj.sdo.DataGraph
+ * @model instanceClass="commonj.sdo.DataGraph"
+ * @generated
+ */
+ EClass getDataGraph();
+
+ /**
+ * Returns the meta object for the attribute '{@link commonj.sdo.DataGraph#getResourceSet <em>Resource Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Resource Set</em>'.
+ * @see commonj.sdo.DataGraph#getResourceSet()
+ * @see #getDataGraph()
+ * @generated
+ */
+ EAttribute getDataGraph_ResourceSet();
+
+ /**
+ * Returns the meta object for the attribute '{@link commonj.sdo.DataGraph#getRootResource <em>Root Resource</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Root Resource</em>'.
+ * @see commonj.sdo.DataGraph#getRootResource()
+ * @see #getDataGraph()
+ * @generated
+ */
+ EAttribute getDataGraph_RootResource();
+
+ /**
+ * Returns the meta object for the reference '{@link commonj.sdo.DataGraph#getEChangeSummary <em>EChange Summary</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>EChange Summary</em>'.
+ * @see commonj.sdo.DataGraph#getEChangeSummary()
+ * @see #getDataGraph()
+ * @generated
+ */
+ EReference getDataGraph_EChangeSummary();
+
+ /**
+ * Returns the meta object for the reference '{@link commonj.sdo.DataGraph#getERootObject <em>ERoot Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>ERoot Object</em>'.
+ * @see commonj.sdo.DataGraph#getERootObject()
+ * @see #getDataGraph()
+ * @generated
+ */
+ EReference getDataGraph_ERootObject();
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.DataObject <em>Data Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Data Object</em>'.
+ * @see commonj.sdo.DataObject
+ * @model instanceClass="commonj.sdo.DataObject"
+ * @generated
+ */
+ EClass getDataObject();
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.Property <em>Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Property</em>'.
+ * @see commonj.sdo.Property
+ * @model instanceClass="commonj.sdo.Property"
+ * @generated
+ */
+ EClass getProperty();
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.Sequence <em>Sequence</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sequence</em>'.
+ * @see commonj.sdo.Sequence
+ * @model instanceClass="commonj.sdo.Sequence"
+ * @generated
+ */
+ EClass getSequence();
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.Type <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Type</em>'.
+ * @see commonj.sdo.Type
+ * @model instanceClass="commonj.sdo.Type"
+ * @generated
+ */
+ EClass getType();
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.AnyTypeDataObject <em>Any Type Data Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Any Type Data Object</em>'.
+ * @see org.apache.tuscany.sdo.AnyTypeDataObject
+ * @generated
+ */
+ EClass getAnyTypeDataObject();
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.SimpleAnyTypeDataObject <em>Simple Any Type Data Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Simple Any Type Data Object</em>'.
+ * @see org.apache.tuscany.sdo.SimpleAnyTypeDataObject
+ * @generated
+ */
+ EClass getSimpleAnyTypeDataObject();
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.Type <em>Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Class</em>'.
+ * @see commonj.sdo.Type
+ * @model instanceClass="commonj.sdo.Type"
+ * @generated
+ */
+ EClass getClass_();
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.Type <em>Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Data Type</em>'.
+ * @see commonj.sdo.Type
+ * @model instanceClass="commonj.sdo.Type"
+ * @generated
+ */
+ EClass getDataType();
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.Property <em>Attribute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Attribute</em>'.
+ * @see commonj.sdo.Property
+ * @model instanceClass="commonj.sdo.Property"
+ * @generated
+ */
+ EClass getAttribute();
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.Property <em>Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Reference</em>'.
+ * @see commonj.sdo.Property
+ * @model instanceClass="commonj.sdo.Property"
+ * @generated
+ */
+ EClass getReference();
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.Type <em>Enum</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Enum</em>'.
+ * @see commonj.sdo.Type
+ * @model instanceClass="commonj.sdo.Type"
+ * @generated
+ */
+ EClass getEnum();
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.DataObject <em>Dynamic Data Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Dynamic Data Object</em>'.
+ * @see commonj.sdo.DataObject
+ * @model instanceClass="commonj.sdo.DataObject"
+ * @generated
+ */
+ EClass getDynamicDataObject();
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.DataObject <em>Store Data Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Store Data Object</em>'.
+ * @see commonj.sdo.DataObject
+ * @model instanceClass="commonj.sdo.DataObject"
+ * @generated
+ */
+ EClass getStoreDataObject();
+
+ /**
+ * Returns the meta object for class '{@link commonj.sdo.DataObject <em>Dynamic Store Data Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Dynamic Store Data Object</em>'.
+ * @see commonj.sdo.DataObject
+ * @model instanceClass="commonj.sdo.DataObject"
+ * @generated
+ */
+ EClass getDynamicStoreDataObject();
+
+ /**
+ * Returns the meta object for data type '{@link java.util.List <em>EJava List</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>EJava List</em>'.
+ * @see java.util.List
+ * @model instanceClass="java.util.List" serializable="false"
+ * @generated
+ */
+ EDataType getEJavaList();
+
+ /**
+ * Returns the meta object for data type '{@link java.io.ObjectStreamException <em>EObject Stream Exception</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>EObject Stream Exception</em>'.
+ * @see java.io.ObjectStreamException
+ * @model instanceClass="java.io.ObjectStreamException" serializable="false"
+ * @generated
+ */
+ EDataType getEObjectStreamException();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ SDOFactory getSDOFactory();
+
+} //SDOPackage
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOTypeVisitor.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOTypeVisitor.java
new file mode 100644
index 0000000000..ced62cc058
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOTypeVisitor.java
@@ -0,0 +1,46 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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;
+
+import commonj.sdo.Property;
+import commonj.sdo.Type;
+
+/**
+ * Visitor interface that allows applications to process SDO type metadata.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface SDOTypeVisitor {
+ /**
+ * Visit a type definition.
+ *
+ * @param type the type to visit
+ */
+ void visitType(Type type);
+
+ /**
+ * Visit a property definition.
+ *
+ * @param property the property to visit
+ */
+ void visitProperty(Property property);
+
+ /**
+ * Visit after all properties.
+ */
+ void visitEnd();
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SimpleAnyTypeDataObject.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SimpleAnyTypeDataObject.java
new file mode 100644
index 0000000000..5fed5829ae
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/SimpleAnyTypeDataObject.java
@@ -0,0 +1,32 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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;
+
+import org.eclipse.emf.ecore.xml.type.SimpleAnyType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Simple Any Type Data Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.apache.tuscany.sdo.SDOPackage#getSimpleAnyTypeDataObject()
+ * @model extendedMetaData="kind='simple'"
+ * @generated
+ */
+public interface SimpleAnyTypeDataObject extends AnyTypeDataObject, SimpleAnyType {
+} // SimpleAnyTypeDataObject
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/XMLStreamHelper.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/XMLStreamHelper.java
new file mode 100644
index 0000000000..4375faa9f3
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/XMLStreamHelper.java
@@ -0,0 +1,89 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.XMLDocument;
+
+/**
+ * Helper interface for reading and writing SDO DataObjects from XML streams.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface XMLStreamHelper {
+ /**
+ * Creates and returns an XMLDocument from an XML input stream.
+ * The reader must be positioned on a START_DOCUMENT event.
+ *
+ * @param reader the stream to read
+ * @return an XMLDocument created from the stream
+ * @throws XMLStreamException if there was a problem reading the stream
+ * @throws IllegalStateException if the reader is not positioned on a START_DOCUMENT event
+ */
+ XMLDocument load(XMLStreamReader reader) throws XMLStreamException, IllegalStateException;
+
+ /**
+ * Save a XMLDocument to an XML stream.
+ *
+ * @param document the document to be written
+ * @param writer the stream to write to
+ * @throws XMLStreamException if there was a problem writing to the stream
+ */
+ void save(XMLDocument document, XMLStreamWriter writer) throws XMLStreamException;
+
+ /**
+ * Creates and returns a XMLStreamReader that can be used to read an XMLDocument as a XML event stream.
+ * The reader will be positioned on a START_DOCUMENT event.
+ *
+ * @param document the XMLDocument to be read
+ * @return an XMLStreamReader that can be used to read the document
+ */
+ XMLStreamReader createXMLStreamReader(XMLDocument document) throws XMLStreamException;
+
+ /**
+ * Create a DataObject from an element in a XML stream.
+ * The reader must be positioned on a START_ELEMENT event.
+ *
+ * @param reader the stream to read
+ * @return a DataObject created from the element in the stream
+ * @throws XMLStreamException if there was a problem reading the stream
+ * @throws IllegalStateException if the reader is not positioned on a START_ELEMENT event
+ */
+ DataObject loadObject(XMLStreamReader reader) throws XMLStreamException, IllegalStateException;
+
+ /**
+ * Save a DataObject to an XML stream.
+ *
+ * @param sdo the DataObject to be written
+ * @param writer the stream to write to
+ * @throws XMLStreamException if there was a problem writing to the stream
+ */
+ void saveObject(DataObject sdo, XMLStreamWriter writer) throws XMLStreamException;
+
+ /**
+ * Creates and returns a XMLStreamReader that can be used to read a DataObject as a XML event stream.
+ * The reader will be positioned on a START_ELEMENT event.
+ *
+ * @param sdo the DataObject to be read
+ * @return an XMLStreamReader that can be used to read the DataObject
+ */
+ XMLStreamReader createXMLStreamReader(DataObject sdo);
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/BytecodeInterfaceGenerator.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/BytecodeInterfaceGenerator.java
new file mode 100644
index 0000000000..6608357769
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/BytecodeInterfaceGenerator.java
@@ -0,0 +1,95 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.codegen;
+
+import java.util.List;
+
+import commonj.sdo.Property;
+import commonj.sdo.Type;
+import org.objectweb.asm.ClassWriter;
+import org.objectweb.asm.Opcodes;
+
+import org.apache.tuscany.sdo.SDOTypeVisitor;
+
+/**
+ * Implementation of a generator that will directly emit bytecode for an interface that
+ * corresponds to the static properties of a SDO type.
+ *
+ * @version $Rev$ $Date$
+ */
+public class BytecodeInterfaceGenerator implements SDOTypeVisitor {
+ private final ClassWriter cw;
+
+ public BytecodeInterfaceGenerator() {
+ cw = new ClassWriter(false);
+ }
+
+ public void visitType(Type type) {
+ String name = type.getName();
+ int lastDot = name.lastIndexOf('.');
+ if (lastDot != -1) {
+ name = name.replace('.', '/');
+ } else {
+ name = Character.toUpperCase(name.charAt(0)) + name.substring(1);
+ }
+
+ List baseTypes = type.getBaseTypes();
+ String[] interfaces = new String[baseTypes.size()];
+ for (int i = 0; i < baseTypes.size(); i++) {
+ Type baseType = (Type) baseTypes.get(i);
+ interfaces[i] = baseType.getInstanceClass().getName().replace('.', '/');
+ }
+
+ cw.visit(Opcodes.V1_4,
+ Opcodes.ACC_PUBLIC + Opcodes.ACC_ABSTRACT + Opcodes.ACC_INTERFACE,
+ name, null, "java/lang/Object", interfaces);
+ }
+
+ public void visitProperty(Property property) {
+ String name = property.getName();
+ String propertyName = Character.toUpperCase(name.charAt(0)) + name.substring(1);
+ Class javaType = property.getType().getInstanceClass();
+ String desc = org.objectweb.asm.Type.getDescriptor(javaType);
+
+ if (property.isMany()) {
+ cw.visitMethod(Opcodes.ACC_PUBLIC + Opcodes.ACC_ABSTRACT, "get" + propertyName, "()Ljava/util/List;", null, null).visitEnd();
+ } else {
+ if (boolean.class.equals(javaType)) {
+ cw.visitMethod(Opcodes.ACC_PUBLIC + Opcodes.ACC_ABSTRACT, "is" + propertyName, "()Z", null, null).visitEnd();
+ } else {
+ cw.visitMethod(Opcodes.ACC_PUBLIC + Opcodes.ACC_ABSTRACT, "get" + propertyName, "()" + desc, null, null).visitEnd();
+ }
+ if (!property.isReadOnly()) {
+ cw.visitMethod(Opcodes.ACC_PUBLIC + Opcodes.ACC_ABSTRACT, "set" + propertyName, '(' + desc + ")V", null, null).visitEnd();
+ }
+ }
+ }
+
+ public void visitEnd() {
+ cw.visitEnd();
+ }
+
+ /**
+ * Return the bytecode for the interface class in a form that can be written
+ * to disk, added to a JAR file, or passed to a ClassLoader.
+ *
+ * @return the bytecode for the SDO Type's interface class
+ */
+ public byte[] getClassData() {
+ return cw.toByteArray();
+ }
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/GenerationException.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/GenerationException.java
new file mode 100644
index 0000000000..15ff8a7502
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/GenerationException.java
@@ -0,0 +1,39 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.codegen;
+
+/**
+ * Exception indicating there was a problem with code generation.
+ *
+ * @version $Rev$ $Date$
+ */
+public abstract class GenerationException extends RuntimeException {
+ public GenerationException() {
+ }
+
+ public GenerationException(String message) {
+ super(message);
+ }
+
+ public GenerationException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public GenerationException(Throwable cause) {
+ super(cause);
+ }
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/JavaInterfaceGenerator.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/JavaInterfaceGenerator.java
new file mode 100644
index 0000000000..b7048ed6ab
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/JavaInterfaceGenerator.java
@@ -0,0 +1,176 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.codegen;
+
+import java.io.PrintWriter;
+import java.util.List;
+
+import commonj.sdo.Property;
+import commonj.sdo.Type;
+
+import org.apache.tuscany.sdo.SDOTypeVisitor;
+
+/**
+ * Implementation of a generator that will output the source code for a Java interface
+ * that corresponds to the SDO Type's static properties.
+ *
+ * @version $Rev$ $Date$
+ */
+public class JavaInterfaceGenerator implements SDOTypeVisitor {
+
+ private static String canonicalize(String className) {
+ if (className == null) {
+ return "";
+ }
+ if (className.charAt(0) != '[') { // if not array
+ return className;
+ }
+ // process array
+ boolean invalidClassName = false;
+ int nestLevel = 1;
+ StringBuffer sb = new StringBuffer();
+ try {
+ while (className.charAt(nestLevel) == '[') {
+ nestLevel++;
+ }
+ char typeChar = className.charAt(nestLevel);
+ int end = nestLevel;
+ switch (typeChar) {
+ case 'L':
+ end = className.length() - 1;
+ if (className.charAt(end) != ';') {
+ invalidClassName = true;
+ } else {
+ sb.append(className.substring(nestLevel+1, end));
+ }
+ break;
+ case 'Z':
+ sb.append("boolean");
+ break;
+ case 'B':
+ sb.append("byte");
+ break;
+ case 'C':
+ sb.append("char");
+ break;
+ case 'D':
+ sb.append("double");
+ break;
+ case 'F':
+ sb.append("float");
+ break;
+ case 'I':
+ sb.append("int");
+ break;
+ case 'J':
+ sb.append("long");
+ break;
+ case 'S':
+ sb.append("short");
+ break;
+ default:
+ invalidClassName = true;
+ break;
+ }
+ if (end != (className.length() - 1)) {
+ invalidClassName = true; // we have not used all the characters
+ } else {
+ for (int i=0; i<nestLevel; i++) {
+ sb.append("[]");
+ }
+ }
+ } catch(Exception e) {
+ invalidClassName = true;
+ }
+ if (invalidClassName) {
+ System.err.println("unable to canonicalize class name: "+className);
+ return className;
+ }
+ return sb.toString();
+ }
+
+ private final PrintWriter writer;
+
+ /**
+ * Constructor providing the Writer to output the source to.
+ *
+ * @param writer where the generated source code will be written to
+ */
+ public JavaInterfaceGenerator(PrintWriter writer) {
+ this.writer = writer;
+ }
+
+ public void visitType(Type type) {
+ String name = type.getName();
+ int lastDot = name.lastIndexOf('.');
+ if (lastDot != -1) {
+ writer.print("package ");
+ writer.print(name.substring(0, lastDot));
+ writer.println(';');
+ writer.println();
+
+ name = name.substring(lastDot + 1);
+ } else {
+ name = Character.toUpperCase(name.charAt(0)) + name.substring(1);
+ }
+
+ writer.print("public interface ");
+ writer.print(name);
+ List baseTypes = type.getBaseTypes();
+ for (int i = 0; i < baseTypes.size(); i++) {
+ Type baseType = (Type) baseTypes.get(i);
+ if (i == 0) {
+ writer.print(" extends ");
+ } else {
+ writer.print(", ");
+ }
+ writer.print(baseType.getInstanceClass().getName());
+ }
+
+ writer.println(" {");
+ }
+
+ public void visitProperty(Property property) {
+ String name = property.getName();
+ String propertyName = Character.toUpperCase(name.charAt(0)) + name.substring(1);
+ String javaType = canonicalize(property.getType().getInstanceClass().getName());
+
+ if (!property.isMany()) {
+ writer.print(" ");
+ writer.print(javaType);
+ writer.print("boolean".equals(javaType) ? " is" : " get");
+ writer.print(propertyName);
+ writer.println("();");
+ if (!property.isReadOnly()) {
+ writer.print(" void set");
+ writer.print(propertyName);
+ writer.print('(');
+ writer.print(javaType);
+ writer.println(" value);");
+ }
+ } else {
+ writer.print(" java.util.List get");
+ writer.print(propertyName);
+ writer.println("();");
+ }
+ }
+
+ public void visitEnd() {
+ writer.println('}');
+ writer.flush();
+ }
+} \ No newline at end of file
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/NoJavaImplementationException.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/NoJavaImplementationException.java
new file mode 100644
index 0000000000..5b9b3742d5
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/NoJavaImplementationException.java
@@ -0,0 +1,58 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.codegen;
+
+import commonj.sdo.Type;
+
+/**
+ * Exception that indicates there is no Java mapping for an SDO type.
+ *
+ * @version $Rev$ $Date$
+ */
+public class NoJavaImplementationException extends GenerationException {
+ private final Type type;
+
+ /**
+ * Constructor supplying the Type that did not have a Java implementation.
+ * A default message is provided of the form "${URI}#${Name}"
+ *
+ * @param type the type that did not have a Java implementation.
+ */
+ public NoJavaImplementationException(Type type) {
+ super(type == null ? null : type.getURI() + "#" + type.getName());
+ this.type = type;
+ }
+
+ /**
+ * Constructor supplying a message and the Type that did not have a Java implementation.
+ *
+ * @param message the message
+ * @param type the type that did not have a Java implementation.
+ */
+ public NoJavaImplementationException(String message, Type type) {
+ super(message);
+ this.type = type;
+ }
+
+ /**
+ * Return the type that did not have a Java implementation.
+ * @return the type that did not have a Java implementation
+ */
+ public Type getType() {
+ return type;
+ }
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/CopyHelperImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/CopyHelperImpl.java
new file mode 100644
index 0000000000..060bd381dc
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/CopyHelperImpl.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.EcoreUtil.Copier;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.CopyHelper;
+
+
+/**
+ * A helper for copying DataObjects.
+ */
+public class CopyHelperImpl implements CopyHelper
+{
+ public DataObject copyShallow(DataObject dataObject)
+ {
+ Copier copier = new Copier()
+ {
+ protected void copyContainment(EReference eReference, EObject eObject, EObject copyEObject)
+ {
+ }
+ };
+ EObject result = copier.copy((EObject)dataObject);
+ copier.copyReferences();
+ return (DataObject)result;
+ }
+
+ public DataObject copy(DataObject dataObject)
+ {
+ return (DataObject)EcoreUtil.copy((EObject)dataObject);
+ }
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataFactoryImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataFactoryImpl.java
new file mode 100644
index 0000000000..ab5ee13af9
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataFactoryImpl.java
@@ -0,0 +1,62 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.EClass;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Type;
+import commonj.sdo.helper.DataFactory;
+import commonj.sdo.helper.TypeHelper;
+
+/**
+ * A Factory for creating DataObjects.
+ * The created DataObjects are not connected to any other DataObjects.
+ */
+public class DataFactoryImpl implements DataFactory
+{
+ protected TypeHelper typeHelper;
+
+ public DataFactoryImpl(TypeHelper typeHelper)
+ {
+ this.typeHelper = typeHelper;
+ }
+
+ public DataObject create(String uri, String typeName)
+ {
+ Type type = typeHelper.getType(uri, typeName);
+ return create(type);
+ }
+
+ public DataObject create(Class interfaceClass)
+ {
+ //TODO more efficient implementation ... this is a really bad one!
+ Type type = typeHelper.getType(interfaceClass);
+ return create(type);
+ }
+
+ public DataObject create(Type type)
+ {
+ if (type instanceof EClass)
+ {
+ EClass eClass = (EClass)type;
+ return (DataObject)EcoreUtil.create(eClass);
+ }
+ throw new IllegalArgumentException();
+ }
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java
new file mode 100644
index 0000000000..3986fa4be7
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java
@@ -0,0 +1,303 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.Locale;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+
+
+import commonj.sdo.helper.DataHelper;
+
+/**
+ * Data helper methods.
+ */
+public class DataHelperImpl implements DataHelper
+{
+ /**
+ * @param dateString - Must comply to the pattern of yyyy-MM-dd'T'HH:mm:ss'.'SSS Z
+ * @return null if dataString couldn't be parsed
+ */
+ public synchronized Date toDate(String dateString)
+ {
+ if (dateString == null)
+ {
+ return null;
+ }
+
+ DateFormat [] DATE_PATTERNS =
+ {
+ new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSS Z"),
+ new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSS"),
+ new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"),
+ new SimpleDateFormat("yyyy-MM-dd'T'HH:mm"),
+ new SimpleDateFormat("yyyy-MM-dd")
+ };
+
+ for (int i = 0; i < DATE_PATTERNS.length; ++i)
+ {
+ try
+ {
+ return DATE_PATTERNS[i].parse(dateString);
+ }
+ catch (ParseException parseException)
+ {
+ }
+ }
+
+ return null;
+ }
+
+ public synchronized Calendar toCalendar(String dateString)
+ {
+ if (dateString == null)
+ {
+ return null;
+ }
+
+ Date date = toDate(dateString);
+ if (date == null)
+ {
+ return null;
+ }
+
+ Calendar calendar = new GregorianCalendar();
+ calendar.setTime(date);
+
+ return calendar;
+ }
+
+ public synchronized Calendar toCalendar(String dateString, Locale locale)
+ {
+ if (dateString == null || locale == null)
+ {
+ return null;
+ }
+
+ Date date = toDate(dateString);
+ if (date == null)
+ {
+ return null;
+ }
+
+ Calendar calendar = new GregorianCalendar(locale);
+ calendar.setTime(date);
+ return calendar;
+ }
+
+ public synchronized String toDateTime(Date date)
+ {
+ if (date == null)
+ {
+ return null;
+ }
+
+ SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.'SSS zz");
+
+ return f.format(date);
+ }
+
+ public synchronized String toDuration(Date date)
+ {
+ if (date == null)
+ {
+ return null;
+ }
+
+ SimpleDateFormat f = new SimpleDateFormat("'P'yyyy'Y' MM'M' dd'D' 'T' HH'H' mm'M' ss'S.'SSS");
+
+ return f.format(date);
+ }
+
+ public synchronized String toTime(Date date)
+ {
+ if (date == null)
+ {
+ return null;
+ }
+
+ SimpleDateFormat f = new SimpleDateFormat("HH:mm:ss'.'SSS zz");
+
+ return f.format(date);
+ }
+
+ public synchronized String toDay(Date date)
+ {
+ if (date == null)
+ {
+ return null;
+ }
+
+ SimpleDateFormat f = new SimpleDateFormat("---dd zz");
+
+ return f.format(date);
+ }
+
+ public synchronized String toMonth(Date date)
+ {
+ if (date == null)
+ {
+ return null;
+ }
+
+ SimpleDateFormat f = new SimpleDateFormat("--MM zz");
+
+ return f.format(date);
+ }
+
+ public synchronized String toMonthDay(Date date)
+ {
+ if (date == null)
+ {
+ return null;
+ }
+
+ SimpleDateFormat f = new SimpleDateFormat("--MM-dd zz");
+
+ return f.format(date);
+ }
+
+ public synchronized String toYear(Date date)
+ {
+ if (date == null)
+ {
+ return null;
+ }
+
+ SimpleDateFormat f = new SimpleDateFormat("yyyy zz");
+
+ return f.format(date);
+ }
+
+ public synchronized String toYearMonth(Date date)
+ {
+ if (date == null)
+ {
+ return null;
+ }
+
+ SimpleDateFormat f = new SimpleDateFormat("yyyy-MM zz");
+
+ return f.format(date);
+ }
+
+ public synchronized String toYearMonthDay(Date date)
+ {
+ if (date == null)
+ {
+ return null;
+ }
+
+ SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd zz");
+
+ return f.format(date);
+ }
+
+ public synchronized String toDateTime(Calendar calendar)
+ {
+ if (calendar == null)
+ {
+ return null;
+ }
+
+ return toDateTime(calendar.getTime());
+ }
+
+ public synchronized String toDuration(Calendar calendar)
+ {
+ if (calendar == null)
+ {
+ return null;
+ }
+
+ return toDuration(calendar.getTime());
+ }
+
+ public synchronized String toTime(Calendar calendar)
+ {
+ if (calendar == null)
+ {
+ return null;
+ }
+
+ return toTime(calendar.getTime());
+ }
+
+ public synchronized String toDay(Calendar calendar)
+ {
+ if (calendar == null)
+ {
+ return null;
+ }
+
+ return toDay(calendar.getTime());
+ }
+
+ public synchronized String toMonth(Calendar calendar)
+ {
+ if (calendar == null)
+ {
+ return null;
+ }
+
+ return toMonth(calendar.getTime());
+ }
+
+ public synchronized String toMonthDay(Calendar calendar)
+ {
+ if (calendar == null)
+ {
+ return null;
+ }
+
+ return toMonthDay(calendar.getTime());
+ }
+
+ public synchronized String toYear(Calendar calendar)
+ {
+ if (calendar == null)
+ {
+ return null;
+ }
+
+ return toYear(calendar.getTime());
+ }
+
+ public synchronized String toYearMonth(Calendar calendar)
+ {
+ if (calendar == null)
+ {
+ return null;
+ }
+
+ return toYearMonth(calendar.getTime());
+ }
+
+ public synchronized String toYearMonthDay(Calendar calendar)
+ {
+ if (calendar == null)
+ {
+ return null;
+ }
+
+ return toYearMonthDay(calendar.getTime());
+ }
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/EqualityHelperImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/EqualityHelperImpl.java
new file mode 100644
index 0000000000..a31066d598
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/EqualityHelperImpl.java
@@ -0,0 +1,67 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.EqualityHelper;
+
+
+/**
+ * A helper for comparing DataObjects.
+ */
+public class EqualityHelperImpl implements EqualityHelper
+{
+ public boolean equalShallow(DataObject dataObject1, DataObject dataObject2)
+ {
+ EcoreUtil.EqualityHelper equalityHelper = new EcoreUtil.EqualityHelper()
+ {
+ protected boolean haveEqualFeature(EObject eObject1, EObject eObject2, EStructuralFeature feature)
+ {
+ if (feature instanceof EAttribute)
+ {
+ boolean eIsSet = eObject1.eIsSet(feature);
+ if (eIsSet != eObject2.eIsSet(feature) || !haveEqualAttribute(eObject1, eObject2, (EAttribute)feature))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ protected boolean equalFeatureMapValues(Object value1, Object value2, EStructuralFeature feature)
+ {
+ if (feature instanceof EAttribute)
+ {
+ return value1 == null ? value2 == null : value1.equals(value2);
+ }
+ return true;
+ }
+ };
+ return equalityHelper.equals((EObject)dataObject1, (EObject)dataObject2);
+ }
+
+ public boolean equal(DataObject dataObject1, DataObject dataObject2)
+ {
+ return EcoreUtil.equals((EObject)dataObject1, (EObject)dataObject2);
+ }
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperProviderImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperProviderImpl.java
new file mode 100644
index 0000000000..d0ece134e3
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperProviderImpl.java
@@ -0,0 +1,110 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.apache.tuscany.sdo.helper.CopyHelperImpl;
+import org.apache.tuscany.sdo.helper.DataHelperImpl;
+import org.apache.tuscany.sdo.helper.EqualityHelperImpl;
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import commonj.sdo.helper.CopyHelper;
+import commonj.sdo.helper.DataFactory;
+import commonj.sdo.helper.DataHelper;
+import commonj.sdo.helper.EqualityHelper;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
+import commonj.sdo.impl.ExternalizableDelegator.Resolvable;
+import commonj.sdo.impl.HelperProvider;
+
+
+/**
+ * Create and manage all the default helper INSTANCEs
+ */
+public class HelperProviderImpl extends HelperProvider
+{
+ protected CopyHelper copyHelper;
+
+ protected DataFactory dataFactory;
+
+ protected DataHelper dataHelper;
+
+ protected EqualityHelper equalityHelper;
+
+ protected TypeHelper typeHelper;
+
+ protected XMLHelper xmlHelper;
+
+ protected XSDHelper xsdHelper;
+
+ public HelperProviderImpl()
+ {
+ typeHelper = SDOUtil.createTypeHelper();
+ dataFactory = SDOUtil.createDataFactory(typeHelper);
+ xmlHelper = SDOUtil.createXMLHelper(typeHelper);
+ xsdHelper = SDOUtil.createXSDHelper(typeHelper);
+ copyHelper = new CopyHelperImpl();
+ equalityHelper = new EqualityHelperImpl();
+ dataHelper = new DataHelperImpl();
+ }
+
+ public CopyHelper copyHelper()
+ {
+ return copyHelper;
+ }
+
+ public DataFactory dataFactory()
+ {
+ return dataFactory;
+ }
+
+ public DataHelper dataHelper()
+ {
+ return dataHelper;
+ }
+
+ public EqualityHelper equalityHelper()
+ {
+ return equalityHelper;
+ }
+
+ public TypeHelper typeHelper()
+ {
+ return typeHelper;
+ }
+
+ public XMLHelper xmlHelper()
+ {
+ return xmlHelper;
+ }
+
+ public XSDHelper xsdHelper()
+ {
+ return xsdHelper;
+ }
+
+ public Resolvable resolvable()
+ {
+ throw new UnsupportedOperationException(); //TODO
+ }
+
+ public Resolvable resolvable(Object target)
+ {
+ throw new UnsupportedOperationException(); //TODO
+ }
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java
new file mode 100644
index 0000000000..1b1313c4f8
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java
@@ -0,0 +1,96 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+import org.apache.tuscany.sdo.SDOExtendedMetaData;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.EPackage.Registry;
+import org.eclipse.emf.ecore.util.BasicExtendedMetaData;
+
+public class SDOExtendedMetaDataImpl
+ extends BasicExtendedMetaData
+ implements SDOExtendedMetaData {
+
+
+
+ public SDOExtendedMetaDataImpl() {
+ super();
+ }
+
+ public SDOExtendedMetaDataImpl(Registry registry) {
+ super(registry);
+ }
+
+ public SDOExtendedMetaDataImpl(String annotationURI, Registry registry, Map annotationMap) {
+ super(annotationURI, registry, annotationMap);
+ }
+
+ public SDOExtendedMetaDataImpl(String annotationURI, Registry registry) {
+ super(annotationURI, registry);
+ }
+
+ /**
+ * 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);
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOXSDEcoreBuilder.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOXSDEcoreBuilder.java
new file mode 100644
index 0000000000..9867393ca4
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOXSDEcoreBuilder.java
@@ -0,0 +1,434 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.tuscany.sdo.SDOExtendedMetaData;
+import org.apache.tuscany.sdo.util.SDOUtil;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDComponent;
+import org.eclipse.xsd.XSDConcreteComponent;
+import org.eclipse.xsd.XSDFeature;
+import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.XSDSimpleTypeDefinition;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.eclipse.xsd.ecore.XSDEcoreBuilder;
+import org.w3c.dom.Element;
+
+/**
+ * TODO:
+ * - Implement support for the SDO XSD Schema annotations
+ * - Override the default ecore type mappings
+ *
+ * DONE:
+ * - Override the default XSDEcoreBuilder name mangling
+ */
+public class SDOXSDEcoreBuilder extends XSDEcoreBuilder
+{
+
+ public SDOXSDEcoreBuilder(ExtendedMetaData extendedMetaData)
+ {
+ super(extendedMetaData);
+ }
+
+ public EClassifier getEClassifier(XSDTypeDefinition xsdTypeDefinition) {
+ EClassifier eClassifier = null;
+ if (rootSchema.getSchemaForSchemaNamespace().equals(xsdTypeDefinition.getTargetNamespace())) {
+ eClassifier =
+ getBuiltInEClassifier(
+ xsdTypeDefinition.getURI(),
+ xsdTypeDefinition.getName());
+ } else {
+ eClassifier = super.getEClassifier(xsdTypeDefinition);
+ }
+ return eClassifier;
+ }
+
+ public EDataType getEDataType(XSDSimpleTypeDefinition xsdSimpleTypeDefinition) {
+ EDataType eClassifier = null;
+ if (rootSchema.getSchemaForSchemaNamespace().equals(xsdSimpleTypeDefinition.getTargetNamespace())) {
+ eClassifier =
+ (EDataType)getBuiltInEClassifier(
+ xsdSimpleTypeDefinition.getURI(),
+ xsdSimpleTypeDefinition.getName());
+ } else {
+ eClassifier = super.getEDataType(xsdSimpleTypeDefinition);
+ }
+ return (EDataType)eClassifier;
+ }
+
+ protected EClassifier getBuiltInEClassifier(String namespace, String name)
+ {
+ EClassifier eClassifier = (EClassifier)SDOUtil.getXSDSDOType(name);
+ if (eClassifier == null) {
+ eClassifier = super.getBuiltInEClassifier(namespace, name);
+ }
+ return eClassifier;
+ }
+
+ public EClass computeEClass(XSDComplexTypeDefinition xsdComplexTypeDefinition) {
+ EClass eclass = super.computeEClass(xsdComplexTypeDefinition);
+ String aliasNames = getEcoreAttribute(xsdComplexTypeDefinition.getElement(), "aliasName");
+ if (aliasNames != null) {
+ SDOExtendedMetaData.INSTANCE.setAliasNames(eclass, aliasNames);
+ }
+ return eclass;
+ }
+
+ protected EClassifier computeEClassifier(XSDTypeDefinition xsdTypeDefinition) {
+ EClassifier eclassifier = super.computeEClassifier(xsdTypeDefinition);
+ EClassifier etype = (EClassifier) typeToTypeObjectMap.get(eclassifier);
+ String aliasNames = getEcoreAttribute(xsdTypeDefinition.getElement(), "aliasName");
+ if (aliasNames != null) {
+ SDOExtendedMetaData.INSTANCE.setAliasNames(eclassifier, aliasNames);
+ if (etype != null) {
+ SDOExtendedMetaData.INSTANCE.setAliasNames(etype, aliasNames);
+ }
+ }
+ return eclassifier;
+ }
+
+ protected EDataType computeEDataType(XSDSimpleTypeDefinition xsdSimpleTypeDefinition) {
+ EDataType edatatype = super.computeEDataType(xsdSimpleTypeDefinition);
+ String aliasNames = getEcoreAttribute(xsdSimpleTypeDefinition.getElement(), "aliasName");
+ if (aliasNames != null) {
+ SDOExtendedMetaData.INSTANCE.setAliasNames(edatatype, aliasNames);
+ }
+ return edatatype;
+ }
+
+ protected EEnum computeEEnum(XSDSimpleTypeDefinition xsdSimpleTypeDefinition) {
+ return null;
+ }
+
+ protected EStructuralFeature createFeature(EClass eClass, String name, EClassifier type, XSDComponent xsdComponent, int minOccurs, int maxOccurs) {
+ EStructuralFeature feature =
+ super.createFeature(eClass, name, type, xsdComponent, minOccurs, maxOccurs);
+ feature.setName(name); // this is needed because super.createFeature() does EMF name mangling (toLower)
+ if (xsdComponent != null) {
+ String aliasNames = getEcoreAttribute(xsdComponent.getElement(), "aliasName");
+ if (aliasNames != null) {
+ SDOExtendedMetaData.INSTANCE.setAliasNames(feature, aliasNames);
+ }
+ }
+ return feature;
+ }
+
+ protected String getInstanceClassName(XSDTypeDefinition typeDefinition, EDataType baseEDataType) {
+ String name = getEcoreAttribute(typeDefinition, "extendedInstanceClass");
+ return (name != null) ? name : super.getInstanceClassName(typeDefinition, baseEDataType);
+ }
+
+ protected String getEcoreAttribute(Element element, String attribute)
+ {
+ String sdoAttribute = null;
+
+ if ("name".equals(attribute))
+ sdoAttribute = "name";
+ else if ("opposite".equals(attribute))
+ sdoAttribute = "oppositeProperty";
+ else if ("mixed".equals(attribute))
+ sdoAttribute = "sequence";
+ else if ("string".equals(attribute))
+ sdoAttribute = "string";
+ else if ("changeable".equals(attribute))
+ sdoAttribute = "readOnly";
+ else if ("aliasName".equals(attribute))
+ sdoAttribute = "aliasName";
+
+ if (sdoAttribute != null)
+ {
+ String value =
+ element != null && element.hasAttributeNS("commonj.sdo/xml", sdoAttribute) ?
+ element.getAttributeNS("commonj.sdo/xml", sdoAttribute) :
+ null;
+ if ("changeable".equals(attribute)) {
+ if ("true".equals(value)) value = "false";
+ else if ("false".equals(value)) value = "true";
+ }
+ return value;
+ }
+
+ if ("package".equals(attribute))
+ sdoAttribute = "package";
+ else if ("instanceClass".equals(attribute))
+ sdoAttribute = "instanceClass";
+ else if ("extendedInstanceClass".equals(attribute))
+ sdoAttribute = "extendedInstanceClass";
+ else if ("nestedInterfaces".equals(attribute))
+ sdoAttribute = "nestedInterfaces";
+
+ if (sdoAttribute != null)
+ {
+ return
+ element != null && element.hasAttributeNS("commonj.sdo/java", sdoAttribute) ?
+ element.getAttributeNS("commonj.sdo/java", sdoAttribute) :
+ null;
+ }
+
+ return super.getEcoreAttribute(element, attribute);
+ }
+
+ protected String getEcoreAttribute(XSDConcreteComponent xsdConcreteComponent, String attribute)
+ {
+ String value = super.getEcoreAttribute(xsdConcreteComponent, attribute);
+ if ("package".equals(attribute) && value == null)
+ {
+ XSDSchema xsdSchema = (XSDSchema)xsdConcreteComponent;
+ value = getDefaultPackageName(xsdSchema.getTargetNamespace());
+ }
+ return value;
+ }
+
+ protected XSDTypeDefinition getEcoreTypeQNameAttribute(XSDConcreteComponent xsdConcreteComponent, String attribute)
+ {
+ if (xsdConcreteComponent == null) return null;
+ String sdoAttribute = null;
+
+ if ("reference".equals(attribute)) sdoAttribute = "propertyType";
+ if ("dataType".equals(attribute)) sdoAttribute = "dataType";
+
+ if (sdoAttribute != null)
+ {
+ Element element = xsdConcreteComponent.getElement();
+ return element == null ? null : getEcoreTypeQNameAttribute(xsdConcreteComponent, element, "commonj.sdo/xml", sdoAttribute);
+ }
+
+ return super.getEcoreTypeQNameAttribute(xsdConcreteComponent, attribute);
+ }
+
+ /**
+ * Override default EMF behavior so that the name is not mangled.
+ */
+ protected String validName(String name, int casing, String prefix) {
+ return name;
+ }
+
+ /**
+ * Override default EMF name mangling for anonymous types (simple and complex)
+ */
+ protected String validAliasName(XSDTypeDefinition xsdTypeDefinition, boolean isUpperCase) {
+ return getAliasName(xsdTypeDefinition);
+ }
+
+ protected String getAliasName(XSDNamedComponent xsdNamedComponent) {
+ String result = xsdNamedComponent.getName();
+ if (result == null)
+ {
+ XSDConcreteComponent container = xsdNamedComponent.getContainer();
+ if (container instanceof XSDNamedComponent)
+ {
+ result = getAliasName((XSDNamedComponent)container);
+ }
+ }
+ return result;
+ }
+
+ protected XSDTypeDefinition getEffectiveTypeDefinition(XSDComponent xsdComponent, XSDFeature xsdFeature) {
+ XSDTypeDefinition typeDef = getEcoreTypeQNameAttribute(xsdComponent, "dataType");
+
+ String isString = getEcoreAttribute(xsdComponent, xsdFeature, "string");
+ if ("true".equalsIgnoreCase(isString)) {
+ typeDef =
+ xsdFeature.resolveSimpleTypeDefinition(rootSchema.getSchemaForSchemaNamespace(), "string");
+ }
+ if (typeDef == null)
+ typeDef = xsdFeature.getType();
+ return typeDef;
+ }
+
+ //Code below here to provide common URI to java packagname
+
+ public static String uncapNameStatic(String name)
+ {
+ if (name.length() == 0)
+ {
+ return name;
+ }
+ else
+ {
+ String lowerName = name.toLowerCase();
+ int i;
+ for (i = 0; i < name.length(); i++)
+ {
+ if (name.charAt(i) == lowerName.charAt(i))
+ {
+ break;
+ }
+ }
+ if (i > 1 && i < name.length() && !Character.isDigit(name.charAt(i)))
+ {
+ --i;
+ }
+ return name.substring(0, i).toLowerCase() + name.substring(i);
+ }
+ }
+
+protected static String validNameStatic(String name, int casing, String prefix)
+ {
+ List parsedName = parseNameStatic(name, '_');
+ StringBuffer result = new StringBuffer();
+ for (Iterator i = parsedName.iterator(); i.hasNext(); )
+ {
+ String nameComponent = (String)i.next();
+ if (nameComponent.length() > 0)
+ {
+ if (result.length() > 0 || casing == UPPER_CASE)
+ {
+ result.append(Character.toUpperCase(nameComponent.charAt(0)));
+ result.append(nameComponent.substring(1));
+ }
+ else
+ {
+ result.append(nameComponent);
+ }
+ }
+ }
+
+ return
+ result.length() == 0 ?
+ prefix :
+ Character.isJavaIdentifierStart(result.charAt(0)) ?
+ casing == LOWER_CASE ?
+ uncapNameStatic(result.toString()) :
+ result.toString() :
+ prefix + result;
+ }
+
+ protected static List parseNameStatic(String sourceName, char separator)
+ {
+ List result = new ArrayList();
+ if (sourceName != null)
+ {
+ StringBuffer currentWord = new StringBuffer();
+ boolean lastIsLower = false;
+ for (int index = 0, length = sourceName.length(); index < length; ++index)
+ {
+ char curChar = sourceName.charAt(index);
+ if (!Character.isJavaIdentifierPart(curChar))
+ {
+ curChar = separator;
+ }
+ if (Character.isUpperCase(curChar) || (!lastIsLower && Character.isDigit(curChar)) || curChar == separator)
+ {
+ if (lastIsLower && currentWord.length() > 1 || curChar == separator && currentWord.length() > 0)
+ {
+ result.add(currentWord.toString());
+ currentWord = new StringBuffer();
+ }
+ lastIsLower = false;
+ }
+ else
+ {
+ if (!lastIsLower)
+ {
+ int currentWordLength = currentWord.length();
+ if (currentWordLength > 1)
+ {
+ char lastChar = currentWord.charAt(--currentWordLength);
+ currentWord.setLength(currentWordLength);
+ result.add(currentWord.toString());
+ currentWord = new StringBuffer();
+ currentWord.append(lastChar);
+ }
+ }
+ lastIsLower = true;
+ }
+
+ if (curChar != separator)
+ {
+ currentWord.append(curChar);
+ }
+ }
+
+ result.add(currentWord.toString());
+ }
+ return result;
+ }
+
+public static String getDefaultPackageName(String targetNamespace)
+ {
+
+ URI uri = URI.createURI(targetNamespace);
+ List parsedName;
+ if (uri.isHierarchical())
+ {
+ String host = uri.host();
+ if (host != null && host.startsWith("www."))
+ {
+ host = host.substring(4);
+ }
+ parsedName = parseNameStatic(host, '.');
+ Collections.reverse(parsedName);
+ if (!parsedName.isEmpty())
+ {
+ parsedName.set(0, ((String)parsedName.get(0)).toLowerCase());
+ }
+
+ parsedName.addAll(parseNameStatic(uri.trimFileExtension().path(), '/'));
+ }
+ else
+ {
+ String opaquePart = uri.opaquePart();
+ int index = opaquePart.indexOf(":");
+ if (index != -1 && "urn".equalsIgnoreCase(uri.scheme()))
+ {
+ parsedName = parseNameStatic(opaquePart.substring(0, index), '-');
+ if (parsedName.size() > 0 && DOMAINS.contains(parsedName.get(parsedName.size() - 1)))
+ {
+ Collections.reverse(parsedName);
+ parsedName.set(0, ((String)parsedName.get(0)).toLowerCase());
+ }
+ parsedName.addAll(parseNameStatic(opaquePart.substring(index + 1), '/'));
+ }
+ else
+ {
+ parsedName = parseNameStatic(opaquePart, '/');
+ }
+ }
+
+ StringBuffer qualifiedPackageName = new StringBuffer();
+ for (Iterator i = parsedName.iterator(); i.hasNext(); )
+ {
+ String packageName = (String)i.next();
+ if (packageName.length() > 0)
+ {
+ if (qualifiedPackageName.length() > 0)
+ {
+ qualifiedPackageName.append('.');
+ }
+ qualifiedPackageName.append(validNameStatic(packageName, LOWER_CASE,"_"));
+ }
+ }
+
+ return qualifiedPackageName.toString().toLowerCase(); //make sure it's lower case .. we can't work with Axis if not.
+ }
+
+
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/TypeHelperImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/TypeHelperImpl.java
new file mode 100644
index 0000000000..f4d39670b6
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/TypeHelperImpl.java
@@ -0,0 +1,215 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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 org.apache.tuscany.sdo.model.impl.ModelPackageImpl;
+import org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl;
+import org.apache.tuscany.sdo.util.SDOUtil;
+import org.apache.tuscany.sdo.util.metadata.impl.MetadataPackageImpl;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Type;
+import commonj.sdo.helper.TypeHelper;
+
+
+/**
+ * Look up a Type given the uri and typeName or interfaceClass.
+ * SDO Types are available through the
+ * getType("commonj.sdo", typeName) method.
+ * Defines Types from DataObjects.
+ */
+public class TypeHelperImpl implements TypeHelper
+{
+ protected ExtendedMetaData extendedMetaData;
+
+ public ExtendedMetaData getExtendedMetaData()
+ {
+ return extendedMetaData;
+ }
+
+ public TypeHelperImpl(ExtendedMetaData extendedMetaData)
+ {
+ this.extendedMetaData = extendedMetaData;
+
+ // Register the standard (predefined) SDO types
+ ModelPackageImpl.init();
+ JavaPackageImpl.init();
+ MetadataPackageImpl.init();
+ }
+
+ public Type getType(String uri, String typeName)
+ {
+ EPackage ePackage = extendedMetaData.getPackage(uri);
+ if (ePackage != null)
+ {
+ EClassifier eClassifier = ePackage.getEClassifier(typeName);
+ if (eClassifier == null)
+ {
+ eClassifier = extendedMetaData.getType(ePackage, typeName);
+ }
+ return (Type)eClassifier;
+ }
+ return null;
+ }
+
+ public Type getType(Class interfaceClass)
+ {
+ Type type = SDOUtil.getJavaSDOType(interfaceClass);
+ if (type != null)
+ {
+ return type;
+ }
+
+ //TODO more efficient implementation ... this is a really bad one!
+ for (Iterator iter = EPackage.Registry.INSTANCE.values().iterator(); iter.hasNext(); )
+ {
+ Object value = iter.next();
+ if (value instanceof EPackage)
+ {
+ EPackage ePackage = (EPackage)value;
+ for (Iterator iter2 = ePackage.getEClassifiers().iterator(); iter2.hasNext(); )
+ {
+ EClassifier eClassifier = (EClassifier)iter2.next();
+ if (eClassifier.getInstanceClass() == interfaceClass)
+ {
+ return (Type)eClassifier;
+ }
+ }
+ }
+ }
+
+ return null;
+ }
+
+ public Type define(DataObject type)
+ {
+ if (!(type instanceof org.apache.tuscany.sdo.model.Type))
+ throw new IllegalArgumentException();
+ org.apache.tuscany.sdo.model.Type modeledType = (org.apache.tuscany.sdo.model.Type)type;
+
+ boolean isDataType = modeledType.isDataType();
+ Type definedType = SDOUtil.createType(this, modeledType.getUri(), modeledType.getName(), isDataType);
+
+ SDOUtil.setJavaClassName(definedType, modeledType.getInstanceClassName());
+
+ if (!isDataType)
+ {
+ SDOUtil.setSequenced(definedType, modeledType.isSequenced());
+ SDOUtil.setOpen(definedType, modeledType.isOpen());
+ SDOUtil.setAbstract(definedType, modeledType.isAbstract());
+
+ for (Iterator iter = modeledType.getBaseType().iterator(); iter.hasNext(); )
+ {
+ Type baseType = getDefinedType((org.apache.tuscany.sdo.model.Type)iter.next());
+ SDOUtil.addBaseType(definedType, baseType);
+ }
+
+ for (Iterator iter = modeledType.getAliasName().iterator(); iter.hasNext(); )
+ {
+ String aliasName = (String)iter.next();
+ SDOUtil.addAliasName(definedType, aliasName);
+ }
+
+ for (Iterator iter = modeledType.getProperty().iterator(); iter.hasNext(); )
+ {
+ org.apache.tuscany.sdo.model.Property modeledProperty = (org.apache.tuscany.sdo.model.Property)iter.next();
+
+ Type propertyType = getDefinedType(modeledProperty.getType_());
+ Property definedProperty = SDOUtil.createProperty(definedType, modeledProperty.getName(), propertyType);
+
+ SDOUtil.setMany(definedProperty, modeledProperty.isMany());
+ SDOUtil.setDefault(definedProperty, modeledProperty.getDefault_());
+ SDOUtil.setReadOnly(definedProperty, modeledProperty.isReadOnly());
+
+ for (Iterator iter2 = modeledProperty.getAliasName().iterator(); iter2.hasNext(); )
+ {
+ String aliasName = (String)iter2.next();
+ SDOUtil.addAliasName(definedProperty, aliasName);
+ }
+
+ if (!propertyType.isDataType())
+ {
+ SDOUtil.setContainment(definedProperty, modeledProperty.isContainment());
+ if (modeledProperty.getOpposite_() != null)
+ {
+ SDOUtil.setOpposite(definedProperty, getDefinedProperty(modeledProperty.getOpposite_()));
+ }
+ }
+ }
+ } // if (!isDataType)
+
+ return definedType;
+ }
+
+ public List /*Type*/define(List /*DataObject*/types)
+ {
+ int count = types.size();
+ List definedTypes = new ArrayList(count);
+ for (int i = 0; i < count; i++)
+ {
+ definedTypes.add(define((DataObject)types.get(i)));
+ }
+ return definedTypes;
+ }
+
+ protected Type getDefinedType(org.apache.tuscany.sdo.model.Type modeledType)
+ {
+ if (modeledType instanceof Type)
+ {
+ return (Type)modeledType;
+ }
+ else
+ {
+ EClassifier eClassifier = extendedMetaData.getType(modeledType.getUri(), modeledType.getName());
+ if (eClassifier != null)
+ {
+ return (Type)eClassifier;
+ }
+ else
+ {
+ return define((DataObject)modeledType);
+ }
+ }
+ }
+
+ protected Property getDefinedProperty(org.apache.tuscany.sdo.model.Property modeledProperty)
+ {
+ if (modeledProperty instanceof Property)
+ {
+ return (Property)modeledProperty;
+ }
+ else
+ {
+ DataObject modeledContainingType = ((DataObject)modeledProperty).getContainer();
+
+ Type definedContainingType = getDefinedType((org.apache.tuscany.sdo.model.Type)modeledContainingType);
+ String propertyName = modeledProperty.getName();
+
+ return definedContainingType.getProperty(propertyName);
+ }
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLDocumentImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLDocumentImpl.java
new file mode 100644
index 0000000000..72fdc93f60
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLDocumentImpl.java
@@ -0,0 +1,553 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.io.Writer;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.sdo.SDOFactory;
+import org.apache.tuscany.sdo.SDOPackage;
+import org.apache.tuscany.sdo.SimpleAnyTypeDataObject;
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.apache.tuscany.sdo.util.SDOUtil;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.xmi.XMLOptions;
+import org.eclipse.emf.ecore.xmi.XMLParserPool;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.ecore.xmi.impl.XMLOptionsImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMLParserPoolImpl;
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+import org.xml.sax.InputSource;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Type;
+import commonj.sdo.helper.XMLDocument;
+
+
+/**
+ * Represents an XML Document containing a tree of DataObjects.
+ *
+ * An example XMLDocument fragment is:
+ * <?xml version="1.0"?>
+ * <purchaseOrder orderDate="1999-10-20">
+ *
+ * created from this XML Schema fragment:
+ * <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ * <xsd:element name="purchaseOrder" type="PurchaseOrderType"/>
+ * <xsd:complexType name="PurchaseOrderType">
+ *
+ * Upon loading this XMLDocument:
+ * DataObject is an instance of Type PurchaseOrderType.
+ * RootElementURI is null because the XSD has no targetNamespace URI.
+ * RootElementName is purchaseOrder.
+ * Encoding is null because the document did not specify an encoding.
+ * XMLDeclaration is true because the document contained an XML declaration.
+ * XMLVersion is 1.0
+ * SchemaLocation and noNamespaceSchemaLocation are null because they are
+ * not specified in the document.
+ *
+ * When saving the root element, if the type of the root dataObject is not the
+ * type of global element specified by rootElementURI and rootElementName,
+ * or if a global element does not exist for rootElementURI and rootElementName,
+ * then an xsi:type declaration is written to record the root DataObject's Type.
+ *
+ * When loading the root element and an xsi:type declaration is found
+ * it is used as the type of the root DataObject. In this case,
+ * if validation is not being performed, it is not an error if the
+ * rootElementName is not a global element.
+ */
+public class XMLDocumentImpl implements XMLDocument
+{
+ protected ExtendedMetaData extendedMetaData;
+
+ protected EObject rootObject;
+
+ protected XMLResource resource;
+
+ protected EStructuralFeature rootElement;
+
+ protected EObject documentRoot;
+
+ protected final static String WHITESPACE_REGEX = "\\s";
+
+ protected static XMLParserPool globalXMLParserPool = new XMLParserPoolImpl();
+
+ //TODO clean up the options thing
+ protected XMLDocumentImpl(ExtendedMetaData extendedMetaData, Object options)
+ {
+ this.extendedMetaData = extendedMetaData;
+ ResourceSet resourceSet = DataObjectUtil.createResourceSet();
+
+ if (options instanceof Map)
+ {
+ Class resourceFactoryClass = (Class)((Map)options).get("GENERATED_LOADER");
+ if (resourceFactoryClass != null)
+ {
+ try
+ {
+ Object resourceFactory = resourceFactoryClass.newInstance();
+ resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", resourceFactory);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ resource = (XMLResource)resourceSet.createResource(URI.createURI("http:///temp.xml"));
+
+ XMLOptions xmlOptions = new XMLOptionsImpl();
+ xmlOptions.setProcessAnyXML(true);
+ resource.getDefaultLoadOptions().put(XMLResource.OPTION_XML_OPTIONS, xmlOptions);
+
+ resource.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, extendedMetaData);
+ resource.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, extendedMetaData);
+
+ resource.getDefaultLoadOptions().put(XMLResource.OPTION_USE_PARSER_POOL, globalXMLParserPool);
+
+ resource.getDefaultLoadOptions().put(XMLResource.OPTION_USE_DEPRECATED_METHODS, Boolean.FALSE);
+
+ resource.getDefaultSaveOptions().put(XMLResource.OPTION_CONFIGURATION_CACHE, Boolean.TRUE);
+ resource.getDefaultLoadOptions().put(XMLResource.OPTION_CONFIGURATION_CACHE, Boolean.TRUE);
+
+ resource.getDefaultLoadOptions().put(XMLResource.OPTION_ANY_TYPE, SDOPackage.eINSTANCE.getAnyTypeDataObject());
+ resource.getDefaultSaveOptions().put(XMLResource.OPTION_ANY_TYPE, SDOPackage.eINSTANCE.getAnyTypeDataObject());
+
+ resource.getDefaultLoadOptions().put(XMLResource.OPTION_ANY_SIMPLE_TYPE, SDOPackage.eINSTANCE.getSimpleAnyTypeDataObject());
+ resource.getDefaultSaveOptions().put(XMLResource.OPTION_ANY_SIMPLE_TYPE, SDOPackage.eINSTANCE.getSimpleAnyTypeDataObject());
+
+ //resource.getDefaultLoadOptions().put(XMLResource.OPTION_USE_XML_NAME_TO_FEATURE_MAP, globalHashMap);
+
+ //resource.getDefaultSaveOptions().put(XMLResource.OPTION_FORMATTED, Boolean.FALSE);
+ }
+
+ protected XMLDocumentImpl(ExtendedMetaData extendedMetaData)
+ {
+ this(extendedMetaData, null);
+ }
+
+ protected XMLDocumentImpl(ExtendedMetaData extendedMetaData, DataObject dataObject, String rootElementURI, String rootElementName)
+ {
+ this(extendedMetaData);
+
+ rootObject = (EObject)dataObject;
+
+ rootElement = extendedMetaData.getElement(rootElementURI, rootElementName);
+ if (rootElement == null)
+ {
+ rootElement = ExtendedMetaData.INSTANCE.demandFeature(rootElementURI, rootElementName, true);
+ }
+
+ EClass documentRootClass = rootElement.getEContainingClass();
+ documentRoot = EcoreUtil.create(documentRootClass);
+ resource.getContents().add(documentRoot);
+ }
+
+ protected void save(OutputStream outputStream, Object options) throws IOException
+ {
+ EObject oldContainer = null;
+ EReference oldContainmentReference = null;
+ int oldContainmentIndex = -1;
+
+ if (documentRoot != null)
+ {
+ //TODO also check if rootObject is directly contained in a resource
+ oldContainer = rootObject.eContainer();
+ if (oldContainer != null)
+ {
+ oldContainmentReference = rootObject.eContainmentFeature();
+ }
+ if (oldContainer != documentRoot || oldContainmentReference != rootElement)
+ {
+ if (oldContainmentReference != null && oldContainmentReference.isMany())
+ {
+ oldContainmentIndex = ((List)oldContainer.eGet(oldContainmentReference)).indexOf(rootObject);
+ }
+
+ Object rootValue =
+ rootElement instanceof EAttribute && rootObject instanceof SimpleAnyTypeDataObject ?
+ ((SimpleAnyTypeDataObject)rootObject).getValue() : rootObject;
+
+ documentRoot.eSet(rootElement, rootValue);
+ }
+ }
+
+ resource.save(outputStream, (Map)options);
+
+ if (oldContainer != null)
+ {
+ if (oldContainer != documentRoot || oldContainmentReference != rootElement)
+ {
+ if (oldContainmentReference.isMany())
+ {
+ ((List)oldContainer.eGet(oldContainmentReference)).add(oldContainmentIndex, rootObject);
+ }
+ else
+ {
+ oldContainer.eSet(oldContainmentReference, rootObject);
+ }
+ }
+ }
+ else if (documentRoot != null)
+ {
+ documentRoot.eSet(rootElement, null);
+ }
+ }
+
+ protected void save(Writer outputWriter, Object options) throws IOException
+ {
+ // TODO temporary brute-force implementation ... to be replaced
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ save(outputStream, options);
+ outputWriter.write(new String(outputStream.toByteArray()));
+ }
+
+ protected void load(InputStream inputStream, String locationURI, Object options) throws IOException
+ {
+ InputSource inputSource = new InputSource(inputStream);
+ load(inputSource, locationURI, options);
+ }
+
+ protected void load(Reader inputReader, String locationURI, Object options) throws IOException
+ {
+ InputSource inputSource = new InputSource(inputReader);
+ load(inputSource, locationURI, options);
+ }
+
+ protected void load(InputSource inputSource, String locationURI, Object options) throws IOException
+ {
+ rootObject = null;
+ rootElement = null;
+ documentRoot = null;
+
+ if (locationURI != null)
+ {
+ inputSource.setSystemId(locationURI);
+ resource.setURI(URI.createURI(locationURI));
+ }
+
+ resource.load(inputSource, (Map)options);
+
+ if (!resource.getContents().isEmpty())
+ {
+ documentRoot = (EObject)resource.getContents().get(0);
+ EClass documentRootClass = documentRoot.eClass();
+ if ("".equals(extendedMetaData.getName(documentRootClass))) //TODO efficient way to check this? Maybe DataObject.getContainer should also check this?
+ {
+ FeatureMap featureMap = (FeatureMap)documentRoot.eGet(documentRootClass.getEStructuralFeature(0)); // get mixed feature
+ int size = featureMap.size();
+ for (int index = 0; index < size; index++)
+ {
+ EStructuralFeature feature = featureMap.getEStructuralFeature(index);
+ boolean isText =
+ feature == XMLTypePackage.Literals.XML_TYPE_DOCUMENT_ROOT__TEXT ||
+ feature == XMLTypePackage.Literals.XML_TYPE_DOCUMENT_ROOT__CDATA ||
+ feature == XMLTypePackage.Literals.XML_TYPE_DOCUMENT_ROOT__COMMENT;
+ if (!isText)
+ {
+ if (feature instanceof EReference)
+ {
+ rootObject = (EObject)featureMap.getValue(index);
+ documentRoot.eUnset(feature);
+ }
+ else //EAttribute
+ {
+ rootObject = (EObject)SDOUtil.createDataTypeWrapper((Type)feature.getEType(), featureMap.getValue(index));
+ }
+ rootElement = feature;
+ break;
+ }
+ } //for
+ }
+ else
+ {
+ rootObject = documentRoot;
+ documentRoot = null;
+ }
+ }
+ }
+
+ public DataObject getRootObject()
+ {
+ return (DataObject)rootObject;
+ }
+
+ public String getRootElementURI()
+ {
+ if (rootElement != null)
+ {
+ return extendedMetaData.getNamespace(rootElement);
+ }
+ else if (rootObject != null)
+ {
+ return extendedMetaData.getNamespace(rootObject.eClass());
+ }
+ return null;
+ }
+
+ public String getRootElementName()
+ {
+ if (rootElement != null)
+ {
+ return extendedMetaData.getName(rootElement);
+ }
+ else if (rootObject != null)
+ {
+ return extendedMetaData.getName(rootObject.eClass());
+ }
+ return null;
+ }
+
+ public String getEncoding()
+ {
+ return resource.getEncoding();
+ }
+
+ public void setEncoding(String encoding)
+ {
+ resource.setEncoding(encoding);
+ }
+
+ public boolean isXMLDeclaration()
+ {
+ return Boolean.FALSE.equals(resource.getDefaultSaveOptions().get(XMLResource.OPTION_DECLARE_XML));
+ }
+
+ public void setXMLDeclaration(boolean xmlDeclaration)
+ {
+ resource.getDefaultSaveOptions().put(XMLResource.OPTION_DECLARE_XML, xmlDeclaration ? Boolean.TRUE : Boolean.FALSE);
+ }
+
+ public String getXMLVersion()
+ {
+ return resource.getXMLVersion();
+ }
+
+ public void setXMLVersion(String xmlVersion)
+ {
+ resource.setXMLVersion(xmlVersion);
+ }
+
+ /**
+ * @return an EMap containing the schema locations or null when no map
+ */
+ protected EMap getSchemaLocationMap()
+ {
+ EMap result = null;
+ if ((documentRoot != null) && (extendedMetaData != null))
+ {
+ EReference xsiSchemaLocationMapFeature = extendedMetaData
+ .getXSISchemaLocationMapFeature(documentRoot.eClass());
+ if (xsiSchemaLocationMapFeature != null)
+ {
+ result = (EMap) documentRoot.eGet(xsiSchemaLocationMapFeature);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @param value
+ * from schema location map.
+ * @return string form of URI from provided value, deresolved if appropriate.
+ */
+ protected String deresolve(String value)
+ {
+ URI location = URI.createURI(value);
+ URI resourceURI = resource.getURI();
+ boolean shouldDeresolve = resourceURI != null && !resourceURI.isRelative()
+ && resourceURI.isHierarchical();
+ if (shouldDeresolve && !location.isRelative())
+ {
+ URI deresolvedURI = location.deresolve(resourceURI, true, true, false);
+ if (deresolvedURI.hasRelativePath())
+ {
+ location = deresolvedURI;
+ }
+ }
+ return location.toString();
+ }
+
+ /**
+ * @param value
+ * for schema location from input parameter.
+ * @return string form of URI from provided value, resolved if appropriate.
+ */
+ protected String resolve(String value)
+ {
+ URI location = URI.createURI(value);
+ URI resourceURI = resource.getURI();
+ boolean shouldResolve = resourceURI != null && resourceURI.isHierarchical()
+ && !resourceURI.isRelative();
+ if (shouldResolve && location.isRelative() && location.hasRelativePath())
+ {
+ location = location.resolve(resourceURI, false);
+ }
+ return location.toString();
+ }
+
+ public String getSchemaLocation()
+ {
+ EMap xsiSchemaLocationMap = getSchemaLocationMap();
+ if (xsiSchemaLocationMap != null)
+ {
+ if (!xsiSchemaLocationMap.isEmpty())
+ {
+ StringBuffer xsiSchemaLocation = new StringBuffer();
+ for (Iterator i = xsiSchemaLocationMap.entrySet().iterator(); i
+ .hasNext();)
+ {
+ Map.Entry entry = (Map.Entry) i.next();
+ String namespace = (String) entry.getKey();
+ if (namespace != null)
+ {
+ if (xsiSchemaLocation.length() > 0)
+ {
+ xsiSchemaLocation.append(' ');
+ }
+ xsiSchemaLocation.append(namespace);
+ xsiSchemaLocation.append(' ');
+ String value = entry.getValue().toString();
+ xsiSchemaLocation.append(deresolve(value));
+ }
+ }
+ return xsiSchemaLocation.toString().equals("") ? null
+ : xsiSchemaLocation.toString();
+ }
+ }
+ return null;
+ }
+
+ public void setSchemaLocation(String schemaLocation)
+ {
+ EMap xsiSchemaLocationMap = getSchemaLocationMap();
+ if (xsiSchemaLocationMap != null)
+ {
+ // only remove the entries from xsiSchemaLocationMap that contain a
+ // non-null key
+ for (Iterator i = xsiSchemaLocationMap.entrySet().iterator(); i.hasNext();)
+ {
+ Map.Entry entry = (Map.Entry) i.next();
+ if (entry.getKey() != null)
+ {
+ i.remove();
+ }
+ }
+ if (xsiSchemaLocationMap.size() == 0)
+ {
+ resource.getDefaultSaveOptions().put(
+ XMLResource.OPTION_SCHEMA_LOCATION, Boolean.FALSE);
+ }
+ if (schemaLocation != null)
+ {
+ String[] values = schemaLocation.split(WHITESPACE_REGEX);
+ for (int i = 0; i < values.length; i++) // note: also incremented in
+ // loop
+ {
+ String key = values[i++];
+ if (i < values.length)
+ {
+ xsiSchemaLocationMap.put(key, resolve(values[i]));
+ }
+ }
+ if (xsiSchemaLocationMap.size() != 0)
+ {
+ resource.getDefaultSaveOptions().put(
+ XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
+ }
+ }
+ }
+ }
+
+ public String getNoNamespaceSchemaLocation()
+ {
+ EMap xsiSchemaLocationMap = getSchemaLocationMap();
+ if (xsiSchemaLocationMap != null)
+ {
+ StringBuffer xsiSchemaLocation = new StringBuffer();
+ if (!xsiSchemaLocationMap.isEmpty())
+ {
+ Object valueObject = xsiSchemaLocationMap.get(null);
+ if (valueObject != null)
+ {
+ String valueString = (String) valueObject;
+ String[] values = valueString.split(WHITESPACE_REGEX);
+ for (int i = 0; i < values.length; i++)
+ {
+ if (xsiSchemaLocation.length() > 0)
+ {
+ xsiSchemaLocation.append(' ');
+ }
+ xsiSchemaLocation.append(deresolve(values[i]));
+ }
+ }
+ String result = xsiSchemaLocation.toString();
+ return result.equals("") ? null : result;
+ }
+ }
+ return null;
+ }
+
+ public void setNoNamespaceSchemaLocation(String schemaLocation)
+ {
+ EMap xsiSchemaLocationMap = getSchemaLocationMap();
+ if (xsiSchemaLocationMap != null)
+ {
+ // only remove the entries from xsiSchemaLocationMap that contain a null
+ // key
+ xsiSchemaLocationMap.removeKey(null);
+ if (xsiSchemaLocationMap.size() == 0)
+ {
+ resource.getDefaultSaveOptions().put(
+ XMLResource.OPTION_SCHEMA_LOCATION, Boolean.FALSE);
+ }
+ if (schemaLocation != null)
+ {
+ String[] values = schemaLocation.split(WHITESPACE_REGEX);
+ for (int i = 0; i < values.length; i++)
+ {
+ xsiSchemaLocationMap.put(null, resolve(values[i]));
+ }
+ if (xsiSchemaLocationMap.size() != 0)
+ {
+ resource.getDefaultSaveOptions().put(
+ XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
+ }
+ }
+ }
+ }
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLHelperImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLHelperImpl.java
new file mode 100644
index 0000000000..653665e1b8
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLHelperImpl.java
@@ -0,0 +1,116 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.io.Writer;
+
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+
+/**
+ * A helper to convert XML documents into DataObects and
+ * DataObjects into XML documnets.
+ */
+public class XMLHelperImpl implements XMLHelper
+{
+ ExtendedMetaData extendedMetaData;
+
+ public XMLHelperImpl(ExtendedMetaData extendedMetaData)
+ {
+ this.extendedMetaData = extendedMetaData;
+ }
+
+ public XMLHelperImpl(TypeHelper typeHelper)
+ {
+ this.extendedMetaData = ((TypeHelperImpl)typeHelper).extendedMetaData;
+ }
+
+ public XMLDocument load(String inputString)
+ {
+ try
+ {
+ return load(new StringReader(inputString), null, null);
+ }
+ catch (IOException e)
+ {
+ throw new RuntimeException(e); // should never happen
+ }
+ }
+
+ public XMLDocument load(InputStream inputStream) throws IOException
+ {
+ return load(inputStream, null, null);
+ }
+
+ public XMLDocument load(InputStream inputStream, String locationURI, Object options) throws IOException
+ {
+ XMLDocumentImpl document = new XMLDocumentImpl(extendedMetaData, options);
+ document.load(inputStream, locationURI, options);
+ return document;
+ }
+
+ public XMLDocument load(Reader inputReader, String locationURI, Object options) throws IOException
+ {
+ XMLDocumentImpl document = new XMLDocumentImpl(extendedMetaData, options);
+ document.load(inputReader, locationURI, options);
+ return document;
+ }
+
+ public String save(DataObject dataObject, String rootElementURI, String rootElementName)
+ {
+ StringWriter stringWriter = new StringWriter();
+ try
+ {
+ save(createDocument(dataObject, rootElementURI, rootElementName), stringWriter, null);
+ return stringWriter.toString();
+ }
+ catch (IOException e)
+ {
+ throw new RuntimeException(e); // should never happen
+ }
+ }
+
+ public void save(DataObject dataObject, String rootElementURI, String rootElementName, OutputStream outputStream) throws IOException
+ {
+ save(createDocument(dataObject, rootElementURI, rootElementName), outputStream, null);
+ }
+
+ public void save(XMLDocument xmlDocument, OutputStream outputStream, Object options) throws IOException
+ {
+ ((XMLDocumentImpl)xmlDocument).save(outputStream, options);
+ }
+
+ public void save(XMLDocument xmlDocument, Writer outputWriter, Object options) throws IOException
+ {
+ ((XMLDocumentImpl)xmlDocument).save(outputWriter, options);
+ }
+
+ public XMLDocument createDocument(DataObject dataObject, String rootElementURI, String rootElementName)
+ {
+ return new XMLDocumentImpl(extendedMetaData, dataObject, rootElementURI, rootElementName);
+ }
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLStreamHelperImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLStreamHelperImpl.java
new file mode 100644
index 0000000000..ace561e28f
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLStreamHelperImpl.java
@@ -0,0 +1,55 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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 javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.DataObject;
+
+import org.apache.tuscany.sdo.XMLStreamHelper;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class XMLStreamHelperImpl implements XMLStreamHelper {
+ public XMLDocument load(XMLStreamReader reader) throws XMLStreamException, IllegalStateException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void save(XMLDocument document, XMLStreamWriter writer) throws XMLStreamException {
+ throw new UnsupportedOperationException();
+ }
+
+ public XMLStreamReader createXMLStreamReader(XMLDocument document) throws XMLStreamException {
+ throw new UnsupportedOperationException();
+ }
+
+ public DataObject loadObject(XMLStreamReader reader) throws XMLStreamException, IllegalStateException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void saveObject(DataObject sdo, XMLStreamWriter writer) throws XMLStreamException {
+ throw new UnsupportedOperationException();
+ }
+
+ public XMLStreamReader createXMLStreamReader(DataObject sdo) {
+ throw new UnsupportedOperationException();
+ }
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java
new file mode 100644
index 0000000000..2194b0c6ce
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java
@@ -0,0 +1,218 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.sdo.impl.DynamicDataObjectImpl;
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.eclipse.emf.common.util.URI;
+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.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.ecore.XSDEcoreBuilder;
+import org.eclipse.xsd.util.XSDResourceImpl;
+import org.xml.sax.InputSource;
+
+import commonj.sdo.Property;
+import commonj.sdo.Type;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XSDHelper;
+
+
+/**
+ * Provides access to additional information when the
+ * Type or Property is defined by an XML Schema (XSD).
+ * Methods return null/false otherwise or if the information is unavailable.
+ * Defines Types from an XSD.
+ */
+public class XSDHelperImpl implements XSDHelper
+{
+ private XSDEcoreBuilder ecoreBuilder;
+
+ private ExtendedMetaData extendedMetaData;
+
+ public XSDHelperImpl(ExtendedMetaData extendedMetaData)
+ {
+ this.extendedMetaData = extendedMetaData;
+ ecoreBuilder = new SDOXSDEcoreBuilder(extendedMetaData);
+ }
+
+ public XSDHelperImpl(TypeHelper typeHelper)
+ {
+ this(((TypeHelperImpl)typeHelper).extendedMetaData);
+ }
+
+ public String getLocalName(Type type)
+ {
+ return extendedMetaData.getName((EClassifier)type);
+ }
+
+ public String getLocalName(Property property)
+ {
+ return extendedMetaData.getName((EStructuralFeature)property);
+ }
+
+ public String getNamespaceURI(Property property)
+ {
+ return extendedMetaData.getNamespace((EStructuralFeature)property);
+ }
+
+ public boolean isAttribute(Property property)
+ {
+ return extendedMetaData.getFeatureKind((EStructuralFeature)property) == ExtendedMetaData.ATTRIBUTE_FEATURE;
+ }
+
+ public boolean isElement(Property property)
+ {
+ return extendedMetaData.getFeatureKind((EStructuralFeature)property) == ExtendedMetaData.ELEMENT_FEATURE;
+ }
+
+ public boolean isMixed(Type type)
+ {
+ if (type instanceof EClass)
+ {
+ return extendedMetaData.getContentKind((EClass)type) == ExtendedMetaData.MIXED_CONTENT;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ public boolean isXSD(Type type)
+ {
+ return ((EModelElement)type).getEAnnotation(ExtendedMetaData.ANNOTATION_URI) != null;
+ }
+
+ public Property getGlobalProperty(String uri, String propertyName, boolean isElement)
+ {
+ if (isElement)
+ {
+ return (Property)extendedMetaData.getElement(uri, propertyName);
+ }
+ else
+ {
+ return (Property)extendedMetaData.getAttribute(uri, propertyName);
+ }
+ }
+
+ public String getAppinfo(Type type, String source)
+ {
+ return getAppinfo((EModelElement)type, source);
+ }
+
+ public String getAppinfo(Property property, String source)
+ {
+ return getAppinfo((EModelElement)property, source);
+ }
+
+ protected String getAppinfo(EModelElement eModelElement, String source)
+ {
+ return (String)eModelElement.getEAnnotation(source).getDetails().get("appinfo");
+ }
+
+ public List /*Type*/define(String xsd)
+ {
+ InputStream inputStream = new ByteArrayInputStream(xsd.getBytes());
+ return define(inputStream, "*.xsd");
+
+ }
+
+ public List /*Type*/define(Reader xsdReader, String schemaLocation)
+ {
+
+ InputSource inputSource = new InputSource(xsdReader);
+ return define(inputSource, schemaLocation);
+
+ }
+
+ public List /*Type*/define(InputStream xsdInputStream, String schemaLocation)
+ {
+ InputSource inputSource = new InputSource(xsdInputStream);
+ return define(inputSource, schemaLocation);
+ }
+
+ protected List /*Type*/define(InputSource inputSource, String schemaLocation)
+ {
+ try
+ {
+ ResourceSet resourceSet = DataObjectUtil.createResourceSet();
+ Resource model = resourceSet.createResource(URI.createURI(schemaLocation != null ? schemaLocation : "null.xsd"));
+ ((XSDResourceImpl)model).load(inputSource, null);
+
+ List newTypes = new ArrayList();
+ for (Iterator schemaIter = model.getContents().iterator(); schemaIter.hasNext(); )
+ {
+ XSDSchema schema = (XSDSchema)schemaIter.next();
+
+ EPackage ePackage = extendedMetaData.getPackage(schema.getTargetNamespace());
+ if (ePackage == null)
+ {
+ Collection originalEPackages = new HashSet(ecoreBuilder.getTargetNamespaceToEPackageMap().values());
+ ecoreBuilder.generate(schema);
+ Collection newEPackages = ecoreBuilder.getTargetNamespaceToEPackageMap().values();
+
+ for (Iterator iter = newEPackages.iterator(); iter.hasNext();)
+ {
+ EPackage currentPackage = (EPackage)iter.next();
+ if (!originalEPackages.contains(currentPackage))
+ {
+ currentPackage.setEFactoryInstance(new DynamicDataObjectImpl.FactoryImpl());
+ EcoreUtil.freeze(currentPackage);
+ newTypes.addAll(currentPackage.getEClassifiers());
+ }
+ }
+ }
+ }
+
+ return newTypes;
+ }
+ catch (Exception e)
+ {
+ //e.printStackTrace();
+ throw new IllegalArgumentException(e.getMessage());
+ }
+ }
+
+ public String generate(List /*Type*/types)
+ {
+ throw new UnsupportedOperationException(); //TODO
+ }
+
+ public String generate(List /*Type*/types, Map /*String, String*/namespaceToSchemaLocation)
+ {
+ throw new UnsupportedOperationException(); //TODO
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/AnyTypeDataObjectImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/AnyTypeDataObjectImpl.java
new file mode 100644
index 0000000000..a1bb922d69
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/AnyTypeDataObjectImpl.java
@@ -0,0 +1,296 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+import org.apache.tuscany.sdo.AnyTypeDataObject;
+import org.apache.tuscany.sdo.SDOPackage;
+import org.apache.tuscany.sdo.util.BasicSequence;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.ecore.xml.type.AnyType;
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>EData Object Any Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.impl.AnyTypeDataObjectImpl#getMixed <em>Mixed</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.impl.AnyTypeDataObjectImpl#getAny <em>Any</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.impl.AnyTypeDataObjectImpl#getAnyAttribute <em>Any Attribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AnyTypeDataObjectImpl extends DataObjectImpl implements AnyTypeDataObject
+{
+ /**
+ * The cached value of the '{@link #getMixed() <em>Mixed</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMixed()
+ * @generated
+ * @ordered
+ */
+ protected FeatureMap mixed = null;
+
+ /**
+ * The cached value of the '{@link #getAnyAttribute() <em>Any Attribute</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAnyAttribute()
+ * @generated
+ * @ordered
+ */
+ protected FeatureMap anyAttribute = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AnyTypeDataObjectImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return SDOPackage.eINSTANCE.getAnyTypeDataObject();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public FeatureMap getMixed()
+ {
+ if (mixed == null)
+ {
+ //mixed = new BasicFeatureMap(this, SDOPackage.ANY_TYPE_DATA_OBJECT__MIXED);
+ mixed = new BasicSequence(new BasicFeatureMap(this, SDOPackage.ANY_TYPE_DATA_OBJECT__MIXED)).featureMap();
+ }
+ return mixed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public FeatureMap getAny()
+ {
+ //return (FeatureMap)((FeatureMap)getMixed()).list(XMLTypePackage.eINSTANCE.getAnyType_Any());
+ return new BasicSequence((FeatureMap.Internal)((FeatureMap)getMixed()).list(XMLTypePackage.eINSTANCE.getAnyType_Any())).featureMap();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public FeatureMap getAnyAttribute()
+ {
+ if (anyAttribute == null)
+ {
+ //anyAttribute = new BasicFeatureMap(this, SDOPackage.ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE);
+ anyAttribute = new BasicSequence(new BasicFeatureMap(this, SDOPackage.ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE)).featureMap();
+ }
+ return anyAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs)
+ {
+ if (featureID >= 0)
+ {
+ switch (eDerivedStructuralFeatureID(featureID, baseClass))
+ {
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__MIXED:
+ return ((InternalEList)getMixed()).basicRemove(otherEnd, msgs);
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__ANY:
+ return ((InternalEList)getAny()).basicRemove(otherEnd, msgs);
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE:
+ return ((InternalEList)getAnyAttribute()).basicRemove(otherEnd, msgs);
+ default:
+ return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
+ }
+ }
+ return eBasicSetContainer(null, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__MIXED:
+ if (coreType) return getMixed();
+ return ((FeatureMap.Internal)getMixed()).getWrapper();
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__ANY:
+ if (coreType) return getAny();
+ return ((FeatureMap.Internal)getAny()).getWrapper();
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE:
+ if (coreType) return getAnyAttribute();
+ return ((FeatureMap.Internal)getAnyAttribute()).getWrapper();
+ }
+ return eDynamicGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__MIXED:
+ ((FeatureMap.Internal)getMixed()).set(newValue);
+ return;
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__ANY:
+ ((FeatureMap.Internal)getAny()).set(newValue);
+ return;
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE:
+ ((FeatureMap.Internal)getAnyAttribute()).set(newValue);
+ return;
+ }
+ eDynamicSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__MIXED:
+ getMixed().clear();
+ return;
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__ANY:
+ getAny().clear();
+ return;
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE:
+ getAnyAttribute().clear();
+ return;
+ }
+ eDynamicUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__MIXED:
+ return mixed != null && !mixed.isEmpty();
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__ANY:
+ return !getAny().isEmpty();
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE:
+ return anyAttribute != null && !anyAttribute.isEmpty();
+ }
+ return eDynamicIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass)
+ {
+ if (baseClass == AnyType.class)
+ {
+ switch (derivedFeatureID)
+ {
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__MIXED: return XMLTypePackage.ANY_TYPE__MIXED;
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__ANY: return XMLTypePackage.ANY_TYPE__ANY;
+ case SDOPackage.ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE: return XMLTypePackage.ANY_TYPE__ANY_ATTRIBUTE;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass)
+ {
+ if (baseClass == AnyType.class)
+ {
+ switch (baseFeatureID)
+ {
+ case XMLTypePackage.ANY_TYPE__MIXED: return SDOPackage.ANY_TYPE_DATA_OBJECT__MIXED;
+ case XMLTypePackage.ANY_TYPE__ANY: return SDOPackage.ANY_TYPE_DATA_OBJECT__ANY;
+ case XMLTypePackage.ANY_TYPE__ANY_ATTRIBUTE: return SDOPackage.ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (mixed: ");
+ result.append(mixed);
+ result.append(", anyAttribute: ");
+ result.append(anyAttribute);
+ result.append(')');
+ return result.toString();
+ }
+
+} //EDataObjectAnyTypeImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/AttributeImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/AttributeImpl.java
new file mode 100644
index 0000000000..b516cea449
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/AttributeImpl.java
@@ -0,0 +1,732 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+import java.util.List;
+
+import org.apache.tuscany.sdo.util.BasicSequence;
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.EAttributeImpl;
+import org.eclipse.emf.ecore.util.FeatureMap;
+
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Attribute</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class AttributeImpl extends EAttributeImpl implements Property, org.apache.tuscany.sdo.model.Property/*, DataObject*/
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AttributeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected EClass eStaticClass()
+ {
+ return EcorePackage.eINSTANCE.getEAttribute();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Object getDefault()
+ {
+ return getDefaultValue();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isReadOnly()
+ {
+ //return "true".equals(EcoreUtil.getAnnotation(this, "commonj.sdo", "readOnly"));
+ return !isChangeable(); //TODO semantics don't exactly match?
+ }
+
+ protected List aliasNames = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getAliasNames()
+ {
+ if (aliasNames == null)
+ {
+ aliasNames = DataObjectUtil.getAliasNames(this);
+ }
+ return aliasNames;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Type getType()
+ {
+ return (Type)getEType();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Type getContainingType()
+ {
+ return (Type)getEContainingClass();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Property getOpposite()
+ {
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isContainment()
+ {
+ return false;
+ }
+
+ protected EStructuralFeature.Internal.SettingDelegate createFeatureMapSettingDelegate()
+ {
+ return new InternalSettingDelegateSequence(this);
+ }
+
+ public static class InternalSettingDelegateSequence extends InternalSettingDelegateMany
+ {
+ InternalSettingDelegateSequence(EStructuralFeature feature)
+ {
+ super(InternalSettingDelegateMany.FEATURE_MAP, feature);
+ }
+
+ protected EStructuralFeature.Setting createDynamicSetting(InternalEObject owner)
+ {
+ FeatureMap.Internal featureMap = (FeatureMap.Internal)super.createDynamicSetting(owner);
+ new BasicSequence(featureMap);
+ return featureMap;
+ }
+ }
+
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // org.apache.tuscany.sdo.model.Property methods
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ public List getAliasName() {
+ return this.getAliasNames();
+ }
+
+ public Sequence getAny() {
+ throw new UnsupportedOperationException();
+ }
+
+ public void unsetContainment() {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public boolean isSetContainment() {
+ return false;
+ }
+
+ public void setMany(boolean value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public void unsetMany() {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public boolean isSetMany() {
+ return isMany();
+ }
+
+ public void setReadOnly(boolean value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public void unsetReadOnly() {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public boolean isSetReadOnly() {
+ return isReadOnly();
+ }
+
+ public org.apache.tuscany.sdo.model.Type getType_() {
+ return (org.apache.tuscany.sdo.model.Type)getType();
+ }
+
+ public void setType(org.apache.tuscany.sdo.model.Type value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public Sequence getAnyAttribute() {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getDefault_() {
+ return (String) this.getDefault();
+ }
+
+ public void setDefault_(String value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public org.apache.tuscany.sdo.model.Property getOpposite_() {
+ return (org.apache.tuscany.sdo.model.Property) getOpposite();
+ }
+
+ public void setOpposite_(org.apache.tuscany.sdo.model.Property value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public void setContainment(boolean value) {
+ throw new UnsupportedOperationException();
+ }
+
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // DataObject method implementations
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+ /*
+ public Object get(int propertyIndex) {
+ return DataObjectUtil.get(this, propertyIndex);
+ }
+
+ public void set(int propertyIndex, Object value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public boolean isSet(int propertyIndex) {
+ return DataObjectUtil.isSet(this, propertyIndex);
+ }
+
+ public void unset(int propertyIndex) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public Object get(Property property) {
+ return DataObjectUtil.get(this, ((EStructuralFeature)property).getFeatureID());
+ }
+
+ public void set(Property property, Object value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public boolean isSet(Property property) {
+ return DataObjectUtil.isSet(this, ((EStructuralFeature)property).getFeatureID());
+ }
+
+ public void unset(Property property) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public DataObject getContainer() {
+ return (DataObject)eContainer();
+ }
+
+ public Property getContainmentProperty() {
+ return (Property)eContainmentFeature();
+ }
+
+ // Remaining DataObject methods are (will be) implemented as straight delegation to DataObjectUtil
+
+ public Object get(String path) {
+ return DataObjectUtil.get(this, path);
+ }
+
+ public void set(String path, Object value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public boolean isSet(String path) {
+ return DataObjectUtil.isSet(this, path);
+ }
+
+ public void unset(String path) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public boolean getBoolean(String path) {
+ return DataObjectUtil.getBoolean(get(path));
+ }
+
+ public byte getByte(String path) {
+ return DataObjectUtil.getByte(get(path));
+ }
+
+ public char getChar(String path) {
+ return DataObjectUtil.getChar(get(path));
+ }
+
+ public double getDouble(String path) {
+ return DataObjectUtil.getDouble(get(path));
+ }
+
+ public float getFloat(String path) {
+ return DataObjectUtil.getFloat(get(path));
+ }
+
+ public int getInt(String path) {
+ return DataObjectUtil.getInt(get(path));
+ }
+
+ public long getLong(String path) {
+ return DataObjectUtil.getLong(get(path));
+ }
+
+ public short getShort(String path) {
+ return DataObjectUtil.getShort(get(path));
+ }
+
+ public byte[] getBytes(String path) {
+ return DataObjectUtil.getBytes(get(path));
+ }
+
+ public BigDecimal getBigDecimal(String path) {
+ return DataObjectUtil.getBigDecimal(get(path));
+ }
+
+ public BigInteger getBigInteger(String path) {
+ return DataObjectUtil.getBigInteger(get(path));
+ }
+
+ public DataObject getDataObject(String path) {
+ return (DataObject)get(path);
+ }
+
+ public Date getDate(String path) {
+ return DataObjectUtil.getDate(get(path));
+ }
+
+ public String getString(String path) {
+ return DataObjectUtil.getString(get(path));
+ }
+
+ public List getList(String path) {
+ return (List)get(path);
+ }
+
+ public Sequence getSequence(String path) {
+ return (Sequence)get(path);
+ }
+
+ public void setBoolean(String path, boolean value) {
+ set(path, new Boolean(value));
+ }
+
+ public void setByte(String path, byte value) {
+ set(path, new Byte(value));
+ }
+
+ public void setChar(String path, char value) {
+ set(path, new Character(value));
+ }
+
+ public void setDouble(String path, double value) {
+ set(path, new Double(value));
+ }
+
+ public void setFloat(String path, float value) {
+ set(path, new Float(value));
+ }
+
+ public void setInt(String path, int value) {
+ set(path, new Integer(value));
+ }
+
+ public void setLong(String path, long value) {
+ set(path, new Long(value));
+ }
+
+ public void setShort(String path, short value) {
+ set(path, new Short(value));
+ }
+
+ public void setBytes(String path, byte[] value) {
+ set(path, value);
+ }
+
+ public void setBigDecimal(String path, BigDecimal value) {
+ set(path, value);
+ }
+
+ public void setBigInteger(String path, BigInteger value) {
+ set(path, value);
+ }
+
+ public void setDataObject(String path, DataObject value) {
+ set(path, value);
+ }
+
+ public void setDate(String path, Date value) {
+ set(path, value);
+ }
+
+ public void setString(String path, String value) {
+ set(path, value);
+ }
+
+ public void setList(String path, List value) {
+ set(path, value);
+ }
+
+ public boolean getBoolean(int propertyIndex) {
+ return DataObjectUtil.getBoolean(this, propertyIndex);
+ }
+
+ public byte getByte(int propertyIndex) {
+ return DataObjectUtil.getByte(this, propertyIndex);
+ }
+
+ public char getChar(int propertyIndex) {
+ return DataObjectUtil.getChar(this, propertyIndex);
+ }
+
+ public double getDouble(int propertyIndex) {
+ return DataObjectUtil.getDouble(this, propertyIndex);
+ }
+
+ public float getFloat(int propertyIndex) {
+ return DataObjectUtil.getFloat(this, propertyIndex);
+ }
+
+ public int getInt(int propertyIndex) {
+ return DataObjectUtil.getInt(this, propertyIndex);
+ }
+
+ public long getLong(int propertyIndex) {
+ return DataObjectUtil.getLong(this, propertyIndex);
+ }
+
+ public short getShort(int propertyIndex) {
+ return DataObjectUtil.getShort(this, propertyIndex);
+ }
+
+ public byte[] getBytes(int propertyIndex) {
+ return DataObjectUtil.getBytes(this, propertyIndex);
+ }
+
+ public BigDecimal getBigDecimal(int propertyIndex) {
+ return DataObjectUtil.getBigDecimal(this, propertyIndex);
+ }
+
+ public BigInteger getBigInteger(int propertyIndex) {
+ return DataObjectUtil.getBigInteger(this, propertyIndex);
+ }
+
+ public DataObject getDataObject(int propertyIndex) {
+ return DataObjectUtil.getDataObject(this, propertyIndex);
+ }
+
+ public Date getDate(int propertyIndex) {
+ return DataObjectUtil.getDate(this, propertyIndex);
+ }
+
+ public String getString(int propertyIndex) {
+ return DataObjectUtil.getString(this, propertyIndex);
+ }
+
+ public List getList(int propertyIndex) {
+ return DataObjectUtil.getList(this, propertyIndex);
+ }
+
+ public Sequence getSequence(int propertyIndex) {
+ return DataObjectUtil.getSequence(this, propertyIndex);
+ }
+
+ public void setBoolean(int propertyIndex, boolean value) {
+ set(propertyIndex, new Boolean(value));
+ }
+
+ public void setByte(int propertyIndex, byte value) {
+ set(propertyIndex, new Byte(value));
+ }
+
+ public void setChar(int propertyIndex, char value) {
+ set(propertyIndex, new Character(value));
+ }
+
+ public void setDouble(int propertyIndex, double value) {
+ set(propertyIndex, new Double(value));
+ }
+
+ public void setFloat(int propertyIndex, float value) {
+ set(propertyIndex, new Float(value));
+ }
+
+ public void setInt(int propertyIndex, int value) {
+ set(propertyIndex, new Integer(value));
+ }
+
+ public void setLong(int propertyIndex, long value) {
+ set(propertyIndex, new Long(value));
+ }
+
+ public void setShort(int propertyIndex, short value) {
+ set(propertyIndex, new Short(value));
+ }
+
+ public void setBytes(int propertyIndex, byte[] value) {
+ set(propertyIndex, value);
+ }
+
+ public void setBigDecimal(int propertyIndex, BigDecimal value) {
+ set(propertyIndex, value);
+ }
+
+ public void setBigInteger(int propertyIndex, BigInteger value) {
+ set(propertyIndex, value);
+ }
+
+ public void setDataObject(int propertyIndex, DataObject value) {
+ set(propertyIndex, value);
+ }
+
+ public void setDate(int propertyIndex, Date value) {
+ set(propertyIndex, value);
+ }
+
+ public void setString(int propertyIndex, String value) {
+ set(propertyIndex, value);
+ }
+
+ public void setList(int propertyIndex, List value) {
+ set(propertyIndex, value);
+ }
+
+ public boolean getBoolean(Property property) {
+ return DataObjectUtil.getBoolean(this, property);
+ }
+
+ public byte getByte(Property property) {
+ return DataObjectUtil.getByte(this, property);
+ }
+
+ public char getChar(Property property) {
+ return DataObjectUtil.getChar(this, property);
+ }
+
+ public double getDouble(Property property) {
+ return DataObjectUtil.getDouble(this, property);
+ }
+
+ public float getFloat(Property property) {
+ return DataObjectUtil.getFloat(this, property);
+ }
+
+ public int getInt(Property property) {
+ return DataObjectUtil.getInt(this, property);
+ }
+
+ public long getLong(Property property) {
+ return DataObjectUtil.getLong(this, property);
+ }
+
+ public short getShort(Property property) {
+ return DataObjectUtil.getShort(this, property);
+ }
+
+ public byte[] getBytes(Property property) {
+ return DataObjectUtil.getBytes(this, property);
+ }
+
+ public BigDecimal getBigDecimal(Property property) {
+ return DataObjectUtil.getBigDecimal(this, property);
+ }
+
+ public BigInteger getBigInteger(Property property) {
+ return DataObjectUtil.getBigInteger(this, property);
+ }
+
+ public DataObject getDataObject(Property property) {
+ return DataObjectUtil.getDataObject(this, property);
+ }
+
+ public Date getDate(Property property) {
+ return DataObjectUtil.getDate(this, property);
+ }
+
+ public String getString(Property property) {
+ return DataObjectUtil.getString(this, property);
+ }
+
+ public List getList(Property property) {
+ return DataObjectUtil.getList(this, property);
+ }
+
+ public Sequence getSequence(Property property) {
+ return DataObjectUtil.getSequence(this, property);
+ }
+
+ public void setBoolean(Property property, boolean value) {
+ set(property, new Boolean(value));
+ }
+
+ public void setByte(Property property, byte value) {
+ set(property, new Byte(value));
+ }
+
+ public void setChar(Property property, char value) {
+ set(property, new Character(value));
+ }
+
+ public void setDouble(Property property, double value) {
+ set(property, new Double(value));
+ }
+
+ public void setFloat(Property property, float value) {
+ set(property, new Float(value));
+ }
+
+ public void setInt(Property property, int value) {
+ set(property, new Integer(value));
+ }
+
+ public void setLong(Property property, long value) {
+ set(property, new Long(value));
+ }
+
+ public void setShort(Property property, short value) {
+ set(property, new Short(value));
+ }
+
+ public void setBytes(Property property, byte[] value) {
+ set(property, value);
+ }
+
+ public void setBigDecimal(Property property, BigDecimal value) {
+ set(property, value);
+ }
+
+ public void setBigInteger(Property property, BigInteger value) {
+ set(property, value);
+ }
+
+ public void setDataObject(Property property, DataObject value) {
+ set(property, value);
+ }
+
+ public void setDate(Property property, Date value) {
+ set(property, value);
+ }
+
+ public void setString(Property property, String value) {
+ set(property, value);
+ }
+
+ public void setList(Property property, List value) {
+ set(property, value);
+ }
+
+ public DataObject createDataObject(String propertyName) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(int propertyIndex) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(Property property) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(String propertyName, String namespaceURI, String typeName) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(int propertyIndex, String namespaceURI, String typeName) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(Property property, Type type) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public void delete() {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public DataGraph getDataGraph() {
+ return DataObjectUtil.getDataGraph(this);
+ }
+
+ public Sequence getSequence() {
+ EAttribute mixedFeature = BasicExtendedMetaData.INSTANCE.getMixedFeature(eClass());
+ return mixedFeature != null ? (Sequence)eGet(mixedFeature, true, false) : null;
+ }
+
+ public List getInstanceProperties() {
+ return DataObjectUtil.getInstanceProperties(this);
+ }
+
+ public DataObject getRootObject() {
+ return DataObjectUtil.getRootObject(this);
+ }
+
+ public ChangeSummary getChangeSummary() {
+ // TODO: implement this method
+ throw new UnsupportedOperationException();
+ }
+
+ public void detach() {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ //DataObjectUtil.detach(this);
+ }
+
+ public Property getProperty(String propertyName) {
+ return DataObjectUtil.getProperty(this, propertyName);
+ }
+ */
+
+} //AttributeImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ChangeSummaryImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ChangeSummaryImpl.java
new file mode 100644
index 0000000000..5460257079
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ChangeSummaryImpl.java
@@ -0,0 +1,679 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.tuscany.sdo.SDOFactory;
+import org.apache.tuscany.sdo.SDOPackage;
+import org.apache.tuscany.sdo.util.BasicSequence;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.change.ChangeDescription;
+import org.eclipse.emf.ecore.change.FeatureChange;
+import org.eclipse.emf.ecore.change.impl.ChangeDescriptionImpl;
+import org.eclipse.emf.ecore.change.util.ChangeRecorder;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.BasicExtendedMetaData;
+import org.eclipse.emf.ecore.util.DelegatingFeatureMap;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.FeatureMapUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import commonj.sdo.ChangeSummary;
+//import commonj.sdo.ChangeSummary.Setting;
+
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>EChange Summary</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.impl.ChangeSummaryImpl#getEDataGraph <em>EData Graph</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ChangeSummaryImpl extends ChangeDescriptionImpl implements ChangeSummary
+{
+ /**
+ * The cached value of the '{@link #getEDataGraph() <em>EData Graph</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEDataGraph()
+ * @generated
+ * @ordered
+ */
+ protected DataGraph eDataGraph = null;
+
+ protected ChangeRecorder changeRecorder = null;
+ protected EList cachedObjectsToDetach = null;
+ protected HashMap cachedSDOObjectChanges = new HashMap();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ChangeSummaryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return SDOPackage.eINSTANCE.getChangeSummary();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isLogging()
+ {
+ return changeRecorder != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataGraph getEDataGraph()
+ {
+ return eDataGraph;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetEDataGraph(DataGraph newEDataGraph, NotificationChain msgs)
+ {
+ DataGraph oldEDataGraph = eDataGraph;
+ eDataGraph = newEDataGraph;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SDOPackage.CHANGE_SUMMARY__EDATA_GRAPH, oldEDataGraph, newEDataGraph);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEDataGraph(DataGraph newEDataGraph)
+ {
+ if (newEDataGraph != eDataGraph)
+ {
+ NotificationChain msgs = null;
+ if (eDataGraph != null)
+ msgs = ((InternalEObject)eDataGraph).eInverseRemove(this, SDOPackage.DATA_GRAPH__ECHANGE_SUMMARY, DataGraph.class, msgs);
+ if (newEDataGraph != null)
+ msgs = ((InternalEObject)newEDataGraph).eInverseAdd(this, SDOPackage.DATA_GRAPH__ECHANGE_SUMMARY, DataGraph.class, msgs);
+ msgs = basicSetEDataGraph(newEDataGraph, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SDOPackage.CHANGE_SUMMARY__EDATA_GRAPH, newEDataGraph, newEDataGraph));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void beginLogging()
+ {
+ if (isLogging())
+ {
+ throw new IllegalStateException("Already logging");
+ }
+
+ getObjectsToAttach().clear();
+ getObjectChanges().clear();
+ getResourceChanges().clear();
+
+ oldContainmentInformation = null;
+ changeRecorder = new SDOChangeRecorder();
+ changeRecorder.beginRecording(Collections.singleton(((DataGraphImpl)getEDataGraph()).getRootResource()));
+// if (eNotificationRequired())
+// eNotify(new ENotificationImpl(this, Notification.SET, SDOPackage.ECHANGE_SUMMARY__LOGGING, false, true));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void resumeLogging()
+ {
+ if (isLogging())
+ {
+ throw new IllegalStateException("Already logging");
+ }
+
+ oldContainmentInformation = null;
+
+ changeRecorder = new SDOChangeRecorder();
+ changeRecorder.beginRecording(this, Collections.singleton(((DataGraphImpl)getEDataGraph()).getRootResource()));
+
+// if (eNotificationRequired())
+// eNotify(new ENotificationImpl(this, Notification.SET, SDOPackage.ECHANGE_SUMMARY__LOGGING, false, true));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs)
+ {
+ if (featureID >= 0)
+ {
+ switch (eDerivedStructuralFeatureID(featureID, baseClass))
+ {
+ case SDOPackage.CHANGE_SUMMARY__EDATA_GRAPH:
+ if (eDataGraph != null)
+ msgs = ((InternalEObject)eDataGraph).eInverseRemove(this, SDOPackage.DATA_GRAPH__ECHANGE_SUMMARY, DataGraph.class, msgs);
+ return basicSetEDataGraph((DataGraph)otherEnd, msgs);
+ default:
+ return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs);
+ }
+ }
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return eBasicSetContainer(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs)
+ {
+ if (featureID >= 0)
+ {
+ switch (eDerivedStructuralFeatureID(featureID, baseClass))
+ {
+ case SDOPackage.CHANGE_SUMMARY__OBJECT_CHANGES:
+ return ((InternalEList)getObjectChanges()).basicRemove(otherEnd, msgs);
+ case SDOPackage.CHANGE_SUMMARY__OBJECTS_TO_ATTACH:
+ return ((InternalEList)getObjectsToAttach()).basicRemove(otherEnd, msgs);
+ case SDOPackage.CHANGE_SUMMARY__RESOURCE_CHANGES:
+ return ((InternalEList)getResourceChanges()).basicRemove(otherEnd, msgs);
+ case SDOPackage.CHANGE_SUMMARY__EDATA_GRAPH:
+ return basicSetEDataGraph(null, msgs);
+ default:
+ return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
+ }
+ }
+ return eBasicSetContainer(null, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.CHANGE_SUMMARY__OBJECT_CHANGES:
+ if (coreType) return getObjectChanges();
+ else return getObjectChanges().map();
+ case SDOPackage.CHANGE_SUMMARY__OBJECTS_TO_DETACH:
+ return getObjectsToDetach();
+ case SDOPackage.CHANGE_SUMMARY__OBJECTS_TO_ATTACH:
+ return getObjectsToAttach();
+ case SDOPackage.CHANGE_SUMMARY__RESOURCE_CHANGES:
+ return getResourceChanges();
+ case SDOPackage.CHANGE_SUMMARY__EDATA_GRAPH:
+ return getEDataGraph();
+ }
+ return eDynamicGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.CHANGE_SUMMARY__OBJECT_CHANGES:
+ ((EStructuralFeature.Setting)getObjectChanges()).set(newValue);
+ return;
+ case SDOPackage.CHANGE_SUMMARY__OBJECTS_TO_DETACH:
+ getObjectsToDetach().clear();
+ getObjectsToDetach().addAll((Collection)newValue);
+ return;
+ case SDOPackage.CHANGE_SUMMARY__OBJECTS_TO_ATTACH:
+ getObjectsToAttach().clear();
+ getObjectsToAttach().addAll((Collection)newValue);
+ return;
+ case SDOPackage.CHANGE_SUMMARY__RESOURCE_CHANGES:
+ getResourceChanges().clear();
+ getResourceChanges().addAll((Collection)newValue);
+ return;
+ case SDOPackage.CHANGE_SUMMARY__EDATA_GRAPH:
+ setEDataGraph((DataGraph)newValue);
+ return;
+ }
+ eDynamicSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.CHANGE_SUMMARY__OBJECT_CHANGES:
+ getObjectChanges().clear();
+ return;
+ case SDOPackage.CHANGE_SUMMARY__OBJECTS_TO_DETACH:
+ getObjectsToDetach().clear();
+ return;
+ case SDOPackage.CHANGE_SUMMARY__OBJECTS_TO_ATTACH:
+ getObjectsToAttach().clear();
+ return;
+ case SDOPackage.CHANGE_SUMMARY__RESOURCE_CHANGES:
+ getResourceChanges().clear();
+ return;
+ case SDOPackage.CHANGE_SUMMARY__EDATA_GRAPH:
+ setEDataGraph((DataGraph)null);
+ return;
+ }
+ eDynamicUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.CHANGE_SUMMARY__OBJECT_CHANGES:
+ return objectChanges != null && !objectChanges.isEmpty();
+ case SDOPackage.CHANGE_SUMMARY__OBJECTS_TO_DETACH:
+ return objectsToDetach != null && !objectsToDetach.isEmpty();
+ case SDOPackage.CHANGE_SUMMARY__OBJECTS_TO_ATTACH:
+ return objectsToAttach != null && !objectsToAttach.isEmpty();
+ case SDOPackage.CHANGE_SUMMARY__RESOURCE_CHANGES:
+ return resourceChanges != null && !resourceChanges.isEmpty();
+ case SDOPackage.CHANGE_SUMMARY__EDATA_GRAPH:
+ return eDataGraph != null;
+ }
+ return eDynamicIsSet(featureID);
+ }
+
+ protected class SDOChangeRecorder extends ChangeRecorder
+ {
+ public SDOChangeRecorder()
+ {
+ super();
+ }
+
+ public void beginRecording(ChangeDescription changeDescription, Collection rootObjects)
+ {
+ deletedObjects = null;
+ cachedObjectsToDetach = null;
+ cachedSDOObjectChanges.clear();
+ super.beginRecording(changeDescription, rootObjects);
+ }
+
+ protected ChangeDescription createChangeDescription()
+ {
+ return ChangeSummaryImpl.this;
+ }
+
+ protected FeatureChange createFeatureChange(EObject eObject, EStructuralFeature eStructuralFeature, Object value, boolean isSet)
+ {
+ Property property = (Property)eStructuralFeature;
+ if (property.isReadOnly())
+ {
+ if (((DataObject)eObject).getDataGraph() != null)
+ {
+ throw
+ new IllegalStateException
+ ("The property '" + property.getName() + "' of type '" +
+ property.getContainingType().getName() + "' is read only");
+ }
+ }
+ return (FeatureChange)SDOFactory.eINSTANCE.createChangeSummarySetting(eStructuralFeature, value, isSet);
+ }
+
+ protected void consolidateChanges()
+ {
+ deletedObjects = null;
+ cachedObjectsToDetach = null;
+ cachedSDOObjectChanges.clear();
+ super.consolidateChanges();
+ }
+
+ protected void addAdapter(Notifier notifier)
+ {
+ if (notifier instanceof DataObjectImpl)
+ ((DataObjectImpl)notifier).setChangeRecorder(this);
+ else
+ super.addAdapter(notifier);
+ }
+
+ protected void removeAdapter(Notifier notifier)
+ {
+ if (notifier instanceof DataObjectImpl)
+ ((DataObjectImpl)notifier).setChangeRecorder(null);
+ else
+ super.removeAdapter(notifier);
+ }
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void endLogging()
+ {
+ if (!isLogging())
+ {
+ throw new IllegalStateException("Not currently logging");
+ }
+
+ changeRecorder.endRecording();
+ changeRecorder.dispose();
+ changeRecorder = null;
+// if (eNotificationRequired())
+// eNotify(new ENotificationImpl(this, Notification.SET, SDOPackage.ECHANGE_SUMMARY__LOGGING, true, false));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isCreated(DataObject dataObject)
+ {
+ return getObjectsToDetach().contains(dataObject);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isDeleted(DataObject dataObject)
+ {
+ return getDeletedObjects().contains(dataObject);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getOldValues(DataObject dataObject)
+ {
+ List sdoSettings = (List)cachedSDOObjectChanges.get(dataObject);
+ if (sdoSettings != null)
+ {
+ return sdoSettings;
+ }
+
+ List settings = (List)getObjectChanges().get(dataObject);
+ if (settings == null)
+ {
+ settings = Collections.EMPTY_LIST;
+ }
+ else
+ {
+ for (int i = 0; i < settings.size(); i++)
+ {
+ FeatureChange change = (FeatureChange)settings.get(i);
+ EStructuralFeature feature = change.getFeature();
+ if (FeatureMapUtil.isFeatureMap(feature))
+ {
+ final List values = (List)change.getValue();
+ if (sdoSettings == null)
+ {
+ sdoSettings = new BasicEList(settings);
+ }
+ DelegatingFeatureMap featureMap = new DelegatingFeatureMap(((InternalEObject)dataObject), feature)
+ {
+ protected final List theList = values;
+
+ protected List delegateList()
+ {
+ return theList;
+ }
+ };
+
+ // create new settings and replace the setting for mixed feature
+ sdoSettings.set(i, SDOFactory.eINSTANCE.createChangeSummarySetting(feature, new BasicSequence(featureMap), change.isSet()));
+ // add all derived features
+ for (int k = 0; k < featureMap.size(); k++)
+ {
+ EStructuralFeature f = featureMap.getEStructuralFeature(k);
+ sdoSettings.add(SDOFactory.eINSTANCE.createChangeSummarySetting(f, featureMap.get(f, false), true));
+ }
+ }
+ }
+ }
+ sdoSettings = (sdoSettings != null) ? sdoSettings : settings;
+ cachedSDOObjectChanges.put(dataObject, sdoSettings);
+ return sdoSettings;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isModified(DataObject dataObject)
+ {
+ return getObjectChanges().containsKey(dataObject) && !isDeleted(dataObject) && !isCreated(dataObject);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void summarize()
+ {
+ if (!isLogging())
+ {
+ throw new IllegalStateException("Not currently logging");
+ }
+
+ changeRecorder.summarize();
+ }
+
+ public Setting getOldValue(DataObject dataObject, Property property)
+ {
+ for (Iterator i = getOldValues(dataObject).iterator(); i.hasNext(); )
+ {
+ Setting setting = (Setting)i.next();
+ if (setting.getProperty() == property)
+ {
+ return setting;
+ }
+ }
+
+ return null;
+ }
+
+ public DataObject getOldContainer(DataObject dataObject)
+ {
+ return (DataObject)getOldContainer((EObject)dataObject);
+ }
+
+ public Property getOldContainmentProperty(DataObject dataObject)
+ {
+ return (Property)getOldContainmentFeature((EObject)dataObject);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Sequence getOldSequence(DataObject dataObject)
+ {
+ EAttribute mixedFeature = BasicExtendedMetaData.INSTANCE.getMixedFeature((EClass)dataObject.getType());
+ if (mixedFeature != null)
+ {
+ return (Sequence)getOldValue(dataObject, (Property)mixedFeature).getValue();
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void undoChanges()
+ {
+ if (isLogging())
+ {
+ changeRecorder.summarize();
+ }
+ apply();
+ }
+
+ public EList getObjectsToDetach()
+ {
+ if (cachedObjectsToDetach == null)
+ {
+ cachedObjectsToDetach = super.getObjectsToDetach();
+ }
+ return cachedObjectsToDetach;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DataGraph getDataGraph()
+ {
+ return getEDataGraph();
+ }
+
+ protected Set deletedObjects;
+
+ protected void preApply(boolean reverse)
+ {
+ super.preApply(reverse);
+ deletedObjects = null;
+ }
+
+ protected Set getDeletedObjects()
+ {
+ if (deletedObjects == null)
+ {
+ deletedObjects = new HashSet();
+ for (Iterator i = EcoreUtil.getAllContents(getObjectsToAttach()); i.hasNext(); )
+ {
+ deletedObjects.add(i.next());
+ }
+ }
+ return deletedObjects;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getChangedDataObjects()
+ {
+ EList result = new UniqueEList.FastCompare(getDeletedObjects());
+ result.addAll(getObjectsToDetach());
+ for (Iterator i = getObjectChanges().iterator(); i.hasNext(); )
+ {
+ Map.Entry entry = (Map.Entry)i.next();
+ result.add(entry.getKey());
+ }
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DataObject getRootObject()
+ {
+ DataGraph dataGraph = getDataGraph();
+ if (dataGraph != null)
+ {
+ return dataGraph.getRootObject();
+ }
+ // TODO: handle ChangeSummary-type property
+ return null;
+ }
+
+} //EChangeSummaryImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ChangeSummarySettingImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ChangeSummarySettingImpl.java
new file mode 100644
index 0000000000..9f714b9cfa
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ChangeSummarySettingImpl.java
@@ -0,0 +1,110 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+
+import java.util.Map;
+
+import org.apache.tuscany.sdo.SDOPackage;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.change.impl.FeatureChangeImpl;
+
+import commonj.sdo.ChangeSummary;
+import commonj.sdo.Property;
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>EChange Summary Setting</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ChangeSummarySettingImpl extends FeatureChangeImpl implements ChangeSummary.Setting
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ChangeSummarySettingImpl()
+ {
+ super();
+ }
+
+ protected ChangeSummarySettingImpl(EStructuralFeature feature, Object value, boolean isSet)
+ {
+ super(feature, value, isSet);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return SDOPackage.eINSTANCE.getChangeSummarySetting();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Object getValue()
+ {
+ EStructuralFeature feature = getFeature();
+ if (feature.isMany())
+ {
+ if (value == null)
+ {
+ EObject eObject = (EObject)((Map.Entry)eContainer()).getKey();
+ value = getListValue((EList)eObject.eGet(feature));
+ }
+ return value;
+ }
+ else
+ {
+ return super.getValue();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Property getProperty()
+ {
+ return (Property)getFeature();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isSet()
+ {
+ return super.isSet();
+ }
+
+} //EChangeSummarySettingImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ClassImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ClassImpl.java
new file mode 100644
index 0000000000..eca552a78d
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ClassImpl.java
@@ -0,0 +1,773 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EClassImpl;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Class</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ClassImpl extends EClassImpl implements Type, org.apache.tuscany.sdo.model.Type/*, DataObject*/
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClassImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected EClass eStaticClass()
+ {
+ return EcorePackage.eINSTANCE.getEClass();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getURI()
+ {
+ return getEPackage().getNsURI();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isDataType()
+ {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isOpen()
+ {
+ for (int i = 0, count = getFeatureCount(); i < count; ++i)
+ {
+ EStructuralFeature eStructuralFeature = getEStructuralFeature(i);
+ switch (ExtendedMetaData.INSTANCE.getFeatureKind(eStructuralFeature))
+ {
+ case ExtendedMetaData.ELEMENT_WILDCARD_FEATURE:
+ if (eStructuralFeature == ExtendedMetaData.INSTANCE.getMixedFeature(this)) break;
+ case ExtendedMetaData.ATTRIBUTE_WILDCARD_FEATURE:
+ case ExtendedMetaData.GROUP_FEATURE:
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isSequenced()
+ {
+ // isSequenced == isMixed
+ return ExtendedMetaData.INSTANCE.getMixedFeature(this) != null;
+ }
+
+ protected List aliasNames = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getAliasNames()
+ {
+ if (aliasNames == null)
+ {
+ aliasNames = DataObjectUtil.getAliasNames(this);
+ }
+ return aliasNames;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getDeclaredProperties()
+ {
+ return getEStructuralFeatures();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getProperties()
+ {
+ return getEAllStructuralFeatures();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getBaseTypes()
+ {
+ return getESuperTypes();
+ }
+
+ private void initAliasNames() {
+ if (propertyNameToPropertyMap == null) //FB use eNameToFeatureMap for this?
+ {
+ Map result = new HashMap();
+ for (Iterator i = getProperties().iterator(); i.hasNext(); )
+ {
+ Property property = (Property)i.next();
+ result.put(property.getName(), property);
+
+ List aliasNames = property.getAliasNames();
+ for (int count = aliasNames.size(); count > 0; )
+ {
+ result.put(aliasNames.get(--count), property);
+ }
+ }
+ propertyNameToPropertyMap = result;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Property getProperty(String propertyName)
+ {
+ initAliasNames();
+ Property property = (Property)propertyNameToPropertyMap.get(propertyName);
+ if (property == null && !isOpen()) {
+ propertyNameToPropertyMap = null;
+ initAliasNames();
+ property = (Property)propertyNameToPropertyMap.get(propertyName);
+ }
+ return property;
+ }
+
+ protected Map propertyNameToPropertyMap;
+
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // org.apache.tuscany.sdo.model.Type method implementations
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ public List getBaseType() {
+ return this.getBaseTypes();
+ }
+
+ public List getProperty() {
+ return this.getProperties();
+ }
+
+ public List getAliasName() {
+ return this.getAliasNames();
+ }
+
+ public void unsetAbstract() {
+ eUnset(EcorePackage.eINSTANCE.getEClass_Abstract());
+ }
+
+ public boolean isSetAbstract() {
+ return eIsSet(EcorePackage.eINSTANCE.getEClass_Abstract());
+ }
+
+ public Sequence getAny() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Sequence getAnyAttribute() {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setDataType(boolean value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public void unsetDataType() {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean isSetDataType() {
+ return false;
+ }
+
+ public void setOpen(boolean value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public void unsetOpen() {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean isSetOpen() {
+ return isOpen();
+ }
+
+ public void setSequenced(boolean value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public void unsetSequenced() {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean isSetSequenced() {
+ return isSequenced();
+ }
+
+ public void setUri(String value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public String getUri() {
+ return getURI();
+ }
+
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // DataObject method implementations
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+ /*
+ public Object get(int propertyIndex) {
+ return DataObjectUtil.get(this, propertyIndex);
+ }
+
+ public void set(int propertyIndex, Object value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean isSet(int propertyIndex) {
+ return DataObjectUtil.isSet(this, propertyIndex);
+ }
+
+ public void unset(int propertyIndex) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public Object get(Property property) {
+ return DataObjectUtil.get(this, ((EStructuralFeature)property).getFeatureID());
+ }
+
+ public void set(Property property, Object value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean isSet(Property property) {
+ return DataObjectUtil.isSet(this, ((EStructuralFeature)property).getFeatureID());
+ }
+
+ public void unset(Property property) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public DataObject getContainer() {
+ return (DataObject)eContainer();
+ }
+
+ public Property getContainmentProperty() {
+ return (Property)eContainmentFeature();
+ }
+
+ public Type getType() {
+ return (Type)ModelPackageImpl.eINSTANCE.getType();
+ }
+
+ // Remaining DataObject methods are (will be) implemented as straight delegation to DataObjectUtil
+
+ public Object get(String path) {
+ return DataObjectUtil.get(this, path);
+ }
+
+ public void set(String path, Object value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean isSet(String path) {
+ return DataObjectUtil.isSet(this, path);
+ }
+
+ public void unset(String path) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean getBoolean(String path) {
+ return DataObjectUtil.getBoolean(get(path));
+ }
+
+ public byte getByte(String path) {
+ return DataObjectUtil.getByte(get(path));
+ }
+
+ public char getChar(String path) {
+ return DataObjectUtil.getChar(get(path));
+ }
+
+ public double getDouble(String path) {
+ return DataObjectUtil.getDouble(get(path));
+ }
+
+ public float getFloat(String path) {
+ return DataObjectUtil.getFloat(get(path));
+ }
+
+ public int getInt(String path) {
+ return DataObjectUtil.getInt(get(path));
+ }
+
+ public long getLong(String path) {
+ return DataObjectUtil.getLong(get(path));
+ }
+
+ public short getShort(String path) {
+ return DataObjectUtil.getShort(get(path));
+ }
+
+ public byte[] getBytes(String path) {
+ return DataObjectUtil.getBytes(get(path));
+ }
+
+ public BigDecimal getBigDecimal(String path) {
+ return DataObjectUtil.getBigDecimal(get(path));
+ }
+
+ public BigInteger getBigInteger(String path) {
+ return DataObjectUtil.getBigInteger(get(path));
+ }
+
+ public DataObject getDataObject(String path) {
+ return (DataObject)get(path);
+ }
+
+ public Date getDate(String path) {
+ return DataObjectUtil.getDate(get(path));
+ }
+
+ public String getString(String path) {
+ return DataObjectUtil.getString(get(path));
+ }
+
+ public List getList(String path) {
+ return (List)get(path);
+ }
+
+ public Sequence getSequence(String path) {
+ return (Sequence)get(path);
+ }
+
+ public void setBoolean(String path, boolean value) {
+ set(path, new Boolean(value));
+ }
+
+ public void setByte(String path, byte value) {
+ set(path, new Byte(value));
+ }
+
+ public void setChar(String path, char value) {
+ set(path, new Character(value));
+ }
+
+ public void setDouble(String path, double value) {
+ set(path, new Double(value));
+ }
+
+ public void setFloat(String path, float value) {
+ set(path, new Float(value));
+ }
+
+ public void setInt(String path, int value) {
+ set(path, new Integer(value));
+ }
+
+ public void setLong(String path, long value) {
+ set(path, new Long(value));
+ }
+
+ public void setShort(String path, short value) {
+ set(path, new Short(value));
+ }
+
+ public void setBytes(String path, byte[] value) {
+ set(path, value);
+ }
+
+ public void setBigDecimal(String path, BigDecimal value) {
+ set(path, value);
+ }
+
+ public void setBigInteger(String path, BigInteger value) {
+ set(path, value);
+ }
+
+ public void setDataObject(String path, DataObject value) {
+ set(path, value);
+ }
+
+ public void setDate(String path, Date value) {
+ set(path, value);
+ }
+
+ public void setString(String path, String value) {
+ set(path, value);
+ }
+
+ public void setList(String path, List value) {
+ set(path, value);
+ }
+
+ public boolean getBoolean(int propertyIndex) {
+ return DataObjectUtil.getBoolean(this, propertyIndex);
+ }
+
+ public byte getByte(int propertyIndex) {
+ return DataObjectUtil.getByte(this, propertyIndex);
+ }
+
+ public char getChar(int propertyIndex) {
+ return DataObjectUtil.getChar(this, propertyIndex);
+ }
+
+ public double getDouble(int propertyIndex) {
+ return DataObjectUtil.getDouble(this, propertyIndex);
+ }
+
+ public float getFloat(int propertyIndex) {
+ return DataObjectUtil.getFloat(this, propertyIndex);
+ }
+
+ public int getInt(int propertyIndex) {
+ return DataObjectUtil.getInt(this, propertyIndex);
+ }
+
+ public long getLong(int propertyIndex) {
+ return DataObjectUtil.getLong(this, propertyIndex);
+ }
+
+ public short getShort(int propertyIndex) {
+ return DataObjectUtil.getShort(this, propertyIndex);
+ }
+
+ public byte[] getBytes(int propertyIndex) {
+ return DataObjectUtil.getBytes(this, propertyIndex);
+ }
+
+ public BigDecimal getBigDecimal(int propertyIndex) {
+ return DataObjectUtil.getBigDecimal(this, propertyIndex);
+ }
+
+ public BigInteger getBigInteger(int propertyIndex) {
+ return DataObjectUtil.getBigInteger(this, propertyIndex);
+ }
+
+ public DataObject getDataObject(int propertyIndex) {
+ return DataObjectUtil.getDataObject(this, propertyIndex);
+ }
+
+ public Date getDate(int propertyIndex) {
+ return DataObjectUtil.getDate(this, propertyIndex);
+ }
+
+ public String getString(int propertyIndex) {
+ return DataObjectUtil.getString(this, propertyIndex);
+ }
+
+ public List getList(int propertyIndex) {
+ return DataObjectUtil.getList(this, propertyIndex);
+ }
+
+ public Sequence getSequence(int propertyIndex) {
+ return DataObjectUtil.getSequence(this, propertyIndex);
+ }
+
+ public void setBoolean(int propertyIndex, boolean value) {
+ set(propertyIndex, new Boolean(value));
+ }
+
+ public void setByte(int propertyIndex, byte value) {
+ set(propertyIndex, new Byte(value));
+ }
+
+ public void setChar(int propertyIndex, char value) {
+ set(propertyIndex, new Character(value));
+ }
+
+ public void setDouble(int propertyIndex, double value) {
+ set(propertyIndex, new Double(value));
+ }
+
+ public void setFloat(int propertyIndex, float value) {
+ set(propertyIndex, new Float(value));
+ }
+
+ public void setInt(int propertyIndex, int value) {
+ set(propertyIndex, new Integer(value));
+ }
+
+ public void setLong(int propertyIndex, long value) {
+ set(propertyIndex, new Long(value));
+ }
+
+ public void setShort(int propertyIndex, short value) {
+ set(propertyIndex, new Short(value));
+ }
+
+ public void setBytes(int propertyIndex, byte[] value) {
+ set(propertyIndex, value);
+ }
+
+ public void setBigDecimal(int propertyIndex, BigDecimal value) {
+ set(propertyIndex, value);
+ }
+
+ public void setBigInteger(int propertyIndex, BigInteger value) {
+ set(propertyIndex, value);
+ }
+
+ public void setDataObject(int propertyIndex, DataObject value) {
+ set(propertyIndex, value);
+ }
+
+ public void setDate(int propertyIndex, Date value) {
+ set(propertyIndex, value);
+ }
+
+ public void setString(int propertyIndex, String value) {
+ set(propertyIndex, value);
+ }
+
+ public void setList(int propertyIndex, List value) {
+ set(propertyIndex, value);
+ }
+
+ public boolean getBoolean(Property property) {
+ return DataObjectUtil.getBoolean(this, property);
+ }
+
+ public byte getByte(Property property) {
+ return DataObjectUtil.getByte(this, property);
+ }
+
+ public char getChar(Property property) {
+ return DataObjectUtil.getChar(this, property);
+ }
+
+ public double getDouble(Property property) {
+ return DataObjectUtil.getDouble(this, property);
+ }
+
+ public float getFloat(Property property) {
+ return DataObjectUtil.getFloat(this, property);
+ }
+
+ public int getInt(Property property) {
+ return DataObjectUtil.getInt(this, property);
+ }
+
+ public long getLong(Property property) {
+ return DataObjectUtil.getLong(this, property);
+ }
+
+ public short getShort(Property property) {
+ return DataObjectUtil.getShort(this, property);
+ }
+
+ public byte[] getBytes(Property property) {
+ return DataObjectUtil.getBytes(this, property);
+ }
+
+ public BigDecimal getBigDecimal(Property property) {
+ return DataObjectUtil.getBigDecimal(this, property);
+ }
+
+ public BigInteger getBigInteger(Property property) {
+ return DataObjectUtil.getBigInteger(this, property);
+ }
+
+ public DataObject getDataObject(Property property) {
+ return DataObjectUtil.getDataObject(this, property);
+ }
+
+ public Date getDate(Property property) {
+ return DataObjectUtil.getDate(this, property);
+ }
+
+ public String getString(Property property) {
+ return DataObjectUtil.getString(this, property);
+ }
+
+ public List getList(Property property) {
+ return DataObjectUtil.getList(this, property);
+ }
+
+ public Sequence getSequence(Property property) {
+ return DataObjectUtil.getSequence(this, property);
+ }
+
+ public void setBoolean(Property property, boolean value) {
+ set(property, new Boolean(value));
+ }
+
+ public void setByte(Property property, byte value) {
+ set(property, new Byte(value));
+ }
+
+ public void setChar(Property property, char value) {
+ set(property, new Character(value));
+ }
+
+ public void setDouble(Property property, double value) {
+ set(property, new Double(value));
+ }
+
+ public void setFloat(Property property, float value) {
+ set(property, new Float(value));
+ }
+
+ public void setInt(Property property, int value) {
+ set(property, new Integer(value));
+ }
+
+ public void setLong(Property property, long value) {
+ set(property, new Long(value));
+ }
+
+ public void setShort(Property property, short value) {
+ set(property, new Short(value));
+ }
+
+ public void setBytes(Property property, byte[] value) {
+ set(property, value);
+ }
+
+ public void setBigDecimal(Property property, BigDecimal value) {
+ set(property, value);
+ }
+
+ public void setBigInteger(Property property, BigInteger value) {
+ set(property, value);
+ }
+
+ public void setDataObject(Property property, DataObject value) {
+ set(property, value);
+ }
+
+ public void setDate(Property property, Date value) {
+ set(property, value);
+ }
+
+ public void setString(Property property, String value) {
+ set(property, value);
+ }
+
+ public void setList(Property property, List value) {
+ set(property, value);
+ }
+
+ public DataObject createDataObject(String propertyName) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(int propertyIndex) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(Property property) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(String propertyName, String namespaceURI, String typeName) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(int propertyIndex, String namespaceURI, String typeName) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(Property property, Type type) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public void delete() {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public DataGraph getDataGraph() {
+ return DataObjectUtil.getDataGraph(this);
+ }
+
+ public Sequence getSequence() {
+ EAttribute mixedFeature = BasicExtendedMetaData.INSTANCE.getMixedFeature(eClass());
+ return mixedFeature != null ? (Sequence)eGet(mixedFeature, true, false) : null;
+ }
+
+ public List getInstanceProperties() {
+ return DataObjectUtil.getInstanceProperties(this);
+ }
+
+ public DataObject getRootObject() {
+ return DataObjectUtil.getRootObject(this);
+ }
+
+ public ChangeSummary getChangeSummary() {
+ // TODO: implement this method
+ throw new UnsupportedOperationException();
+ }
+
+ public void detach() {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ //DataObjectUtil.detach(this);
+ }
+ */
+
+} //ClassTypeImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataGraphImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataGraphImpl.java
new file mode 100644
index 0000000000..725c0211dc
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataGraphImpl.java
@@ -0,0 +1,816 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.sdo.SDOFactory;
+import org.apache.tuscany.sdo.SDOPackage;
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.BasicExtendedMetaData;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+
+import commonj.sdo.ChangeSummary;
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.Type;
+import commonj.sdo.helper.TypeHelper;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>EData Graph</b></em>'.
+ * @extends DataGraph, Adapter, Serializable
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.impl.DataGraphImpl#getResourceSet <em>Resource Set</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.impl.DataGraphImpl#getRootResource <em>Root Resource</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.impl.DataGraphImpl#getEChangeSummary <em>EChange Summary</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.impl.DataGraphImpl#getERootObject <em>ERoot Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataGraphImpl extends EObjectImpl implements DataGraph, Adapter, Serializable
+{
+ /**
+ * The default value of the '{@link #getResourceSet() <em>Resource Set</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getResourceSet()
+ * @generated
+ * @ordered
+ */
+ protected static final ResourceSet RESOURCE_SET_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getResourceSet() <em>Resource Set</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getResourceSet()
+ * @generated
+ * @ordered
+ */
+ protected ResourceSet resourceSet = RESOURCE_SET_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRootResource() <em>Root Resource</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRootResource()
+ * @generated
+ * @ordered
+ */
+ protected static final Resource ROOT_RESOURCE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getEChangeSummary() <em>EChange Summary</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEChangeSummary()
+ * @generated
+ * @ordered
+ */
+ protected ChangeSummary eChangeSummary = null;
+
+ /**
+ * The cached value of the '{@link #getERootObject() <em>ERoot Object</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getERootObject()
+ * @generated
+ * @ordered
+ */
+ protected EObject eRootObject = null;
+
+ /**
+ * The cached extended metadata to wrap the resource set's package registry.
+ */
+ protected ExtendedMetaData extendedMetaData;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DataGraphImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return SDOPackage.eINSTANCE.getDataGraph();
+ }
+
+ public boolean isAdapterForType(Object type)
+ {
+ return type == DataGraph.class;
+ }
+
+ public void notifyChanged(Notification msg)
+ {
+ }
+
+ public Notifier getTarget()
+ {
+ return getResourceSet();
+ }
+
+ public void setTarget(Notifier newTarget)
+ {
+ }
+
+ protected ExtendedMetaData getExtendedMetaData()
+ {
+ if (extendedMetaData == null)
+ {
+ getResourceSet();
+ }
+ return extendedMetaData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public ResourceSet getResourceSet()
+ {
+ if (resourceSet == null)
+ {
+ if (eResource() != null)
+ {
+ resourceSet = eResource().getResourceSet();
+ }
+ if (resourceSet == null)
+ {
+ resourceSet = createResourceSet();
+ }
+ initializeResourceSet(resourceSet);
+ }
+ return resourceSet;
+ }
+
+ protected ResourceSet createResourceSet()
+ {
+ return DataObjectUtil.createResourceSet();
+ }
+
+ protected Resource createRootResource()
+ {
+ Resource result = resourceSet.createResource(URI.createURI("root.xml"));
+ result.getContents().clear();
+ return result;
+ }
+
+ protected Resource createChangeSummaryResource()
+ {
+ Resource result = resourceSet.createResource(URI.createURI("change-summary.xml"));
+ result.getContents().clear();
+ return result;
+ }
+
+ protected void initializeResourceSet(ResourceSet resourceSet)
+ {
+ if (resourceSet == null)
+ {
+ extendedMetaData = null;
+ }
+ else
+ {
+ extendedMetaData = new BasicExtendedMetaData(resourceSet.getPackageRegistry());
+ resourceSet.eAdapters().add(this);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setResourceSetGen(ResourceSet newResourceSet)
+ {
+ ResourceSet oldResourceSet = resourceSet;
+ resourceSet = newResourceSet;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SDOPackage.DATA_GRAPH__RESOURCE_SET, oldResourceSet, resourceSet));
+ }
+
+ public void setResourceSet(ResourceSet newResourceSet)
+ {
+ if (resourceSet != null)
+ {
+ resourceSet.eAdapters().remove(this);
+ }
+ setResourceSetGen(newResourceSet);
+ initializeResourceSet(newResourceSet);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Resource getRootResource()
+ {
+ if (eRootObject == null)
+ {
+ Resource result = getResourceSet().getResource(URI.createURI("root.xml"), false);
+ if (result == null)
+ {
+ result = createRootResource();
+ }
+
+ return result;
+ }
+ else
+ {
+ return eRootObject.eResource();
+ }
+ }
+
+ public Resource getDataGraphResource()
+ {
+ Resource result = eResource();
+ if (result == null)
+ {
+ result = getResourceSet().createResource(URI.createURI("all.datagraph"));
+ result.getContents().add(this);
+ }
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeSummary getEChangeSummary()
+ {
+ return eChangeSummary;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetEChangeSummary(ChangeSummary newEChangeSummary, NotificationChain msgs)
+ {
+ ChangeSummary oldEChangeSummary = eChangeSummary;
+ eChangeSummary = newEChangeSummary;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SDOPackage.DATA_GRAPH__ECHANGE_SUMMARY, oldEChangeSummary, newEChangeSummary);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEChangeSummary(ChangeSummary newEChangeSummary)
+ {
+ if (newEChangeSummary != eChangeSummary)
+ {
+ NotificationChain msgs = null;
+ if (eChangeSummary != null)
+ msgs = ((InternalEObject)eChangeSummary).eInverseRemove(this, SDOPackage.CHANGE_SUMMARY__EDATA_GRAPH, ChangeSummary.class, msgs);
+ if (newEChangeSummary != null)
+ msgs = ((InternalEObject)newEChangeSummary).eInverseAdd(this, SDOPackage.CHANGE_SUMMARY__EDATA_GRAPH, ChangeSummary.class, msgs);
+ msgs = basicSetEChangeSummary(newEChangeSummary, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SDOPackage.DATA_GRAPH__ECHANGE_SUMMARY, newEChangeSummary, newEChangeSummary));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject getERootObject()
+ {
+ return eRootObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setERootObjectGen(EObject newERootObject)
+ {
+ EObject oldERootObject = eRootObject;
+ eRootObject = newERootObject;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SDOPackage.DATA_GRAPH__EROOT_OBJECT, oldERootObject, eRootObject));
+ }
+
+ public void setERootObject(EObject newERootObject)
+ {
+ // If there is a resource set already...
+ //
+ if (resourceSet != null)
+ {
+ // Get the root resource and if there's a root object in it already, clear it.
+ // Then set the root object and add it to the root resource.
+ //
+ List contents = getRootResource().getContents();
+ if (eRootObject != null)
+ {
+ contents.clear();
+ }
+ setERootObjectGen(newERootObject);
+ if (newERootObject != null)
+ {
+ contents.add(newERootObject);
+ }
+ }
+ else
+ {
+ // Set the root object and see if it has a resource we can reuse.
+ //
+ setERootObjectGen(newERootObject);
+ Resource rootResource = newERootObject.eResource();
+ if (rootResource != null)
+ {
+ // If there is no resource set
+ //
+ if (rootResource.getResourceSet() == null)
+ {
+ // Demand create one and add this resource to it.
+ //
+ getResourceSet().getResources().add(rootResource);
+ }
+ else
+ {
+ // Reuse the existing resource set.
+ //
+ setResourceSet(rootResource.getResourceSet());
+ }
+ }
+ else
+ {
+ // Demand create the resource set and the root resource, and add to it's contents.
+ //
+ getResourceSet();
+ createRootResource().getContents().add(newERootObject);
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EClassifier getEClassifier(String namespaceURI, String typeName)
+ {
+ ExtendedMetaData extendedMetaData = getExtendedMetaData();
+ EPackage ePackage = extendedMetaData.getPackage(namespaceURI);
+ if (ePackage != null)
+ {
+ EClassifier eClassifier = ePackage.getEClassifier(typeName);
+ if (eClassifier == null)
+ {
+ eClassifier = extendedMetaData.getType(ePackage, typeName);
+ }
+ return eClassifier;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Type getType(String namespaceURI, String typeName)
+ {
+ return TypeHelper.INSTANCE.getType(namespaceURI, typeName);
+ //EClassifier eClassifier = getEClassifier(namespaceURI, typeName);
+ //return eClassifier == null ? null : SDOUtil.getType(eClassifier);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs)
+ {
+ if (featureID >= 0)
+ {
+ switch (eDerivedStructuralFeatureID(featureID, baseClass))
+ {
+ case SDOPackage.DATA_GRAPH__ECHANGE_SUMMARY:
+ if (eChangeSummary != null)
+ msgs = ((InternalEObject)eChangeSummary).eInverseRemove(this, SDOPackage.CHANGE_SUMMARY__EDATA_GRAPH, ChangeSummary.class, msgs);
+ return basicSetEChangeSummary((ChangeSummary)otherEnd, msgs);
+ default:
+ return eDynamicInverseAdd(otherEnd, featureID, baseClass, msgs);
+ }
+ }
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return eBasicSetContainer(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs)
+ {
+ if (featureID >= 0)
+ {
+ switch (eDerivedStructuralFeatureID(featureID, baseClass))
+ {
+ case SDOPackage.DATA_GRAPH__ECHANGE_SUMMARY:
+ return basicSetEChangeSummary(null, msgs);
+ default:
+ return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
+ }
+ }
+ return eBasicSetContainer(null, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.DATA_GRAPH__RESOURCE_SET:
+ return getResourceSet();
+ case SDOPackage.DATA_GRAPH__ROOT_RESOURCE:
+ return getRootResource();
+ case SDOPackage.DATA_GRAPH__ECHANGE_SUMMARY:
+ return getEChangeSummary();
+ case SDOPackage.DATA_GRAPH__EROOT_OBJECT:
+ return getERootObject();
+ }
+ return eDynamicGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.DATA_GRAPH__RESOURCE_SET:
+ setResourceSet((ResourceSet)newValue);
+ return;
+ case SDOPackage.DATA_GRAPH__ECHANGE_SUMMARY:
+ setEChangeSummary((ChangeSummary)newValue);
+ return;
+ case SDOPackage.DATA_GRAPH__EROOT_OBJECT:
+ setERootObject((EObject)newValue);
+ return;
+ }
+ eDynamicSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.DATA_GRAPH__RESOURCE_SET:
+ setResourceSet(RESOURCE_SET_EDEFAULT);
+ return;
+ case SDOPackage.DATA_GRAPH__ECHANGE_SUMMARY:
+ setEChangeSummary((ChangeSummary)null);
+ return;
+ case SDOPackage.DATA_GRAPH__EROOT_OBJECT:
+ setERootObject((EObject)null);
+ return;
+ }
+ eDynamicUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.DATA_GRAPH__RESOURCE_SET:
+ return RESOURCE_SET_EDEFAULT == null ? resourceSet != null : !RESOURCE_SET_EDEFAULT.equals(resourceSet);
+ case SDOPackage.DATA_GRAPH__ROOT_RESOURCE:
+ return ROOT_RESOURCE_EDEFAULT == null ? getRootResource() != null : !ROOT_RESOURCE_EDEFAULT.equals(getRootResource());
+ case SDOPackage.DATA_GRAPH__ECHANGE_SUMMARY:
+ return eChangeSummary != null;
+ case SDOPackage.DATA_GRAPH__EROOT_OBJECT:
+ return eRootObject != null;
+ }
+ return eDynamicIsSet(featureID);
+ }
+
+ public DataObject createEDataObject(Type type)
+ {
+ return DataObjectUtil.create(type);
+ }
+
+ public DataObject getRootObject()
+ {
+ return (DataObject)getERootObject();
+ }
+
+ public DataObject createRootObject(String namespaceURI, String typeName)
+ {
+ DataObject dataObject = DataObjectUtil.create(getType(namespaceURI, typeName));
+ setERootObject((EObject)dataObject);
+ return dataObject;
+ }
+
+ public DataObject createRootObject(Type type)
+ {
+ DataObject dataObject = DataObjectUtil.create(type);
+ setERootObject((EObject)dataObject);
+ return dataObject;
+ }
+
+ public ChangeSummary getChangeSummary()
+ {
+ //FB is this the right place to create the resources?
+ ChangeSummary changeSummary = getEChangeSummary();
+ if (changeSummary == null)
+ {
+ getRootResource();
+ changeSummary = createEChangeSummary();
+ setEChangeSummary(changeSummary);
+ }
+
+ if (((ChangeSummaryImpl)changeSummary).eResource() == null)
+ {
+ Resource changeSummaryResource = createChangeSummaryResource();
+ changeSummaryResource.getContents().add(changeSummary);
+ }
+
+ return changeSummary;
+ }
+
+ protected ChangeSummaryImpl createEChangeSummary()
+ {
+ return (ChangeSummaryImpl)SDOFactory.eINSTANCE.createChangeSummary();
+ }
+
+ public static class EDataGraphExternalizable implements Externalizable
+ {
+ protected DataGraphImpl eDataGraph;
+ protected Map writeReplacements = new HashMap();
+
+ public EDataGraphExternalizable()
+ {
+ }
+
+ public EDataGraphExternalizable(DataGraphImpl eDataGraph)
+ {
+ this.eDataGraph = eDataGraph;
+ }
+
+ public void writeExternal(ObjectOutput objectOutput) throws IOException
+ {
+ ByteArrayOutputStream byteArrayOutputStream =
+ new ByteArrayOutputStream()
+ {
+ public byte [] toByteArray()
+ {
+ return super.toByteArray();
+ }
+ };
+
+ eDataGraph.getDataGraphResource().save(byteArrayOutputStream, null);
+ objectOutput.writeInt(byteArrayOutputStream.toByteArray().length);
+ objectOutput.write(byteArrayOutputStream.toByteArray());
+ }
+
+ public void readExternal(ObjectInput objectInput) throws IOException
+ {
+ int length = objectInput.readInt();
+ byte [] bytes = new byte [length];
+ objectInput.readFully(bytes);
+
+ ResourceSet resourceSet = createResourceSet();
+ Resource resource = resourceSet.createResource(URI.createURI("all.datagraph"));
+ resource.load(new ByteArrayInputStream(bytes), null);
+ eDataGraph = (DataGraphImpl)resource.getContents().get(0);
+ }
+
+ protected ResourceSet createResourceSet()
+ {
+ return DataObjectUtil.createResourceSet();
+ }
+
+ public Object getWriteReplacement(EObject eObject)
+ {
+ Object result = writeReplacements.get(eObject);
+ if (result == null)
+ {
+ result = new EDataObjectExternalizable(eDataGraph, eObject);
+ writeReplacements.put(eObject, result);
+ }
+ return result;
+ }
+
+ protected Object readResolve()
+ {
+ return eDataGraph;
+ }
+ }
+
+ public static class EDataObjectExternalizable implements Externalizable
+ {
+ protected EObject eObject;
+ protected DataGraphImpl eDataGraph;
+
+ public EDataObjectExternalizable()
+ {
+ }
+
+ public EDataObjectExternalizable(DataGraphImpl eDataGraph, EObject eObject)
+ {
+ this.eDataGraph = eDataGraph;
+ this.eObject = eObject;
+ }
+
+ public void writeExternal(ObjectOutput objectOutput) throws IOException
+ {
+ // Write the data object reference too.
+ String uri = eObject.eResource().getURIFragment(eObject);
+ objectOutput.writeUTF(uri);
+ objectOutput.writeObject(eDataGraph.getWriteReplacement());
+ }
+
+ public void readExternal(ObjectInput objectInput) throws IOException, ClassNotFoundException
+ {
+ String uri = objectInput.readUTF();
+ eDataGraph = (DataGraphImpl)objectInput.readObject();
+ eObject = eDataGraph.getRootResource().getEObject(uri);
+ }
+
+ protected Object readResolve()
+ {
+ return eObject;
+ }
+ }
+
+
+ protected EDataGraphExternalizable eDataGraphExternalizable;
+ protected Adapter modificationTracker;
+
+ public Object getWriteReplacement()
+ {
+ if (eDataGraphExternalizable == null)
+ {
+ eDataGraphExternalizable = createEDataGraphExternalizable();
+ getRootResource().setTrackingModification(true);
+ modificationTracker =
+ new AdapterImpl()
+ {
+ public void notifyChanged(Notification notification)
+ {
+ if (notification.getFeatureID(Resource.class) == Resource.RESOURCE__IS_MODIFIED && notification.getNewBooleanValue())
+ {
+ eDataGraphExternalizable = null;
+ modificationTracker = null;
+ ((Resource)target).eAdapters().remove(this);
+ }
+ }
+ };
+ getRootResource().eAdapters().add(modificationTracker);
+ }
+ return eDataGraphExternalizable;
+ }
+
+ protected EDataGraphExternalizable createEDataGraphExternalizable()
+ {
+ return new EDataGraphExternalizable(this);
+ }
+
+ public Object getWriteReplacement(EObject eObject)
+ {
+ return ((EDataGraphExternalizable)getWriteReplacement()).getWriteReplacement(eObject);
+ }
+
+ public Object writeReplace()
+ {
+ return getWriteReplacement();
+ }
+
+ public EObject eObjectForURIFragmentSegment(String uriFragmentSegment)
+ {
+ if (uriFragmentSegment.startsWith("@models."))
+ {
+ if (resourceSet != null)
+ {
+ int count = Integer.parseInt(uriFragmentSegment.substring(8));
+ for (Iterator i = resourceSet.getResources().iterator(); i.hasNext(); )
+ {
+ Resource ePackageResource = (Resource)i.next();
+ List resourceContents = ePackageResource.getContents();
+ if (resourceContents.size() == 1 && resourceContents.get(0) instanceof EPackage && count-- == 0)
+ {
+ return (EObject)resourceContents.get(0);
+ }
+ }
+ }
+
+ return null;
+ }
+ else
+ {
+ return super.eObjectForURIFragmentSegment(uriFragmentSegment);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (resourceSet: ");
+ result.append(resourceSet);
+ result.append(')');
+ return result.toString();
+ }
+
+} //EDataGraphImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectBase.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectBase.java
new file mode 100644
index 0000000000..4617656fff
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectBase.java
@@ -0,0 +1,238 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+
+import java.util.List;
+
+import org.apache.tuscany.sdo.util.BasicSequence;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+
+
+/**
+ * Base implementation of the SDO DataObject interface. Used as base class for prototype of EMF-less generated subclasses
+ */
+public abstract class DataObjectBase extends DataObjectImpl
+{
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // Following methods should be proposed SPI for generated subclasses to use
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ protected boolean isNotifying()
+ {
+ return changeRecorder != null;
+ }
+
+ protected interface ChangeKind
+ {
+ int SET = Notification.SET;
+ int UNSET = Notification.UNSET;
+ int RESOLVE = Notification.RESOLVE;
+ }
+
+ protected void notify(int changeKind, int property, Object oldValue, Object newValue)
+ {
+ eNotify(new ENotificationImpl(this, Notification.SET, property, oldValue, newValue));
+ }
+
+ protected void notify(int changeKind, int property, double oldDoubleValue, double newDoubleValue, boolean isSetChange)
+ {
+ eNotify(new ENotificationImpl(this, Notification.SET, property, oldDoubleValue, newDoubleValue, isSetChange));
+ }
+
+ protected interface ListKind
+ {
+ int CONTAINMENT = 0;
+ }
+
+ protected List createPropertyList(int listKind, Class dataClass, int property)
+ {
+ switch (listKind)
+ {
+ case ListKind.CONTAINMENT:
+ return new EObjectContainmentEList(dataClass, this, property);
+ }
+ return null;
+ }
+
+ protected BasicSequence createSequence(int property) {
+ return new BasicSequence(new BasicFeatureMap(this, property));
+ }
+
+ protected Sequence createSequence(Sequence sequence, Type type, int propertyIndex) {
+ return new BasicSequence((FeatureMap.Internal)((FeatureMap.Internal.Wrapper)sequence).featureMap().list(((EClass)type).getEStructuralFeature(propertyIndex)));
+ }
+
+ /*
+ * get the value of the type's property at propertyIndex via the sequence
+ * @param seq
+ * @param type
+ * @param propertyIndex
+ * @return
+ */
+ protected Object get(Sequence seq, Type type, int propertyIndex) {
+ return ((FeatureMap.Internal.Wrapper)seq).featureMap().get(((EClass)type).getEStructuralFeature(propertyIndex), true);
+ }
+
+ protected List getList(Sequence seq, Type type, int propertyIndex) {
+ return ((FeatureMap.Internal.Wrapper)seq).featureMap().list(((EClass)type).getEStructuralFeature(propertyIndex));
+ }
+
+ protected void set(Sequence seq, Type type, int propertyIndex, Object newValue) {
+ ((FeatureMap.Internal)((FeatureMap.Internal.Wrapper)seq).featureMap()).set(((EClass)type).getEStructuralFeature(propertyIndex), newValue);
+ }
+
+ protected void unset(Sequence seq, Type type, int propertyIndex) {
+ ((FeatureMap.Internal)((FeatureMap.Internal.Wrapper)seq).featureMap()).clear(((EClass)type).getEStructuralFeature(propertyIndex));
+
+ }
+ protected boolean isSet(Sequence seq, Type type, int propertyIndex) {
+ return !((FeatureMap.Internal)((FeatureMap.Internal.Wrapper)seq).featureMap()).isEmpty(((EClass)type).getEStructuralFeature(propertyIndex));
+ }
+
+ protected boolean isSequenceEmpty(Sequence sequence) {
+ return ((FeatureMap.Internal.Wrapper)sequence).featureMap().isEmpty();
+ }
+
+ protected void setSequence(Sequence seq, Object newValue) {
+ ((FeatureMap.Internal)((FeatureMap.Internal.Wrapper)seq).featureMap()).set(newValue);
+ }
+
+ protected void unsetSequence(Sequence seq) {
+ ((FeatureMap.Internal.Wrapper)seq).featureMap().clear();
+ }
+
+ protected Object get(int featureID, boolean resolve)
+ {
+ return null;
+ }
+
+ protected interface ChangeContext {}
+
+ protected ChangeContext inverseRemove(Object otherEnd, int propertyIndex, ChangeContext changeContext)
+ {
+ ChangeContextImpl changeContextImpl = (ChangeContextImpl)changeContext;
+ changeContextImpl.notificationChain = super.eInverseRemove((InternalEObject)otherEnd, propertyIndex, changeContextImpl.notificationChain);
+ return changeContextImpl;
+ }
+
+ protected ChangeContext removeFromList(List propertyList, Object objectToRemove, ChangeContext changeContext)
+ {
+ ChangeContextImpl changeContextImpl = (ChangeContextImpl)changeContext;
+ changeContextImpl.notificationChain = ((InternalEList)propertyList).basicRemove(objectToRemove, changeContextImpl.notificationChain);
+ return changeContextImpl;
+ }
+
+ protected ChangeContext removeFromSequence(Sequence sequence, Object otherEnd, ChangeContext changeContext) {
+ ChangeContextImpl changeContextImpl = (ChangeContextImpl)changeContext;
+ changeContextImpl.notificationChain = ((InternalEList)((FeatureMap.Internal.Wrapper)sequence).featureMap()).basicRemove(otherEnd, changeContextImpl.notificationChain);
+ return changeContextImpl;
+ }
+
+ protected boolean isProxy()
+ {
+ return eIsProxy();
+ }
+
+ protected Object resolveProxy(Object proxy)
+ {
+ return EcoreUtil.resolve((EObject)proxy, this);
+ }
+
+
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // Following methods override EMF methods to work with pure SDO generated subclasses
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ public EClass eStaticClass()
+ {
+ return (EClass)getType();
+ }
+
+ public Type getType() // must be overridem in subclasses
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ Object result = get(featureID, resolve);
+ if (coreType)
+ {
+ if (result instanceof FeatureMap.Internal.Wrapper) result = ((FeatureMap.Internal.Wrapper)result).featureMap();
+ }
+ return result;
+ }
+
+ public void eSet(int featureID, Object newValue)
+ {
+ set(featureID, newValue);
+ }
+
+ public void eUnset(int featureID)
+ {
+ unset(featureID);
+ }
+
+ public boolean eIsSet(int featureID)
+ {
+ return isSet(featureID);
+ }
+
+ private class ChangeContextImpl implements ChangeContext
+ {
+ protected NotificationChain notificationChain;
+ public ChangeContextImpl(NotificationChain notificationChain) {
+ this.notificationChain = notificationChain;
+ }
+ }
+
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int propertyIndex, NotificationChain msgs)
+ {
+ return ((ChangeContextImpl)inverseRemove(otherEnd, propertyIndex, new ChangeContextImpl(msgs))).notificationChain;
+ }
+
+ public String toString()
+ {
+ StringBuffer result = new StringBuffer(getClass().getName());
+ result.append('@');
+ result.append(Integer.toHexString(hashCode()));
+ if (eIsProxy())
+ {
+ result.append(" (proxyURI: ");
+ result.append(eProxyURI());
+ result.append(')');
+ }
+ return result.toString();
+ }
+
+} //DataObjectBase
+
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectImpl.java
new file mode 100644
index 0000000000..82d808e4f3
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectImpl.java
@@ -0,0 +1,1507 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+
+import java.io.ObjectStreamException;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.tuscany.sdo.SDOPackage;
+import org.apache.tuscany.sdo.impl.ChangeSummaryImpl.SDOChangeRecorder;
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.EStructuralFeature.Internal.DynamicValueHolder;
+import org.eclipse.emf.ecore.impl.BasicEObjectImpl;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.BasicExtendedMetaData;
+import org.eclipse.emf.ecore.util.EContentsEList;
+import org.eclipse.emf.ecore.util.ECrossReferenceEList;
+
+import commonj.sdo.ChangeSummary;
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * Base implementation of the SDO DataObject interface. This implementation allocates the minimum storage
+ * overhead needed for SDO. It provides a complete implementation of the API, but does not, however, allocate
+ * any storage for the actual properties of the data object. It instead requires subclasses for this purpose.
+ * The subclass, DynamicDataObjectImpl serves as a concrete implementation class for dynamic data objects.
+ * Static data object storage is provided by generated classes, which also directly or indirectly derive from
+ * this class.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class DataObjectImpl extends BasicEObjectImpl implements DataObject
+{
+ protected InternalEObject eContainer;
+ protected int eContainerFeatureID;
+ protected SDOChangeRecorder changeRecorder;
+ protected Object location; // Resource.Internal (if object is directly contained in a resource) or URI (if it is a proxy)
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DataObjectImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Object get(int propertyIndex)
+ {
+ return eGet(propertyIndex, true, false);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void set(int propertyIndex, Object value)
+ {
+ eSet(propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isSet(int propertyIndex)
+ {
+ return eIsSet(propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void unset(int propertyIndex)
+ {
+ eUnset(propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Object get(Property property)
+ {
+ return eGet((EStructuralFeature)property, true, false);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void set(Property property, Object value)
+ {
+ eSet((EStructuralFeature)property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isSet(Property property)
+ {
+ return eIsSet((EStructuralFeature)property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void unset(Property property)
+ {
+ eUnset((EStructuralFeature)property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DataObject getContainer()
+ {
+ return (DataObject)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Property getContainmentProperty()
+ {
+ return (Property)eContainmentFeature();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Type getType()
+ {
+ return (Type)eClass();
+ }
+
+
+ // Remaining DataObject methods are (will be) implemented as straight delegation to DataObjectUtil
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Object writeReplace() throws ObjectStreamException
+ {
+ return DataObjectUtil.writeReplace(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Object get(String path)
+ {
+ return DataObjectUtil.get(this, path);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void set(String path, Object value)
+ {
+ DataObjectUtil.set(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isSet(String path)
+ {
+ return DataObjectUtil.isSet(this, path);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void unset(String path)
+ {
+ DataObjectUtil.unset(this, path);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DataGraph getDataGraph()
+ {
+ return DataObjectUtil.getDataGraph(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public BigDecimal getBigDecimal(String path)
+ {
+ return DataObjectUtil.getBigDecimal(get(path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public BigInteger getBigInteger(String path)
+ {
+ return DataObjectUtil.getBigInteger(get(path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean getBoolean(String path)
+ {
+ return DataObjectUtil.getBoolean(get(path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public byte getByte(String path)
+ {
+ return DataObjectUtil.getByte(get(path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public byte[] getBytes(String path)
+ {
+ return DataObjectUtil.getBytes(get(path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public char getChar(String path)
+ {
+ return DataObjectUtil.getChar(get(path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DataObject getDataObject(String path)
+ {
+ return (DataObject)get(path);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Date getDate(String path)
+ {
+ return DataObjectUtil.getDate(get(path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public double getDouble(String path)
+ {
+ return DataObjectUtil.getDouble(get(path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public float getFloat(String path)
+ {
+ return DataObjectUtil.getFloat(get(path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public int getInt(String path)
+ {
+ return DataObjectUtil.getInt(get(path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getList(String path)
+ {
+ return (List)get(path);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public long getLong(String path)
+ {
+ return DataObjectUtil.getLong(get(path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Sequence getSequence(String path)
+ {
+ return (Sequence)get(path);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public short getShort(String path)
+ {
+ return DataObjectUtil.getShort(get(path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getString(String path)
+ {
+ return DataObjectUtil.getString(get(path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setBigDecimal(String path, BigDecimal value)
+ {
+ DataObjectUtil.setBigDecimal(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setBigInteger(String path, BigInteger value)
+ {
+ DataObjectUtil.setBigInteger(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setBoolean(String path, boolean value)
+ {
+ DataObjectUtil.setBoolean(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setByte(String path, byte value)
+ {
+ DataObjectUtil.setByte(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setBytes(String path, byte[] value)
+ {
+ DataObjectUtil.setBytes(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setChar(String path, char value)
+ {
+ DataObjectUtil.setChar(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setDataObject(String path, DataObject value)
+ {
+ DataObjectUtil.set(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setDate(String path, Date value)
+ {
+ DataObjectUtil.setDate(this,path,value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setDouble(String path, double value)
+ {
+ DataObjectUtil.setDouble(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setFloat(String path, float value)
+ {
+ DataObjectUtil.setFloat(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setInt(String path, int value)
+ {
+ DataObjectUtil.setInt(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setList(String path, List value)
+ {
+ DataObjectUtil.set(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setLong(String path, long value)
+ {
+ DataObjectUtil.setLong(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setShort(String path, short value)
+ {
+ DataObjectUtil.setShort(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setString(String path, String value)
+ {
+ DataObjectUtil.setString(this, path, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public BigDecimal getBigDecimal(int propertyIndex)
+ {
+ return DataObjectUtil.getBigDecimal(this, propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public BigInteger getBigInteger(int propertyIndex)
+ {
+ return DataObjectUtil.getBigInteger(this,propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean getBoolean(int propertyIndex)
+ {
+ return DataObjectUtil.getBoolean(this, propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public byte getByte(int propertyIndex)
+ {
+ return DataObjectUtil.getByte(this, propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public byte[] getBytes(int propertyIndex)
+ {
+ return DataObjectUtil.getBytes(this, propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public char getChar(int propertyIndex)
+ {
+ return DataObjectUtil.getChar(this, propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DataObject getDataObject(int propertyIndex)
+ {
+ return DataObjectUtil.getDataObject(this, propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Date getDate(int propertyIndex)
+ {
+ return DataObjectUtil.getDate(this,propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public double getDouble(int propertyIndex)
+ {
+ return DataObjectUtil.getDouble(this, propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public float getFloat(int propertyIndex)
+ {
+ return DataObjectUtil.getFloat(this,propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public int getInt(int propertyIndex)
+ {
+ return DataObjectUtil.getInt(this,propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getList(int propertyIndex)
+ {
+ return DataObjectUtil.getList(this, propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public long getLong(int propertyIndex)
+ {
+ return DataObjectUtil.getLong(this,propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Sequence getSequence(int propertyIndex)
+ {
+ return DataObjectUtil.getSequence(this, propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public short getShort(int propertyIndex)
+ {
+ return DataObjectUtil.getShort(this,propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getString(int propertyIndex)
+ {
+ return DataObjectUtil.getString(this,propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setBigDecimal(int propertyIndex, BigDecimal value)
+ {
+ DataObjectUtil.setBigDecimal(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setBigInteger(int propertyIndex, BigInteger value)
+ {
+ DataObjectUtil.setBigInteger(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setBoolean(int propertyIndex, boolean value)
+ {
+ DataObjectUtil.setBoolean(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setByte(int propertyIndex, byte value)
+ {
+ DataObjectUtil.setByte(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setBytes(int propertyIndex, byte[] value)
+ {
+ DataObjectUtil.setBytes(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setChar(int propertyIndex, char value)
+ {
+ DataObjectUtil.setChar(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setDataObject(int propertyIndex, DataObject value)
+ {
+ DataObjectUtil.setDataObject(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setDate(int propertyIndex, Date value)
+ {
+ DataObjectUtil.setDate(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setDouble(int propertyIndex, double value)
+ {
+ DataObjectUtil.setDouble(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setFloat(int propertyIndex, float value)
+ {
+ DataObjectUtil.setFloat(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setInt(int propertyIndex, int value)
+ {
+ DataObjectUtil.setInt(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setList(int propertyIndex, List value)
+ {
+ DataObjectUtil.setList(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setLong(int propertyIndex, long value)
+ {
+ DataObjectUtil.setLong(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setShort(int propertyIndex, short value)
+ {
+ DataObjectUtil.setShort(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setString(int propertyIndex, String value)
+ {
+ DataObjectUtil.setString(this, propertyIndex, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public BigDecimal getBigDecimal(Property property)
+ {
+ return DataObjectUtil.getBigDecimal(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public BigInteger getBigInteger(Property property)
+ {
+ return DataObjectUtil.getBigInteger(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean getBoolean(Property property)
+ {
+ return DataObjectUtil.getBoolean(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public byte getByte(Property property)
+ {
+ return DataObjectUtil.getByte(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public byte[] getBytes(Property property)
+ {
+ return DataObjectUtil.getBytes(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public char getChar(Property property)
+ {
+ return DataObjectUtil.getChar(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DataObject getDataObject(Property property)
+ {
+ return (DataObject)DataObjectUtil.getDataObject(this,property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Date getDate(Property property)
+ {
+ return DataObjectUtil.getDate(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public double getDouble(Property property)
+ {
+ return DataObjectUtil.getDouble(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public float getFloat(Property property)
+ {
+ return DataObjectUtil.getFloat(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public int getInt(Property property)
+ {
+ return DataObjectUtil.getInt(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getList(Property property)
+ {
+ return (List)DataObjectUtil.getList(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public long getLong(Property property)
+ {
+ return DataObjectUtil.getLong(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Sequence getSequence(Property property)
+ {
+ return (Sequence)DataObjectUtil.getSequence(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public short getShort(Property property)
+ {
+ return DataObjectUtil.getShort(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getString(Property property)
+ {
+ return DataObjectUtil.getString(this, property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setBigDecimal(Property property, BigDecimal value)
+ {
+ DataObjectUtil.setBigDecimal(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setBigInteger(Property property, BigInteger value)
+ {
+ DataObjectUtil.setBigInteger(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setBoolean(Property property, boolean value)
+ {
+ DataObjectUtil.setBoolean(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setByte(Property property, byte value)
+ {
+ DataObjectUtil.setByte(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setBytes(Property property, byte[] value)
+ {
+ DataObjectUtil.setBytes(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setChar(Property property, char value)
+ {
+ DataObjectUtil.setChar(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setDataObject(Property property, DataObject value)
+ {
+ DataObjectUtil.setDataObject(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setDate(Property property, Date value)
+ {
+ DataObjectUtil.setDate(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setDouble(Property property, double value)
+ {
+ DataObjectUtil.setDouble(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setFloat(Property property, float value)
+ {
+ DataObjectUtil.setFloat(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setInt(Property property, int value)
+ {
+ DataObjectUtil.setInt(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setList(Property property, List value)
+ {
+ DataObjectUtil.setList(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setLong(Property property, long value)
+ {
+ DataObjectUtil.setLong(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setShort(Property property, short value)
+ {
+ DataObjectUtil.setShort(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setString(Property property, String value)
+ {
+ DataObjectUtil.setString(this,property, value);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DataObject createDataObject(String propertyName)
+ {
+ return DataObjectUtil.createDataObject(this, propertyName);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DataObject createDataObject(int propertyIndex)
+ {
+ return DataObjectUtil.createDataObject(this, propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DataObject createDataObject(Property property)
+ {
+ return DataObjectUtil.createDataObject(this,property);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DataObject createDataObject(String propertyName, String namespaceURI, String typeName)
+ {
+ return DataObjectUtil.createDataObject(this, propertyName, namespaceURI, typeName);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DataObject createDataObject(int propertyIndex, String namespaceURI, String typeName)
+ {
+ return DataObjectUtil.createDataObject(this, propertyIndex, namespaceURI, typeName);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DataObject createDataObject(Property property, Type type)
+ {
+ return DataObjectUtil.createDataObject(this, property, type);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void delete()
+ {
+ DataObjectUtil.delete(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Sequence getSequence()
+ {
+ EAttribute mixedFeature = BasicExtendedMetaData.INSTANCE.getMixedFeature(eClass());
+ return mixedFeature != null ? (Sequence)eGet(mixedFeature, true, false) : null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getInstanceProperties()
+ {
+ return DataObjectUtil.getInstanceProperties(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Property getProperty(String propertyName)
+ {
+ return DataObjectUtil.getProperty(this, propertyName);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DataObject getRootObject()
+ {
+ return DataObjectUtil.getRootObject(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public ChangeSummary getChangeSummary()
+ {
+ return DataObjectUtil.getChangeSummary(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void detach()
+ {
+ DataObjectUtil.detach(this);
+ }
+
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // Following methods customize BasicEObjectImpl, optimized for SDO
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return SDOPackage.eINSTANCE.getDataObject();
+ }
+
+ public boolean eNotificationRequired()
+ {
+ return changeRecorder != null;
+ }
+
+ public void eNotify(Notification notification)
+ {
+ changeRecorder.notifyChanged(notification);
+ }
+
+ public void setChangeRecorder(SDOChangeRecorder changeRecorder)
+ {
+ if (this.changeRecorder != null)
+ {
+ this.changeRecorder.unsetTarget(this);
+ }
+
+ if (changeRecorder != null)
+ {
+ changeRecorder.setTarget(this);
+ }
+
+ this.changeRecorder = changeRecorder;
+ }
+
+ public InternalEObject eInternalContainer()
+ {
+ return eContainer;
+ }
+
+ public int eContainerFeatureID()
+ {
+ return eContainerFeatureID;
+ }
+
+ protected void eBasicSetContainer(InternalEObject newContainer, int newContainerFeatureID)
+ {
+ eContainer = newContainer;
+ eContainerFeatureID = newContainerFeatureID;
+ }
+
+ public EClass eClass()
+ {
+ return eStaticClass();
+ }
+
+ public EList eContents()
+ {
+ return new EContentsEList(this);
+ }
+
+ public EList eCrossReferences()
+ {
+ return new ECrossReferenceEList(this);
+ }
+
+ public Resource.Internal eDirectResource()
+ {
+ return location instanceof Resource.Internal ? (Resource.Internal)location : null;
+ }
+
+ protected EClass eDynamicClass()
+ {
+ return null;
+ }
+
+ protected boolean eHasSettings()
+ {
+ return false;
+ }
+
+ public boolean eIsProxy()
+ {
+ return location instanceof URI;
+ }
+
+ public URI eProxyURI()
+ {
+ return location instanceof URI ? (URI)location : null;
+ }
+
+ public void eSetClass(EClass eClass)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ protected void eSetDirectResource(Resource.Internal resource)
+ {
+ location = resource;
+ }
+
+ public void eSetProxyURI(URI uri)
+ {
+ location = uri;
+ }
+
+ protected DynamicValueHolder eSettings()
+ {
+ return null;
+ }
+
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ return eDynamicGet(featureID, resolve, coreType);
+ }
+
+ public void eSet(int featureID, Object newValue)
+ {
+ eDynamicSet(featureID, newValue);
+ }
+
+ public void eUnset(int featureID)
+ {
+ eDynamicUnset(featureID);
+ }
+
+ public boolean eIsSet(int featureID)
+ {
+ return eDynamicIsSet(featureID);
+ }
+
+ public Object eDynamicGet(int featureID, boolean resolve, boolean coreType)
+ {
+ return eOpenGet(DataObjectUtil.getOpenFeature(this, featureID), resolve);
+ }
+
+ public void eDynamicSet(int featureID, Object newValue)
+ {
+ eOpenSet(DataObjectUtil.getOpenFeature(this, featureID), newValue);
+ }
+
+ public void eDynamicUnset(int featureID)
+ {
+ eOpenUnset(DataObjectUtil.getOpenFeature(this, featureID));
+ }
+
+ public boolean eDynamicIsSet(int featureID)
+ {
+ return eOpenIsSet(DataObjectUtil.getOpenFeature(this, featureID));
+ }
+
+ /*
+ public int eDerivedStructuralFeatureID(EStructuralFeature eStructuralFeature)
+ {
+ Class containerClass = eStructuralFeature.getContainerClass();
+ return
+ containerClass == null ?
+ eClass().getFeatureID(eStructuralFeature) :
+ containerClass.isInstance(this) ?
+ eDerivedStructuralFeatureID(eStructuralFeature.getFeatureID(), containerClass) :
+ -1;
+ }
+
+ public void eOpenSet(EStructuralFeature eFeature, Object newValue)
+ {
+ EStructuralFeature openFeature = ExtendedMetaData.INSTANCE.getAffiliation(eClass(), eFeature);
+ if (openFeature == null)
+ {
+ openFeature = (EStructuralFeature)eClass().getEStructuralFeature("any");
+ }
+ if (openFeature != null)
+ {
+ if (!FeatureMapUtil.isFeatureMap(openFeature))
+ {
+ openFeature = ExtendedMetaData.INSTANCE.getGroup(openFeature);
+ }
+ FeatureMap featureMap = (FeatureMap)eGet(openFeature);
+ ((FeatureMap.Internal)featureMap).set(eFeature, newValue);
+ }
+ else
+ {
+ throw new IllegalArgumentException("The feature '" + eFeature.getName() + "' is not a valid changeable feature");
+ }
+ }
+ */
+
+} //DataObjectImpl
+
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataTypeImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataTypeImpl.java
new file mode 100644
index 0000000000..18e1c3a19b
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataTypeImpl.java
@@ -0,0 +1,750 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EDataTypeImpl;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class DataTypeImpl extends EDataTypeImpl implements Type, org.apache.tuscany.sdo.model.Type/*, DataObject*/
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DataTypeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected EClass eStaticClass()
+ {
+ return EcorePackage.eINSTANCE.getEDataType();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getURI()
+ {
+ return getEPackage().getNsURI();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isDataType()
+ {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isOpen()
+ {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isSequenced()
+ {
+ return false;
+ }
+
+ protected List aliasNames = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getAliasNames()
+ {
+ if (aliasNames == null)
+ {
+ aliasNames = DataObjectUtil.getAliasNames(this);
+ }
+ return aliasNames;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getDeclaredProperties()
+ {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getProperties()
+ {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getBaseTypes()
+ {
+ EDataType dataType = ExtendedMetaData.INSTANCE.getBaseType(this);
+ if (dataType == null)
+ {
+ return Collections.EMPTY_LIST;
+ }
+ else
+ {
+ return Collections.singletonList(dataType);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Property getProperty(String propertyName)
+ {
+ return null;
+ }
+
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // org.apache.tuscany.sdo.model.Type method implementations
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ public List getBaseType() {
+ return this.getBaseTypes();
+ }
+
+ public List getProperty() {
+ return this.getProperties();
+ }
+
+ public List getAliasName() {
+ return this.getAliasNames();
+ }
+
+ public Sequence getAny() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Sequence getAnyAttribute() {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isAbstract()
+ {
+ return false;
+ }
+
+ public void setAbstract(boolean value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean isSetAbstract() {
+ return false;
+ }
+
+ public void unsetAbstract() {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public void setDataType(boolean value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public void unsetDataType() {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean isSetDataType() {
+ return true;
+ }
+
+ public void setOpen(boolean value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public void unsetOpen() {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean isSetOpen() {
+ return false;
+ }
+
+ public void setSequenced(boolean value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public void unsetSequenced() {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean isSetSequenced() {
+ return false;
+ }
+
+ public void setUri(String value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public String getUri() {
+ return getURI();
+ }
+
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // DataObject method implementations
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+ /*
+ public Object get(int propertyIndex) {
+ Object ret = DataObjectUtil.get(this, propertyIndex);
+ return (ret != null) ?
+ ret : eGet(propertyIndex, true, false);
+ }
+
+ public void set(int propertyIndex, Object value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean isSet(int propertyIndex) {
+ return eIsSet(propertyIndex);
+ }
+
+ public void unset(int propertyIndex) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public Object get(Property property) {
+ Object ret = DataObjectUtil.get(this, ((EStructuralFeature)property).getFeatureID());
+ return (ret != null) ?
+ ret : eGet((EStructuralFeature)property, true, false);
+ }
+
+ public void set(Property property, Object value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean isSet(Property property) {
+ return eIsSet((EStructuralFeature)property);
+ }
+
+ public void unset(Property property) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public DataObject getContainer() {
+ return (DataObject)eContainer();
+ }
+
+ public Property getContainmentProperty() {
+ return (Property)eContainmentFeature();
+ }
+
+ public Type getType() {
+ return (Type)ModelPackageImpl.eINSTANCE.getType();
+ }
+
+ // Remaining DataObject methods are (will be) implemented as straight delegation to DataObjectUtil
+
+ public Object get(String path) {
+ return DataObjectUtil.get(this, path);
+ }
+
+ public void set(String path, Object value) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean isSet(String path) {
+ return DataObjectUtil.isSet(this, path);
+ }
+
+ public void unset(String path) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public boolean getBoolean(String path) {
+ return DataObjectUtil.getBoolean(get(path));
+ }
+
+ public byte getByte(String path) {
+ return DataObjectUtil.getByte(get(path));
+ }
+
+ public char getChar(String path) {
+ return DataObjectUtil.getChar(get(path));
+ }
+
+ public double getDouble(String path) {
+ return DataObjectUtil.getDouble(get(path));
+ }
+
+ public float getFloat(String path) {
+ return DataObjectUtil.getFloat(get(path));
+ }
+
+ public int getInt(String path) {
+ return DataObjectUtil.getInt(get(path));
+ }
+
+ public long getLong(String path) {
+ return DataObjectUtil.getLong(get(path));
+ }
+
+ public short getShort(String path) {
+ return DataObjectUtil.getShort(get(path));
+ }
+
+ public byte[] getBytes(String path) {
+ return DataObjectUtil.getBytes(get(path));
+ }
+
+ public BigDecimal getBigDecimal(String path) {
+ return DataObjectUtil.getBigDecimal(get(path));
+ }
+
+ public BigInteger getBigInteger(String path) {
+ return DataObjectUtil.getBigInteger(get(path));
+ }
+
+ public DataObject getDataObject(String path) {
+ return (DataObject)get(path);
+ }
+
+ public Date getDate(String path) {
+ return DataObjectUtil.getDate(get(path));
+ }
+
+ public String getString(String path) {
+ return DataObjectUtil.getString(get(path));
+ }
+
+ public List getList(String path) {
+ return (List)get(path);
+ }
+
+ public Sequence getSequence(String path) {
+ return (Sequence)get(path);
+ }
+
+ public void setBoolean(String path, boolean value) {
+ set(path, new Boolean(value));
+ }
+
+ public void setByte(String path, byte value) {
+ set(path, new Byte(value));
+ }
+
+ public void setChar(String path, char value) {
+ set(path, new Character(value));
+ }
+
+ public void setDouble(String path, double value) {
+ set(path, new Double(value));
+ }
+
+ public void setFloat(String path, float value) {
+ set(path, new Float(value));
+ }
+
+ public void setInt(String path, int value) {
+ set(path, new Integer(value));
+ }
+
+ public void setLong(String path, long value) {
+ set(path, new Long(value));
+ }
+
+ public void setShort(String path, short value) {
+ set(path, new Short(value));
+ }
+
+ public void setBytes(String path, byte[] value) {
+ set(path, value);
+ }
+
+ public void setBigDecimal(String path, BigDecimal value) {
+ set(path, value);
+ }
+
+ public void setBigInteger(String path, BigInteger value) {
+ set(path, value);
+ }
+
+ public void setDataObject(String path, DataObject value) {
+ set(path, value);
+ }
+
+ public void setDate(String path, Date value) {
+ set(path, value);
+ }
+
+ public void setString(String path, String value) {
+ set(path, value);
+ }
+
+ public void setList(String path, List value) {
+ set(path, value);
+ }
+
+ public boolean getBoolean(int propertyIndex) {
+ return DataObjectUtil.getBoolean(this, propertyIndex);
+ }
+
+ public byte getByte(int propertyIndex) {
+ return DataObjectUtil.getByte(this, propertyIndex);
+ }
+
+ public char getChar(int propertyIndex) {
+ return DataObjectUtil.getChar(this, propertyIndex);
+ }
+
+ public double getDouble(int propertyIndex) {
+ return DataObjectUtil.getDouble(this, propertyIndex);
+ }
+
+ public float getFloat(int propertyIndex) {
+ return DataObjectUtil.getFloat(this, propertyIndex);
+ }
+
+ public int getInt(int propertyIndex) {
+ return DataObjectUtil.getInt(this, propertyIndex);
+ }
+
+ public long getLong(int propertyIndex) {
+ return DataObjectUtil.getLong(this, propertyIndex);
+ }
+
+ public short getShort(int propertyIndex) {
+ return DataObjectUtil.getShort(this, propertyIndex);
+ }
+
+ public byte[] getBytes(int propertyIndex) {
+ return DataObjectUtil.getBytes(this, propertyIndex);
+ }
+
+ public BigDecimal getBigDecimal(int propertyIndex) {
+ return DataObjectUtil.getBigDecimal(this, propertyIndex);
+ }
+
+ public BigInteger getBigInteger(int propertyIndex) {
+ return DataObjectUtil.getBigInteger(this, propertyIndex);
+ }
+
+ public DataObject getDataObject(int propertyIndex) {
+ return DataObjectUtil.getDataObject(this, propertyIndex);
+ }
+
+ public Date getDate(int propertyIndex) {
+ return DataObjectUtil.getDate(this, propertyIndex);
+ }
+
+ public String getString(int propertyIndex) {
+ return DataObjectUtil.getString(this, propertyIndex);
+ }
+
+ public List getList(int propertyIndex) {
+ return DataObjectUtil.getList(this, propertyIndex);
+ }
+
+ public Sequence getSequence(int propertyIndex) {
+ return DataObjectUtil.getSequence(this, propertyIndex);
+ }
+
+ public void setBoolean(int propertyIndex, boolean value) {
+ set(propertyIndex, new Boolean(value));
+ }
+
+ public void setByte(int propertyIndex, byte value) {
+ set(propertyIndex, new Byte(value));
+ }
+
+ public void setChar(int propertyIndex, char value) {
+ set(propertyIndex, new Character(value));
+ }
+
+ public void setDouble(int propertyIndex, double value) {
+ set(propertyIndex, new Double(value));
+ }
+
+ public void setFloat(int propertyIndex, float value) {
+ set(propertyIndex, new Float(value));
+ }
+
+ public void setInt(int propertyIndex, int value) {
+ set(propertyIndex, new Integer(value));
+ }
+
+ public void setLong(int propertyIndex, long value) {
+ set(propertyIndex, new Long(value));
+ }
+
+ public void setShort(int propertyIndex, short value) {
+ set(propertyIndex, new Short(value));
+ }
+
+ public void setBytes(int propertyIndex, byte[] value) {
+ set(propertyIndex, value);
+ }
+
+ public void setBigDecimal(int propertyIndex, BigDecimal value) {
+ set(propertyIndex, value);
+ }
+
+ public void setBigInteger(int propertyIndex, BigInteger value) {
+ set(propertyIndex, value);
+ }
+
+ public void setDataObject(int propertyIndex, DataObject value) {
+ set(propertyIndex, value);
+ }
+
+ public void setDate(int propertyIndex, Date value) {
+ set(propertyIndex, value);
+ }
+
+ public void setString(int propertyIndex, String value) {
+ set(propertyIndex, value);
+ }
+
+ public void setList(int propertyIndex, List value) {
+ set(propertyIndex, value);
+ }
+
+ public boolean getBoolean(Property property) {
+ return DataObjectUtil.getBoolean(this, property);
+ }
+
+ public byte getByte(Property property) {
+ return DataObjectUtil.getByte(this, property);
+ }
+
+ public char getChar(Property property) {
+ return DataObjectUtil.getChar(this, property);
+ }
+
+ public double getDouble(Property property) {
+ return DataObjectUtil.getDouble(this, property);
+ }
+
+ public float getFloat(Property property) {
+ return DataObjectUtil.getFloat(this, property);
+ }
+
+ public int getInt(Property property) {
+ return DataObjectUtil.getInt(this, property);
+ }
+
+ public long getLong(Property property) {
+ return DataObjectUtil.getLong(this, property);
+ }
+
+ public short getShort(Property property) {
+ return DataObjectUtil.getShort(this, property);
+ }
+
+ public byte[] getBytes(Property property) {
+ return DataObjectUtil.getBytes(this, property);
+ }
+
+ public BigDecimal getBigDecimal(Property property) {
+ return DataObjectUtil.getBigDecimal(this, property);
+ }
+
+ public BigInteger getBigInteger(Property property) {
+ return DataObjectUtil.getBigInteger(this, property);
+ }
+
+ public DataObject getDataObject(Property property) {
+ return DataObjectUtil.getDataObject(this, property);
+ }
+
+ public Date getDate(Property property) {
+ return DataObjectUtil.getDate(this, property);
+ }
+
+ public String getString(Property property) {
+ return DataObjectUtil.getString(this, property);
+ }
+
+ public List getList(Property property) {
+ return DataObjectUtil.getList(this, property);
+ }
+
+ public Sequence getSequence(Property property) {
+ return DataObjectUtil.getSequence(this, property);
+ }
+
+ public void setBoolean(Property property, boolean value) {
+ set(property, new Boolean(value));
+ }
+
+ public void setByte(Property property, byte value) {
+ set(property, new Byte(value));
+ }
+
+ public void setChar(Property property, char value) {
+ set(property, new Character(value));
+ }
+
+ public void setDouble(Property property, double value) {
+ set(property, new Double(value));
+ }
+
+ public void setFloat(Property property, float value) {
+ set(property, new Float(value));
+ }
+
+ public void setInt(Property property, int value) {
+ set(property, new Integer(value));
+ }
+
+ public void setLong(Property property, long value) {
+ set(property, new Long(value));
+ }
+
+ public void setShort(Property property, short value) {
+ set(property, new Short(value));
+ }
+
+ public void setBytes(Property property, byte[] value) {
+ set(property, value);
+ }
+
+ public void setBigDecimal(Property property, BigDecimal value) {
+ set(property, value);
+ }
+
+ public void setBigInteger(Property property, BigInteger value) {
+ set(property, value);
+ }
+
+ public void setDataObject(Property property, DataObject value) {
+ set(property, value);
+ }
+
+ public void setDate(Property property, Date value) {
+ set(property, value);
+ }
+
+ public void setString(Property property, String value) {
+ set(property, value);
+ }
+
+ public void setList(Property property, List value) {
+ set(property, value);
+ }
+
+ public DataObject createDataObject(String propertyName) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(int propertyIndex) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(Property property) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(String propertyName, String namespaceURI, String typeName) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(int propertyIndex, String namespaceURI, String typeName) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(Property property, Type type) {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public void delete() {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+
+ public DataGraph getDataGraph() {
+ return DataObjectUtil.getDataGraph(this);
+ }
+
+ public Sequence getSequence() {
+ EAttribute mixedFeature = BasicExtendedMetaData.INSTANCE.getMixedFeature(eClass());
+ return mixedFeature != null ? (Sequence)eGet(mixedFeature, true, false) : null;
+ }
+
+ public List getInstanceProperties() {
+ return DataObjectUtil.getInstanceProperties(this);
+ }
+
+ public DataObject getRootObject() {
+ return DataObjectUtil.getRootObject(this);
+ }
+
+ public ChangeSummary getChangeSummary() {
+ // TODO: implement this method
+ throw new UnsupportedOperationException();
+ }
+
+ public void detach() {
+ throw new UnsupportedOperationException("Type is frozen and cannot be modified");
+ }
+ */
+
+} //DataTypeImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DynamicDataObjectImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DynamicDataObjectImpl.java
new file mode 100644
index 0000000000..dd9cdfa779
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DynamicDataObjectImpl.java
@@ -0,0 +1,196 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+import org.apache.tuscany.sdo.SDOPackage;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import commonj.sdo.DataObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Dynamic Data Object</b></em>'.
+ * @extends EStructuralFeature.Internal.DynamicValueHolder
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class DynamicDataObjectImpl extends DataObjectImpl implements DataObject, EStructuralFeature.Internal.DynamicValueHolder
+{
+ protected EClass eClass;
+ protected Object [] eSettings;
+
+ protected static final Object [] ENO_SETTINGS = new Object [0];
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DynamicDataObjectImpl()
+ {
+ super();
+ }
+
+ /**
+ * Creates a dynamic DataObject.
+ */
+ public DynamicDataObjectImpl(EClass eClass)
+ {
+ super();
+ eSetClass(eClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return SDOPackage.eINSTANCE.getDynamicDataObject();
+ }
+
+ protected int eStaticFeatureCount()
+ {
+ return 0;
+ }
+
+ public int eDerivedStructuralFeatureID(EStructuralFeature eStructuralFeature)
+ {
+ return eClass().getFeatureID(eStructuralFeature);
+ }
+
+ protected boolean eHasSettings()
+ {
+ return eSettings != null;
+ }
+
+ protected EStructuralFeature.Internal.DynamicValueHolder eSettings()
+ {
+ if (eSettings == null)
+ {
+ int size = eClass().getFeatureCount() - eStaticFeatureCount();
+ eSettings = size == 0 ? ENO_SETTINGS : new Object [size];
+ }
+
+ return this;
+ }
+
+ protected EClass eDynamicClass()
+ {
+ return eClass;
+ }
+
+ public EClass eClass()
+ {
+ return eClass;
+ }
+
+ public void eSetClass(EClass eClass)
+ {
+ this.eClass = eClass;
+ }
+
+ public Object dynamicGet(int dynamicFeatureID)
+ {
+ return eSettings[dynamicFeatureID];
+ }
+
+ public void dynamicSet(int dynamicFeatureID, Object value)
+ {
+ eSettings[dynamicFeatureID] = value;
+ }
+
+ public void dynamicUnset(int dynamicFeatureID)
+ {
+ eSettings[dynamicFeatureID] = null;
+ }
+
+ public Object eDynamicGet(int featureID, boolean resolve, boolean coreType)
+ {
+ if (featureID < eClass().getFeatureCount())
+ {
+ EStructuralFeature eFeature = eClass().getEStructuralFeature(featureID);
+ return eSettingDelegate(eFeature).dynamicGet(this, eSettings(), featureID, resolve, coreType);
+ }
+ else
+ {
+ return super.eDynamicGet(featureID, resolve, coreType);
+ }
+ }
+
+ public void eDynamicSet(int featureID, Object newValue)
+ {
+ if (featureID < eClass().getFeatureCount())
+ {
+ EStructuralFeature eFeature = eClass().getEStructuralFeature(featureID);
+ eDynamicSet(featureID, eFeature, newValue);
+ }
+ else
+ {
+ super.eDynamicSet(featureID, newValue);
+ }
+ }
+
+ public void eDynamicUnset(int featureID)
+ {
+ if (featureID < eClass().getFeatureCount())
+ {
+ EStructuralFeature eFeature = eClass().getEStructuralFeature(featureID);
+ eDynamicUnset(featureID, eFeature);
+ }
+ else
+ {
+ super.eDynamicUnset(featureID);
+ }
+ }
+
+ public boolean eDynamicIsSet(int featureID)
+ {
+ if (featureID < eClass().getFeatureCount())
+ {
+ EStructuralFeature eFeature = eClass().getEStructuralFeature(featureID);
+ return eSettingDelegate(eFeature).dynamicIsSet(this, eSettings(), featureID);
+ }
+ else
+ {
+ return super.eDynamicIsSet(featureID);
+ }
+ }
+
+ /**
+ * An EFactoryImpl that creates DynamicEDataObjectImpl instances.
+ */
+ public static class FactoryImpl extends EFactoryImpl
+ {
+ public FactoryImpl()
+ {
+ }
+
+ public EObject basicCreate(EClass eClass)
+ {
+ return new DynamicDataObjectImpl(eClass);
+ }
+ }
+
+} //DynamicDataObjectImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DynamicStoreDataObjectImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DynamicStoreDataObjectImpl.java
new file mode 100644
index 0000000000..d3b709c070
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DynamicStoreDataObjectImpl.java
@@ -0,0 +1,88 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+import org.apache.tuscany.sdo.SDOPackage;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import commonj.sdo.DataObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Dynamic Store Data Object</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class DynamicStoreDataObjectImpl extends StoreDataObjectImpl implements DataObject
+{
+ protected EClass eClass;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DynamicStoreDataObjectImpl()
+ {
+ super();
+ }
+
+ public DynamicStoreDataObjectImpl(InternalEObject.EStore eStore)
+ {
+ super(eStore);
+ }
+
+ public DynamicStoreDataObjectImpl(EClass eClass)
+ {
+ super(eClass);
+ }
+
+ public DynamicStoreDataObjectImpl(EClass eClass, InternalEObject.EStore eStore)
+ {
+ super(eClass, eStore);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return SDOPackage.eINSTANCE.getDynamicStoreDataObject();
+ }
+
+ protected EClass eDynamicClass()
+ {
+ return eClass;
+ }
+
+ public EClass eClass()
+ {
+ return eClass;
+ }
+
+ public void eSetClass(EClass eClass)
+ {
+ this.eClass = eClass;
+ }
+
+} //DynamicStoreDataObjectImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/EnumImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/EnumImpl.java
new file mode 100644
index 0000000000..56e7eadcea
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/EnumImpl.java
@@ -0,0 +1,170 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+import java.util.Collections;
+import java.util.List;
+
+//import org.apache.tuscany.sdo.SDOPackage;
+
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EEnumImpl;
+
+import commonj.sdo.Property;
+import commonj.sdo.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Enum</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ * @deprecated SDO doesn't support Enum types
+ */
+public class EnumImpl extends EEnumImpl implements Type
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EnumImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected EClass eStaticClass()
+ {
+ return EcorePackage.eINSTANCE.getEEnum();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getURI()
+ {
+ return getEPackage().getNsURI();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isDataType()
+ {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isOpen()
+ {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isSequenced()
+ {
+ return false;
+ }
+
+ protected List aliasNames = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getAliasNames()
+ {
+ if (aliasNames == null)
+ {
+ aliasNames = DataObjectUtil.getAliasNames(this);
+ }
+ return aliasNames;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getDeclaredProperties()
+ {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getProperties()
+ {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getBaseTypes()
+ {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Property getProperty(String propertyName)
+ {
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isAbstract()
+ {
+ return false;
+ }
+
+} //EnumTypeImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/FactoryBase.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/FactoryBase.java
new file mode 100644
index 0000000000..e57fb54544
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/FactoryBase.java
@@ -0,0 +1,214 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EClassImpl;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Type;
+
+/**
+ */
+public class FactoryBase extends EPackageImpl
+{
+ protected FactoryBase(String namespaceURI, String namespacePrefix)
+ {
+ super(new SDOEFactoryImpl());
+
+ int index = namespacePrefix.lastIndexOf(".");
+ setName(index != -1 ? namespacePrefix.substring(index + 1) : namespacePrefix);
+ setNsPrefix(namespacePrefix);
+
+ createResource(namespaceURI);
+ setNsURI(namespaceURI);
+ //FIXME ... figure out proper (scoped) way to register static packages
+ EPackage.Registry.INSTANCE.put(namespaceURI, this);
+
+ ((SDOEFactoryImpl)getEFactoryInstance()).sdoFactory = this;
+ }
+
+ public DataObject create(int typeNumber)
+ {
+ return null;
+ }
+
+ protected Type createType(boolean isDataType, int typeNumber)
+ {
+ if (isDataType)
+ return (Type)createEDataType(typeNumber);
+ else
+ return (Type)createEClass(typeNumber);
+ }
+
+ protected void createProperty(boolean isDataType, Type containingType, int propertyNumber)
+ {
+ if (isDataType)
+ createEAttribute((EClass)containingType, propertyNumber);
+ else
+ createEReference((EClass)containingType, propertyNumber);
+ }
+
+ protected void initializeType(Type type, Class instanceClass, String name)
+ {
+ initEClass((EClass)type, instanceClass, name, !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ }
+
+ protected void initializeProperty(Property property, Type type, String name, String defaultValue, int lower, int upper, Class containerClass, boolean isReadonly, boolean isUnsettable, boolean isDerived)
+ {
+ initEAttribute((EAttribute)property, (EClassifier)type, name, defaultValue, lower, upper, containerClass, isDerived, isDerived, !isReadonly, isUnsettable, !IS_ID, !IS_UNIQUE, isDerived, IS_ORDERED);
+ }
+
+ protected void initializeProperty(Property property, Type type, String name, String defaultValue, int lower, int upper, Class containerClass, boolean isReadonly, boolean isUnsettable, boolean isDerived, boolean isComposite, Property oppositeProperty)
+ {
+ initEReference((EReference)property, (EClassifier)type, (EReference)oppositeProperty, name, defaultValue, lower, upper, containerClass, isDerived, isDerived, !isReadonly, isComposite, !isComposite /*resolve*/, isUnsettable, IS_UNIQUE, isDerived, IS_ORDERED);
+ }
+
+
+
+ protected void createXSDMetaData()
+ {
+ createDocumentRoot();
+ }
+
+ protected void addXSDMapping(Type type, String[] xsdMappings)
+ {
+ addAnnotation((ENamedElement)type, ANNOTATION_SOURCE, xsdMappings);
+ }
+
+ protected void addXSDMapping(Property property, String[] xsdMappings)
+ {
+ addAnnotation((ENamedElement)property, ANNOTATION_SOURCE, xsdMappings);
+ }
+
+ protected void createGlobalProperty(String name, Type type, String[] xsdMappings)
+ {
+ int propertyNumber = documentRootEClass.getEStructuralFeatures().size();
+ createEReference(documentRootEClass, propertyNumber);
+ EReference globalProperty = (EReference)documentRootEClass.getEStructuralFeatures().get(propertyNumber);
+ initEReference(globalProperty, (EClass)type, null, name, null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ addAnnotation((ENamedElement)globalProperty, ANNOTATION_SOURCE, xsdMappings);
+ }
+
+ protected Type getSequence() {
+ return (Type)ecorePackage.getEFeatureMapEntry();
+ }
+
+ //public static FactoryBase getStaticFactory(String namespaceURI)
+ // temporarily return Object - until everything is gen'd with new codegen pattern
+ public static Object getStaticFactory(String namespaceURI)
+ {
+ EPackage ePackage = EPackage.Registry.INSTANCE.getEPackage(namespaceURI);
+ //return (FactoryBase)ePackage;
+ return ePackage instanceof FactoryBase ? (Object)ePackage : (Object)ePackage.getEFactoryInstance();
+ }
+
+ // private EMF-specific methods
+
+ private static class SDOEFactoryImpl extends EFactoryImpl
+ {
+ protected FactoryBase sdoFactory;
+
+ public SDOEFactoryImpl()
+ {
+ super();
+ }
+
+ public EObject create(EClass eClass)
+ {
+ DataObject result = sdoFactory.create(eClass.getClassifierID());
+ if (result == null) {
+ return super.create(eClass);
+ }
+ return (EObject)result;
+ }
+ }
+
+ private static final int DOCUMENT_ROOT = 0;
+ private static final int DOCUMENT_ROOT__MIXED = 0;
+ private static final int DOCUMENT_ROOT__XMLNS_PREFIX_MAP = 1;
+ private static final int DOCUMENT_ROOT__XSI_SCHEMA_LOCATION = 2;
+ private static final String ANNOTATION_SOURCE = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
+ private EClass documentRootEClass = null;
+
+ private void createDocumentRoot()
+ {
+ documentRootEClass = ecoreFactory.createEClass();
+ ((EClassImpl)documentRootEClass).setClassifierID(DOCUMENT_ROOT);
+ getEClassifiers().add(DOCUMENT_ROOT, documentRootEClass);
+
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__MIXED);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
+
+ initEClass(documentRootEClass, null, "DocumentRoot", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute((EAttribute)documentRootEClass.getEStructuralFeatures().get(DOCUMENT_ROOT__MIXED), ecorePackage.getEFeatureMapEntry(), "mixed", null, 0, -1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference((EReference)documentRootEClass.getEStructuralFeatures().get(DOCUMENT_ROOT__XMLNS_PREFIX_MAP), ecorePackage.getEStringToStringMapEntry(), null, "xMLNSPrefixMap", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference((EReference)documentRootEClass.getEStructuralFeatures().get(DOCUMENT_ROOT__XSI_SCHEMA_LOCATION), ecorePackage.getEStringToStringMapEntry(), null, "xSISchemaLocation", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ addAnnotation
+ (documentRootEClass,
+ ANNOTATION_SOURCE,
+ new String[]
+ {
+ "name", "",
+ "kind", "mixed"
+ });
+ addAnnotation
+ ((EAttribute)documentRootEClass.getEStructuralFeatures().get(DOCUMENT_ROOT__MIXED),
+ ANNOTATION_SOURCE,
+ new String[]
+ {
+ "kind", "elementWildcard",
+ "name", ":mixed"
+ });
+ addAnnotation
+ ((EReference)documentRootEClass.getEStructuralFeatures().get(DOCUMENT_ROOT__XMLNS_PREFIX_MAP),
+ ANNOTATION_SOURCE,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "xmlns:prefix"
+ });
+ addAnnotation
+ ((EReference)documentRootEClass.getEStructuralFeatures().get(DOCUMENT_ROOT__XSI_SCHEMA_LOCATION),
+ ANNOTATION_SOURCE,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "xsi:schemaLocation"
+ });
+ }
+
+ /**
+ * Initialize SDO runtime.
+ */
+ static
+ {
+ DataObjectUtil.initRuntime();
+ }
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ReferenceImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ReferenceImpl.java
new file mode 100644
index 0000000000..a3536f4230
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ReferenceImpl.java
@@ -0,0 +1,698 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+import java.util.List;
+
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EReferenceImpl;
+
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ReferenceImpl extends EReferenceImpl implements Property,/* DataObject,*/ org.apache.tuscany.sdo.model.Property
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReferenceImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected EClass eStaticClass()
+ {
+ return EcorePackage.eINSTANCE.getEReference();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Object getDefault()
+ {
+ return getDefaultValue();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isReadOnly()
+ {
+ //return "true".equals(EcoreUtil.getAnnotation(this, "commonj.sdo", "readOnly"));
+ return !isChangeable(); //TODO semantics don't exactly match?
+ }
+
+ protected List aliasNames = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List getAliasNames()
+ {
+ if (aliasNames == null)
+ {
+ aliasNames = DataObjectUtil.getAliasNames(this);
+ }
+ return aliasNames;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Type getType()
+ {
+ // Note that Property.getType() conflicts with DataObject.getType(), so we can only implement
+ // it one way or the other here. We're implementing it to return the property type so it will
+ // return the wrong type when the caller is using the DataObject interface. Not much we can
+ // do about it tho. -- James Snell
+ return (Type)getEType();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Type getContainingType()
+ {
+ return (Type)getEContainingClass();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Property getOpposite()
+ {
+ return (Property)getEOpposite();
+ }
+
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // org.apache.tuscany.sdo.model.Property methods
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ public List getAliasName() {
+ return this.getAliasNames();
+ }
+
+ public Sequence getAny() {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setMany(boolean value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public void unsetMany() {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public boolean isSetMany() {
+ return isMany();
+ }
+
+ public void setReadOnly(boolean value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public void unsetReadOnly() {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public boolean isSetReadOnly() {
+ return isReadOnly();
+ }
+
+ public org.apache.tuscany.sdo.model.Type getType_() {
+ return (org.apache.tuscany.sdo.model.Type)getType();
+ }
+
+ public void setType(org.apache.tuscany.sdo.model.Type value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public Sequence getAnyAttribute() {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getDefault_() {
+ return (String) this.getDefault();
+ }
+
+ public void setDefault_(String value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public org.apache.tuscany.sdo.model.Property getOpposite_() {
+ return (org.apache.tuscany.sdo.model.Property) getOpposite();
+ }
+
+ public void setOpposite_(org.apache.tuscany.sdo.model.Property value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public void unsetContainment() {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public boolean isSetContainment() {
+ return isContainment();
+ }
+
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // DataObject method implementations
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+ /*
+ public Object get(int propertyIndex) {
+ return DataObjectUtil.get(this, propertyIndex);
+ }
+
+ public void set(int propertyIndex, Object value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public boolean isSet(int propertyIndex) {
+ return DataObjectUtil.isSet(this, propertyIndex);
+ }
+
+ public void unset(int propertyIndex) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public Object get(Property property) {
+ return DataObjectUtil.get(this, ((EStructuralFeature)property).getFeatureID());
+ }
+
+ public void set(Property property, Object value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public boolean isSet(Property property) {
+ return DataObjectUtil.isSet(this, ((EStructuralFeature)property).getFeatureID());
+ }
+
+ public void unset(Property property) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public DataObject getContainer() {
+ return (DataObject)eContainer();
+ }
+
+ public Property getContainmentProperty() {
+ return (Property)eContainmentFeature();
+ }
+
+ // Remaining DataObject methods are (will be) implemented as straight delegation to DataObjectUtil
+
+ public Object get(String path) {
+ return DataObjectUtil.get(this, path);
+ }
+
+ public void set(String path, Object value) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public boolean isSet(String path) {
+ return DataObjectUtil.isSet(this, path);
+ }
+
+ public void unset(String path) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public boolean getBoolean(String path) {
+ return DataObjectUtil.getBoolean(get(path));
+ }
+
+ public byte getByte(String path) {
+ return DataObjectUtil.getByte(get(path));
+ }
+
+ public char getChar(String path) {
+ return DataObjectUtil.getChar(get(path));
+ }
+
+ public double getDouble(String path) {
+ return DataObjectUtil.getDouble(get(path));
+ }
+
+ public float getFloat(String path) {
+ return DataObjectUtil.getFloat(get(path));
+ }
+
+ public int getInt(String path) {
+ return DataObjectUtil.getInt(get(path));
+ }
+
+ public long getLong(String path) {
+ return DataObjectUtil.getLong(get(path));
+ }
+
+ public short getShort(String path) {
+ return DataObjectUtil.getShort(get(path));
+ }
+
+ public byte[] getBytes(String path) {
+ return DataObjectUtil.getBytes(get(path));
+ }
+
+ public BigDecimal getBigDecimal(String path) {
+ return DataObjectUtil.getBigDecimal(get(path));
+ }
+
+ public BigInteger getBigInteger(String path) {
+ return DataObjectUtil.getBigInteger(get(path));
+ }
+
+ public DataObject getDataObject(String path) {
+ return (DataObject)get(path);
+ }
+
+ public Date getDate(String path) {
+ return DataObjectUtil.getDate(get(path));
+ }
+
+ public String getString(String path) {
+ return DataObjectUtil.getString(get(path));
+ }
+
+ public List getList(String path) {
+ return (List)get(path);
+ }
+
+ public Sequence getSequence(String path) {
+ return (Sequence)get(path);
+ }
+
+ public void setBoolean(String path, boolean value) {
+ set(path, new Boolean(value));
+ }
+
+ public void setByte(String path, byte value) {
+ set(path, new Byte(value));
+ }
+
+ public void setChar(String path, char value) {
+ set(path, new Character(value));
+ }
+
+ public void setDouble(String path, double value) {
+ set(path, new Double(value));
+ }
+
+ public void setFloat(String path, float value) {
+ set(path, new Float(value));
+ }
+
+ public void setInt(String path, int value) {
+ set(path, new Integer(value));
+ }
+
+ public void setLong(String path, long value) {
+ set(path, new Long(value));
+ }
+
+ public void setShort(String path, short value) {
+ set(path, new Short(value));
+ }
+
+ public void setBytes(String path, byte[] value) {
+ set(path, value);
+ }
+
+ public void setBigDecimal(String path, BigDecimal value) {
+ set(path, value);
+ }
+
+ public void setBigInteger(String path, BigInteger value) {
+ set(path, value);
+ }
+
+ public void setDataObject(String path, DataObject value) {
+ set(path, value);
+ }
+
+ public void setDate(String path, Date value) {
+ set(path, value);
+ }
+
+ public void setString(String path, String value) {
+ set(path, value);
+ }
+
+ public void setList(String path, List value) {
+ set(path, value);
+ }
+
+ public boolean getBoolean(int propertyIndex) {
+ return DataObjectUtil.getBoolean(this, propertyIndex);
+ }
+
+ public byte getByte(int propertyIndex) {
+ return DataObjectUtil.getByte(this, propertyIndex);
+ }
+
+ public char getChar(int propertyIndex) {
+ return DataObjectUtil.getChar(this, propertyIndex);
+ }
+
+ public double getDouble(int propertyIndex) {
+ return DataObjectUtil.getDouble(this, propertyIndex);
+ }
+
+ public float getFloat(int propertyIndex) {
+ return DataObjectUtil.getFloat(this, propertyIndex);
+ }
+
+ public int getInt(int propertyIndex) {
+ return DataObjectUtil.getInt(this, propertyIndex);
+ }
+
+ public long getLong(int propertyIndex) {
+ return DataObjectUtil.getLong(this, propertyIndex);
+ }
+
+ public short getShort(int propertyIndex) {
+ return DataObjectUtil.getShort(this, propertyIndex);
+ }
+
+ public byte[] getBytes(int propertyIndex) {
+ return DataObjectUtil.getBytes(this, propertyIndex);
+ }
+
+ public BigDecimal getBigDecimal(int propertyIndex) {
+ return DataObjectUtil.getBigDecimal(this, propertyIndex);
+ }
+
+ public BigInteger getBigInteger(int propertyIndex) {
+ return DataObjectUtil.getBigInteger(this, propertyIndex);
+ }
+
+ public DataObject getDataObject(int propertyIndex) {
+ return DataObjectUtil.getDataObject(this, propertyIndex);
+ }
+
+ public Date getDate(int propertyIndex) {
+ return DataObjectUtil.getDate(this, propertyIndex);
+ }
+
+ public String getString(int propertyIndex) {
+ return DataObjectUtil.getString(this, propertyIndex);
+ }
+
+ public List getList(int propertyIndex) {
+ return DataObjectUtil.getList(this, propertyIndex);
+ }
+
+ public Sequence getSequence(int propertyIndex) {
+ return DataObjectUtil.getSequence(this, propertyIndex);
+ }
+
+ public void setBoolean(int propertyIndex, boolean value) {
+ set(propertyIndex, new Boolean(value));
+ }
+
+ public void setByte(int propertyIndex, byte value) {
+ set(propertyIndex, new Byte(value));
+ }
+
+ public void setChar(int propertyIndex, char value) {
+ set(propertyIndex, new Character(value));
+ }
+
+ public void setDouble(int propertyIndex, double value) {
+ set(propertyIndex, new Double(value));
+ }
+
+ public void setFloat(int propertyIndex, float value) {
+ set(propertyIndex, new Float(value));
+ }
+
+ public void setInt(int propertyIndex, int value) {
+ set(propertyIndex, new Integer(value));
+ }
+
+ public void setLong(int propertyIndex, long value) {
+ set(propertyIndex, new Long(value));
+ }
+
+ public void setShort(int propertyIndex, short value) {
+ set(propertyIndex, new Short(value));
+ }
+
+ public void setBytes(int propertyIndex, byte[] value) {
+ set(propertyIndex, value);
+ }
+
+ public void setBigDecimal(int propertyIndex, BigDecimal value) {
+ set(propertyIndex, value);
+ }
+
+ public void setBigInteger(int propertyIndex, BigInteger value) {
+ set(propertyIndex, value);
+ }
+
+ public void setDataObject(int propertyIndex, DataObject value) {
+ set(propertyIndex, value);
+ }
+
+ public void setDate(int propertyIndex, Date value) {
+ set(propertyIndex, value);
+ }
+
+ public void setString(int propertyIndex, String value) {
+ set(propertyIndex, value);
+ }
+
+ public void setList(int propertyIndex, List value) {
+ set(propertyIndex, value);
+ }
+
+ public boolean getBoolean(Property property) {
+ return DataObjectUtil.getBoolean(this, property);
+ }
+
+ public byte getByte(Property property) {
+ return DataObjectUtil.getByte(this, property);
+ }
+
+ public char getChar(Property property) {
+ return DataObjectUtil.getChar(this, property);
+ }
+
+ public double getDouble(Property property) {
+ return DataObjectUtil.getDouble(this, property);
+ }
+
+ public float getFloat(Property property) {
+ return DataObjectUtil.getFloat(this, property);
+ }
+
+ public int getInt(Property property) {
+ return DataObjectUtil.getInt(this, property);
+ }
+
+ public long getLong(Property property) {
+ return DataObjectUtil.getLong(this, property);
+ }
+
+ public short getShort(Property property) {
+ return DataObjectUtil.getShort(this, property);
+ }
+
+ public byte[] getBytes(Property property) {
+ return DataObjectUtil.getBytes(this, property);
+ }
+
+ public BigDecimal getBigDecimal(Property property) {
+ return DataObjectUtil.getBigDecimal(this, property);
+ }
+
+ public BigInteger getBigInteger(Property property) {
+ return DataObjectUtil.getBigInteger(this, property);
+ }
+
+ public DataObject getDataObject(Property property) {
+ return DataObjectUtil.getDataObject(this, property);
+ }
+
+ public Date getDate(Property property) {
+ return DataObjectUtil.getDate(this, property);
+ }
+
+ public String getString(Property property) {
+ return DataObjectUtil.getString(this, property);
+ }
+
+ public List getList(Property property) {
+ return DataObjectUtil.getList(this, property);
+ }
+
+ public Sequence getSequence(Property property) {
+ return DataObjectUtil.getSequence(this, property);
+ }
+
+ public void setBoolean(Property property, boolean value) {
+ set(property, new Boolean(value));
+ }
+
+ public void setByte(Property property, byte value) {
+ set(property, new Byte(value));
+ }
+
+ public void setChar(Property property, char value) {
+ set(property, new Character(value));
+ }
+
+ public void setDouble(Property property, double value) {
+ set(property, new Double(value));
+ }
+
+ public void setFloat(Property property, float value) {
+ set(property, new Float(value));
+ }
+
+ public void setInt(Property property, int value) {
+ set(property, new Integer(value));
+ }
+
+ public void setLong(Property property, long value) {
+ set(property, new Long(value));
+ }
+
+ public void setShort(Property property, short value) {
+ set(property, new Short(value));
+ }
+
+ public void setBytes(Property property, byte[] value) {
+ set(property, value);
+ }
+
+ public void setBigDecimal(Property property, BigDecimal value) {
+ set(property, value);
+ }
+
+ public void setBigInteger(Property property, BigInteger value) {
+ set(property, value);
+ }
+
+ public void setDataObject(Property property, DataObject value) {
+ set(property, value);
+ }
+
+ public void setDate(Property property, Date value) {
+ set(property, value);
+ }
+
+ public void setString(Property property, String value) {
+ set(property, value);
+ }
+
+ public void setList(Property property, List value) {
+ set(property, value);
+ }
+
+ public DataObject createDataObject(String propertyName) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(int propertyIndex) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(Property property) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(String propertyName, String namespaceURI, String typeName) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(int propertyIndex, String namespaceURI, String typeName) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public DataObject createDataObject(Property property, Type type) {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public void delete() {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ }
+
+ public DataGraph getDataGraph() {
+ return DataObjectUtil.getDataGraph(this);
+ }
+
+ public Sequence getSequence() {
+ EAttribute mixedFeature = BasicExtendedMetaData.INSTANCE.getMixedFeature(eClass());
+ return mixedFeature != null ? (Sequence)eGet(mixedFeature, true, false) : null;
+ }
+
+ public List getInstanceProperties() {
+ return DataObjectUtil.getInstanceProperties(this);
+ }
+
+ public DataObject getRootObject() {
+ return DataObjectUtil.getRootObject(this);
+ }
+
+ public ChangeSummary getChangeSummary() {
+ // TODO: implement this method
+ throw new UnsupportedOperationException();
+ }
+
+ public void detach() {
+ throw new UnsupportedOperationException("Property is frozen and cannot be modified");
+ //DataObjectUtil.detach(this);
+ }
+
+ public Property getProperty(String propertyName) {
+ return DataObjectUtil.getProperty(this, propertyName);
+ }
+ */
+
+} //ReferenceImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOFactoryImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOFactoryImpl.java
new file mode 100644
index 0000000000..f8c3f05cae
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOFactoryImpl.java
@@ -0,0 +1,332 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+
+import org.apache.tuscany.sdo.AnyTypeDataObject;
+import org.apache.tuscany.sdo.SDOFactory;
+import org.apache.tuscany.sdo.SDOPackage;
+import org.apache.tuscany.sdo.SimpleAnyTypeDataObject;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.emf.ecore.impl.EcoreFactoryImpl;
+
+import commonj.sdo.ChangeSummary;
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Type;
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SDOFactoryImpl extends EFactoryImpl implements SDOFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SDOFactory init()
+ {
+ try
+ {
+ SDOFactory theSDOFactory = (SDOFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/emf/2003/SDO");
+ if (theSDOFactory != null)
+ {
+ return theSDOFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new SDOFactoryImpl();
+ }
+
+ public static class SDOEcoreFactory extends EcoreFactoryImpl
+ {
+ public EClass createEClass() { return new ClassImpl(); }
+ public EDataType createEDataType() { return new DataTypeImpl(); }
+ public EEnum createEEnum() { return new EnumImpl(); }
+ public EAttribute createEAttribute() { return new AttributeImpl(); }
+ public EReference createEReference() { return new ReferenceImpl(); }
+
+// public EFactory createEFactory()
+// {
+// EFactoryImpl eFactory = new EFactoryImpl() { OVERRIDE basicCreate(); } // TODO think about doing this
+// return eFactory;
+// }
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SDOFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject createGen(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case SDOPackage.CHANGE_SUMMARY: return (EObject)createChangeSummary();
+ case SDOPackage.CHANGE_SUMMARY_SETTING: return (EObject)createChangeSummarySetting();
+ case SDOPackage.DATA_GRAPH: return (EObject)createDataGraph();
+ case SDOPackage.ANY_TYPE_DATA_OBJECT: return createAnyTypeDataObject();
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT: return createSimpleAnyTypeDataObject();
+ case SDOPackage.CLASS: return (EObject)createClass();
+ case SDOPackage.DATA_TYPE: return (EObject)createDataType();
+ case SDOPackage.ATTRIBUTE: return (EObject)createAttribute();
+ case SDOPackage.REFERENCE: return (EObject)createReference();
+ case SDOPackage.ENUM: return (EObject)createEnum();
+ case SDOPackage.DYNAMIC_DATA_OBJECT: return (EObject)createDynamicDataObject();
+ case SDOPackage.STORE_DATA_OBJECT: return (EObject)createStoreDataObject();
+ case SDOPackage.DYNAMIC_STORE_DATA_OBJECT: return (EObject)createDynamicStoreDataObject();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ public EObject create(EClass eClass)
+ {
+ if (eClass.getClassifierID() == SDOPackage.DATA_OBJECT) return createAnyTypeDataObject();
+ return createGen(eClass);
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object createFromString(EDataType eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertToString(EDataType eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeSummary createChangeSummary()
+ {
+ ChangeSummaryImpl changeSummary = new ChangeSummaryImpl();
+ return changeSummary;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeSummary.Setting createChangeSummarySetting()
+ {
+ ChangeSummarySettingImpl changeSummarySetting = new ChangeSummarySettingImpl();
+ return changeSummarySetting;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataGraph createDataGraph()
+ {
+ DataGraphImpl dataGraph = new DataGraphImpl();
+ return dataGraph;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnyTypeDataObject createAnyTypeDataObject()
+ {
+ AnyTypeDataObjectImpl anyTypeDataObject = new AnyTypeDataObjectImpl();
+ return anyTypeDataObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SimpleAnyTypeDataObject createSimpleAnyTypeDataObject()
+ {
+ SimpleAnyTypeDataObjectImpl simpleAnyTypeDataObject = new SimpleAnyTypeDataObjectImpl();
+ return simpleAnyTypeDataObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type createClass()
+ {
+ ClassImpl class_ = new ClassImpl();
+ return class_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type createDataType()
+ {
+ DataTypeImpl dataType = new DataTypeImpl();
+ return dataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createAttribute()
+ {
+ AttributeImpl attribute = new AttributeImpl();
+ return attribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createReference()
+ {
+ ReferenceImpl reference = new ReferenceImpl();
+ return reference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type createEnum()
+ {
+ EnumImpl enum_ = new EnumImpl();
+ return enum_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataObject createDynamicDataObject()
+ {
+ DynamicDataObjectImpl dynamicDataObject = new DynamicDataObjectImpl();
+ return dynamicDataObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataObject createStoreDataObject()
+ {
+ StoreDataObjectImpl storeDataObject = new StoreDataObjectImpl();
+ return storeDataObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataObject createDynamicStoreDataObject()
+ {
+ DynamicStoreDataObjectImpl dynamicStoreDataObject = new DynamicStoreDataObjectImpl();
+ return dynamicStoreDataObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SDOPackage getSDOPackage()
+ {
+ return (SDOPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static SDOPackage getPackage()
+ {
+ return SDOPackage.eINSTANCE;
+ }
+
+ public ChangeSummary.Setting createChangeSummarySetting(EStructuralFeature eStructuralFeature, Object value, boolean isSet)
+ {
+ ChangeSummarySettingImpl eChangeSummarySetting = new ChangeSummarySettingImpl(eStructuralFeature, value, isSet);
+ return eChangeSummarySetting;
+ }
+
+} //SDOFactoryImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOPackageImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOPackageImpl.java
new file mode 100644
index 0000000000..15011fc37f
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOPackageImpl.java
@@ -0,0 +1,2133 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+import java.io.ObjectStreamException;
+import java.util.List;
+
+import org.apache.tuscany.sdo.AnyTypeDataObject;
+import org.apache.tuscany.sdo.SDOFactory;
+import org.apache.tuscany.sdo.SDOPackage;
+import org.apache.tuscany.sdo.SimpleAnyTypeDataObject;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.change.ChangePackage;
+import org.eclipse.emf.ecore.change.impl.ChangePackageImpl;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecore.impl.EcorePackageImpl;
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+import org.eclipse.emf.ecore.xml.type.impl.XMLTypePackageImpl;
+
+import commonj.sdo.ChangeSummary;
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SDOPackageImpl extends EPackageImpl implements SDOPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass changeSummaryEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass changeSummarySettingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dataGraphEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dataObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass propertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sequenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass typeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass anyTypeDataObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass simpleAnyTypeDataObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass classEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dataTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass attributeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass referenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass enumEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dynamicDataObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass storeDataObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dynamicStoreDataObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType eJavaListEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType eObjectStreamExceptionEDataType = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.apache.tuscany.sdo.SDOPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private SDOPackageImpl()
+ {
+ super(eNS_URI, SDOFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this
+ * model, and for any others upon which it depends. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ * <p>Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ * <p>Invocation of this method will not affect any packages that have
+ * already been initialized.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static SDOPackage init()
+ {
+ if (isInited) return (SDOPackage)EPackage.Registry.INSTANCE.getEPackage(SDOPackage.eNS_URI);
+
+ // Obtain or create and register package
+ SDOPackageImpl theSDOPackage = (SDOPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof SDOPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new SDOPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackageImpl.init();
+ XMLTypePackageImpl.init();
+ ChangePackageImpl.init();
+
+ // Create package meta-data objects
+ theSDOPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theSDOPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theSDOPackage.freeze();
+
+ return theSDOPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getChangeSummary()
+ {
+ return changeSummaryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getChangeSummary_EDataGraph()
+ {
+ return (EReference)changeSummaryEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getChangeSummarySetting()
+ {
+ return changeSummarySettingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDataGraph()
+ {
+ return dataGraphEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDataGraph_ResourceSet()
+ {
+ return (EAttribute)dataGraphEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDataGraph_RootResource()
+ {
+ return (EAttribute)dataGraphEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDataGraph_EChangeSummary()
+ {
+ return (EReference)dataGraphEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDataGraph_ERootObject()
+ {
+ return (EReference)dataGraphEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDataObject()
+ {
+ return dataObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProperty()
+ {
+ return propertyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSequence()
+ {
+ return sequenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getType()
+ {
+ return typeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAnyTypeDataObject()
+ {
+ return anyTypeDataObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSimpleAnyTypeDataObject()
+ {
+ return simpleAnyTypeDataObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClass_()
+ {
+ return classEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDataType()
+ {
+ return dataTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAttribute()
+ {
+ return attributeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReference()
+ {
+ return referenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEnum()
+ {
+ return enumEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDynamicDataObject()
+ {
+ return dynamicDataObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStoreDataObject()
+ {
+ return storeDataObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDynamicStoreDataObject()
+ {
+ return dynamicStoreDataObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getEJavaList()
+ {
+ return eJavaListEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getEObjectStreamException()
+ {
+ return eObjectStreamExceptionEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SDOFactory getSDOFactory()
+ {
+ return (SDOFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ changeSummaryEClass = createEClass(CHANGE_SUMMARY);
+ createEReference(changeSummaryEClass, CHANGE_SUMMARY__EDATA_GRAPH);
+
+ changeSummarySettingEClass = createEClass(CHANGE_SUMMARY_SETTING);
+
+ dataGraphEClass = createEClass(DATA_GRAPH);
+ createEAttribute(dataGraphEClass, DATA_GRAPH__RESOURCE_SET);
+ createEAttribute(dataGraphEClass, DATA_GRAPH__ROOT_RESOURCE);
+ createEReference(dataGraphEClass, DATA_GRAPH__ECHANGE_SUMMARY);
+ createEReference(dataGraphEClass, DATA_GRAPH__EROOT_OBJECT);
+
+ dataObjectEClass = createEClass(DATA_OBJECT);
+
+ propertyEClass = createEClass(PROPERTY);
+
+ sequenceEClass = createEClass(SEQUENCE);
+
+ typeEClass = createEClass(TYPE);
+
+ anyTypeDataObjectEClass = createEClass(ANY_TYPE_DATA_OBJECT);
+
+ simpleAnyTypeDataObjectEClass = createEClass(SIMPLE_ANY_TYPE_DATA_OBJECT);
+
+ classEClass = createEClass(CLASS);
+
+ dataTypeEClass = createEClass(DATA_TYPE);
+
+ attributeEClass = createEClass(ATTRIBUTE);
+
+ referenceEClass = createEClass(REFERENCE);
+
+ enumEClass = createEClass(ENUM);
+
+ dynamicDataObjectEClass = createEClass(DYNAMIC_DATA_OBJECT);
+
+ storeDataObjectEClass = createEClass(STORE_DATA_OBJECT);
+
+ dynamicStoreDataObjectEClass = createEClass(DYNAMIC_STORE_DATA_OBJECT);
+
+ // Create data types
+ eJavaListEDataType = createEDataType(EJAVA_LIST);
+ eObjectStreamExceptionEDataType = createEDataType(EOBJECT_STREAM_EXCEPTION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ChangePackageImpl theChangePackage = (ChangePackageImpl)EPackage.Registry.INSTANCE.getEPackage(ChangePackage.eNS_URI);
+ EcorePackageImpl theEcorePackage = (EcorePackageImpl)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+ XMLTypePackageImpl theXMLTypePackage = (XMLTypePackageImpl)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI);
+
+ // Add supertypes to classes
+ changeSummaryEClass.getESuperTypes().add(theChangePackage.getChangeDescription());
+ changeSummarySettingEClass.getESuperTypes().add(theChangePackage.getFeatureChange());
+ dataGraphEClass.getESuperTypes().add(theEcorePackage.getEObject());
+ anyTypeDataObjectEClass.getESuperTypes().add(this.getDataObject());
+ anyTypeDataObjectEClass.getESuperTypes().add(theXMLTypePackage.getAnyType());
+ simpleAnyTypeDataObjectEClass.getESuperTypes().add(this.getAnyTypeDataObject());
+ simpleAnyTypeDataObjectEClass.getESuperTypes().add(theXMLTypePackage.getSimpleAnyType());
+ classEClass.getESuperTypes().add(theEcorePackage.getEClass());
+ classEClass.getESuperTypes().add(this.getType());
+ dataTypeEClass.getESuperTypes().add(theEcorePackage.getEDataType());
+ dataTypeEClass.getESuperTypes().add(this.getType());
+ attributeEClass.getESuperTypes().add(theEcorePackage.getEAttribute());
+ attributeEClass.getESuperTypes().add(this.getProperty());
+ referenceEClass.getESuperTypes().add(theEcorePackage.getEReference());
+ referenceEClass.getESuperTypes().add(this.getProperty());
+ enumEClass.getESuperTypes().add(theEcorePackage.getEEnum());
+ enumEClass.getESuperTypes().add(this.getType());
+ dynamicDataObjectEClass.getESuperTypes().add(this.getDataObject());
+ storeDataObjectEClass.getESuperTypes().add(this.getDataObject());
+ dynamicStoreDataObjectEClass.getESuperTypes().add(this.getStoreDataObject());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(changeSummaryEClass, ChangeSummary.class, "ChangeSummary", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getChangeSummary_EDataGraph(), this.getDataGraph(), this.getDataGraph_EChangeSummary(), "eDataGraph", null, 1, 1, ChangeSummary.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ addEOperation(changeSummaryEClass, null, "beginLogging");
+
+ addEOperation(changeSummaryEClass, null, "endLogging");
+
+ EOperation op = addEOperation(changeSummaryEClass, ecorePackage.getEBoolean(), "isCreated");
+ addEParameter(op, this.getDataObject(), "dataObject");
+
+ op = addEOperation(changeSummaryEClass, ecorePackage.getEBoolean(), "isDeleted");
+ addEParameter(op, this.getDataObject(), "dataObject");
+
+ op = addEOperation(changeSummaryEClass, this.getEJavaList(), "getOldValues");
+ addEParameter(op, this.getDataObject(), "dataObject");
+
+ op = addEOperation(changeSummaryEClass, ecorePackage.getEBoolean(), "isModified");
+ addEParameter(op, this.getDataObject(), "dataObject");
+
+ op = addEOperation(changeSummaryEClass, this.getChangeSummarySetting(), "getOldValue");
+ addEParameter(op, this.getDataObject(), "dataObject");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(changeSummaryEClass, this.getDataObject(), "getOldContainer");
+ addEParameter(op, this.getDataObject(), "dataObject");
+
+ op = addEOperation(changeSummaryEClass, this.getProperty(), "getOldContainmentProperty");
+ addEParameter(op, this.getDataObject(), "dataObject");
+
+ op = addEOperation(changeSummaryEClass, this.getSequence(), "getOldSequence");
+ addEParameter(op, this.getDataObject(), "dataObject");
+
+ addEOperation(changeSummaryEClass, null, "undoChanges");
+
+ addEOperation(changeSummaryEClass, ecorePackage.getEBoolean(), "isLogging");
+
+ addEOperation(changeSummaryEClass, this.getDataGraph(), "getDataGraph");
+
+ addEOperation(changeSummaryEClass, this.getEJavaList(), "getChangedObjects");
+
+ addEOperation(changeSummaryEClass, this.getDataObject(), "getRootObject");
+
+ initEClass(changeSummarySettingEClass, ChangeSummary.Setting.class, "ChangeSummarySetting", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+
+ addEOperation(changeSummarySettingEClass, ecorePackage.getEBoolean(), "isSet");
+
+ addEOperation(changeSummarySettingEClass, theEcorePackage.getEJavaObject(), "getValue");
+
+ addEOperation(changeSummarySettingEClass, this.getProperty(), "getProperty");
+
+ initEClass(dataGraphEClass, DataGraph.class, "DataGraph", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDataGraph_ResourceSet(), theEcorePackage.getEResourceSet(), "resourceSet", null, 0, 1, DataGraph.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDataGraph_RootResource(), theEcorePackage.getEResource(), "rootResource", null, 0, 1, DataGraph.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getDataGraph_EChangeSummary(), this.getChangeSummary(), this.getChangeSummary_EDataGraph(), "eChangeSummary", null, 1, 1, DataGraph.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDataGraph_ERootObject(), theEcorePackage.getEObject(), null, "eRootObject", null, 1, 1, DataGraph.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ op = addEOperation(dataGraphEClass, this.getDataObject(), "createRootObject");
+ addEParameter(op, ecorePackage.getEString(), "namespaceURI");
+ addEParameter(op, ecorePackage.getEString(), "typeName");
+
+ op = addEOperation(dataGraphEClass, this.getDataObject(), "createRootObject");
+ addEParameter(op, this.getType(), "type");
+
+ op = addEOperation(dataGraphEClass, this.getType(), "getType");
+ addEParameter(op, ecorePackage.getEString(), "namespaceURI");
+ addEParameter(op, ecorePackage.getEString(), "typeName");
+
+ addEOperation(dataGraphEClass, this.getDataObject(), "getRootObject");
+
+ addEOperation(dataGraphEClass, this.getChangeSummary(), "getChangeSummary");
+
+ initEClass(dataObjectEClass, DataObject.class, "DataObject", IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEJavaObject(), "get");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, null, "set");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, theEcorePackage.getEJavaObject(), "value");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEBoolean(), "isSet");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, null, "unset");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEJavaObject(), "get");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, null, "set");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, theEcorePackage.getEJavaObject(), "value");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEBoolean(), "isSet");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, null, "unset");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEJavaObject(), "get");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, null, "set");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, theEcorePackage.getEJavaObject(), "value");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEBoolean(), "isSet");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, null, "unset");
+ addEParameter(op, this.getProperty(), "property");
+
+ addEOperation(dataObjectEClass, this.getDataObject(), "getContainer");
+
+ addEOperation(dataObjectEClass, this.getProperty(), "getContainmentProperty");
+
+ addEOperation(dataObjectEClass, this.getDataGraph(), "getDataGraph");
+
+ addEOperation(dataObjectEClass, this.getType(), "getType");
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEBigDecimal(), "getBigDecimal");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEBigInteger(), "getBigInteger");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEBoolean(), "getBoolean");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEByte(), "getByte");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEByteArray(), "getBytes");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEChar(), "getChar");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, this.getDataObject(), "getDataObject");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEDate(), "getDate");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEDouble(), "getDouble");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEFloat(), "getFloat");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEInt(), "getInt");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, this.getEJavaList(), "getList");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getELong(), "getLong");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, this.getSequence(), "getSequence");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEShort(), "getShort");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEString(), "getString");
+ addEParameter(op, ecorePackage.getEString(), "path");
+
+ op = addEOperation(dataObjectEClass, null, "setBigDecimal");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, theEcorePackage.getEBigDecimal(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setBigInteger");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, theEcorePackage.getEBigInteger(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setBoolean");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, ecorePackage.getEBoolean(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setByte");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, ecorePackage.getEByte(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setBytes");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, theEcorePackage.getEByteArray(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setChar");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, ecorePackage.getEChar(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setDataObject");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, this.getDataObject(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setDate");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, theEcorePackage.getEDate(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setDouble");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, ecorePackage.getEDouble(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setFloat");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, ecorePackage.getEFloat(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setInt");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, ecorePackage.getEInt(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setList");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, this.getEJavaList(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setLong");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, ecorePackage.getELong(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setShort");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, ecorePackage.getEShort(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setString");
+ addEParameter(op, ecorePackage.getEString(), "path");
+ addEParameter(op, ecorePackage.getEString(), "value");
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEBigDecimal(), "getBigDecimal");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEBigInteger(), "getBigInteger");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEBoolean(), "getBoolean");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEByte(), "getByte");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEByteArray(), "getBytes");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEChar(), "getChar");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, this.getDataObject(), "getDataObject");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEDate(), "getDate");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEDouble(), "getDouble");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEFloat(), "getFloat");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEInt(), "getInt");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, this.getEJavaList(), "getList");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getELong(), "getLong");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, this.getSequence(), "getSequence");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEShort(), "getShort");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEString(), "getString");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, null, "setBigDecimal");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, theEcorePackage.getEBigDecimal(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setBigInteger");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, theEcorePackage.getEBigInteger(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setBoolean");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, ecorePackage.getEBoolean(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setByte");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, ecorePackage.getEByte(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setBytes");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, theEcorePackage.getEByteArray(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setChar");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, ecorePackage.getEChar(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setDataObject");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, this.getDataObject(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setDate");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, theEcorePackage.getEDate(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setDouble");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, ecorePackage.getEDouble(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setFloat");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, ecorePackage.getEFloat(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setInt");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, ecorePackage.getEInt(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setList");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, this.getEJavaList(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setLong");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, ecorePackage.getELong(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setShort");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, ecorePackage.getEShort(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setString");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, ecorePackage.getEString(), "value");
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEBigDecimal(), "getBigDecimal");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEBigInteger(), "getBigInteger");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEBoolean(), "getBoolean");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEByte(), "getByte");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEByteArray(), "getBytes");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEChar(), "getChar");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, this.getDataObject(), "getDataObject");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, theEcorePackage.getEDate(), "getDate");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEDouble(), "getDouble");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEFloat(), "getFloat");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEInt(), "getInt");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, this.getEJavaList(), "getList");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getELong(), "getLong");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, this.getSequence(), "getSequence");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEShort(), "getShort");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, ecorePackage.getEString(), "getString");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, null, "setBigDecimal");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, theEcorePackage.getEBigDecimal(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setBigInteger");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, theEcorePackage.getEBigInteger(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setBoolean");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, ecorePackage.getEBoolean(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setByte");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, ecorePackage.getEByte(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setBytes");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, theEcorePackage.getEByteArray(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setChar");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, ecorePackage.getEChar(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setDataObject");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, this.getDataObject(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setDate");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, theEcorePackage.getEDate(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setDouble");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, ecorePackage.getEDouble(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setFloat");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, ecorePackage.getEFloat(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setInt");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, ecorePackage.getEInt(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setList");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, this.getEJavaList(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setLong");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, ecorePackage.getELong(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setShort");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, ecorePackage.getEShort(), "value");
+
+ op = addEOperation(dataObjectEClass, null, "setString");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, ecorePackage.getEString(), "value");
+
+ op = addEOperation(dataObjectEClass, this.getDataObject(), "createDataObject");
+ addEParameter(op, ecorePackage.getEString(), "propertyName");
+
+ op = addEOperation(dataObjectEClass, this.getDataObject(), "createDataObject");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+
+ op = addEOperation(dataObjectEClass, this.getDataObject(), "createDataObject");
+ addEParameter(op, this.getProperty(), "property");
+
+ op = addEOperation(dataObjectEClass, this.getDataObject(), "createDataObject");
+ addEParameter(op, ecorePackage.getEString(), "propertyName");
+ addEParameter(op, ecorePackage.getEString(), "namespaceURI");
+ addEParameter(op, ecorePackage.getEString(), "typeName");
+
+ op = addEOperation(dataObjectEClass, this.getDataObject(), "createDataObject");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, ecorePackage.getEString(), "namespaceURI");
+ addEParameter(op, ecorePackage.getEString(), "typeName");
+
+ op = addEOperation(dataObjectEClass, this.getDataObject(), "createDataObject");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, this.getType(), "type");
+
+ addEOperation(dataObjectEClass, null, "delete");
+
+ addEOperation(dataObjectEClass, this.getSequence(), "getSequence");
+
+ addEOperation(dataObjectEClass, this.getEJavaList(), "getInstanceProperties");
+
+ op = addEOperation(dataObjectEClass, this.getProperty(), "getProperty");
+ addEParameter(op, ecorePackage.getEString(), "propertyName");
+
+ addEOperation(dataObjectEClass, this.getDataObject(), "getRootObject");
+
+ addEOperation(dataObjectEClass, this.getChangeSummary(), "getChangeSummary");
+
+ addEOperation(dataObjectEClass, null, "detach");
+
+ initEClass(propertyEClass, Property.class, "Property", IS_ABSTRACT, IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+
+ addEOperation(propertyEClass, ecorePackage.getEString(), "getName");
+
+ addEOperation(propertyEClass, this.getType(), "getType");
+
+ addEOperation(propertyEClass, ecorePackage.getEBoolean(), "isMany");
+
+ addEOperation(propertyEClass, ecorePackage.getEBoolean(), "isContainment");
+
+ addEOperation(propertyEClass, ecorePackage.getEBoolean(), "isReadOnly");
+
+ addEOperation(propertyEClass, this.getType(), "getContainingType");
+
+ addEOperation(propertyEClass, this.getEJavaList(), "getAliasNames");
+
+ addEOperation(propertyEClass, this.getProperty(), "getOpposite");
+
+ addEOperation(propertyEClass, theEcorePackage.getEJavaObject(), "getDefault");
+
+ initEClass(sequenceEClass, Sequence.class, "Sequence", IS_ABSTRACT, IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+
+ addEOperation(sequenceEClass, ecorePackage.getEInt(), "size");
+
+ op = addEOperation(sequenceEClass, this.getProperty(), "getProperty");
+ addEParameter(op, ecorePackage.getEInt(), "index");
+
+ op = addEOperation(sequenceEClass, theEcorePackage.getEJavaObject(), "getValue");
+ addEParameter(op, ecorePackage.getEInt(), "index");
+
+ op = addEOperation(sequenceEClass, theEcorePackage.getEJavaObject(), "setValue");
+ addEParameter(op, ecorePackage.getEInt(), "index");
+ addEParameter(op, theEcorePackage.getEJavaObject(), "value");
+
+ op = addEOperation(sequenceEClass, ecorePackage.getEBoolean(), "add");
+ addEParameter(op, ecorePackage.getEString(), "propertyName");
+ addEParameter(op, theEcorePackage.getEJavaObject(), "value");
+
+ op = addEOperation(sequenceEClass, ecorePackage.getEBoolean(), "add");
+ addEParameter(op, ecorePackage.getEInt(), "propertIndex");
+ addEParameter(op, theEcorePackage.getEJavaObject(), "value");
+
+ op = addEOperation(sequenceEClass, ecorePackage.getEBoolean(), "add");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, theEcorePackage.getEJavaObject(), "value");
+
+ op = addEOperation(sequenceEClass, null, "add");
+ addEParameter(op, ecorePackage.getEInt(), "index");
+ addEParameter(op, ecorePackage.getEString(), "propertyName");
+ addEParameter(op, theEcorePackage.getEJavaObject(), "value");
+
+ op = addEOperation(sequenceEClass, null, "add");
+ addEParameter(op, ecorePackage.getEInt(), "index");
+ addEParameter(op, ecorePackage.getEInt(), "propertyIndex");
+ addEParameter(op, theEcorePackage.getEJavaObject(), "value");
+
+ op = addEOperation(sequenceEClass, null, "add");
+ addEParameter(op, ecorePackage.getEInt(), "index");
+ addEParameter(op, this.getProperty(), "property");
+ addEParameter(op, theEcorePackage.getEJavaObject(), "value");
+
+ op = addEOperation(sequenceEClass, null, "add");
+ addEParameter(op, ecorePackage.getEString(), "text");
+
+ op = addEOperation(sequenceEClass, null, "add");
+ addEParameter(op, ecorePackage.getEInt(), "index");
+ addEParameter(op, ecorePackage.getEString(), "text");
+
+ initEClass(typeEClass, Type.class, "Type", IS_ABSTRACT, IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+
+ addEOperation(typeEClass, ecorePackage.getEString(), "getName");
+
+ addEOperation(typeEClass, ecorePackage.getEString(), "getURI");
+
+ addEOperation(typeEClass, theEcorePackage.getEJavaClass(), "getInstanceClass");
+
+ op = addEOperation(typeEClass, ecorePackage.getEBoolean(), "isInstance");
+ addEParameter(op, theEcorePackage.getEJavaObject(), "object");
+
+ addEOperation(typeEClass, ecorePackage.getEBoolean(), "isDataType");
+
+ addEOperation(typeEClass, ecorePackage.getEBoolean(), "isSequenced");
+
+ addEOperation(typeEClass, ecorePackage.getEBoolean(), "isOpen");
+
+ addEOperation(typeEClass, ecorePackage.getEBoolean(), "isAbstract");
+
+ addEOperation(typeEClass, this.getEJavaList(), "getBaseTypes");
+
+ addEOperation(typeEClass, this.getEJavaList(), "getAliasNames");
+
+ addEOperation(typeEClass, this.getEJavaList(), "getProperties");
+
+ addEOperation(typeEClass, this.getEJavaList(), "getDeclaredProperties");
+
+ op = addEOperation(typeEClass, this.getProperty(), "getProperty");
+ addEParameter(op, ecorePackage.getEString(), "propertyName");
+
+ initEClass(anyTypeDataObjectEClass, AnyTypeDataObject.class, "AnyTypeDataObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(simpleAnyTypeDataObjectEClass, SimpleAnyTypeDataObject.class, "SimpleAnyTypeDataObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(classEClass, Type.class, "Class", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(dataTypeEClass, Type.class, "DataType", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(attributeEClass, Property.class, "Attribute", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(referenceEClass, Property.class, "Reference", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(enumEClass, Type.class, "Enum", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(dynamicDataObjectEClass, DataObject.class, "DynamicDataObject", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(storeDataObjectEClass, DataObject.class, "StoreDataObject", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(dynamicStoreDataObjectEClass, DataObject.class, "DynamicStoreDataObject", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+
+ // Initialize data types
+ initEDataType(eJavaListEDataType, List.class, "EJavaList", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(eObjectStreamExceptionEDataType, ObjectStreamException.class, "EObjectStreamException", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http://www.eclipse.org/emf/2002/GenModel
+ createGenModelAnnotations();
+ // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
+ createExtendedMetaDataAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/GenModel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGenModelAnnotations()
+ {
+ String source = "http://www.eclipse.org/emf/2002/GenModel";
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(0),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.get(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(1),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.set(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(2),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.isSet(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(3),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.unset(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(4),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.get(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(5),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.set(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(6),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.isSet(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(7),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.unset(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(8),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.get(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(9),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.set(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(10),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.isSet(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(11),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.unset(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(12),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getContainer(this);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(13),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getContainmentProperty(this);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(14),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getDataGraph(this);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(15),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getType(this);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(16),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getBigDecimal(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(17),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getBigInteger(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(18),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getBoolean(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(19),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getByte(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(20),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getBytes(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(21),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getChar(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(22),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getDataObject(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(23),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getDate(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(24),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getDouble(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(25),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getFloat(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(26),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getInt(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(27),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getList(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(28),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getLong(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(29),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getSequence(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(30),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getShort(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(31),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getString(this, path);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(32),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setBigDecimal(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(33),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setBigInteger(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(34),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setBoolean(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(35),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setByte(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(36),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setBytes(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(37),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setChar(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(38),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setDataObject(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(39),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setDate(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(40),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setDouble(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(41),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setFloat(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(42),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setInt(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(43),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setList(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(44),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setLong(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(45),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setShort(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(46),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setString(this, path, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(47),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getBigDecimal(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(48),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getBigInteger(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(49),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getBoolean(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(50),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getByte(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(51),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getBytes(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(52),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getChar(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(53),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getDataObject(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(54),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getDate(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(55),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getDouble(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(56),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getFloat(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(57),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getInt(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(58),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getList(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(59),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getLong(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(60),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getSequence(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(61),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getShort(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(62),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getString(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(63),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setBigDecimal(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(64),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setBigInteger(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(65),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setBoolean(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(66),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setByte(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(67),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setBytes(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(68),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setChar(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(69),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setDataObject(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(70),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setDate(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(71),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setDouble(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(72),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setFloat(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(73),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setInt(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(74),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setList(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(75),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setLong(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(76),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setShort(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(77),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setString(this, propertyIndex, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(78),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getBigDecimal(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(79),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getBigInteger(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(80),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getBoolean(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(81),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getByte(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(82),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getBytes(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(83),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getChar(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(84),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getDataObject(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(85),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getDate(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(86),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getDouble(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(87),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getFloat(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(88),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getInt(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(89),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getList(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(90),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getLong(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(91),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getSequence(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(92),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getShort(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(93),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getString(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(94),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setBigDecimal(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(95),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setBigInteger(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(96),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setBoolean(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(97),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setByte(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(98),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setBytes(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(99),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setChar(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(100),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setDataObject(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(101),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setDate(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(102),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setDouble(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(103),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setFloat(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(104),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setInt(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(105),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setList(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(106),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setLong(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(107),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setShort(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(108),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.setString(this, property, value);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(109),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.createDataObject(this, propertyName);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(110),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.createDataObject(this, propertyIndex);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(111),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.createDataObject(this, property);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(112),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.createDataObject(this, propertyName, namespaceURI, typeName);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(113),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.createDataObject(this, propertyIndex, namespaceURI, typeName);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(114),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.createDataObject(this, property, type);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(115),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.delete(this);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(116),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getSequence(this);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(117),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getInstanceProperties(this);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(118),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getProperty(this, propertyName);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(119),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getRootObject(this);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(120),
+ source,
+ new String[]
+ {
+ "body", "return <%org.apache.sdo.util.SDOUtil%>.getChangeSummary(this);"
+ });
+ addAnnotation
+ ((EOperation)dataObjectEClass.getEOperations().get(121),
+ source,
+ new String[]
+ {
+ "body", "<%org.apache.sdo.util.SDOUtil%>.detach(this);"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createExtendedMetaDataAnnotations()
+ {
+ String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
+ addAnnotation
+ (anyTypeDataObjectEClass,
+ source,
+ new String[]
+ {
+ "kind", "mixed"
+ });
+ addAnnotation
+ (simpleAnyTypeDataObjectEClass,
+ source,
+ new String[]
+ {
+ "kind", "simple"
+ });
+ }
+
+} //SDOPackageImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SimpleAnyTypeDataObjectImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SimpleAnyTypeDataObjectImpl.java
new file mode 100644
index 0000000000..33ca015ac9
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SimpleAnyTypeDataObjectImpl.java
@@ -0,0 +1,330 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+import java.util.Iterator;
+
+import org.apache.tuscany.sdo.SDOPackage;
+import org.apache.tuscany.sdo.SimpleAnyTypeDataObject;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.xml.type.SimpleAnyType;
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>EData Object Simple Any Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.impl.SimpleAnyTypeDataObjectImpl#getRawValue <em>Raw Value</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.impl.SimpleAnyTypeDataObjectImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.impl.SimpleAnyTypeDataObjectImpl#getInstanceType <em>Instance Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SimpleAnyTypeDataObjectImpl extends AnyTypeDataObjectImpl implements SimpleAnyTypeDataObject
+{
+ /**
+ * The default value of the '{@link #getRawValue() <em>Raw Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRawValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String RAW_VALUE_EDEFAULT = null;
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final Object VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getInstanceType() <em>Instance Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInstanceType()
+ * @generated
+ * @ordered
+ */
+ protected EDataType instanceType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SimpleAnyTypeDataObjectImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return SDOPackage.eINSTANCE.getSimpleAnyTypeDataObject();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getRawValue()
+ {
+ StringBuffer value = new StringBuffer();
+ for (Iterator i = getMixed().iterator(); i.hasNext(); )
+ {
+ FeatureMap.Entry entry = (FeatureMap.Entry)i.next();
+ if (entry.getEStructuralFeature() == XMLTypePackage.eINSTANCE.getXMLTypeDocumentRoot_Text())
+ {
+ value.append(entry.getValue());
+ }
+ }
+ return value.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setRawValue(String newRawValue)
+ {
+ getMixed().clear();
+ if (newRawValue != null)
+ {
+ getMixed().add(XMLTypePackage.eINSTANCE.getXMLTypeDocumentRoot_Text(), newRawValue);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Object getValue()
+ {
+ return EcoreUtil.createFromString(instanceType, getRawValue());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setValue(Object newValue)
+ {
+ setRawValue(EcoreUtil.convertToString(instanceType, newValue));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getInstanceType()
+ {
+ return instanceType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInstanceType(EDataType newInstanceType)
+ {
+ EDataType oldInstanceType = instanceType;
+ instanceType = newInstanceType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__INSTANCE_TYPE, oldInstanceType, instanceType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__MIXED:
+ if (coreType) return getMixed();
+ return ((FeatureMap.Internal)getMixed()).getWrapper();
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__ANY:
+ if (coreType) return getAny();
+ return ((FeatureMap.Internal)getAny()).getWrapper();
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE:
+ if (coreType) return getAnyAttribute();
+ return ((FeatureMap.Internal)getAnyAttribute()).getWrapper();
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__RAW_VALUE:
+ return getRawValue();
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__VALUE:
+ return getValue();
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__INSTANCE_TYPE:
+ return getInstanceType();
+ }
+ return eDynamicGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__MIXED:
+ ((FeatureMap.Internal)getMixed()).set(newValue);
+ return;
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__ANY:
+ ((FeatureMap.Internal)getAny()).set(newValue);
+ return;
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE:
+ ((FeatureMap.Internal)getAnyAttribute()).set(newValue);
+ return;
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__RAW_VALUE:
+ setRawValue((String)newValue);
+ return;
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__VALUE:
+ setValue((Object)newValue);
+ return;
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__INSTANCE_TYPE:
+ setInstanceType((EDataType)newValue);
+ return;
+ }
+ eDynamicSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__MIXED:
+ getMixed().clear();
+ return;
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__ANY:
+ getAny().clear();
+ return;
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE:
+ getAnyAttribute().clear();
+ return;
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__RAW_VALUE:
+ setRawValue(RAW_VALUE_EDEFAULT);
+ return;
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__INSTANCE_TYPE:
+ setInstanceType((EDataType)null);
+ return;
+ }
+ eDynamicUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__MIXED:
+ return mixed != null && !mixed.isEmpty();
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__ANY:
+ return !getAny().isEmpty();
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__ANY_ATTRIBUTE:
+ return anyAttribute != null && !anyAttribute.isEmpty();
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__RAW_VALUE:
+ return RAW_VALUE_EDEFAULT == null ? getRawValue() != null : !RAW_VALUE_EDEFAULT.equals(getRawValue());
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__VALUE:
+ return VALUE_EDEFAULT == null ? getValue() != null : !VALUE_EDEFAULT.equals(getValue());
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__INSTANCE_TYPE:
+ return instanceType != null;
+ }
+ return eDynamicIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass)
+ {
+ if (baseClass == SimpleAnyType.class)
+ {
+ switch (derivedFeatureID)
+ {
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__RAW_VALUE: return XMLTypePackage.SIMPLE_ANY_TYPE__RAW_VALUE;
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__VALUE: return XMLTypePackage.SIMPLE_ANY_TYPE__VALUE;
+ case SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__INSTANCE_TYPE: return XMLTypePackage.SIMPLE_ANY_TYPE__INSTANCE_TYPE;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass)
+ {
+ if (baseClass == SimpleAnyType.class)
+ {
+ switch (baseFeatureID)
+ {
+ case XMLTypePackage.SIMPLE_ANY_TYPE__RAW_VALUE: return SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__RAW_VALUE;
+ case XMLTypePackage.SIMPLE_ANY_TYPE__VALUE: return SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__VALUE;
+ case XMLTypePackage.SIMPLE_ANY_TYPE__INSTANCE_TYPE: return SDOPackage.SIMPLE_ANY_TYPE_DATA_OBJECT__INSTANCE_TYPE;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+} //EDataObjectSimpleAnyTypeImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/StoreDataObjectImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/StoreDataObjectImpl.java
new file mode 100644
index 0000000000..06bb3a6d05
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/StoreDataObjectImpl.java
@@ -0,0 +1,311 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.impl;
+
+import org.apache.tuscany.sdo.SDOPackage;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.EStoreEObjectImpl.EStoreEList;
+import org.eclipse.emf.ecore.impl.EStoreEObjectImpl.EStoreFeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMapUtil;
+
+import commonj.sdo.DataObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Store Data Object</b></em>'.
+ * @extends EStructuralFeature.Internal.DynamicValueHolder
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class StoreDataObjectImpl extends DataObjectImpl implements DataObject, EStructuralFeature.Internal.DynamicValueHolder
+{
+ //TODO consider factoring the eSettings code into a new base class that this and DynamicDataObjectImpl could extend
+
+ protected static final Object [] ENO_SETTINGS = new Object [0];
+ protected static final InternalEObject EUNINITIALIZED_CONTAINER = new DynamicDataObjectImpl();
+
+ protected Object [] eSettings;
+ protected InternalEObject.EStore eStore;
+
+ /**
+ * Creates a store-based DataObject.
+ */
+ public StoreDataObjectImpl()
+ {
+ super();
+ eContainer = EUNINITIALIZED_CONTAINER;
+ }
+
+ /**
+ * Creates a store-based DataObject.
+ */
+ public StoreDataObjectImpl(InternalEObject.EStore eStore)
+ {
+ super();
+ eSetStore(eStore);
+ eContainer = EUNINITIALIZED_CONTAINER;
+ }
+
+ /**
+ * Creates a store-based DataObject.
+ */
+ public StoreDataObjectImpl(EClass eClass)
+ {
+ super();
+ eSetClass(eClass);
+ eContainer = EUNINITIALIZED_CONTAINER;
+ }
+
+ /**
+ * Creates a store-based DataObject.
+ */
+ public StoreDataObjectImpl(EClass eClass, InternalEObject.EStore eStore)
+ {
+ super();
+ eSetClass(eClass);
+ eSetStore(eStore);
+ eContainer = EUNINITIALIZED_CONTAINER;
+ }
+
+ protected boolean eIsCaching()
+ {
+ return true;
+ }
+
+ public Object dynamicGet(int dynamicFeatureID)
+ {
+ Object result = eSettings[dynamicFeatureID];
+ if (result == null)
+ {
+ EStructuralFeature eStructuralFeature = eDynamicFeature(dynamicFeatureID);
+ if (!eStructuralFeature.isTransient())
+ {
+ if (FeatureMapUtil.isFeatureMap(eStructuralFeature))
+ {
+ eSettings[dynamicFeatureID] = result = createFeatureMap(eStructuralFeature);
+ }
+ else if (eStructuralFeature.isMany())
+ {
+ eSettings[dynamicFeatureID] = result = createList(eStructuralFeature);
+ }
+ else
+ {
+ result = eStore().get(this, eStructuralFeature, InternalEObject.EStore.NO_INDEX);
+ if (eIsCaching())
+ {
+ eSettings[dynamicFeatureID] = result;
+ }
+ }
+ }
+ }
+ return result;
+ }
+
+ public void dynamicSet(int dynamicFeatureID, Object value)
+ {
+ EStructuralFeature eStructuralFeature = eDynamicFeature(dynamicFeatureID);
+ if (eStructuralFeature.isTransient())
+ {
+ eSettings[dynamicFeatureID] = value;
+ }
+ else
+ {
+ eStore().set(this, eStructuralFeature, InternalEObject.EStore.NO_INDEX, value == NIL ? null : value);
+ if (eIsCaching())
+ {
+ eSettings[dynamicFeatureID] = value;
+ }
+ }
+ }
+
+ public void dynamicUnset(int dynamicFeatureID)
+ {
+ eStore().unset(this, eDynamicFeature(dynamicFeatureID));
+ eSettings[dynamicFeatureID] = null;
+ }
+
+ public Object eDynamicGet(int featureID, boolean resolve, boolean coreType)
+ {
+ if (featureID < eClass().getFeatureCount())
+ {
+ EStructuralFeature eFeature = eClass().getEStructuralFeature(featureID);
+ return eSettingDelegate(eFeature).dynamicGet(this, eSettings(), featureID, resolve, coreType);
+ }
+ else
+ {
+ return super.eDynamicGet(featureID, resolve, coreType);
+ }
+ }
+
+ public void eDynamicSet(int featureID, Object newValue)
+ {
+ if (featureID < eClass().getFeatureCount())
+ {
+ EStructuralFeature eFeature = eClass().getEStructuralFeature(featureID);
+ eDynamicSet(featureID, eFeature, newValue);
+ }
+ else
+ {
+ super.eDynamicSet(featureID, newValue);
+ }
+ }
+
+ public void eDynamicUnset(int featureID)
+ {
+ if (featureID < eClass().getFeatureCount())
+ {
+ EStructuralFeature eFeature = eClass().getEStructuralFeature(featureID);
+ eDynamicUnset(featureID, eFeature);
+ }
+ else
+ {
+ super.eDynamicUnset(featureID);
+ }
+ }
+
+ public boolean eDynamicIsSet(int featureID)
+ {
+ if (featureID < eClass().getFeatureCount())
+ {
+ EStructuralFeature eFeature = eClass().getEStructuralFeature(featureID);
+ return eFeature.isTransient() ?
+ eSettingDelegate(eFeature).dynamicIsSet(this, eSettings(), featureID) :
+ eStore().isSet(this, eFeature);
+ }
+ else
+ {
+ return super.eDynamicIsSet(featureID);
+ }
+ }
+
+ /*
+ public boolean eDynamicIsSet(EStructuralFeature eStructuralFeature)
+ {
+ return
+ eStructuralFeature.isTransient() ?
+ super.eDynamicIsSet(eStructuralFeature) :
+ eStore().isSet(this, eStructuralFeature);
+ }
+ */
+
+ protected EList createList(EStructuralFeature eStructuralFeature)
+ {
+ return new EStoreEList(this, eStructuralFeature, eStore());
+ }
+
+ protected FeatureMap createFeatureMap(EStructuralFeature eStructuralFeature)
+ {
+ return new EStoreFeatureMap(this, eStructuralFeature, eStore());
+ }
+
+ public EObject eContainer()
+ {
+ if (eContainer == EUNINITIALIZED_CONTAINER)
+ {
+ eInitializeContainer();
+ }
+
+ return eContainer;
+ }
+
+ public int eContainerFeatureID()
+ {
+ if (eContainer == EUNINITIALIZED_CONTAINER)
+ {
+ eInitializeContainer();
+ }
+
+ return eContainerFeatureID;
+ }
+
+ protected void eInitializeContainer()
+ {
+ eContainer = eStore().getContainer(this);
+ if (eContainer != null)
+ {
+ EStructuralFeature eContainingFeature = eStore().getContainingFeature(this);
+ if (eContainingFeature instanceof EReference)
+ {
+ EReference eContainingReference = (EReference)eContainingFeature;
+ EReference eOpposite = eContainingReference.getEOpposite();
+ if (eOpposite != null)
+ {
+ eContainerFeatureID = eClass().getFeatureID(eOpposite);
+ return;
+ }
+ }
+
+ eContainerFeatureID = EOPPOSITE_FEATURE_BASE - eContainer.eClass().getFeatureID(eContainingFeature);
+ }
+ }
+
+ public InternalEObject.EStore eStore()
+ {
+ return eStore;
+ }
+
+ public void eSetStore(InternalEObject.EStore store)
+ {
+ this.eStore = store;
+ }
+
+ protected int eStaticFeatureCount()
+ {
+ return 0;
+ }
+
+ public int eDerivedStructuralFeatureID(EStructuralFeature eStructuralFeature)
+ {
+ return eClass().getFeatureID(eStructuralFeature);
+ }
+
+ protected boolean eHasSettings()
+ {
+ return eSettings != null;
+ }
+
+ protected EStructuralFeature.Internal.DynamicValueHolder eSettings()
+ {
+ if (eSettings == null)
+ {
+ int size = eClass().getFeatureCount() - eStaticFeatureCount();
+ eSettings = size == 0 ? ENO_SETTINGS : new Object [size];
+ }
+
+ return this;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return SDOPackage.eINSTANCE.getStoreDataObject();
+ }
+
+} //StoreDataObjectImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/BaseDataGraphType.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/BaseDataGraphType.java
new file mode 100644
index 0000000000..05fe4d1a8f
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/BaseDataGraphType.java
@@ -0,0 +1,125 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model;
+
+import commonj.sdo.Sequence;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Base Data Graph Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.BaseDataGraphType#getModels <em>Models</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.BaseDataGraphType#getXsd <em>Xsd</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.BaseDataGraphType#getChangeSummary <em>Change Summary</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.BaseDataGraphType#getAnyAttribute <em>Any Attribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface BaseDataGraphType
+{
+ /**
+ * Returns the value of the '<em><b>Models</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Models</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Models</em>' containment reference.
+ * @see #setModels(ModelsType)
+ * @generated
+ */
+ ModelsType getModels();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.BaseDataGraphType#getModels <em>Models</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Models</em>' containment reference.
+ * @see #getModels()
+ * @generated
+ */
+ void setModels(ModelsType value);
+
+ /**
+ * Returns the value of the '<em><b>Xsd</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Xsd</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Xsd</em>' containment reference.
+ * @see #setXsd(XSDType)
+ * @generated
+ */
+ XSDType getXsd();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.BaseDataGraphType#getXsd <em>Xsd</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Xsd</em>' containment reference.
+ * @see #getXsd()
+ * @generated
+ */
+ void setXsd(XSDType value);
+
+ /**
+ * Returns the value of the '<em><b>Change Summary</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Change Summary</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Change Summary</em>' containment reference.
+ * @see #setChangeSummary(ChangeSummaryType)
+ * @generated
+ */
+ ChangeSummaryType getChangeSummary_();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.BaseDataGraphType#getChangeSummary <em>Change Summary</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Change Summary</em>' containment reference.
+ * @see #getChangeSummary()
+ * @generated
+ */
+ void setChangeSummary(ChangeSummaryType value);
+
+ /**
+ * Returns the value of the '<em><b>Any Attribute</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any Attribute</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any Attribute</em>' attribute list.
+ * @generated
+ */
+ Sequence getAnyAttribute();
+
+} // BaseDataGraphType
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ChangeSummaryType.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ChangeSummaryType.java
new file mode 100644
index 0000000000..dfdc1d0b97
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ChangeSummaryType.java
@@ -0,0 +1,152 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model;
+
+import commonj.sdo.Sequence;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Change Summary Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.ChangeSummaryType#getAny <em>Any</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.ChangeSummaryType#getCreate <em>Create</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.ChangeSummaryType#getDelete <em>Delete</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.ChangeSummaryType#isLogging <em>Logging</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface ChangeSummaryType
+{
+ /**
+ * Returns the value of the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any</em>' attribute list.
+ * @generated
+ */
+ Sequence getAny();
+
+ /**
+ * Returns the value of the '<em><b>Create</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Create</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Create</em>' attribute.
+ * @see #setCreate(String)
+ * @generated
+ */
+ String getCreate();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.ChangeSummaryType#getCreate <em>Create</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Create</em>' attribute.
+ * @see #getCreate()
+ * @generated
+ */
+ void setCreate(String value);
+
+ /**
+ * Returns the value of the '<em><b>Delete</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Delete</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Delete</em>' attribute.
+ * @see #setDelete(String)
+ * @generated
+ */
+ String getDelete();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.ChangeSummaryType#getDelete <em>Delete</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Delete</em>' attribute.
+ * @see #getDelete()
+ * @generated
+ */
+ void setDelete(String value);
+
+ /**
+ * Returns the value of the '<em><b>Logging</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Logging</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Logging</em>' attribute.
+ * @see #isSetLogging()
+ * @see #unsetLogging()
+ * @see #setLogging(boolean)
+ * @generated
+ */
+ boolean isLogging();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.ChangeSummaryType#isLogging <em>Logging</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Logging</em>' attribute.
+ * @see #isSetLogging()
+ * @see #unsetLogging()
+ * @see #isLogging()
+ * @generated
+ */
+ void setLogging(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.sdo.model.ChangeSummaryType#isLogging <em>Logging</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetLogging()
+ * @see #isLogging()
+ * @see #setLogging(boolean)
+ * @generated
+ */
+ void unsetLogging();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.sdo.model.ChangeSummaryType#isLogging <em>Logging</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Logging</em>' attribute is set.
+ * @see #unsetLogging()
+ * @see #isLogging()
+ * @see #setLogging(boolean)
+ * @generated
+ */
+ boolean isSetLogging();
+
+} // ChangeSummaryType
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/DataGraphType.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/DataGraphType.java
new file mode 100644
index 0000000000..353d25f6ef
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/DataGraphType.java
@@ -0,0 +1,50 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model;
+
+import commonj.sdo.Sequence;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Graph Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.DataGraphType#getAny <em>Any</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface DataGraphType extends BaseDataGraphType
+{
+ /**
+ * Returns the value of the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any</em>' attribute list.
+ * @generated
+ */
+ Sequence getAny();
+
+} // DataGraphType
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/DataObject.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/DataObject.java
new file mode 100644
index 0000000000..9d4f7b90a8
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/DataObject.java
@@ -0,0 +1,30 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @generated
+ */
+public interface DataObject
+{
+} // DataObject
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelFactory.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelFactory.java
new file mode 100644
index 0000000000..19e59bbc5f
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelFactory.java
@@ -0,0 +1,100 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public interface ModelFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ModelFactory INSTANCE = org.apache.tuscany.sdo.model.impl.ModelFactoryImpl.eINSTANCE;
+
+ /**
+ * Returns a new object of class '<em>Change Summary Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Change Summary Type</em>'.
+ * @generated
+ */
+ ChangeSummaryType createChangeSummaryType();
+
+ /**
+ * Returns a new object of class '<em>Data Graph Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Data Graph Type</em>'.
+ * @generated
+ */
+ DataGraphType createDataGraphType();
+
+ /**
+ * Returns a new object of class '<em>Models Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Models Type</em>'.
+ * @generated
+ */
+ ModelsType createModelsType();
+
+ /**
+ * Returns a new object of class '<em>Property</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Property</em>'.
+ * @generated
+ */
+ Property createProperty();
+
+ /**
+ * Returns a new object of class '<em>Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Type</em>'.
+ * @generated
+ */
+ Type createType();
+
+ /**
+ * Returns a new object of class '<em>Types</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Types</em>'.
+ * @generated
+ */
+ Types createTypes();
+
+ /**
+ * Returns a new object of class '<em>XSD Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>XSD Type</em>'.
+ * @generated
+ */
+ XSDType createXSDType();
+
+} //ModelFactory
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelPackage.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelPackage.java
new file mode 100644
index 0000000000..c33ca619cc
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelPackage.java
@@ -0,0 +1,141 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model;
+
+import org.apache.tuscany.sdo.model.impl.ModelPackageImpl;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+public interface ModelPackage extends EPackage {
+
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String eNAME = "model";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String eNS_URI = "commonj.sdo";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String eNS_PREFIX = "commonj";
+
+ public static final ModelPackage eINSTANCE = ModelPackageImpl.eINSTANCE;
+
+ public EClass getBaseDataGraphType();
+ public EReference getBaseDataGraphType_Models();
+ public EReference getBaseDataGraphType_Xsd();
+ public EReference getBaseDataGraphType_ChangeSummary();
+ public EAttribute getBaseDataGraphType_AnyAttribute();
+ public EClass getChangeSummaryType();
+ public EAttribute getChangeSummaryType_Any();
+ public EAttribute getChangeSummaryType_Create();
+ public EAttribute getChangeSummaryType_Delete();
+ public EAttribute getChangeSummaryType_Logging();
+ public EClass getDataGraphType();
+ public EAttribute getDataGraphType_Any();
+ public EClass getDataObject();
+ public EClass getDocumentRoot();
+ public EAttribute getDocumentRoot_Mixed();
+ public EReference getDocumentRoot_XMLNSPrefixMap();
+ public EReference getDocumentRoot_XSISchemaLocation();
+ public EReference getDocumentRoot_Datagraph();
+ public EReference getDocumentRoot_DataObject();
+ public EReference getDocumentRoot_Type();
+ public EReference getDocumentRoot_Types();
+ public EAttribute getDocumentRoot_Ref();
+ public EClass getModelsType();
+ public EAttribute getModelsType_Any();
+ public EClass getProperty();
+ public EAttribute getProperty_AliasName();
+ public EAttribute getProperty_Any();
+ public EAttribute getProperty_Containment();
+ public EAttribute getProperty_Default();
+ public EAttribute getProperty_Many();
+ public EAttribute getProperty_Name();
+ public EReference getProperty_Opposite();
+ public EAttribute getProperty_ReadOnly();
+ public EReference getProperty_Type();
+ public EAttribute getProperty_AnyAttribute();
+ public EClass getTextType();
+ public EAttribute getTextType_Text();
+ public EClass getType();
+ public EReference getType_BaseType();
+ public EReference getType_Property();
+ public EAttribute getType_AliasName();
+ public EAttribute getType_Any();
+ public EAttribute getType_Abstract();
+ public EAttribute getType_DataType();
+ public EAttribute getType_Name();
+ public EAttribute getType_Open();
+ public EAttribute getType_Sequenced();
+ public EAttribute getType_Uri();
+ public EAttribute getType_AnyAttribute();
+ public EClass getTypes();
+ public EReference getTypes_Type();
+ public EClass getXSDType();
+ public EAttribute getXSDType_Any();
+ public EDataType getBoolean();
+ public EDataType getBooleanObject();
+ public EDataType getByte();
+ public EDataType getByteObject();
+ public EDataType getBytes();
+ public EDataType getCharacter();
+ public EDataType getCharacterObject();
+ public EDataType getDate();
+ public EDataType getDateTime();
+ public EDataType getDay();
+ public EDataType getDecimal();
+ public EDataType getDouble();
+ public EDataType getDoubleObject();
+ public EDataType getDuration();
+ public EDataType getFloat();
+ public EDataType getFloatObject();
+ public EDataType getInt();
+ public EDataType getInteger();
+ public EDataType getIntObject();
+ public EDataType getLong();
+ public EDataType getLongObject();
+ public EDataType getMonth();
+ public EDataType getMonthDay();
+ public EDataType getObject();
+ public EDataType getShort();
+ public EDataType getShortObject();
+ public EDataType getString();
+ public EDataType getStrings();
+ public EDataType getTime();
+ public EDataType getURI();
+ public EDataType getYear();
+ public EDataType getYearMonth();
+ public EDataType getYearMonthDay();
+ public ModelFactory getModelFactory();
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelsType.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelsType.java
new file mode 100644
index 0000000000..a05545afed
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelsType.java
@@ -0,0 +1,56 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model;
+
+import commonj.sdo.Sequence;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Models Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * Expected type is emof:Package.
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.ModelsType#getAny <em>Any</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface ModelsType
+{
+ /**
+ * Returns the value of the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any</em>' attribute list.
+ * @generated
+ */
+ Sequence getAny();
+
+} // ModelsType
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Property.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Property.java
new file mode 100644
index 0000000000..a124dee1c2
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Property.java
@@ -0,0 +1,342 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model;
+
+import commonj.sdo.Sequence;
+
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.Property#getAliasName <em>Alias Name</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Property#getAny <em>Any</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Property#isContainment <em>Containment</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Property#getDefault <em>Default</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Property#isMany <em>Many</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Property#getName <em>Name</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Property#getOpposite <em>Opposite</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Property#isReadOnly <em>Read Only</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Property#getType <em>Type</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Property#getAnyAttribute <em>Any Attribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * Note: The getDefault and getOpposite methods had to be renamed to avoid
+ * conflict with the commonj.sdo.Property getDefault and getOpposite
+ * methods in classes that implement both. Eventually, the two interfaces
+ * should be brought in-line with one another -- James Snell
+ *
+ * @generated
+ */
+public interface Property
+{
+ /**
+ * Returns the value of the '<em><b>Alias Name</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Alias Name</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Alias Name</em>' attribute list.
+ * @generated
+ */
+ List getAliasName();
+
+ /**
+ * Returns the value of the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any</em>' attribute list.
+ * @generated
+ */
+ Sequence getAny();
+
+ /**
+ * Returns the value of the '<em><b>Containment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Containment</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Containment</em>' attribute.
+ * @see #isSetContainment()
+ * @see #unsetContainment()
+ * @see #setContainment(boolean)
+ * @generated
+ */
+ boolean isContainment();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.Property#isContainment <em>Containment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Containment</em>' attribute.
+ * @see #isSetContainment()
+ * @see #unsetContainment()
+ * @see #isContainment()
+ * @generated
+ */
+ void setContainment(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.sdo.model.Property#isContainment <em>Containment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetContainment()
+ * @see #isContainment()
+ * @see #setContainment(boolean)
+ * @generated
+ */
+ void unsetContainment();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.sdo.model.Property#isContainment <em>Containment</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Containment</em>' attribute is set.
+ * @see #unsetContainment()
+ * @see #isContainment()
+ * @see #setContainment(boolean)
+ * @generated
+ */
+ boolean isSetContainment();
+
+ /**
+ * Returns the value of the '<em><b>Default</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Default</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Default</em>' attribute.
+ * @see #setDefault(String)
+ * @generated NOT
+ */
+ String getDefault_();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.Property#getDefault <em>Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Default</em>' attribute.
+ * @see #getDefault()
+ * @generated
+ */
+ void setDefault_(String value);
+
+ /**
+ * Returns the value of the '<em><b>Many</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Many</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Many</em>' attribute.
+ * @see #isSetMany()
+ * @see #unsetMany()
+ * @see #setMany(boolean)
+ * @generated
+ */
+ boolean isMany();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.Property#isMany <em>Many</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Many</em>' attribute.
+ * @see #isSetMany()
+ * @see #unsetMany()
+ * @see #isMany()
+ * @generated
+ */
+ void setMany(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.sdo.model.Property#isMany <em>Many</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetMany()
+ * @see #isMany()
+ * @see #setMany(boolean)
+ * @generated
+ */
+ void unsetMany();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.sdo.model.Property#isMany <em>Many</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Many</em>' attribute is set.
+ * @see #unsetMany()
+ * @see #isMany()
+ * @see #setMany(boolean)
+ * @generated
+ */
+ boolean isSetMany();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.Property#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Opposite</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Opposite</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Opposite</em>' reference.
+ * @see #setOpposite(Property)
+ * @generated
+ */
+ Property getOpposite_();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.Property#getOpposite <em>Opposite</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Opposite</em>' reference.
+ * @see #getOpposite()
+ * @generated
+ */
+ void setOpposite_(Property value);
+
+ /**
+ * Returns the value of the '<em><b>Read Only</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Read Only</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Read Only</em>' attribute.
+ * @see #isSetReadOnly()
+ * @see #unsetReadOnly()
+ * @see #setReadOnly(boolean)
+ * @generated
+ */
+ boolean isReadOnly();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.Property#isReadOnly <em>Read Only</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Read Only</em>' attribute.
+ * @see #isSetReadOnly()
+ * @see #unsetReadOnly()
+ * @see #isReadOnly()
+ * @generated
+ */
+ void setReadOnly(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.sdo.model.Property#isReadOnly <em>Read Only</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetReadOnly()
+ * @see #isReadOnly()
+ * @see #setReadOnly(boolean)
+ * @generated
+ */
+ void unsetReadOnly();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.sdo.model.Property#isReadOnly <em>Read Only</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Read Only</em>' attribute is set.
+ * @see #unsetReadOnly()
+ * @see #isReadOnly()
+ * @see #setReadOnly(boolean)
+ * @generated
+ */
+ boolean isSetReadOnly();
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' reference.
+ * @see #setType(Type)
+ * @generated
+ */
+ Type getType_();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.Property#getType <em>Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' reference.
+ * @see #getType()
+ * @generated
+ */
+ void setType(Type value);
+
+ /**
+ * Returns the value of the '<em><b>Any Attribute</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any Attribute</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any Attribute</em>' attribute list.
+ * @generated
+ */
+ Sequence getAnyAttribute();
+
+} // Property
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/TextType.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/TextType.java
new file mode 100644
index 0000000000..e792fc7a87
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/TextType.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model;
+
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Text Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.TextType#getText <em>Text</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface TextType
+{
+ /**
+ * Returns the value of the '<em><b>Text</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Text</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Text</em>' attribute list.
+ * @generated
+ */
+ List getText();
+
+} // TextType
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Type.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Type.java
new file mode 100644
index 0000000000..3be181bd9a
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Type.java
@@ -0,0 +1,371 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model;
+
+import commonj.sdo.Sequence;
+
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.Type#getBaseType <em>Base Type</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Type#getProperty <em>Property</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Type#getAliasName <em>Alias Name</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Type#getAny <em>Any</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Type#isAbstract <em>Abstract</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Type#isDataType <em>Data Type</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Type#getName <em>Name</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Type#isOpen <em>Open</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Type#isSequenced <em>Sequenced</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Type#getUri <em>Uri</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.Type#getAnyAttribute <em>Any Attribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface Type
+{
+ /**
+ * Returns the value of the '<em><b>Base Type</b></em>' reference list.
+ * The list contents are of type {@link org.apache.tuscany.sdo.model.Type}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Type</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Type</em>' reference list.
+ * @generated
+ */
+ List getBaseType();
+
+ /**
+ * Returns the value of the '<em><b>Property</b></em>' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.sdo.model.Property}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Property</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Property</em>' containment reference list.
+ * @generated
+ */
+ List getProperty();
+
+ /**
+ * Returns the value of the '<em><b>Alias Name</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Alias Name</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Alias Name</em>' attribute list.
+ * @generated
+ */
+ List getAliasName();
+
+ /**
+ * Returns the value of the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any</em>' attribute list.
+ * @generated
+ */
+ Sequence getAny();
+
+ /**
+ * Returns the value of the '<em><b>Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Abstract</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Abstract</em>' attribute.
+ * @see #isSetAbstract()
+ * @see #unsetAbstract()
+ * @see #setAbstract(boolean)
+ * @generated
+ */
+ boolean isAbstract();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.Type#isAbstract <em>Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Abstract</em>' attribute.
+ * @see #isSetAbstract()
+ * @see #unsetAbstract()
+ * @see #isAbstract()
+ * @generated
+ */
+ void setAbstract(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.sdo.model.Type#isAbstract <em>Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetAbstract()
+ * @see #isAbstract()
+ * @see #setAbstract(boolean)
+ * @generated
+ */
+ void unsetAbstract();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.sdo.model.Type#isAbstract <em>Abstract</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Abstract</em>' attribute is set.
+ * @see #unsetAbstract()
+ * @see #isAbstract()
+ * @see #setAbstract(boolean)
+ * @generated
+ */
+ boolean isSetAbstract();
+
+ /**
+ * Returns the value of the '<em><b>Data Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data Type</em>' attribute.
+ * @see #isSetDataType()
+ * @see #unsetDataType()
+ * @see #setDataType(boolean)
+ * @generated
+ */
+ boolean isDataType();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.Type#isDataType <em>Data Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data Type</em>' attribute.
+ * @see #isSetDataType()
+ * @see #unsetDataType()
+ * @see #isDataType()
+ * @generated
+ */
+ void setDataType(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.sdo.model.Type#isDataType <em>Data Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetDataType()
+ * @see #isDataType()
+ * @see #setDataType(boolean)
+ * @generated
+ */
+ void unsetDataType();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.sdo.model.Type#isDataType <em>Data Type</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Data Type</em>' attribute is set.
+ * @see #unsetDataType()
+ * @see #isDataType()
+ * @see #setDataType(boolean)
+ * @generated
+ */
+ boolean isSetDataType();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.Type#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Open</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Open</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Open</em>' attribute.
+ * @see #isSetOpen()
+ * @see #unsetOpen()
+ * @see #setOpen(boolean)
+ * @generated
+ */
+ boolean isOpen();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.Type#isOpen <em>Open</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Open</em>' attribute.
+ * @see #isSetOpen()
+ * @see #unsetOpen()
+ * @see #isOpen()
+ * @generated
+ */
+ void setOpen(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.sdo.model.Type#isOpen <em>Open</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetOpen()
+ * @see #isOpen()
+ * @see #setOpen(boolean)
+ * @generated
+ */
+ void unsetOpen();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.sdo.model.Type#isOpen <em>Open</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Open</em>' attribute is set.
+ * @see #unsetOpen()
+ * @see #isOpen()
+ * @see #setOpen(boolean)
+ * @generated
+ */
+ boolean isSetOpen();
+
+ /**
+ * Returns the value of the '<em><b>Sequenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sequenced</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sequenced</em>' attribute.
+ * @see #isSetSequenced()
+ * @see #unsetSequenced()
+ * @see #setSequenced(boolean)
+ * @generated
+ */
+ boolean isSequenced();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.Type#isSequenced <em>Sequenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sequenced</em>' attribute.
+ * @see #isSetSequenced()
+ * @see #unsetSequenced()
+ * @see #isSequenced()
+ * @generated
+ */
+ void setSequenced(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.apache.tuscany.sdo.model.Type#isSequenced <em>Sequenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetSequenced()
+ * @see #isSequenced()
+ * @see #setSequenced(boolean)
+ * @generated
+ */
+ void unsetSequenced();
+
+ /**
+ * Returns whether the value of the '{@link org.apache.tuscany.sdo.model.Type#isSequenced <em>Sequenced</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Sequenced</em>' attribute is set.
+ * @see #unsetSequenced()
+ * @see #isSequenced()
+ * @see #setSequenced(boolean)
+ * @generated
+ */
+ boolean isSetSequenced();
+
+ /**
+ * Returns the value of the '<em><b>Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Uri</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Uri</em>' attribute.
+ * @see #setUri(String)
+ * @generated
+ */
+ String getUri();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.Type#getUri <em>Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Uri</em>' attribute.
+ * @see #getUri()
+ * @generated
+ */
+ void setUri(String value);
+
+ /**
+ * Returns the value of the '<em><b>Any Attribute</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any Attribute</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any Attribute</em>' attribute list.
+ * @generated
+ */
+ Sequence getAnyAttribute();
+
+ String getInstanceClassName();
+
+} // Type
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Types.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Types.java
new file mode 100644
index 0000000000..73188861d4
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Types.java
@@ -0,0 +1,53 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model;
+
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Types</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.Types#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface Types
+{
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.sdo.model.Type}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' containment reference list.
+ * @generated
+ */
+ List getType_();
+
+ List getTypeList();
+
+} // Types
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/XSDType.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/XSDType.java
new file mode 100644
index 0000000000..9b12301381
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/XSDType.java
@@ -0,0 +1,56 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model;
+
+import commonj.sdo.Sequence;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XSD Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * Expected type is xsd:schema.
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.XSDType#getAny <em>Any</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface XSDType
+{
+ /**
+ * Returns the value of the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Any</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Any</em>' attribute list.
+ * @generated
+ */
+ Sequence getAny();
+
+} // XSDType
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/BaseDataGraphTypeImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/BaseDataGraphTypeImpl.java
new file mode 100644
index 0000000000..31d54ca425
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/BaseDataGraphTypeImpl.java
@@ -0,0 +1,408 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.impl;
+
+import commonj.sdo.Sequence;
+
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+import org.apache.tuscany.sdo.model.BaseDataGraphType;
+import org.apache.tuscany.sdo.model.ChangeSummaryType;
+import org.apache.tuscany.sdo.model.ModelsType;
+import org.apache.tuscany.sdo.model.XSDType;
+
+import org.apache.tuscany.sdo.util.BasicSequence;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Base Data Graph Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.BaseDataGraphTypeImpl#getModels <em>Models</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.BaseDataGraphTypeImpl#getXsd <em>Xsd</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.BaseDataGraphTypeImpl#getChangeSummary <em>Change Summary</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.BaseDataGraphTypeImpl#getAnyAttribute <em>Any Attribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class BaseDataGraphTypeImpl extends DataObjectImpl implements BaseDataGraphType
+{
+ /**
+ * The cached value of the '{@link #getModels() <em>Models</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModels()
+ * @generated
+ * @ordered
+ */
+ protected ModelsType models = null;
+
+ /**
+ * The cached value of the '{@link #getXsd() <em>Xsd</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getXsd()
+ * @generated
+ * @ordered
+ */
+ protected XSDType xsd = null;
+
+ /**
+ * The cached value of the '{@link #getChangeSummary() <em>Change Summary</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChangeSummary()
+ * @generated
+ * @ordered
+ */
+ protected ChangeSummaryType changeSummary = null;
+
+ /**
+ * The cached value of the '{@link #getAnyAttribute() <em>Any Attribute</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAnyAttribute()
+ * @generated
+ * @ordered
+ */
+ protected BasicSequence anyAttribute = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BaseDataGraphTypeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return ModelPackageImpl.Literals.BASE_DATA_GRAPH_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelsType getModels()
+ {
+ return models;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetModels(ModelsType newModels, NotificationChain msgs)
+ {
+ ModelsType oldModels = models;
+ models = newModels;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackageImpl.BASE_DATA_GRAPH_TYPE__MODELS, oldModels, newModels);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModels(ModelsType newModels)
+ {
+ if (newModels != models)
+ {
+ NotificationChain msgs = null;
+ if (models != null)
+ msgs = ((InternalEObject)models).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackageImpl.BASE_DATA_GRAPH_TYPE__MODELS, null, msgs);
+ if (newModels != null)
+ msgs = ((InternalEObject)newModels).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackageImpl.BASE_DATA_GRAPH_TYPE__MODELS, null, msgs);
+ msgs = basicSetModels(newModels, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.BASE_DATA_GRAPH_TYPE__MODELS, newModels, newModels));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XSDType getXsd()
+ {
+ return xsd;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetXsd(XSDType newXsd, NotificationChain msgs)
+ {
+ XSDType oldXsd = xsd;
+ xsd = newXsd;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackageImpl.BASE_DATA_GRAPH_TYPE__XSD, oldXsd, newXsd);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setXsd(XSDType newXsd)
+ {
+ if (newXsd != xsd)
+ {
+ NotificationChain msgs = null;
+ if (xsd != null)
+ msgs = ((InternalEObject)xsd).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackageImpl.BASE_DATA_GRAPH_TYPE__XSD, null, msgs);
+ if (newXsd != null)
+ msgs = ((InternalEObject)newXsd).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackageImpl.BASE_DATA_GRAPH_TYPE__XSD, null, msgs);
+ msgs = basicSetXsd(newXsd, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.BASE_DATA_GRAPH_TYPE__XSD, newXsd, newXsd));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeSummaryType getChangeSummary_()
+ {
+ return changeSummary;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetChangeSummary(ChangeSummaryType newChangeSummary, NotificationChain msgs)
+ {
+ ChangeSummaryType oldChangeSummary = changeSummary;
+ changeSummary = newChangeSummary;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackageImpl.BASE_DATA_GRAPH_TYPE__CHANGE_SUMMARY, oldChangeSummary, newChangeSummary);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setChangeSummary(ChangeSummaryType newChangeSummary)
+ {
+ if (newChangeSummary != changeSummary)
+ {
+ NotificationChain msgs = null;
+ if (changeSummary != null)
+ msgs = ((InternalEObject)changeSummary).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackageImpl.BASE_DATA_GRAPH_TYPE__CHANGE_SUMMARY, null, msgs);
+ if (newChangeSummary != null)
+ msgs = ((InternalEObject)newChangeSummary).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackageImpl.BASE_DATA_GRAPH_TYPE__CHANGE_SUMMARY, null, msgs);
+ msgs = basicSetChangeSummary(newChangeSummary, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.BASE_DATA_GRAPH_TYPE__CHANGE_SUMMARY, newChangeSummary, newChangeSummary));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getAnyAttribute()
+ {
+ if (anyAttribute == null)
+ {
+ anyAttribute = new BasicSequence(new BasicFeatureMap(this, ModelPackageImpl.BASE_DATA_GRAPH_TYPE__ANY_ATTRIBUTE));
+ }
+ return anyAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__MODELS:
+ return basicSetModels(null, msgs);
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__XSD:
+ return basicSetXsd(null, msgs);
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__CHANGE_SUMMARY:
+ return basicSetChangeSummary(null, msgs);
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__ANY_ATTRIBUTE:
+ return ((InternalEList)((FeatureMap.Internal.Wrapper)getAnyAttribute()).featureMap()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__MODELS:
+ return getModels();
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__XSD:
+ return getXsd();
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__CHANGE_SUMMARY:
+ return getChangeSummary();
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__ANY_ATTRIBUTE:
+ if (coreType) return ((FeatureMap.Internal.Wrapper)getAnyAttribute()).featureMap();
+ return getAnyAttribute();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__MODELS:
+ setModels((ModelsType)newValue);
+ return;
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__XSD:
+ setXsd((XSDType)newValue);
+ return;
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__CHANGE_SUMMARY:
+ setChangeSummary((ChangeSummaryType)newValue);
+ return;
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__ANY_ATTRIBUTE:
+ ((FeatureMap.Internal)((FeatureMap.Internal.Wrapper)getAnyAttribute()).featureMap()).set(newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__MODELS:
+ setModels((ModelsType)null);
+ return;
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__XSD:
+ setXsd((XSDType)null);
+ return;
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__CHANGE_SUMMARY:
+ setChangeSummary((ChangeSummaryType)null);
+ return;
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__ANY_ATTRIBUTE:
+ ((FeatureMap.Internal.Wrapper)getAnyAttribute()).featureMap().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__MODELS:
+ return models != null;
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__XSD:
+ return xsd != null;
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__CHANGE_SUMMARY:
+ return changeSummary != null;
+ case ModelPackageImpl.BASE_DATA_GRAPH_TYPE__ANY_ATTRIBUTE:
+ return anyAttribute != null && !anyAttribute.featureMap().isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (anyAttribute: ");
+ result.append(anyAttribute);
+ result.append(')');
+ return result.toString();
+ }
+
+} //BaseDataGraphTypeImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ChangeSummaryTypeImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ChangeSummaryTypeImpl.java
new file mode 100644
index 0000000000..07ff624c4f
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ChangeSummaryTypeImpl.java
@@ -0,0 +1,396 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.impl;
+
+import commonj.sdo.Sequence;
+
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+import org.apache.tuscany.sdo.model.ChangeSummaryType;
+
+import org.apache.tuscany.sdo.util.BasicSequence;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Change Summary Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.ChangeSummaryTypeImpl#getAny <em>Any</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.ChangeSummaryTypeImpl#getCreate <em>Create</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.ChangeSummaryTypeImpl#getDelete <em>Delete</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.ChangeSummaryTypeImpl#isLogging <em>Logging</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ChangeSummaryTypeImpl extends DataObjectImpl implements ChangeSummaryType
+{
+ /**
+ * The cached value of the '{@link #getAny() <em>Any</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAny()
+ * @generated
+ * @ordered
+ */
+ protected BasicSequence any = null;
+
+ /**
+ * The default value of the '{@link #getCreate() <em>Create</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreate()
+ * @generated
+ * @ordered
+ */
+ protected static final String CREATE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCreate() <em>Create</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreate()
+ * @generated
+ * @ordered
+ */
+ protected String create = CREATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDelete() <em>Delete</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDelete()
+ * @generated
+ * @ordered
+ */
+ protected static final String DELETE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDelete() <em>Delete</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDelete()
+ * @generated
+ * @ordered
+ */
+ protected String delete = DELETE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isLogging() <em>Logging</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLogging()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean LOGGING_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isLogging() <em>Logging</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLogging()
+ * @generated
+ * @ordered
+ */
+ protected boolean logging = LOGGING_EDEFAULT;
+
+ /**
+ * This is true if the Logging attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean loggingESet = false;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ChangeSummaryTypeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return ModelPackageImpl.Literals.CHANGE_SUMMARY_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getAny()
+ {
+ if (any == null)
+ {
+ any = new BasicSequence(new BasicFeatureMap(this, ModelPackageImpl.CHANGE_SUMMARY_TYPE__ANY));
+ }
+ return any;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCreate()
+ {
+ return create;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCreate(String newCreate)
+ {
+ String oldCreate = create;
+ create = newCreate;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.CHANGE_SUMMARY_TYPE__CREATE, oldCreate, create));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDelete()
+ {
+ return delete;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDelete(String newDelete)
+ {
+ String oldDelete = delete;
+ delete = newDelete;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.CHANGE_SUMMARY_TYPE__DELETE, oldDelete, delete));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLogging()
+ {
+ return logging;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLogging(boolean newLogging)
+ {
+ boolean oldLogging = logging;
+ logging = newLogging;
+ boolean oldLoggingESet = loggingESet;
+ loggingESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.CHANGE_SUMMARY_TYPE__LOGGING, oldLogging, logging, !oldLoggingESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetLogging()
+ {
+ boolean oldLogging = logging;
+ boolean oldLoggingESet = loggingESet;
+ logging = LOGGING_EDEFAULT;
+ loggingESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, ModelPackageImpl.CHANGE_SUMMARY_TYPE__LOGGING, oldLogging, LOGGING_EDEFAULT, oldLoggingESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLogging()
+ {
+ return loggingESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__ANY:
+ return ((InternalEList)((FeatureMap.Internal.Wrapper)getAny()).featureMap()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__ANY:
+ if (coreType) return ((FeatureMap.Internal.Wrapper)getAny()).featureMap();
+ return getAny();
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__CREATE:
+ return getCreate();
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__DELETE:
+ return getDelete();
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__LOGGING:
+ return isLogging() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__ANY:
+ ((FeatureMap.Internal)((FeatureMap.Internal.Wrapper)getAny()).featureMap()).set(newValue);
+ return;
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__CREATE:
+ setCreate((String)newValue);
+ return;
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__DELETE:
+ setDelete((String)newValue);
+ return;
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__LOGGING:
+ setLogging(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__ANY:
+ ((FeatureMap.Internal.Wrapper)getAny()).featureMap().clear();
+ return;
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__CREATE:
+ setCreate(CREATE_EDEFAULT);
+ return;
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__DELETE:
+ setDelete(DELETE_EDEFAULT);
+ return;
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__LOGGING:
+ unsetLogging();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__ANY:
+ return any != null && !any.featureMap().isEmpty();
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__CREATE:
+ return CREATE_EDEFAULT == null ? create != null : !CREATE_EDEFAULT.equals(create);
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__DELETE:
+ return DELETE_EDEFAULT == null ? delete != null : !DELETE_EDEFAULT.equals(delete);
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE__LOGGING:
+ return isSetLogging();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (any: ");
+ result.append(any);
+ result.append(", create: ");
+ result.append(create);
+ result.append(", delete: ");
+ result.append(delete);
+ result.append(", logging: ");
+ if (loggingESet) result.append(logging); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //ChangeSummaryTypeImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/DataGraphTypeImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/DataGraphTypeImpl.java
new file mode 100644
index 0000000000..e6e8dd1f39
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/DataGraphTypeImpl.java
@@ -0,0 +1,187 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.impl;
+
+import commonj.sdo.Sequence;
+
+
+import org.apache.tuscany.sdo.model.DataGraphType;
+import org.apache.tuscany.sdo.util.BasicSequence;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Graph Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.DataGraphTypeImpl#getAny <em>Any</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataGraphTypeImpl extends BaseDataGraphTypeImpl implements DataGraphType
+{
+ /**
+ * The cached value of the '{@link #getAny() <em>Any</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAny()
+ * @generated
+ * @ordered
+ */
+ protected BasicSequence any = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DataGraphTypeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return ModelPackageImpl.Literals.DATA_GRAPH_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getAny()
+ {
+ if (any == null)
+ {
+ any = new BasicSequence(new BasicFeatureMap(this, ModelPackageImpl.DATA_GRAPH_TYPE__ANY));
+ }
+ return any;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.DATA_GRAPH_TYPE__ANY:
+ return ((InternalEList)((FeatureMap.Internal.Wrapper)getAny()).featureMap()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.DATA_GRAPH_TYPE__ANY:
+ if (coreType) return ((FeatureMap.Internal.Wrapper)getAny()).featureMap();
+ return getAny();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.DATA_GRAPH_TYPE__ANY:
+ ((FeatureMap.Internal)((FeatureMap.Internal.Wrapper)getAny()).featureMap()).set(newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.DATA_GRAPH_TYPE__ANY:
+ ((FeatureMap.Internal.Wrapper)getAny()).featureMap().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.DATA_GRAPH_TYPE__ANY:
+ return any != null && !any.featureMap().isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (any: ");
+ result.append(any);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DataGraphTypeImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/DataObjectImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/DataObjectImpl.java
new file mode 100644
index 0000000000..ed516ebd95
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/DataObjectImpl.java
@@ -0,0 +1,54 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.impl;
+
+import org.apache.tuscany.sdo.model.DataObject;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Object</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class DataObjectImpl extends org.apache.tuscany.sdo.impl.DataObjectImpl implements DataObject
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DataObjectImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return ModelPackageImpl.Literals.DATA_OBJECT;
+ }
+
+} //DataObjectImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java
new file mode 100644
index 0000000000..eaf56bd477
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java
@@ -0,0 +1,1091 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.impl;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
+import java.util.Date;
+import java.util.List;
+
+import org.apache.tuscany.sdo.model.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.ecore.xml.type.XMLTypeFactory;
+import org.eclipse.emf.ecore.xml.type.internal.XMLCalendar;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ModelFactoryImpl extends EFactoryImpl implements ModelFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final ModelFactoryImpl eINSTANCE = init();
+
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ModelFactoryImpl init()
+ {
+ try
+ {
+ ModelFactoryImpl theModelFactory = (ModelFactoryImpl)EPackage.Registry.INSTANCE.getEFactory("commonj.sdo");
+ if (theModelFactory != null)
+ {
+ return theModelFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ModelFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case ModelPackageImpl.CHANGE_SUMMARY_TYPE: return (EObject)createChangeSummaryType();
+ case ModelPackageImpl.DATA_GRAPH_TYPE: return (EObject)createDataGraphType();
+ case ModelPackageImpl.DOCUMENT_ROOT: return (EObject)createDocumentRoot();
+ case ModelPackageImpl.MODELS_TYPE: return (EObject)createModelsType();
+ case ModelPackageImpl.PROPERTY: return (EObject)createProperty();
+ case ModelPackageImpl.TYPE: return (EObject)createType();
+ case ModelPackageImpl.TYPES: return (EObject)createTypes();
+ case ModelPackageImpl.XSD_TYPE: return (EObject)createXSDType();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object createFromString(EDataType eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case ModelPackageImpl.BOOLEAN:
+ return createBooleanFromString(eDataType, initialValue);
+ case ModelPackageImpl.BOOLEAN_OBJECT:
+ return createBooleanObjectFromString(eDataType, initialValue);
+ case ModelPackageImpl.BYTE:
+ return createByteFromString(eDataType, initialValue);
+ case ModelPackageImpl.BYTE_OBJECT:
+ return createByteObjectFromString(eDataType, initialValue);
+ case ModelPackageImpl.BYTES:
+ return createBytesFromString(eDataType, initialValue);
+ case ModelPackageImpl.CHARACTER:
+ return createCharacterFromString(eDataType, initialValue);
+ case ModelPackageImpl.CHARACTER_OBJECT:
+ return createCharacterObjectFromString(eDataType, initialValue);
+ case ModelPackageImpl.DATE:
+ return createDateFromString(eDataType, initialValue);
+ case ModelPackageImpl.DATE_TIME:
+ return createDateTimeFromString(eDataType, initialValue);
+ case ModelPackageImpl.DAY:
+ return createDayFromString(eDataType, initialValue);
+ case ModelPackageImpl.DECIMAL:
+ return createDecimalFromString(eDataType, initialValue);
+ case ModelPackageImpl.DOUBLE:
+ return createDoubleFromString(eDataType, initialValue);
+ case ModelPackageImpl.DOUBLE_OBJECT:
+ return createDoubleObjectFromString(eDataType, initialValue);
+ case ModelPackageImpl.DURATION:
+ return createDurationFromString(eDataType, initialValue);
+ case ModelPackageImpl.FLOAT:
+ return createFloatFromString(eDataType, initialValue);
+ case ModelPackageImpl.FLOAT_OBJECT:
+ return createFloatObjectFromString(eDataType, initialValue);
+ case ModelPackageImpl.INT:
+ return createIntFromString(eDataType, initialValue);
+ case ModelPackageImpl.INTEGER:
+ return createIntegerFromString(eDataType, initialValue);
+ case ModelPackageImpl.INT_OBJECT:
+ return createIntObjectFromString(eDataType, initialValue);
+ case ModelPackageImpl.LONG:
+ return createLongFromString(eDataType, initialValue);
+ case ModelPackageImpl.LONG_OBJECT:
+ return createLongObjectFromString(eDataType, initialValue);
+ case ModelPackageImpl.MONTH:
+ return createMonthFromString(eDataType, initialValue);
+ case ModelPackageImpl.MONTH_DAY:
+ return createMonthDayFromString(eDataType, initialValue);
+ case ModelPackageImpl.OBJECT:
+ return createObjectFromString(eDataType, initialValue);
+ case ModelPackageImpl.SHORT:
+ return createShortFromString(eDataType, initialValue);
+ case ModelPackageImpl.SHORT_OBJECT:
+ return createShortObjectFromString(eDataType, initialValue);
+ case ModelPackageImpl.STRING:
+ return createStringFromString(eDataType, initialValue);
+ case ModelPackageImpl.STRINGS:
+ return createStringsFromString(eDataType, initialValue);
+ case ModelPackageImpl.TIME:
+ return createTimeFromString(eDataType, initialValue);
+ case ModelPackageImpl.URI:
+ return createURIFromString(eDataType, initialValue);
+ case ModelPackageImpl.YEAR:
+ return createYearFromString(eDataType, initialValue);
+ case ModelPackageImpl.YEAR_MONTH:
+ return createYearMonthFromString(eDataType, initialValue);
+ case ModelPackageImpl.YEAR_MONTH_DAY:
+ return createYearMonthDayFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertToString(EDataType eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case ModelPackageImpl.BOOLEAN:
+ return convertBooleanToString(eDataType, instanceValue);
+ case ModelPackageImpl.BOOLEAN_OBJECT:
+ return convertBooleanObjectToString(eDataType, instanceValue);
+ case ModelPackageImpl.BYTE:
+ return convertByteToString(eDataType, instanceValue);
+ case ModelPackageImpl.BYTE_OBJECT:
+ return convertByteObjectToString(eDataType, instanceValue);
+ case ModelPackageImpl.BYTES:
+ return convertBytesToString(eDataType, instanceValue);
+ case ModelPackageImpl.CHARACTER:
+ return convertCharacterToString(eDataType, instanceValue);
+ case ModelPackageImpl.CHARACTER_OBJECT:
+ return convertCharacterObjectToString(eDataType, instanceValue);
+ case ModelPackageImpl.DATE:
+ return convertDateToString(eDataType, instanceValue);
+ case ModelPackageImpl.DATE_TIME:
+ return convertDateTimeToString(eDataType, instanceValue);
+ case ModelPackageImpl.DAY:
+ return convertDayToString(eDataType, instanceValue);
+ case ModelPackageImpl.DECIMAL:
+ return convertDecimalToString(eDataType, instanceValue);
+ case ModelPackageImpl.DOUBLE:
+ return convertDoubleToString(eDataType, instanceValue);
+ case ModelPackageImpl.DOUBLE_OBJECT:
+ return convertDoubleObjectToString(eDataType, instanceValue);
+ case ModelPackageImpl.DURATION:
+ return convertDurationToString(eDataType, instanceValue);
+ case ModelPackageImpl.FLOAT:
+ return convertFloatToString(eDataType, instanceValue);
+ case ModelPackageImpl.FLOAT_OBJECT:
+ return convertFloatObjectToString(eDataType, instanceValue);
+ case ModelPackageImpl.INT:
+ return convertIntToString(eDataType, instanceValue);
+ case ModelPackageImpl.INTEGER:
+ return convertIntegerToString(eDataType, instanceValue);
+ case ModelPackageImpl.INT_OBJECT:
+ return convertIntObjectToString(eDataType, instanceValue);
+ case ModelPackageImpl.LONG:
+ return convertLongToString(eDataType, instanceValue);
+ case ModelPackageImpl.LONG_OBJECT:
+ return convertLongObjectToString(eDataType, instanceValue);
+ case ModelPackageImpl.MONTH:
+ return convertMonthToString(eDataType, instanceValue);
+ case ModelPackageImpl.MONTH_DAY:
+ return convertMonthDayToString(eDataType, instanceValue);
+ case ModelPackageImpl.OBJECT:
+ return convertObjectToString(eDataType, instanceValue);
+ case ModelPackageImpl.SHORT:
+ return convertShortToString(eDataType, instanceValue);
+ case ModelPackageImpl.SHORT_OBJECT:
+ return convertShortObjectToString(eDataType, instanceValue);
+ case ModelPackageImpl.STRING:
+ return convertStringToString(eDataType, instanceValue);
+ case ModelPackageImpl.STRINGS:
+ return convertStringsToString(eDataType, instanceValue);
+ case ModelPackageImpl.TIME:
+ return convertTimeToString(eDataType, instanceValue);
+ case ModelPackageImpl.URI:
+ return convertURIToString(eDataType, instanceValue);
+ case ModelPackageImpl.YEAR:
+ return convertYearToString(eDataType, instanceValue);
+ case ModelPackageImpl.YEAR_MONTH:
+ return convertYearMonthToString(eDataType, instanceValue);
+ case ModelPackageImpl.YEAR_MONTH_DAY:
+ return convertYearMonthDayToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeSummaryType createChangeSummaryType()
+ {
+ ChangeSummaryTypeImpl changeSummaryType = new ChangeSummaryTypeImpl();
+ return changeSummaryType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataGraphType createDataGraphType()
+ {
+ DataGraphTypeImpl dataGraphType = new DataGraphTypeImpl();
+ return dataGraphType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject createDocumentRoot()
+ {
+ EObject documentRoot = super.create(ModelPackageImpl.Literals.DOCUMENT_ROOT);
+ return documentRoot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelsType createModelsType()
+ {
+ ModelsTypeImpl modelsType = new ModelsTypeImpl();
+ return modelsType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createProperty()
+ {
+ PropertyImpl property = new PropertyImpl();
+ return property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type createType()
+ {
+ TypeImpl type = new TypeImpl();
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Types createTypes()
+ {
+ TypesImpl types = new TypesImpl();
+ return types;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XSDType createXSDType()
+ {
+ XSDTypeImpl xsdType = new XSDTypeImpl();
+ return xsdType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Boolean createBooleanFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createBooleanObject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertBooleanToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertBooleanObject((Boolean)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Boolean createBooleanObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return (Boolean)createBooleanFromString(ModelPackageImpl.Literals.BOOLEAN, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertBooleanObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return convertBooleanToString(ModelPackageImpl.Literals.BOOLEAN, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Byte createByteFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createByteObject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertByteToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertByteObject((Byte)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Byte createByteObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return (Byte)createByteFromString(ModelPackageImpl.Literals.BYTE, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertByteObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return convertByteToString(ModelPackageImpl.Literals.BYTE, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public byte[] createBytesFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createBase64Binary(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertBytesToString(EDataType eDataType, Object instanceValue)
+ {
+ if (instanceValue instanceof byte[]) {
+ return XMLTypeFactory.eINSTANCE.convertBase64Binary((byte[])instanceValue);
+ } else {
+ return XMLTypeFactory.eINSTANCE.convertBase64Binary(instanceValue.toString().getBytes());
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Character createCharacterFromString(EDataType eDataType, String initialValue)
+ {
+ return (initialValue == null && initialValue.length() > 0)
+ ? null : (new Character(collapseWhiteSpace(initialValue).charAt(0)));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertCharacterToString(EDataType eDataType, Object instanceValue)
+ {
+ return String.valueOf(((Character)instanceValue).charValue());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Character createCharacterObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return (Character)createCharacterFromString(ModelPackageImpl.Literals.CHARACTER, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertCharacterObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return convertCharacterToString(ModelPackageImpl.Literals.CHARACTER, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Date createDateFromString(EDataType eDataType, String initialValue)
+ {
+ XMLCalendar cal = (XMLCalendar) XMLTypeFactory.eINSTANCE.createDate(initialValue);
+ return (cal != null) ? cal.getDate() : null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertDateToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertDate(instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createDateTimeFromString(EDataType eDataType, String initialValue)
+ {
+ Object obj = XMLTypeFactory.eINSTANCE.createDateTime(initialValue);
+ return (obj != null) ? obj.toString() : null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertDateTimeToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertDateTime(instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createDayFromString(EDataType eDataType, String initialValue)
+ {
+ Object obj = XMLTypeFactory.eINSTANCE.createGDay(initialValue);
+ return (obj != null) ? obj.toString() : null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertDayToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertGDay(instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public BigDecimal createDecimalFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createDecimal(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertDecimalToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertDecimal((BigDecimal)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Double createDoubleFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createDoubleObject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertDoubleToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertDoubleObject((Double)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Double createDoubleObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return (Double)createDoubleFromString(ModelPackageImpl.Literals.DOUBLE, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertDoubleObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return convertDoubleToString(ModelPackageImpl.Literals.DOUBLE, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createDurationFromString(EDataType eDataType, String initialValue)
+ {
+ Object obj = XMLTypeFactory.eINSTANCE.createDuration(initialValue);
+ return (obj != null) ? obj.toString() : null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertDurationToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertDuration(instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Float createFloatFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createFloatObject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertFloatToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertFloatObject((Float)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Float createFloatObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return (Float)createFloatFromString(ModelPackageImpl.Literals.FLOAT, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertFloatObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return convertFloatToString(ModelPackageImpl.Literals.FLOAT, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Integer createIntFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createIntObject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertIntToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertIntObject((Integer)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public BigInteger createIntegerFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createInteger(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertIntegerToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertInteger((BigInteger)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Integer createIntObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return (Integer)createIntFromString(ModelPackageImpl.Literals.INT, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertIntObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return convertIntToString(ModelPackageImpl.Literals.INT, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Long createLongFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createLongObject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertLongToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertLongObject((Long)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Long createLongObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return (Long)createLongFromString(ModelPackageImpl.Literals.LONG, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertLongObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return convertLongToString(ModelPackageImpl.Literals.LONG, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createMonthFromString(EDataType eDataType, String initialValue)
+ {
+ Object obj = XMLTypeFactory.eINSTANCE.createGMonth(initialValue);
+ return (obj != null) ? obj.toString() : null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertMonthToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertGMonth(instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createMonthDayFromString(EDataType eDataType, String initialValue)
+ {
+ Object obj = XMLTypeFactory.eINSTANCE.createGMonthDay(initialValue);
+ return (obj != null) ? obj.toString() : null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertMonthDayToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertGMonthDay(instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Object createObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return initialValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return (instanceValue != null) ? instanceValue.toString() : null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Short createShortFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createShortObject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertShortToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertShortObject((Short)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Short createShortObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return (Short)createShortFromString(ModelPackageImpl.Literals.SHORT, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertShortObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return convertShortToString(ModelPackageImpl.Literals.SHORT, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createStringFromString(EDataType eDataType, String initialValue)
+ {
+ return initialValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertStringToString(EDataType eDataType, Object instanceValue)
+ {
+ return (instanceValue != null) ? instanceValue.toString() : null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public List createStringsFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createENTITIES(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertStringsToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertENTITIES((List)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createTimeFromString(EDataType eDataType, String initialValue)
+ {
+ Object obj = XMLTypeFactory.eINSTANCE.createTime(initialValue);
+ return (obj != null) ? obj.toString() : null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertTimeToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertTime(instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createURIFromString(EDataType eDataType, String initialValue)
+ {
+ return initialValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertURIToString(EDataType eDataType, Object instanceValue)
+ {
+ return (instanceValue != null) ? instanceValue.toString() : null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createYearFromString(EDataType eDataType, String initialValue)
+ {
+ Object obj = XMLTypeFactory.eINSTANCE.createGYear(initialValue);
+ return (obj != null) ? obj.toString() : null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertYearToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertGYear(instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createYearMonthFromString(EDataType eDataType, String initialValue)
+ {
+ Object obj = XMLTypeFactory.eINSTANCE.createGYearMonth(initialValue);
+ return (obj != null) ? obj.toString() : null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertYearMonthToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertGYearMonth(instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createYearMonthDayFromString(EDataType eDataType, String initialValue)
+ {
+ Object obj = XMLTypeFactory.eINSTANCE.createDate(initialValue);
+ return (obj != null) ? obj.toString() : null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertYearMonthDayToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertDate(instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelPackageImpl getModelPackageImpl()
+ {
+ return (ModelPackageImpl)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static ModelPackageImpl getPackage()
+ {
+ return ModelPackageImpl.eINSTANCE;
+ }
+
+ // Following methods are temporary ... for interop with new factory codegen pattern
+ //
+ public static final String NAMESPACE_URI = ModelPackageImpl.eNS_URI;
+ public commonj.sdo.Type getBoolean() { return (commonj.sdo.Type)getModelPackageImpl().getBoolean(); }
+ public commonj.sdo.Type getBooleanObject() { return (commonj.sdo.Type)getModelPackageImpl().getBooleanObject(); }
+ public commonj.sdo.Type getByte() { return (commonj.sdo.Type)getModelPackageImpl().getByte(); }
+ public commonj.sdo.Type getByteObject() { return (commonj.sdo.Type)getModelPackageImpl().getByteObject(); }
+ public commonj.sdo.Type getBytes() { return (commonj.sdo.Type)getModelPackageImpl().getBytes(); }
+ public commonj.sdo.Type getCharacter() { return (commonj.sdo.Type)getModelPackageImpl().getCharacter(); }
+ public commonj.sdo.Type getCharacterObject() { return (commonj.sdo.Type)getModelPackageImpl().getCharacterObject(); }
+ public commonj.sdo.Type getDate() { return (commonj.sdo.Type)getModelPackageImpl().getDate(); }
+ public commonj.sdo.Type getDateTime() { return (commonj.sdo.Type)getModelPackageImpl().getDateTime(); }
+ public commonj.sdo.Type getDay() { return (commonj.sdo.Type)getModelPackageImpl().getDay(); }
+ public commonj.sdo.Type getDecimal() { return (commonj.sdo.Type)getModelPackageImpl().getDecimal(); }
+ public commonj.sdo.Type getDouble() { return (commonj.sdo.Type)getModelPackageImpl().getDouble(); }
+ public commonj.sdo.Type getDoubleObject() { return (commonj.sdo.Type)getModelPackageImpl().getDoubleObject(); }
+ public commonj.sdo.Type getDuration() { return (commonj.sdo.Type)getModelPackageImpl().getDuration(); }
+ public commonj.sdo.Type getFloat() { return (commonj.sdo.Type)getModelPackageImpl().getFloat(); }
+ public commonj.sdo.Type getFloatObject() { return (commonj.sdo.Type)getModelPackageImpl().getFloatObject(); }
+ public commonj.sdo.Type getInt() { return (commonj.sdo.Type)getModelPackageImpl().getInt(); }
+ public commonj.sdo.Type getInteger() { return (commonj.sdo.Type)getModelPackageImpl().getInteger(); }
+ public commonj.sdo.Type getIntObject() { return (commonj.sdo.Type)getModelPackageImpl().getIntObject(); }
+ public commonj.sdo.Type getLong() { return (commonj.sdo.Type)getModelPackageImpl().getLong(); }
+ public commonj.sdo.Type getLongObject() { return (commonj.sdo.Type)getModelPackageImpl().getLongObject(); }
+ public commonj.sdo.Type getMonth() { return (commonj.sdo.Type)getModelPackageImpl().getMonth(); }
+ public commonj.sdo.Type getMonthDay() { return (commonj.sdo.Type)getModelPackageImpl().getMonthDay(); }
+ public commonj.sdo.Type getObject() { return (commonj.sdo.Type)getModelPackageImpl().getObject(); }
+ public commonj.sdo.Type getShort() { return (commonj.sdo.Type)getModelPackageImpl().getShort(); }
+ public commonj.sdo.Type getShortObject() { return (commonj.sdo.Type)getModelPackageImpl().getShortObject(); }
+ public commonj.sdo.Type getString() { return (commonj.sdo.Type)getModelPackageImpl().getString(); }
+ public commonj.sdo.Type getStrings() { return (commonj.sdo.Type)getModelPackageImpl().getStrings(); }
+ public commonj.sdo.Type getTime() { return (commonj.sdo.Type)getModelPackageImpl().getTime(); }
+ public commonj.sdo.Type getURI() { return (commonj.sdo.Type)getModelPackageImpl().getURI(); }
+ public commonj.sdo.Type getYear() { return (commonj.sdo.Type)getModelPackageImpl().getYear(); }
+ public commonj.sdo.Type getYearMonth() { return (commonj.sdo.Type)getModelPackageImpl().getYearMonth(); }
+ public commonj.sdo.Type getYearMonthDay() { return (commonj.sdo.Type)getModelPackageImpl().getYearMonthDay(); }
+
+} //ModelFactoryImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelPackageImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelPackageImpl.java
new file mode 100644
index 0000000000..86604e91f6
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelPackageImpl.java
@@ -0,0 +1,4331 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.impl;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
+import java.util.Date;
+import java.util.List;
+
+import org.apache.tuscany.sdo.SDOPackage;
+import org.apache.tuscany.sdo.model.BaseDataGraphType;
+import org.apache.tuscany.sdo.model.ChangeSummaryType;
+import org.apache.tuscany.sdo.model.DataGraphType;
+import org.apache.tuscany.sdo.model.DataObject;
+import org.apache.tuscany.sdo.model.ModelFactory;
+import org.apache.tuscany.sdo.model.ModelPackage;
+import org.apache.tuscany.sdo.model.ModelsType;
+import org.apache.tuscany.sdo.model.Property;
+import org.apache.tuscany.sdo.model.TextType;
+import org.apache.tuscany.sdo.model.Type;
+import org.apache.tuscany.sdo.model.Types;
+import org.apache.tuscany.sdo.model.XSDType;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EFactory;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.ModelFactory
+ * @generated
+ */
+public class ModelPackageImpl extends EPackageImpl implements ModelPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String eNAME = "model";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String eNS_URI = "commonj.sdo";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public static final String eNS_PREFIX = "sdo"; //FB why was this generated = "commonj" ?
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final ModelPackageImpl eINSTANCE = org.apache.tuscany.sdo.model.impl.ModelPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.model.impl.BaseDataGraphTypeImpl <em>Base Data Graph Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.BaseDataGraphTypeImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getBaseDataGraphType()
+ * @generated
+ */
+ public static final int BASE_DATA_GRAPH_TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Models</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int BASE_DATA_GRAPH_TYPE__MODELS = 0;
+
+ /**
+ * The feature id for the '<em><b>Xsd</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int BASE_DATA_GRAPH_TYPE__XSD = 1;
+
+ /**
+ * The feature id for the '<em><b>Change Summary</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int BASE_DATA_GRAPH_TYPE__CHANGE_SUMMARY = 2;
+
+ /**
+ * The feature id for the '<em><b>Any Attribute</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int BASE_DATA_GRAPH_TYPE__ANY_ATTRIBUTE = 3;
+
+ /**
+ * The number of structural features of the '<em>Base Data Graph Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int BASE_DATA_GRAPH_TYPE_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.model.impl.ChangeSummaryTypeImpl <em>Change Summary Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ChangeSummaryTypeImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getChangeSummaryType()
+ * @generated
+ */
+ public static final int CHANGE_SUMMARY_TYPE = 1;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int CHANGE_SUMMARY_TYPE__ANY = 0;
+
+ /**
+ * The feature id for the '<em><b>Create</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int CHANGE_SUMMARY_TYPE__CREATE = 1;
+
+ /**
+ * The feature id for the '<em><b>Delete</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int CHANGE_SUMMARY_TYPE__DELETE = 2;
+
+ /**
+ * The feature id for the '<em><b>Logging</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int CHANGE_SUMMARY_TYPE__LOGGING = 3;
+
+ /**
+ * The number of structural features of the '<em>Change Summary Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int CHANGE_SUMMARY_TYPE_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.model.impl.DataGraphTypeImpl <em>Data Graph Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.DataGraphTypeImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDataGraphType()
+ * @generated
+ */
+ public static final int DATA_GRAPH_TYPE = 2;
+
+ /**
+ * The feature id for the '<em><b>Models</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DATA_GRAPH_TYPE__MODELS = BASE_DATA_GRAPH_TYPE__MODELS;
+
+ /**
+ * The feature id for the '<em><b>Xsd</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DATA_GRAPH_TYPE__XSD = BASE_DATA_GRAPH_TYPE__XSD;
+
+ /**
+ * The feature id for the '<em><b>Change Summary</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DATA_GRAPH_TYPE__CHANGE_SUMMARY = BASE_DATA_GRAPH_TYPE__CHANGE_SUMMARY;
+
+ /**
+ * The feature id for the '<em><b>Any Attribute</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DATA_GRAPH_TYPE__ANY_ATTRIBUTE = BASE_DATA_GRAPH_TYPE__ANY_ATTRIBUTE;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DATA_GRAPH_TYPE__ANY = BASE_DATA_GRAPH_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Data Graph Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DATA_GRAPH_TYPE_FEATURE_COUNT = BASE_DATA_GRAPH_TYPE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.model.impl.DataObjectImpl <em>Data Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.DataObjectImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDataObject()
+ * @generated
+ */
+ public static final int DATA_OBJECT = 3;
+
+ /**
+ * The number of structural features of the '<em>Data Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DATA_OBJECT_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.model.impl.DocumentRootImpl <em>Document Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.DocumentRootImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDocumentRoot()
+ * @generated
+ */
+ public static final int DOCUMENT_ROOT = 4;
+
+ /**
+ * The feature id for the '<em><b>Mixed</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__MIXED = 0;
+
+ /**
+ * The feature id for the '<em><b>XMLNS Prefix Map</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__XMLNS_PREFIX_MAP = 1;
+
+ /**
+ * The feature id for the '<em><b>XSI Schema Location</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__XSI_SCHEMA_LOCATION = 2;
+
+ /**
+ * The feature id for the '<em><b>Datagraph</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__DATAGRAPH = 3;
+
+ /**
+ * The feature id for the '<em><b>Data Object</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__DATA_OBJECT = 4;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__TYPE = 5;
+
+ /**
+ * The feature id for the '<em><b>Types</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__TYPES = 6;
+
+ /**
+ * The feature id for the '<em><b>Ref</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__REF = 7;
+
+ /**
+ * The number of structural features of the '<em>Document Root</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT_FEATURE_COUNT = 8;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.model.impl.ModelsTypeImpl <em>Models Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelsTypeImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getModelsType()
+ * @generated
+ */
+ public static final int MODELS_TYPE = 5;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int MODELS_TYPE__ANY = 0;
+
+ /**
+ * The number of structural features of the '<em>Models Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int MODELS_TYPE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.model.impl.PropertyImpl <em>Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.PropertyImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getProperty()
+ * @generated
+ */
+ public static final int PROPERTY = 6;
+
+ /**
+ * The feature id for the '<em><b>Alias Name</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int PROPERTY__ALIAS_NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int PROPERTY__ANY = 1;
+
+ /**
+ * The feature id for the '<em><b>Containment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int PROPERTY__CONTAINMENT = 2;
+
+ /**
+ * The feature id for the '<em><b>Default</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int PROPERTY__DEFAULT = 3;
+
+ /**
+ * The feature id for the '<em><b>Many</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int PROPERTY__MANY = 4;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int PROPERTY__NAME = 5;
+
+ /**
+ * The feature id for the '<em><b>Opposite</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int PROPERTY__OPPOSITE = 6;
+
+ /**
+ * The feature id for the '<em><b>Read Only</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int PROPERTY__READ_ONLY = 7;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int PROPERTY__TYPE = 8;
+
+ /**
+ * The feature id for the '<em><b>Any Attribute</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int PROPERTY__ANY_ATTRIBUTE = 9;
+
+ /**
+ * The number of structural features of the '<em>Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int PROPERTY_FEATURE_COUNT = 10;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.model.impl.TextTypeImpl <em>Text Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.TextTypeImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getTextType()
+ * @generated
+ */
+ public static final int TEXT_TYPE = 7;
+
+ /**
+ * The feature id for the '<em><b>Text</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TEXT_TYPE__TEXT = 0;
+
+ /**
+ * The number of structural features of the '<em>Text Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TEXT_TYPE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.model.impl.TypeImpl <em>Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.TypeImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getType()
+ * @generated
+ */
+ public static final int TYPE = 8;
+
+ /**
+ * The feature id for the '<em><b>Base Type</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPE__BASE_TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Property</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPE__PROPERTY = 1;
+
+ /**
+ * The feature id for the '<em><b>Alias Name</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPE__ALIAS_NAME = 2;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPE__ANY = 3;
+
+ /**
+ * The feature id for the '<em><b>Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPE__ABSTRACT = 4;
+
+ /**
+ * The feature id for the '<em><b>Data Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPE__DATA_TYPE = 5;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPE__NAME = 6;
+
+ /**
+ * The feature id for the '<em><b>Open</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPE__OPEN = 7;
+
+ /**
+ * The feature id for the '<em><b>Sequenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPE__SEQUENCED = 8;
+
+ /**
+ * The feature id for the '<em><b>Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPE__URI = 9;
+
+ /**
+ * The feature id for the '<em><b>Any Attribute</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPE__ANY_ATTRIBUTE = 10;
+
+ /**
+ * The number of structural features of the '<em>Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPE_FEATURE_COUNT = 11;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.model.impl.TypesImpl <em>Types</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.TypesImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getTypes()
+ * @generated
+ */
+ public static final int TYPES = 9;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPES__TYPE = 0;
+
+ /**
+ * The number of structural features of the '<em>Types</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPES_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.model.impl.XSDTypeImpl <em>XSD Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.XSDTypeImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getXSDType()
+ * @generated
+ */
+ public static final int XSD_TYPE = 10;
+
+ /**
+ * The feature id for the '<em><b>Any</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int XSD_TYPE__ANY = 0;
+
+ /**
+ * The number of structural features of the '<em>XSD Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int XSD_TYPE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '<em>Boolean</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getBoolean()
+ * @generated
+ */
+ public static final int BOOLEAN = 11;
+
+ /**
+ * The meta object id for the '<em>Boolean Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Boolean
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getBooleanObject()
+ * @generated
+ */
+ public static final int BOOLEAN_OBJECT = 12;
+
+ /**
+ * The meta object id for the '<em>Byte</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getByte()
+ * @generated
+ */
+ public static final int BYTE = 13;
+
+ /**
+ * The meta object id for the '<em>Byte Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Byte
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getByteObject()
+ * @generated
+ */
+ public static final int BYTE_OBJECT = 14;
+
+ /**
+ * The meta object id for the '<em>Bytes</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getBytes()
+ * @generated
+ */
+ public static final int BYTES = 15;
+
+ /**
+ * The meta object id for the '<em>Character</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getCharacter()
+ * @generated
+ */
+ public static final int CHARACTER = 16;
+
+ /**
+ * The meta object id for the '<em>Character Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Character
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getCharacterObject()
+ * @generated
+ */
+ public static final int CHARACTER_OBJECT = 17;
+
+ /**
+ * The meta object id for the '<em>Date</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.util.Date
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDate()
+ * @generated
+ */
+ public static final int DATE = 18;
+
+ /**
+ * The meta object id for the '<em>Date Time</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDateTime()
+ * @generated
+ */
+ public static final int DATE_TIME = 19;
+
+ /**
+ * The meta object id for the '<em>Day</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDay()
+ * @generated
+ */
+ public static final int DAY = 20;
+
+ /**
+ * The meta object id for the '<em>Decimal</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.math.BigDecimal
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDecimal()
+ * @generated
+ */
+ public static final int DECIMAL = 21;
+
+ /**
+ * The meta object id for the '<em>Double</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDouble()
+ * @generated
+ */
+ public static final int DOUBLE = 22;
+
+ /**
+ * The meta object id for the '<em>Double Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Double
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDoubleObject()
+ * @generated
+ */
+ public static final int DOUBLE_OBJECT = 23;
+
+ /**
+ * The meta object id for the '<em>Duration</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDuration()
+ * @generated
+ */
+ public static final int DURATION = 24;
+
+ /**
+ * The meta object id for the '<em>Float</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getFloat()
+ * @generated
+ */
+ public static final int FLOAT = 25;
+
+ /**
+ * The meta object id for the '<em>Float Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Float
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getFloatObject()
+ * @generated
+ */
+ public static final int FLOAT_OBJECT = 26;
+
+ /**
+ * The meta object id for the '<em>Int</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getInt()
+ * @generated
+ */
+ public static final int INT = 27;
+
+ /**
+ * The meta object id for the '<em>Integer</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.math.BigInteger
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getInteger()
+ * @generated
+ */
+ public static final int INTEGER = 28;
+
+ /**
+ * The meta object id for the '<em>Int Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Integer
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getIntObject()
+ * @generated
+ */
+ public static final int INT_OBJECT = 29;
+
+ /**
+ * The meta object id for the '<em>Long</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getLong()
+ * @generated
+ */
+ public static final int LONG = 30;
+
+ /**
+ * The meta object id for the '<em>Long Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Long
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getLongObject()
+ * @generated
+ */
+ public static final int LONG_OBJECT = 31;
+
+ /**
+ * The meta object id for the '<em>Month</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getMonth()
+ * @generated
+ */
+ public static final int MONTH = 32;
+
+ /**
+ * The meta object id for the '<em>Month Day</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getMonthDay()
+ * @generated
+ */
+ public static final int MONTH_DAY = 33;
+
+ /**
+ * The meta object id for the '<em>Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Object
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getObject()
+ * @generated
+ */
+ public static final int OBJECT = 34;
+
+ /**
+ * The meta object id for the '<em>Short</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getShort()
+ * @generated
+ */
+ public static final int SHORT = 35;
+
+ /**
+ * The meta object id for the '<em>Short Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Short
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getShortObject()
+ * @generated
+ */
+ public static final int SHORT_OBJECT = 36;
+
+ /**
+ * The meta object id for the '<em>String</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getString()
+ * @generated
+ */
+ public static final int STRING = 37;
+
+ /**
+ * The meta object id for the '<em>Strings</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.util.List
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getStrings()
+ * @generated
+ */
+ public static final int STRINGS = 38;
+
+ /**
+ * The meta object id for the '<em>Time</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getTime()
+ * @generated
+ */
+ public static final int TIME = 39;
+
+ /**
+ * The meta object id for the '<em>URI</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getURI()
+ * @generated
+ */
+ public static final int URI = 40;
+
+ /**
+ * The meta object id for the '<em>Year</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getYear()
+ * @generated
+ */
+ public static final int YEAR = 41;
+
+ /**
+ * The meta object id for the '<em>Year Month</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getYearMonth()
+ * @generated
+ */
+ public static final int YEAR_MONTH = 42;
+
+ /**
+ * The meta object id for the '<em>Year Month Day</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getYearMonthDay()
+ * @generated
+ */
+ public static final int YEAR_MONTH_DAY = 43;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass baseDataGraphTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass changeSummaryTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dataGraphTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dataObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass documentRootEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelsTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass propertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass textTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass typeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass typesEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass xsdTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType booleanEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType booleanObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType byteEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType byteObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType bytesEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType characterEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType characterObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType dateEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType dateTimeEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType dayEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType decimalEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType doubleEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType doubleObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType durationEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType floatEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType floatObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType intEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType integerEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType intObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType longEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType longObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType monthEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType monthDayEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType objectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType shortEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType shortObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType stringEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType stringsEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType timeEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType uriEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType yearEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType yearMonthEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType yearMonthDayEDataType = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ModelPackageImpl()
+ {
+ super(eNS_URI, ((EFactory)ModelFactory.INSTANCE));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this
+ * model, and for any others upon which it depends. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ * <p>Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ * <p>Invocation of this method will not affect any packages that have
+ * already been initialized.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ModelPackageImpl init()
+ {
+ if (isInited) return (ModelPackageImpl)EPackage.Registry.INSTANCE.getEPackage(ModelPackageImpl.eNS_URI);
+
+ // Obtain or create and register package
+ ModelPackageImpl theModelPackageImpl = (ModelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof ModelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new ModelPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ XMLTypePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theModelPackageImpl.createPackageContents();
+
+ // Initialize created meta-data
+ theModelPackageImpl.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theModelPackageImpl.freeze();
+
+ return theModelPackageImpl;
+ }
+
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.model.BaseDataGraphType <em>Base Data Graph Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Base Data Graph Type</em>'.
+ * @see org.apache.tuscany.sdo.model.BaseDataGraphType
+ * @generated
+ */
+ public EClass getBaseDataGraphType()
+ {
+ return baseDataGraphTypeEClass;
+ }
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.apache.tuscany.sdo.model.BaseDataGraphType#getModels <em>Models</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Models</em>'.
+ * @see org.apache.tuscany.sdo.model.BaseDataGraphType#getModels()
+ * @see #getBaseDataGraphType()
+ * @generated
+ */
+ public EReference getBaseDataGraphType_Models()
+ {
+ return (EReference)baseDataGraphTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.apache.tuscany.sdo.model.BaseDataGraphType#getXsd <em>Xsd</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Xsd</em>'.
+ * @see org.apache.tuscany.sdo.model.BaseDataGraphType#getXsd()
+ * @see #getBaseDataGraphType()
+ * @generated
+ */
+ public EReference getBaseDataGraphType_Xsd()
+ {
+ return (EReference)baseDataGraphTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.apache.tuscany.sdo.model.BaseDataGraphType#getChangeSummary <em>Change Summary</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Change Summary</em>'.
+ * @see org.apache.tuscany.sdo.model.BaseDataGraphType#getChangeSummary()
+ * @see #getBaseDataGraphType()
+ * @generated
+ */
+ public EReference getBaseDataGraphType_ChangeSummary()
+ {
+ return (EReference)baseDataGraphTypeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.apache.tuscany.sdo.model.BaseDataGraphType#getAnyAttribute <em>Any Attribute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any Attribute</em>'.
+ * @see org.apache.tuscany.sdo.model.BaseDataGraphType#getAnyAttribute()
+ * @see #getBaseDataGraphType()
+ * @generated
+ */
+ public EAttribute getBaseDataGraphType_AnyAttribute()
+ {
+ return (EAttribute)baseDataGraphTypeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.model.ChangeSummaryType <em>Change Summary Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Change Summary Type</em>'.
+ * @see org.apache.tuscany.sdo.model.ChangeSummaryType
+ * @generated
+ */
+ public EClass getChangeSummaryType()
+ {
+ return changeSummaryTypeEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.apache.tuscany.sdo.model.ChangeSummaryType#getAny <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any</em>'.
+ * @see org.apache.tuscany.sdo.model.ChangeSummaryType#getAny()
+ * @see #getChangeSummaryType()
+ * @generated
+ */
+ public EAttribute getChangeSummaryType_Any()
+ {
+ return (EAttribute)changeSummaryTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.ChangeSummaryType#getCreate <em>Create</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Create</em>'.
+ * @see org.apache.tuscany.sdo.model.ChangeSummaryType#getCreate()
+ * @see #getChangeSummaryType()
+ * @generated
+ */
+ public EAttribute getChangeSummaryType_Create()
+ {
+ return (EAttribute)changeSummaryTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.ChangeSummaryType#getDelete <em>Delete</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Delete</em>'.
+ * @see org.apache.tuscany.sdo.model.ChangeSummaryType#getDelete()
+ * @see #getChangeSummaryType()
+ * @generated
+ */
+ public EAttribute getChangeSummaryType_Delete()
+ {
+ return (EAttribute)changeSummaryTypeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.ChangeSummaryType#isLogging <em>Logging</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Logging</em>'.
+ * @see org.apache.tuscany.sdo.model.ChangeSummaryType#isLogging()
+ * @see #getChangeSummaryType()
+ * @generated
+ */
+ public EAttribute getChangeSummaryType_Logging()
+ {
+ return (EAttribute)changeSummaryTypeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.model.DataGraphType <em>Data Graph Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Data Graph Type</em>'.
+ * @see org.apache.tuscany.sdo.model.DataGraphType
+ * @generated
+ */
+ public EClass getDataGraphType()
+ {
+ return dataGraphTypeEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.apache.tuscany.sdo.model.DataGraphType#getAny <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any</em>'.
+ * @see org.apache.tuscany.sdo.model.DataGraphType#getAny()
+ * @see #getDataGraphType()
+ * @generated
+ */
+ public EAttribute getDataGraphType_Any()
+ {
+ return (EAttribute)dataGraphTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.model.DataObject <em>Data Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Data Object</em>'.
+ * @see org.apache.tuscany.sdo.model.DataObject
+ * @generated
+ */
+ public EClass getDataObject()
+ {
+ return dataObjectEClass;
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.ecore.EObject <em>Document Root</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Document Root</em>'.
+ * @see org.eclipse.emf.ecore.EObject
+ * @generated
+ */
+ public EClass getDocumentRoot()
+ {
+ return documentRootEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.emf.ecore.EObject#getMixed <em>Mixed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Mixed</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getMixed()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EAttribute getDocumentRoot_Mixed()
+ {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.emf.ecore.EObject#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>XMLNS Prefix Map</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getXMLNSPrefixMap()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_XMLNSPrefixMap()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.emf.ecore.EObject#getXSISchemaLocation <em>XSI Schema Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>XSI Schema Location</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getXSISchemaLocation()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_XSISchemaLocation()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.ecore.EObject#getDatagraph <em>Datagraph</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Datagraph</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getDatagraph()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_Datagraph()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.ecore.EObject#getDataObject <em>Data Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Data Object</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getDataObject()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_DataObject()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.ecore.EObject#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Type</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getType()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_Type()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.ecore.EObject#getTypes <em>Types</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Types</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getTypes()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_Types()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.ecore.EObject#getRef <em>Ref</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Ref</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getRef()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EAttribute getDocumentRoot_Ref()
+ {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.model.ModelsType <em>Models Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Models Type</em>'.
+ * @see org.apache.tuscany.sdo.model.ModelsType
+ * @generated
+ */
+ public EClass getModelsType()
+ {
+ return modelsTypeEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.apache.tuscany.sdo.model.ModelsType#getAny <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any</em>'.
+ * @see org.apache.tuscany.sdo.model.ModelsType#getAny()
+ * @see #getModelsType()
+ * @generated
+ */
+ public EAttribute getModelsType_Any()
+ {
+ return (EAttribute)modelsTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.model.Property <em>Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Property</em>'.
+ * @see org.apache.tuscany.sdo.model.Property
+ * @generated
+ */
+ public EClass getProperty()
+ {
+ return propertyEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.apache.tuscany.sdo.model.Property#getAliasName <em>Alias Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Alias Name</em>'.
+ * @see org.apache.tuscany.sdo.model.Property#getAliasName()
+ * @see #getProperty()
+ * @generated
+ */
+ public EAttribute getProperty_AliasName()
+ {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.apache.tuscany.sdo.model.Property#getAny <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any</em>'.
+ * @see org.apache.tuscany.sdo.model.Property#getAny()
+ * @see #getProperty()
+ * @generated
+ */
+ public EAttribute getProperty_Any()
+ {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.Property#isContainment <em>Containment</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Containment</em>'.
+ * @see org.apache.tuscany.sdo.model.Property#isContainment()
+ * @see #getProperty()
+ * @generated
+ */
+ public EAttribute getProperty_Containment()
+ {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.Property#getDefault <em>Default</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Default</em>'.
+ * @see org.apache.tuscany.sdo.model.Property#getDefault()
+ * @see #getProperty()
+ * @generated
+ */
+ public EAttribute getProperty_Default()
+ {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.Property#isMany <em>Many</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Many</em>'.
+ * @see org.apache.tuscany.sdo.model.Property#isMany()
+ * @see #getProperty()
+ * @generated
+ */
+ public EAttribute getProperty_Many()
+ {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.Property#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.apache.tuscany.sdo.model.Property#getName()
+ * @see #getProperty()
+ * @generated
+ */
+ public EAttribute getProperty_Name()
+ {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * Returns the meta object for the reference '{@link org.apache.tuscany.sdo.model.Property#getOpposite <em>Opposite</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Opposite</em>'.
+ * @see org.apache.tuscany.sdo.model.Property#getOpposite()
+ * @see #getProperty()
+ * @generated
+ */
+ public EReference getProperty_Opposite()
+ {
+ return (EReference)propertyEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.Property#isReadOnly <em>Read Only</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Read Only</em>'.
+ * @see org.apache.tuscany.sdo.model.Property#isReadOnly()
+ * @see #getProperty()
+ * @generated
+ */
+ public EAttribute getProperty_ReadOnly()
+ {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * Returns the meta object for the reference '{@link org.apache.tuscany.sdo.model.Property#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Type</em>'.
+ * @see org.apache.tuscany.sdo.model.Property#getType()
+ * @see #getProperty()
+ * @generated
+ */
+ public EReference getProperty_Type()
+ {
+ return (EReference)propertyEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.apache.tuscany.sdo.model.Property#getAnyAttribute <em>Any Attribute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any Attribute</em>'.
+ * @see org.apache.tuscany.sdo.model.Property#getAnyAttribute()
+ * @see #getProperty()
+ * @generated
+ */
+ public EAttribute getProperty_AnyAttribute()
+ {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.model.TextType <em>Text Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Text Type</em>'.
+ * @see org.apache.tuscany.sdo.model.TextType
+ * @generated
+ */
+ public EClass getTextType()
+ {
+ return textTypeEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.apache.tuscany.sdo.model.TextType#getText <em>Text</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Text</em>'.
+ * @see org.apache.tuscany.sdo.model.TextType#getText()
+ * @see #getTextType()
+ * @generated
+ */
+ public EAttribute getTextType_Text()
+ {
+ return (EAttribute)textTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.model.Type <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Type</em>'.
+ * @see org.apache.tuscany.sdo.model.Type
+ * @generated
+ */
+ public EClass getType()
+ {
+ return typeEClass;
+ }
+
+ /**
+ * Returns the meta object for the reference list '{@link org.apache.tuscany.sdo.model.Type#getBaseType <em>Base Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Base Type</em>'.
+ * @see org.apache.tuscany.sdo.model.Type#getBaseType()
+ * @see #getType()
+ * @generated
+ */
+ public EReference getType_BaseType()
+ {
+ return (EReference)typeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.sdo.model.Type#getProperty <em>Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Property</em>'.
+ * @see org.apache.tuscany.sdo.model.Type#getProperty()
+ * @see #getType()
+ * @generated
+ */
+ public EReference getType_Property()
+ {
+ return (EReference)typeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.apache.tuscany.sdo.model.Type#getAliasName <em>Alias Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Alias Name</em>'.
+ * @see org.apache.tuscany.sdo.model.Type#getAliasName()
+ * @see #getType()
+ * @generated
+ */
+ public EAttribute getType_AliasName()
+ {
+ return (EAttribute)typeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.apache.tuscany.sdo.model.Type#getAny <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any</em>'.
+ * @see org.apache.tuscany.sdo.model.Type#getAny()
+ * @see #getType()
+ * @generated
+ */
+ public EAttribute getType_Any()
+ {
+ return (EAttribute)typeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.Type#isAbstract <em>Abstract</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Abstract</em>'.
+ * @see org.apache.tuscany.sdo.model.Type#isAbstract()
+ * @see #getType()
+ * @generated
+ */
+ public EAttribute getType_Abstract()
+ {
+ return (EAttribute)typeEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.Type#isDataType <em>Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Data Type</em>'.
+ * @see org.apache.tuscany.sdo.model.Type#isDataType()
+ * @see #getType()
+ * @generated
+ */
+ public EAttribute getType_DataType()
+ {
+ return (EAttribute)typeEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.Type#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.apache.tuscany.sdo.model.Type#getName()
+ * @see #getType()
+ * @generated
+ */
+ public EAttribute getType_Name()
+ {
+ return (EAttribute)typeEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.Type#isOpen <em>Open</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Open</em>'.
+ * @see org.apache.tuscany.sdo.model.Type#isOpen()
+ * @see #getType()
+ * @generated
+ */
+ public EAttribute getType_Open()
+ {
+ return (EAttribute)typeEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.Type#isSequenced <em>Sequenced</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sequenced</em>'.
+ * @see org.apache.tuscany.sdo.model.Type#isSequenced()
+ * @see #getType()
+ * @generated
+ */
+ public EAttribute getType_Sequenced()
+ {
+ return (EAttribute)typeEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.Type#getUri <em>Uri</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Uri</em>'.
+ * @see org.apache.tuscany.sdo.model.Type#getUri()
+ * @see #getType()
+ * @generated
+ */
+ public EAttribute getType_Uri()
+ {
+ return (EAttribute)typeEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.apache.tuscany.sdo.model.Type#getAnyAttribute <em>Any Attribute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any Attribute</em>'.
+ * @see org.apache.tuscany.sdo.model.Type#getAnyAttribute()
+ * @see #getType()
+ * @generated
+ */
+ public EAttribute getType_AnyAttribute()
+ {
+ return (EAttribute)typeEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.model.Types <em>Types</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Types</em>'.
+ * @see org.apache.tuscany.sdo.model.Types
+ * @generated
+ */
+ public EClass getTypes()
+ {
+ return typesEClass;
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.sdo.model.Types#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Type</em>'.
+ * @see org.apache.tuscany.sdo.model.Types#getType()
+ * @see #getTypes()
+ * @generated
+ */
+ public EReference getTypes_Type()
+ {
+ return (EReference)typesEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.model.XSDType <em>XSD Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>XSD Type</em>'.
+ * @see org.apache.tuscany.sdo.model.XSDType
+ * @generated
+ */
+ public EClass getXSDType()
+ {
+ return xsdTypeEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.apache.tuscany.sdo.model.XSDType#getAny <em>Any</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Any</em>'.
+ * @see org.apache.tuscany.sdo.model.XSDType#getAny()
+ * @see #getXSDType()
+ * @generated
+ */
+ public EAttribute getXSDType_Any()
+ {
+ return (EAttribute)xsdTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for data type '<em>Boolean</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Boolean</em>'.
+ * @generated
+ */
+ public EDataType getBoolean()
+ {
+ return booleanEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Boolean <em>Boolean Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Boolean Object</em>'.
+ * @see java.lang.Boolean
+ * @generated
+ */
+ public EDataType getBooleanObject()
+ {
+ return booleanObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '<em>Byte</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Byte</em>'.
+ * @generated
+ */
+ public EDataType getByte()
+ {
+ return byteEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Byte <em>Byte Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Byte Object</em>'.
+ * @see java.lang.Byte
+ * @generated
+ */
+ public EDataType getByteObject()
+ {
+ return byteObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '<em>Bytes</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Bytes</em>'.
+ * @generated
+ */
+ public EDataType getBytes()
+ {
+ return bytesEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '<em>Character</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Character</em>'.
+ * @generated
+ */
+ public EDataType getCharacter()
+ {
+ return characterEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Character <em>Character Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Character Object</em>'.
+ * @see java.lang.Character
+ * @generated
+ */
+ public EDataType getCharacterObject()
+ {
+ return characterObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.util.Date <em>Date</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Date</em>'.
+ * @see java.util.Date
+ * @generated
+ */
+ public EDataType getDate()
+ {
+ return dateEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>Date Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Date Time</em>'.
+ * @see java.lang.String
+ * @generated
+ */
+ public EDataType getDateTime()
+ {
+ return dateTimeEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>Day</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Day</em>'.
+ * @see java.lang.String
+ * @generated
+ */
+ public EDataType getDay()
+ {
+ return dayEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.math.BigDecimal <em>Decimal</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Decimal</em>'.
+ * @see java.math.BigDecimal
+ * @generated
+ */
+ public EDataType getDecimal()
+ {
+ return decimalEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '<em>Double</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Double</em>'.
+ * @generated
+ */
+ public EDataType getDouble()
+ {
+ return doubleEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Double <em>Double Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Double Object</em>'.
+ * @see java.lang.Double
+ * @generated
+ */
+ public EDataType getDoubleObject()
+ {
+ return doubleObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>Duration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Duration</em>'.
+ * @see java.lang.String
+ * @generated
+ */
+ public EDataType getDuration()
+ {
+ return durationEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '<em>Float</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Float</em>'.
+ * @generated
+ */
+ public EDataType getFloat()
+ {
+ return floatEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Float <em>Float Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Float Object</em>'.
+ * @see java.lang.Float
+ * @generated
+ */
+ public EDataType getFloatObject()
+ {
+ return floatObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '<em>Int</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Int</em>'.
+ * @generated
+ */
+ public EDataType getInt()
+ {
+ return intEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.math.BigInteger <em>Integer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Integer</em>'.
+ * @see java.math.BigInteger
+ * @generated
+ */
+ public EDataType getInteger()
+ {
+ return integerEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Integer <em>Int Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Int Object</em>'.
+ * @see java.lang.Integer
+ * @generated
+ */
+ public EDataType getIntObject()
+ {
+ return intObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '<em>Long</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Long</em>'.
+ * @generated
+ */
+ public EDataType getLong()
+ {
+ return longEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Long <em>Long Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Long Object</em>'.
+ * @see java.lang.Long
+ * @generated
+ */
+ public EDataType getLongObject()
+ {
+ return longObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>Month</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Month</em>'.
+ * @see java.lang.String
+ * @generated
+ */
+ public EDataType getMonth()
+ {
+ return monthEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>Month Day</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Month Day</em>'.
+ * @see java.lang.String
+ * @generated
+ */
+ public EDataType getMonthDay()
+ {
+ return monthDayEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Object <em>Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Object</em>'.
+ * @see java.lang.Object
+ * @generated
+ */
+ public EDataType getObject()
+ {
+ return objectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '<em>Short</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Short</em>'.
+ * @generated
+ */
+ public EDataType getShort()
+ {
+ return shortEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Short <em>Short Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Short Object</em>'.
+ * @see java.lang.Short
+ * @generated
+ */
+ public EDataType getShortObject()
+ {
+ return shortObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>String</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>String</em>'.
+ * @see java.lang.String
+ * @generated
+ */
+ public EDataType getString()
+ {
+ return stringEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.util.List <em>Strings</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Strings</em>'.
+ * @see java.util.List
+ * @generated
+ */
+ public EDataType getStrings()
+ {
+ return stringsEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Time</em>'.
+ * @see java.lang.String
+ * @generated
+ */
+ public EDataType getTime()
+ {
+ return timeEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>URI</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>URI</em>'.
+ * @see java.lang.String
+ * @generated
+ */
+ public EDataType getURI()
+ {
+ return uriEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>Year</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Year</em>'.
+ * @see java.lang.String
+ * @generated
+ */
+ public EDataType getYear()
+ {
+ return yearEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>Year Month</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Year Month</em>'.
+ * @see java.lang.String
+ * @generated
+ */
+ public EDataType getYearMonth()
+ {
+ return yearMonthEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>Year Month Day</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Year Month Day</em>'.
+ * @see java.lang.String
+ * @generated
+ */
+ public EDataType getYearMonthDay()
+ {
+ return yearMonthDayEDataType;
+ }
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ public ModelFactory getModelFactory()
+ {
+ return (ModelFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ baseDataGraphTypeEClass = createEClass(BASE_DATA_GRAPH_TYPE);
+ createEReference(baseDataGraphTypeEClass, BASE_DATA_GRAPH_TYPE__MODELS);
+ createEReference(baseDataGraphTypeEClass, BASE_DATA_GRAPH_TYPE__XSD);
+ createEReference(baseDataGraphTypeEClass, BASE_DATA_GRAPH_TYPE__CHANGE_SUMMARY);
+ createEAttribute(baseDataGraphTypeEClass, BASE_DATA_GRAPH_TYPE__ANY_ATTRIBUTE);
+
+ changeSummaryTypeEClass = createEClass(CHANGE_SUMMARY_TYPE);
+ createEAttribute(changeSummaryTypeEClass, CHANGE_SUMMARY_TYPE__ANY);
+ createEAttribute(changeSummaryTypeEClass, CHANGE_SUMMARY_TYPE__CREATE);
+ createEAttribute(changeSummaryTypeEClass, CHANGE_SUMMARY_TYPE__DELETE);
+ createEAttribute(changeSummaryTypeEClass, CHANGE_SUMMARY_TYPE__LOGGING);
+
+ dataGraphTypeEClass = createEClass(DATA_GRAPH_TYPE);
+ createEAttribute(dataGraphTypeEClass, DATA_GRAPH_TYPE__ANY);
+
+ dataObjectEClass = createEClass(DATA_OBJECT);
+
+ documentRootEClass = createEClass(DOCUMENT_ROOT);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__MIXED);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__DATAGRAPH);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__DATA_OBJECT);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__TYPE);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__TYPES);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__REF);
+
+ modelsTypeEClass = createEClass(MODELS_TYPE);
+ createEAttribute(modelsTypeEClass, MODELS_TYPE__ANY);
+
+ propertyEClass = createEClass(PROPERTY);
+ createEAttribute(propertyEClass, PROPERTY__ALIAS_NAME);
+ createEAttribute(propertyEClass, PROPERTY__ANY);
+ createEAttribute(propertyEClass, PROPERTY__CONTAINMENT);
+ createEAttribute(propertyEClass, PROPERTY__DEFAULT);
+ createEAttribute(propertyEClass, PROPERTY__MANY);
+ createEAttribute(propertyEClass, PROPERTY__NAME);
+ createEReference(propertyEClass, PROPERTY__OPPOSITE);
+ createEAttribute(propertyEClass, PROPERTY__READ_ONLY);
+ createEReference(propertyEClass, PROPERTY__TYPE);
+ createEAttribute(propertyEClass, PROPERTY__ANY_ATTRIBUTE);
+
+ textTypeEClass = createEClass(TEXT_TYPE);
+ createEAttribute(textTypeEClass, TEXT_TYPE__TEXT);
+
+ typeEClass = createEClass(TYPE);
+ createEReference(typeEClass, TYPE__BASE_TYPE);
+ createEReference(typeEClass, TYPE__PROPERTY);
+ createEAttribute(typeEClass, TYPE__ALIAS_NAME);
+ createEAttribute(typeEClass, TYPE__ANY);
+ createEAttribute(typeEClass, TYPE__ABSTRACT);
+ createEAttribute(typeEClass, TYPE__DATA_TYPE);
+ createEAttribute(typeEClass, TYPE__NAME);
+ createEAttribute(typeEClass, TYPE__OPEN);
+ createEAttribute(typeEClass, TYPE__SEQUENCED);
+ createEAttribute(typeEClass, TYPE__URI);
+ createEAttribute(typeEClass, TYPE__ANY_ATTRIBUTE);
+
+ typesEClass = createEClass(TYPES);
+ createEReference(typesEClass, TYPES__TYPE);
+
+ xsdTypeEClass = createEClass(XSD_TYPE);
+ createEAttribute(xsdTypeEClass, XSD_TYPE__ANY);
+
+ // Create data types
+ booleanEDataType = createEDataType(BOOLEAN);
+ booleanObjectEDataType = createEDataType(BOOLEAN_OBJECT);
+ byteEDataType = createEDataType(BYTE);
+ byteObjectEDataType = createEDataType(BYTE_OBJECT);
+ bytesEDataType = createEDataType(BYTES);
+ characterEDataType = createEDataType(CHARACTER);
+ characterObjectEDataType = createEDataType(CHARACTER_OBJECT);
+ dateEDataType = createEDataType(DATE);
+ dateTimeEDataType = createEDataType(DATE_TIME);
+ dayEDataType = createEDataType(DAY);
+ decimalEDataType = createEDataType(DECIMAL);
+ doubleEDataType = createEDataType(DOUBLE);
+ doubleObjectEDataType = createEDataType(DOUBLE_OBJECT);
+ durationEDataType = createEDataType(DURATION);
+ floatEDataType = createEDataType(FLOAT);
+ floatObjectEDataType = createEDataType(FLOAT_OBJECT);
+ intEDataType = createEDataType(INT);
+ integerEDataType = createEDataType(INTEGER);
+ intObjectEDataType = createEDataType(INT_OBJECT);
+ longEDataType = createEDataType(LONG);
+ longObjectEDataType = createEDataType(LONG_OBJECT);
+ monthEDataType = createEDataType(MONTH);
+ monthDayEDataType = createEDataType(MONTH_DAY);
+ objectEDataType = createEDataType(OBJECT);
+ shortEDataType = createEDataType(SHORT);
+ shortObjectEDataType = createEDataType(SHORT_OBJECT);
+ stringEDataType = createEDataType(STRING);
+ stringsEDataType = createEDataType(STRINGS);
+ timeEDataType = createEDataType(TIME);
+ uriEDataType = createEDataType(URI);
+ yearEDataType = createEDataType(YEAR);
+ yearMonthEDataType = createEDataType(YEAR_MONTH);
+ yearMonthDayEDataType = createEDataType(YEAR_MONTH_DAY);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ XMLTypePackage theXMLTypePackage = (XMLTypePackage)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI);
+
+ // Add supertypes to classes
+ dataGraphTypeEClass.getESuperTypes().add(this.getBaseDataGraphType());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(baseDataGraphTypeEClass, BaseDataGraphType.class, "BaseDataGraphType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getBaseDataGraphType_Models(), this.getModelsType(), null, "models", null, 0, 1, BaseDataGraphType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getBaseDataGraphType_Xsd(), this.getXSDType(), null, "xsd", null, 0, 1, BaseDataGraphType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getBaseDataGraphType_ChangeSummary(), this.getChangeSummaryType(), null, "changeSummary", null, 0, 1, BaseDataGraphType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBaseDataGraphType_AnyAttribute(), ecorePackage.getEFeatureMapEntry(), "anyAttribute", null, 0, -1, BaseDataGraphType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(changeSummaryTypeEClass, ChangeSummaryType.class, "ChangeSummaryType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getChangeSummaryType_Any(), ecorePackage.getEFeatureMapEntry(), "any", null, 0, -1, ChangeSummaryType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getChangeSummaryType_Create(), theXMLTypePackage.getString(), "create", null, 0, 1, ChangeSummaryType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getChangeSummaryType_Delete(), theXMLTypePackage.getString(), "delete", null, 0, 1, ChangeSummaryType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getChangeSummaryType_Logging(), theXMLTypePackage.getBoolean(), "logging", null, 0, 1, ChangeSummaryType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(dataGraphTypeEClass, DataGraphType.class, "DataGraphType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDataGraphType_Any(), ecorePackage.getEFeatureMapEntry(), "any", null, 0, 1, DataGraphType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(dataObjectEClass, DataObject.class, "DataObject", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(documentRootEClass, null, "DocumentRoot", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDocumentRoot_Mixed(), ecorePackage.getEFeatureMapEntry(), "mixed", null, 0, -1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_XMLNSPrefixMap(), ecorePackage.getEStringToStringMapEntry(), null, "xMLNSPrefixMap", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_XSISchemaLocation(), ecorePackage.getEStringToStringMapEntry(), null, "xSISchemaLocation", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_Datagraph(), this.getDataGraphType(), null, "datagraph", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_DataObject(), ecorePackage.getEObject(), null, "dataObject", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_Type(), this.getType(), null, "type", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_Types(), this.getTypes(), null, "types", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDocumentRoot_Ref(), theXMLTypePackage.getString(), "ref", null, 0, 1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(modelsTypeEClass, ModelsType.class, "ModelsType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getModelsType_Any(), ecorePackage.getEFeatureMapEntry(), "any", null, 0, -1, ModelsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(propertyEClass, Property.class, "Property", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getProperty_AliasName(), this.getString(), "aliasName", null, 0, -1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProperty_Any(), ecorePackage.getEFeatureMapEntry(), "any", null, 0, -1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProperty_Containment(), this.getBoolean(), "containment", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProperty_Default(), this.getString(), "default", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProperty_Many(), this.getBoolean(), "many", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProperty_Name(), this.getString(), "name", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getProperty_Opposite(), this.getProperty(), null, "opposite", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProperty_ReadOnly(), this.getBoolean(), "readOnly", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getProperty_Type(), this.getType(), null, "type", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProperty_AnyAttribute(), ecorePackage.getEFeatureMapEntry(), "anyAttribute", null, 0, -1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(textTypeEClass, TextType.class, "TextType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTextType_Text(), theXMLTypePackage.getString(), "text", null, 0, -1, TextType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(typeEClass, Type.class, "Type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getType_BaseType(), this.getType(), null, "baseType", null, 0, -1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getType_Property(), this.getProperty(), null, "property", null, 0, -1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getType_AliasName(), this.getString(), "aliasName", null, 0, -1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getType_Any(), ecorePackage.getEFeatureMapEntry(), "any", null, 0, -1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getType_Abstract(), this.getBoolean(), "abstract", null, 0, 1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getType_DataType(), this.getBoolean(), "dataType", null, 0, 1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getType_Name(), theXMLTypePackage.getID(), "name", null, 0, 1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getType_Open(), this.getBoolean(), "open", null, 0, 1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getType_Sequenced(), this.getBoolean(), "sequenced", null, 0, 1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getType_Uri(), this.getURI(), "uri", null, 0, 1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getType_AnyAttribute(), ecorePackage.getEFeatureMapEntry(), "anyAttribute", null, 0, -1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(typesEClass, Types.class, "Types", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTypes_Type(), this.getType(), null, "type", null, 0, -1, Types.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(xsdTypeEClass, XSDType.class, "XSDType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getXSDType_Any(), ecorePackage.getEFeatureMapEntry(), "any", null, 0, -1, XSDType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize data types
+ initEDataType(booleanEDataType, boolean.class, "Boolean", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(booleanObjectEDataType, Boolean.class, "BooleanObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(byteEDataType, byte.class, "Byte", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(byteObjectEDataType, Byte.class, "ByteObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(bytesEDataType, byte[].class, "Bytes", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(characterEDataType, char.class, "Character", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(characterObjectEDataType, Character.class, "CharacterObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(dateEDataType, Date.class, "Date", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(dateTimeEDataType, String.class, "DateTime", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(dayEDataType, String.class, "Day", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(decimalEDataType, BigDecimal.class, "Decimal", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(doubleEDataType, double.class, "Double", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(doubleObjectEDataType, Double.class, "DoubleObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(durationEDataType, String.class, "Duration", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(floatEDataType, float.class, "Float", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(floatObjectEDataType, Float.class, "FloatObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(intEDataType, int.class, "Int", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(integerEDataType, BigInteger.class, "Integer", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(intObjectEDataType, Integer.class, "IntObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(longEDataType, long.class, "Long", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(longObjectEDataType, Long.class, "LongObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(monthEDataType, String.class, "Month", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(monthDayEDataType, String.class, "MonthDay", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(objectEDataType, Object.class, "Object", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(shortEDataType, short.class, "Short", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(shortObjectEDataType, Short.class, "ShortObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(stringEDataType, String.class, "String", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(stringsEDataType, List.class, "Strings", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(timeEDataType, String.class, "Time", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(uriEDataType, String.class, "URI", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(yearEDataType, String.class, "Year", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(yearMonthEDataType, String.class, "YearMonth", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(yearMonthDayEDataType, String.class, "YearMonthDay", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
+ createExtendedMetaDataAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createExtendedMetaDataAnnotations()
+ {
+ String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
+ addAnnotation
+ (baseDataGraphTypeEClass,
+ source,
+ new String[]
+ {
+ "name", "BaseDataGraphType",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getBaseDataGraphType_Models(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "models"
+ });
+ addAnnotation
+ (getBaseDataGraphType_Xsd(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "xsd"
+ });
+ addAnnotation
+ (getBaseDataGraphType_ChangeSummary(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "changeSummary"
+ });
+ addAnnotation
+ (getBaseDataGraphType_AnyAttribute(),
+ source,
+ new String[]
+ {
+ "kind", "attributeWildcard",
+ "wildcards", "##other",
+ "name", ":3",
+ "processing", "lax"
+ });
+ addAnnotation
+ (booleanEDataType,
+ source,
+ new String[]
+ {
+ "name", "Boolean"
+ });
+ addAnnotation
+ (booleanObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "Boolean:Object",
+ "baseType", "Boolean"
+ });
+ addAnnotation
+ (byteEDataType,
+ source,
+ new String[]
+ {
+ "name", "Byte"
+ });
+ addAnnotation
+ (byteObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "Byte:Object",
+ "baseType", "Byte"
+ });
+ addAnnotation
+ (bytesEDataType,
+ source,
+ new String[]
+ {
+ "name", "Bytes"
+ });
+ addAnnotation
+ (changeSummaryTypeEClass,
+ source,
+ new String[]
+ {
+ "name", "ChangeSummaryType",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getChangeSummaryType_Any(),
+ source,
+ new String[]
+ {
+ "kind", "elementWildcard",
+ "wildcards", "##any",
+ "name", ":0",
+ "processing", "lax"
+ });
+ addAnnotation
+ (getChangeSummaryType_Create(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "create"
+ });
+ addAnnotation
+ (getChangeSummaryType_Delete(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "delete"
+ });
+ addAnnotation
+ (getChangeSummaryType_Logging(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "logging"
+ });
+ addAnnotation
+ (characterEDataType,
+ source,
+ new String[]
+ {
+ "name", "Character"
+ });
+ addAnnotation
+ (characterObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "Character:Object",
+ "baseType", "Character"
+ });
+ addAnnotation
+ (dataGraphTypeEClass,
+ source,
+ new String[]
+ {
+ "name", "DataGraphType",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getDataGraphType_Any(),
+ source,
+ new String[]
+ {
+ "kind", "elementWildcard",
+ "wildcards", "##other",
+ "name", ":4",
+ "processing", "lax"
+ });
+ addAnnotation
+ (dataObjectEClass,
+ source,
+ new String[]
+ {
+ "name", "DataObject",
+ "kind", "empty"
+ });
+ addAnnotation
+ (dateEDataType,
+ source,
+ new String[]
+ {
+ "name", "Date"
+ });
+ addAnnotation
+ (dateTimeEDataType,
+ source,
+ new String[]
+ {
+ "name", "DateTime"
+ });
+ addAnnotation
+ (dayEDataType,
+ source,
+ new String[]
+ {
+ "name", "Day"
+ });
+ addAnnotation
+ (decimalEDataType,
+ source,
+ new String[]
+ {
+ "name", "Decimal"
+ });
+ addAnnotation
+ (documentRootEClass,
+ source,
+ new String[]
+ {
+ "name", "",
+ "kind", "mixed"
+ });
+ addAnnotation
+ (getDocumentRoot_Mixed(),
+ source,
+ new String[]
+ {
+ "kind", "elementWildcard",
+ "name", ":mixed"
+ });
+ addAnnotation
+ (getDocumentRoot_XMLNSPrefixMap(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "xmlns:prefix"
+ });
+ addAnnotation
+ (getDocumentRoot_XSISchemaLocation(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "xsi:schemaLocation"
+ });
+ addAnnotation
+ (getDocumentRoot_Datagraph(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "datagraph",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_DataObject(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "dataObject",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_Type(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "type",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_Types(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "types",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_Ref(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "ref",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (doubleEDataType,
+ source,
+ new String[]
+ {
+ "name", "Double"
+ });
+ addAnnotation
+ (doubleObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "Double:Object",
+ "baseType", "Double"
+ });
+ addAnnotation
+ (durationEDataType,
+ source,
+ new String[]
+ {
+ "name", "Duration"
+ });
+ addAnnotation
+ (floatEDataType,
+ source,
+ new String[]
+ {
+ "name", "Float"
+ });
+ addAnnotation
+ (floatObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "Float:Object",
+ "baseType", "Float"
+ });
+ addAnnotation
+ (intEDataType,
+ source,
+ new String[]
+ {
+ "name", "Int"
+ });
+ addAnnotation
+ (integerEDataType,
+ source,
+ new String[]
+ {
+ "name", "Integer"
+ });
+ addAnnotation
+ (intObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "Int:Object",
+ "baseType", "Int"
+ });
+ addAnnotation
+ (longEDataType,
+ source,
+ new String[]
+ {
+ "name", "Long"
+ });
+ addAnnotation
+ (longObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "Long:Object",
+ "baseType", "Long"
+ });
+ addAnnotation
+ (modelsTypeEClass,
+ source,
+ new String[]
+ {
+ "name", "ModelsType",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getModelsType_Any(),
+ source,
+ new String[]
+ {
+ "kind", "elementWildcard",
+ "wildcards", "##other",
+ "name", ":0",
+ "processing", "lax"
+ });
+ addAnnotation
+ (monthEDataType,
+ source,
+ new String[]
+ {
+ "name", "Month"
+ });
+ addAnnotation
+ (monthDayEDataType,
+ source,
+ new String[]
+ {
+ "name", "MonthDay"
+ });
+ addAnnotation
+ (objectEDataType,
+ source,
+ new String[]
+ {
+ "name", "Object"
+ });
+ addAnnotation
+ (propertyEClass,
+ source,
+ new String[]
+ {
+ "name", "Property",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getProperty_AliasName(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "aliasName",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getProperty_Any(),
+ source,
+ new String[]
+ {
+ "kind", "elementWildcard",
+ "wildcards", "##other",
+ "name", ":1",
+ "processing", "lax"
+ });
+ addAnnotation
+ (getProperty_Containment(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "containment"
+ });
+ addAnnotation
+ (getProperty_Default(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "default"
+ });
+ addAnnotation
+ (getProperty_Many(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "many"
+ });
+ addAnnotation
+ (getProperty_Name(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "name"
+ });
+ addAnnotation
+ (getProperty_Opposite(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "opposite"
+ });
+ addAnnotation
+ (getProperty_ReadOnly(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "readOnly"
+ });
+ addAnnotation
+ (getProperty_Type(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "type"
+ });
+ addAnnotation
+ (getProperty_AnyAttribute(),
+ source,
+ new String[]
+ {
+ "kind", "attributeWildcard",
+ "wildcards", "##any",
+ "name", ":9",
+ "processing", "lax"
+ });
+ addAnnotation
+ (shortEDataType,
+ source,
+ new String[]
+ {
+ "name", "Short"
+ });
+ addAnnotation
+ (shortObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "Short:Object",
+ "baseType", "Short"
+ });
+ addAnnotation
+ (stringEDataType,
+ source,
+ new String[]
+ {
+ "name", "String"
+ });
+ addAnnotation
+ (stringsEDataType,
+ source,
+ new String[]
+ {
+ "name", "Strings"
+ });
+ addAnnotation
+ (textTypeEClass,
+ source,
+ new String[]
+ {
+ "name", "TextType",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getTextType_Text(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "text",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (timeEDataType,
+ source,
+ new String[]
+ {
+ "name", "Time"
+ });
+ addAnnotation
+ (typeEClass,
+ source,
+ new String[]
+ {
+ "name", "Type",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getType_BaseType(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "baseType",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getType_Property(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "property",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getType_AliasName(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "aliasName",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getType_Any(),
+ source,
+ new String[]
+ {
+ "kind", "elementWildcard",
+ "wildcards", "##other",
+ "name", ":3",
+ "processing", "lax"
+ });
+ addAnnotation
+ (getType_Abstract(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "abstract"
+ });
+ addAnnotation
+ (getType_DataType(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "dataType"
+ });
+ addAnnotation
+ (getType_Name(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "name"
+ });
+ addAnnotation
+ (getType_Open(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "open"
+ });
+ addAnnotation
+ (getType_Sequenced(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "sequenced"
+ });
+ addAnnotation
+ (getType_Uri(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "uri"
+ });
+ addAnnotation
+ (getType_AnyAttribute(),
+ source,
+ new String[]
+ {
+ "kind", "attributeWildcard",
+ "wildcards", "##any",
+ "name", ":10",
+ "processing", "lax"
+ });
+ addAnnotation
+ (typesEClass,
+ source,
+ new String[]
+ {
+ "name", "Types",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getTypes_Type(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "type",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (uriEDataType,
+ source,
+ new String[]
+ {
+ "name", "URI"
+ });
+ addAnnotation
+ (xsdTypeEClass,
+ source,
+ new String[]
+ {
+ "name", "XSDType",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getXSDType_Any(),
+ source,
+ new String[]
+ {
+ "kind", "elementWildcard",
+ "wildcards", "http://www.w3.org/2001/XMLSchema",
+ "name", ":0",
+ "processing", "lax"
+ });
+ addAnnotation
+ (yearEDataType,
+ source,
+ new String[]
+ {
+ "name", "Year"
+ });
+ addAnnotation
+ (yearMonthEDataType,
+ source,
+ new String[]
+ {
+ "name", "YearMonth"
+ });
+ addAnnotation
+ (yearMonthDayEDataType,
+ source,
+ new String[]
+ {
+ "name", "YearMonthDay"
+ });
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.model.impl.BaseDataGraphTypeImpl <em>Base Data Graph Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.BaseDataGraphTypeImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getBaseDataGraphType()
+ * @generated
+ */
+ public static final EClass BASE_DATA_GRAPH_TYPE = eINSTANCE.getBaseDataGraphType();
+
+ /**
+ * The meta object literal for the '<em><b>Models</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference BASE_DATA_GRAPH_TYPE__MODELS = eINSTANCE.getBaseDataGraphType_Models();
+
+ /**
+ * The meta object literal for the '<em><b>Xsd</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference BASE_DATA_GRAPH_TYPE__XSD = eINSTANCE.getBaseDataGraphType_Xsd();
+
+ /**
+ * The meta object literal for the '<em><b>Change Summary</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference BASE_DATA_GRAPH_TYPE__CHANGE_SUMMARY = eINSTANCE.getBaseDataGraphType_ChangeSummary();
+
+ /**
+ * The meta object literal for the '<em><b>Any Attribute</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute BASE_DATA_GRAPH_TYPE__ANY_ATTRIBUTE = eINSTANCE.getBaseDataGraphType_AnyAttribute();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.model.impl.ChangeSummaryTypeImpl <em>Change Summary Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ChangeSummaryTypeImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getChangeSummaryType()
+ * @generated
+ */
+ public static final EClass CHANGE_SUMMARY_TYPE = eINSTANCE.getChangeSummaryType();
+
+ /**
+ * The meta object literal for the '<em><b>Any</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute CHANGE_SUMMARY_TYPE__ANY = eINSTANCE.getChangeSummaryType_Any();
+
+ /**
+ * The meta object literal for the '<em><b>Create</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute CHANGE_SUMMARY_TYPE__CREATE = eINSTANCE.getChangeSummaryType_Create();
+
+ /**
+ * The meta object literal for the '<em><b>Delete</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute CHANGE_SUMMARY_TYPE__DELETE = eINSTANCE.getChangeSummaryType_Delete();
+
+ /**
+ * The meta object literal for the '<em><b>Logging</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute CHANGE_SUMMARY_TYPE__LOGGING = eINSTANCE.getChangeSummaryType_Logging();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.model.impl.DataGraphTypeImpl <em>Data Graph Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.DataGraphTypeImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDataGraphType()
+ * @generated
+ */
+ public static final EClass DATA_GRAPH_TYPE = eINSTANCE.getDataGraphType();
+
+ /**
+ * The meta object literal for the '<em><b>Any</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute DATA_GRAPH_TYPE__ANY = eINSTANCE.getDataGraphType_Any();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.model.impl.DataObjectImpl <em>Data Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.DataObjectImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDataObject()
+ * @generated
+ */
+ public static final EClass DATA_OBJECT = eINSTANCE.getDataObject();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.model.impl.DocumentRootImpl <em>Document Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.DocumentRootImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDocumentRoot()
+ * @generated
+ */
+ public static final EClass DOCUMENT_ROOT = eINSTANCE.getDocumentRoot();
+
+ /**
+ * The meta object literal for the '<em><b>Mixed</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute DOCUMENT_ROOT__MIXED = eINSTANCE.getDocumentRoot_Mixed();
+
+ /**
+ * The meta object literal for the '<em><b>XMLNS Prefix Map</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__XMLNS_PREFIX_MAP = eINSTANCE.getDocumentRoot_XMLNSPrefixMap();
+
+ /**
+ * The meta object literal for the '<em><b>XSI Schema Location</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__XSI_SCHEMA_LOCATION = eINSTANCE.getDocumentRoot_XSISchemaLocation();
+
+ /**
+ * The meta object literal for the '<em><b>Datagraph</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__DATAGRAPH = eINSTANCE.getDocumentRoot_Datagraph();
+
+ /**
+ * The meta object literal for the '<em><b>Data Object</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__DATA_OBJECT = eINSTANCE.getDocumentRoot_DataObject();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__TYPE = eINSTANCE.getDocumentRoot_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Types</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__TYPES = eINSTANCE.getDocumentRoot_Types();
+
+ /**
+ * The meta object literal for the '<em><b>Ref</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute DOCUMENT_ROOT__REF = eINSTANCE.getDocumentRoot_Ref();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.model.impl.ModelsTypeImpl <em>Models Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelsTypeImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getModelsType()
+ * @generated
+ */
+ public static final EClass MODELS_TYPE = eINSTANCE.getModelsType();
+
+ /**
+ * The meta object literal for the '<em><b>Any</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute MODELS_TYPE__ANY = eINSTANCE.getModelsType_Any();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.model.impl.PropertyImpl <em>Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.PropertyImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getProperty()
+ * @generated
+ */
+ public static final EClass PROPERTY = eINSTANCE.getProperty();
+
+ /**
+ * The meta object literal for the '<em><b>Alias Name</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute PROPERTY__ALIAS_NAME = eINSTANCE.getProperty_AliasName();
+
+ /**
+ * The meta object literal for the '<em><b>Any</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute PROPERTY__ANY = eINSTANCE.getProperty_Any();
+
+ /**
+ * The meta object literal for the '<em><b>Containment</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute PROPERTY__CONTAINMENT = eINSTANCE.getProperty_Containment();
+
+ /**
+ * The meta object literal for the '<em><b>Default</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute PROPERTY__DEFAULT = eINSTANCE.getProperty_Default();
+
+ /**
+ * The meta object literal for the '<em><b>Many</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute PROPERTY__MANY = eINSTANCE.getProperty_Many();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute PROPERTY__NAME = eINSTANCE.getProperty_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Opposite</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference PROPERTY__OPPOSITE = eINSTANCE.getProperty_Opposite();
+
+ /**
+ * The meta object literal for the '<em><b>Read Only</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute PROPERTY__READ_ONLY = eINSTANCE.getProperty_ReadOnly();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference PROPERTY__TYPE = eINSTANCE.getProperty_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Any Attribute</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute PROPERTY__ANY_ATTRIBUTE = eINSTANCE.getProperty_AnyAttribute();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.model.impl.TextTypeImpl <em>Text Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.TextTypeImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getTextType()
+ * @generated
+ */
+ public static final EClass TEXT_TYPE = eINSTANCE.getTextType();
+
+ /**
+ * The meta object literal for the '<em><b>Text</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute TEXT_TYPE__TEXT = eINSTANCE.getTextType_Text();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.model.impl.TypeImpl <em>Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.TypeImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getType()
+ * @generated
+ */
+ public static final EClass TYPE = eINSTANCE.getType();
+
+ /**
+ * The meta object literal for the '<em><b>Base Type</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference TYPE__BASE_TYPE = eINSTANCE.getType_BaseType();
+
+ /**
+ * The meta object literal for the '<em><b>Property</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference TYPE__PROPERTY = eINSTANCE.getType_Property();
+
+ /**
+ * The meta object literal for the '<em><b>Alias Name</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute TYPE__ALIAS_NAME = eINSTANCE.getType_AliasName();
+
+ /**
+ * The meta object literal for the '<em><b>Any</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute TYPE__ANY = eINSTANCE.getType_Any();
+
+ /**
+ * The meta object literal for the '<em><b>Abstract</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute TYPE__ABSTRACT = eINSTANCE.getType_Abstract();
+
+ /**
+ * The meta object literal for the '<em><b>Data Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute TYPE__DATA_TYPE = eINSTANCE.getType_DataType();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute TYPE__NAME = eINSTANCE.getType_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Open</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute TYPE__OPEN = eINSTANCE.getType_Open();
+
+ /**
+ * The meta object literal for the '<em><b>Sequenced</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute TYPE__SEQUENCED = eINSTANCE.getType_Sequenced();
+
+ /**
+ * The meta object literal for the '<em><b>Uri</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute TYPE__URI = eINSTANCE.getType_Uri();
+
+ /**
+ * The meta object literal for the '<em><b>Any Attribute</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute TYPE__ANY_ATTRIBUTE = eINSTANCE.getType_AnyAttribute();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.model.impl.TypesImpl <em>Types</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.TypesImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getTypes()
+ * @generated
+ */
+ public static final EClass TYPES = eINSTANCE.getTypes();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference TYPES__TYPE = eINSTANCE.getTypes_Type();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.model.impl.XSDTypeImpl <em>XSD Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.XSDTypeImpl
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getXSDType()
+ * @generated
+ */
+ public static final EClass XSD_TYPE = eINSTANCE.getXSDType();
+
+ /**
+ * The meta object literal for the '<em><b>Any</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute XSD_TYPE__ANY = eINSTANCE.getXSDType_Any();
+
+ /**
+ * The meta object literal for the '<em>Boolean</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getBoolean()
+ * @generated
+ */
+ public static final EDataType BOOLEAN = eINSTANCE.getBoolean();
+
+ /**
+ * The meta object literal for the '<em>Boolean Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Boolean
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getBooleanObject()
+ * @generated
+ */
+ public static final EDataType BOOLEAN_OBJECT = eINSTANCE.getBooleanObject();
+
+ /**
+ * The meta object literal for the '<em>Byte</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getByte()
+ * @generated
+ */
+ public static final EDataType BYTE = eINSTANCE.getByte();
+
+ /**
+ * The meta object literal for the '<em>Byte Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Byte
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getByteObject()
+ * @generated
+ */
+ public static final EDataType BYTE_OBJECT = eINSTANCE.getByteObject();
+
+ /**
+ * The meta object literal for the '<em>Bytes</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getBytes()
+ * @generated
+ */
+ public static final EDataType BYTES = eINSTANCE.getBytes();
+
+ /**
+ * The meta object literal for the '<em>Character</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getCharacter()
+ * @generated
+ */
+ public static final EDataType CHARACTER = eINSTANCE.getCharacter();
+
+ /**
+ * The meta object literal for the '<em>Character Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Character
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getCharacterObject()
+ * @generated
+ */
+ public static final EDataType CHARACTER_OBJECT = eINSTANCE.getCharacterObject();
+
+ /**
+ * The meta object literal for the '<em>Date</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.util.Date
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDate()
+ * @generated
+ */
+ public static final EDataType DATE = eINSTANCE.getDate();
+
+ /**
+ * The meta object literal for the '<em>Date Time</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDateTime()
+ * @generated
+ */
+ public static final EDataType DATE_TIME = eINSTANCE.getDateTime();
+
+ /**
+ * The meta object literal for the '<em>Day</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDay()
+ * @generated
+ */
+ public static final EDataType DAY = eINSTANCE.getDay();
+
+ /**
+ * The meta object literal for the '<em>Decimal</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.math.BigDecimal
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDecimal()
+ * @generated
+ */
+ public static final EDataType DECIMAL = eINSTANCE.getDecimal();
+
+ /**
+ * The meta object literal for the '<em>Double</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDouble()
+ * @generated
+ */
+ public static final EDataType DOUBLE = eINSTANCE.getDouble();
+
+ /**
+ * The meta object literal for the '<em>Double Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Double
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDoubleObject()
+ * @generated
+ */
+ public static final EDataType DOUBLE_OBJECT = eINSTANCE.getDoubleObject();
+
+ /**
+ * The meta object literal for the '<em>Duration</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getDuration()
+ * @generated
+ */
+ public static final EDataType DURATION = eINSTANCE.getDuration();
+
+ /**
+ * The meta object literal for the '<em>Float</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getFloat()
+ * @generated
+ */
+ public static final EDataType FLOAT = eINSTANCE.getFloat();
+
+ /**
+ * The meta object literal for the '<em>Float Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Float
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getFloatObject()
+ * @generated
+ */
+ public static final EDataType FLOAT_OBJECT = eINSTANCE.getFloatObject();
+
+ /**
+ * The meta object literal for the '<em>Int</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getInt()
+ * @generated
+ */
+ public static final EDataType INT = eINSTANCE.getInt();
+
+ /**
+ * The meta object literal for the '<em>Integer</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.math.BigInteger
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getInteger()
+ * @generated
+ */
+ public static final EDataType INTEGER = eINSTANCE.getInteger();
+
+ /**
+ * The meta object literal for the '<em>Int Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Integer
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getIntObject()
+ * @generated
+ */
+ public static final EDataType INT_OBJECT = eINSTANCE.getIntObject();
+
+ /**
+ * The meta object literal for the '<em>Long</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getLong()
+ * @generated
+ */
+ public static final EDataType LONG = eINSTANCE.getLong();
+
+ /**
+ * The meta object literal for the '<em>Long Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Long
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getLongObject()
+ * @generated
+ */
+ public static final EDataType LONG_OBJECT = eINSTANCE.getLongObject();
+
+ /**
+ * The meta object literal for the '<em>Month</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getMonth()
+ * @generated
+ */
+ public static final EDataType MONTH = eINSTANCE.getMonth();
+
+ /**
+ * The meta object literal for the '<em>Month Day</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getMonthDay()
+ * @generated
+ */
+ public static final EDataType MONTH_DAY = eINSTANCE.getMonthDay();
+
+ /**
+ * The meta object literal for the '<em>Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Object
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getObject()
+ * @generated
+ */
+ public static final EDataType OBJECT = eINSTANCE.getObject();
+
+ /**
+ * The meta object literal for the '<em>Short</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getShort()
+ * @generated
+ */
+ public static final EDataType SHORT = eINSTANCE.getShort();
+
+ /**
+ * The meta object literal for the '<em>Short Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Short
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getShortObject()
+ * @generated
+ */
+ public static final EDataType SHORT_OBJECT = eINSTANCE.getShortObject();
+
+ /**
+ * The meta object literal for the '<em>String</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getString()
+ * @generated
+ */
+ public static final EDataType STRING = eINSTANCE.getString();
+
+ /**
+ * The meta object literal for the '<em>Strings</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.util.List
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getStrings()
+ * @generated
+ */
+ public static final EDataType STRINGS = eINSTANCE.getStrings();
+
+ /**
+ * The meta object literal for the '<em>Time</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getTime()
+ * @generated
+ */
+ public static final EDataType TIME = eINSTANCE.getTime();
+
+ /**
+ * The meta object literal for the '<em>URI</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getURI()
+ * @generated
+ */
+ public static final EDataType URI = eINSTANCE.getURI();
+
+ /**
+ * The meta object literal for the '<em>Year</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getYear()
+ * @generated
+ */
+ public static final EDataType YEAR = eINSTANCE.getYear();
+
+ /**
+ * The meta object literal for the '<em>Year Month</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getYearMonth()
+ * @generated
+ */
+ public static final EDataType YEAR_MONTH = eINSTANCE.getYearMonth();
+
+ /**
+ * The meta object literal for the '<em>Year Month Day</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.apache.tuscany.sdo.model.impl.ModelPackageImpl#getYearMonthDay()
+ * @generated
+ */
+ public static final EDataType YEAR_MONTH_DAY = eINSTANCE.getYearMonthDay();
+
+ }
+
+} //ModelPackageImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelsTypeImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelsTypeImpl.java
new file mode 100644
index 0000000000..f2873031ee
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelsTypeImpl.java
@@ -0,0 +1,189 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.impl;
+
+import commonj.sdo.Sequence;
+
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+import org.apache.tuscany.sdo.model.ModelsType;
+
+import org.apache.tuscany.sdo.util.BasicSequence;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Models Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.ModelsTypeImpl#getAny <em>Any</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModelsTypeImpl extends DataObjectImpl implements ModelsType
+{
+ /**
+ * The cached value of the '{@link #getAny() <em>Any</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAny()
+ * @generated
+ * @ordered
+ */
+ protected BasicSequence any = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelsTypeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return ModelPackageImpl.Literals.MODELS_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getAny()
+ {
+ if (any == null)
+ {
+ any = new BasicSequence(new BasicFeatureMap(this, ModelPackageImpl.MODELS_TYPE__ANY));
+ }
+ return any;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.MODELS_TYPE__ANY:
+ return ((InternalEList)((FeatureMap.Internal.Wrapper)getAny()).featureMap()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.MODELS_TYPE__ANY:
+ if (coreType) return ((FeatureMap.Internal.Wrapper)getAny()).featureMap();
+ return getAny();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.MODELS_TYPE__ANY:
+ ((FeatureMap.Internal)((FeatureMap.Internal.Wrapper)getAny()).featureMap()).set(newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.MODELS_TYPE__ANY:
+ ((FeatureMap.Internal.Wrapper)getAny()).featureMap().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.MODELS_TYPE__ANY:
+ return any != null && !any.featureMap().isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (any: ");
+ result.append(any);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ModelsTypeImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/PropertyImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/PropertyImpl.java
new file mode 100644
index 0000000000..6a4e346bb1
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/PropertyImpl.java
@@ -0,0 +1,801 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.impl;
+
+import commonj.sdo.Sequence;
+
+import java.util.Collection;
+import java.util.List;
+
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+import org.apache.tuscany.sdo.model.Property;
+import org.apache.tuscany.sdo.model.Type;
+
+import org.apache.tuscany.sdo.util.BasicSequence;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Property</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.PropertyImpl#getAliasName <em>Alias Name</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.PropertyImpl#getAny <em>Any</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.PropertyImpl#isContainment <em>Containment</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.PropertyImpl#getDefault <em>Default</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.PropertyImpl#isMany <em>Many</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.PropertyImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.PropertyImpl#getOpposite <em>Opposite</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.PropertyImpl#isReadOnly <em>Read Only</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.PropertyImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.PropertyImpl#getAnyAttribute <em>Any Attribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * Note: The getDefault and getOpposite methods had to be renamed to avoid
+ * conflict with the commonj.sdo.Property getDefault and getOpposite
+ * methods in classes that implement both. Eventually, the two interfaces
+ * should be brought in-line with one another -- James Snell
+ *
+ * @generated
+ */
+public class PropertyImpl extends DataObjectImpl implements Property
+{
+ /**
+ * The cached value of the '{@link #getAliasName() <em>Alias Name</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAliasName()
+ * @generated
+ * @ordered
+ */
+ protected EList aliasName = null;
+
+ /**
+ * The cached value of the '{@link #getAny() <em>Any</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAny()
+ * @generated
+ * @ordered
+ */
+ protected BasicSequence any = null;
+
+ /**
+ * The default value of the '{@link #isContainment() <em>Containment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isContainment()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean CONTAINMENT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isContainment() <em>Containment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isContainment()
+ * @generated
+ * @ordered
+ */
+ protected boolean containment = CONTAINMENT_EDEFAULT;
+
+ /**
+ * This is true if the Containment attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean containmentESet = false;
+
+ /**
+ * The default value of the '{@link #getDefault() <em>Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefault()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEFAULT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDefault() <em>Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefault()
+ * @generated
+ * @ordered
+ */
+ protected String default_ = DEFAULT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isMany() <em>Many</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMany()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean MANY_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isMany() <em>Many</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMany()
+ * @generated
+ * @ordered
+ */
+ protected boolean many = MANY_EDEFAULT;
+
+ /**
+ * This is true if the Many attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean manyESet = false;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getOpposite() <em>Opposite</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOpposite()
+ * @generated
+ * @ordered
+ */
+ protected Property opposite = null;
+
+ /**
+ * The default value of the '{@link #isReadOnly() <em>Read Only</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReadOnly()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean READ_ONLY_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isReadOnly() <em>Read Only</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReadOnly()
+ * @generated
+ * @ordered
+ */
+ protected boolean readOnly = READ_ONLY_EDEFAULT;
+
+ /**
+ * This is true if the Read Only attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean readOnlyESet = false;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected Type type = null;
+
+ /**
+ * The cached value of the '{@link #getAnyAttribute() <em>Any Attribute</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAnyAttribute()
+ * @generated
+ * @ordered
+ */
+ protected BasicSequence anyAttribute = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertyImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return ModelPackageImpl.Literals.PROPERTY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getAliasName()
+ {
+ if (aliasName == null)
+ {
+ aliasName = new EDataTypeEList(String.class, this, ModelPackageImpl.PROPERTY__ALIAS_NAME);
+ }
+ return aliasName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getAny()
+ {
+ if (any == null)
+ {
+ any = new BasicSequence(new BasicFeatureMap(this, ModelPackageImpl.PROPERTY__ANY));
+ }
+ return any;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isContainment()
+ {
+ return containment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setContainment(boolean newContainment)
+ {
+ boolean oldContainment = containment;
+ containment = newContainment;
+ boolean oldContainmentESet = containmentESet;
+ containmentESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.PROPERTY__CONTAINMENT, oldContainment, containment, !oldContainmentESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetContainment()
+ {
+ boolean oldContainment = containment;
+ boolean oldContainmentESet = containmentESet;
+ containment = CONTAINMENT_EDEFAULT;
+ containmentESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, ModelPackageImpl.PROPERTY__CONTAINMENT, oldContainment, CONTAINMENT_EDEFAULT, oldContainmentESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetContainment()
+ {
+ return containmentESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getDefault_()
+ {
+ return default_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDefault_(String newDefault)
+ {
+ String oldDefault = default_;
+ default_ = newDefault;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.PROPERTY__DEFAULT, oldDefault, default_));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isMany()
+ {
+ return many;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMany(boolean newMany)
+ {
+ boolean oldMany = many;
+ many = newMany;
+ boolean oldManyESet = manyESet;
+ manyESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.PROPERTY__MANY, oldMany, many, !oldManyESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetMany()
+ {
+ boolean oldMany = many;
+ boolean oldManyESet = manyESet;
+ many = MANY_EDEFAULT;
+ manyESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, ModelPackageImpl.PROPERTY__MANY, oldMany, MANY_EDEFAULT, oldManyESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMany()
+ {
+ return manyESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.PROPERTY__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Property getOpposite_()
+ {
+ if (opposite != null && ((EObject)opposite).eIsProxy())
+ {
+ InternalEObject oldOpposite = (InternalEObject)opposite;
+ opposite = (Property)eResolveProxy(oldOpposite);
+ if (opposite != oldOpposite)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ModelPackageImpl.PROPERTY__OPPOSITE, oldOpposite, opposite));
+ }
+ }
+ return opposite;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetOpposite()
+ {
+ return opposite;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setOpposite_(Property newOpposite)
+ {
+ Property oldOpposite = opposite;
+ opposite = newOpposite;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.PROPERTY__OPPOSITE, oldOpposite, opposite));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isReadOnly()
+ {
+ return readOnly;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReadOnly(boolean newReadOnly)
+ {
+ boolean oldReadOnly = readOnly;
+ readOnly = newReadOnly;
+ boolean oldReadOnlyESet = readOnlyESet;
+ readOnlyESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.PROPERTY__READ_ONLY, oldReadOnly, readOnly, !oldReadOnlyESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetReadOnly()
+ {
+ boolean oldReadOnly = readOnly;
+ boolean oldReadOnlyESet = readOnlyESet;
+ readOnly = READ_ONLY_EDEFAULT;
+ readOnlyESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, ModelPackageImpl.PROPERTY__READ_ONLY, oldReadOnly, READ_ONLY_EDEFAULT, oldReadOnlyESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetReadOnly()
+ {
+ return readOnlyESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type getType_()
+ {
+ if (type != null && ((EObject)type).eIsProxy())
+ {
+ InternalEObject oldType = (InternalEObject)type;
+ type = (Type)eResolveProxy(oldType);
+ if (type != oldType)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ModelPackageImpl.PROPERTY__TYPE, oldType, type));
+ }
+ }
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type basicGetType()
+ {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(Type newType)
+ {
+ Type oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.PROPERTY__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getAnyAttribute()
+ {
+ if (anyAttribute == null)
+ {
+ anyAttribute = new BasicSequence(new BasicFeatureMap(this, ModelPackageImpl.PROPERTY__ANY_ATTRIBUTE));
+ }
+ return anyAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.PROPERTY__ANY:
+ return ((InternalEList)((FeatureMap.Internal.Wrapper)getAny()).featureMap()).basicRemove(otherEnd, msgs);
+ case ModelPackageImpl.PROPERTY__ANY_ATTRIBUTE:
+ return ((InternalEList)((FeatureMap.Internal.Wrapper)getAnyAttribute()).featureMap()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.PROPERTY__ALIAS_NAME:
+ return getAliasName();
+ case ModelPackageImpl.PROPERTY__ANY:
+ if (coreType) return ((FeatureMap.Internal.Wrapper)getAny()).featureMap();
+ return getAny();
+ case ModelPackageImpl.PROPERTY__CONTAINMENT:
+ return isContainment() ? Boolean.TRUE : Boolean.FALSE;
+ case ModelPackageImpl.PROPERTY__DEFAULT:
+ return getDefault_();
+ case ModelPackageImpl.PROPERTY__MANY:
+ return isMany() ? Boolean.TRUE : Boolean.FALSE;
+ case ModelPackageImpl.PROPERTY__NAME:
+ return getName();
+ case ModelPackageImpl.PROPERTY__OPPOSITE:
+ if (resolve) return getOpposite_();
+ return basicGetOpposite();
+ case ModelPackageImpl.PROPERTY__READ_ONLY:
+ return isReadOnly() ? Boolean.TRUE : Boolean.FALSE;
+ case ModelPackageImpl.PROPERTY__TYPE:
+ if (resolve) return getType();
+ return basicGetType();
+ case ModelPackageImpl.PROPERTY__ANY_ATTRIBUTE:
+ if (coreType) return ((FeatureMap.Internal.Wrapper)getAnyAttribute()).featureMap();
+ return getAnyAttribute();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.PROPERTY__ALIAS_NAME:
+ getAliasName().clear();
+ getAliasName().addAll((Collection)newValue);
+ return;
+ case ModelPackageImpl.PROPERTY__ANY:
+ ((FeatureMap.Internal)((FeatureMap.Internal.Wrapper)getAny()).featureMap()).set(newValue);
+ return;
+ case ModelPackageImpl.PROPERTY__CONTAINMENT:
+ setContainment(((Boolean)newValue).booleanValue());
+ return;
+ case ModelPackageImpl.PROPERTY__DEFAULT:
+ setDefault_((String)newValue);
+ return;
+ case ModelPackageImpl.PROPERTY__MANY:
+ setMany(((Boolean)newValue).booleanValue());
+ return;
+ case ModelPackageImpl.PROPERTY__NAME:
+ setName((String)newValue);
+ return;
+ case ModelPackageImpl.PROPERTY__OPPOSITE:
+ setOpposite_((Property)newValue);
+ return;
+ case ModelPackageImpl.PROPERTY__READ_ONLY:
+ setReadOnly(((Boolean)newValue).booleanValue());
+ return;
+ case ModelPackageImpl.PROPERTY__TYPE:
+ setType((Type)newValue);
+ return;
+ case ModelPackageImpl.PROPERTY__ANY_ATTRIBUTE:
+ ((FeatureMap.Internal)((FeatureMap.Internal.Wrapper)getAnyAttribute()).featureMap()).set(newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.PROPERTY__ALIAS_NAME:
+ getAliasName().clear();
+ return;
+ case ModelPackageImpl.PROPERTY__ANY:
+ ((FeatureMap.Internal.Wrapper)getAny()).featureMap().clear();
+ return;
+ case ModelPackageImpl.PROPERTY__CONTAINMENT:
+ unsetContainment();
+ return;
+ case ModelPackageImpl.PROPERTY__DEFAULT:
+ setDefault_(DEFAULT_EDEFAULT);
+ return;
+ case ModelPackageImpl.PROPERTY__MANY:
+ unsetMany();
+ return;
+ case ModelPackageImpl.PROPERTY__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ModelPackageImpl.PROPERTY__OPPOSITE:
+ setOpposite_((Property)null);
+ return;
+ case ModelPackageImpl.PROPERTY__READ_ONLY:
+ unsetReadOnly();
+ return;
+ case ModelPackageImpl.PROPERTY__TYPE:
+ setType((Type)null);
+ return;
+ case ModelPackageImpl.PROPERTY__ANY_ATTRIBUTE:
+ ((FeatureMap.Internal.Wrapper)getAnyAttribute()).featureMap().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.PROPERTY__ALIAS_NAME:
+ return aliasName != null && !aliasName.isEmpty();
+ case ModelPackageImpl.PROPERTY__ANY:
+ return any != null && !any.featureMap().isEmpty();
+ case ModelPackageImpl.PROPERTY__CONTAINMENT:
+ return isSetContainment();
+ case ModelPackageImpl.PROPERTY__DEFAULT:
+ return DEFAULT_EDEFAULT == null ? default_ != null : !DEFAULT_EDEFAULT.equals(default_);
+ case ModelPackageImpl.PROPERTY__MANY:
+ return isSetMany();
+ case ModelPackageImpl.PROPERTY__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ModelPackageImpl.PROPERTY__OPPOSITE:
+ return opposite != null;
+ case ModelPackageImpl.PROPERTY__READ_ONLY:
+ return isSetReadOnly();
+ case ModelPackageImpl.PROPERTY__TYPE:
+ return type != null;
+ case ModelPackageImpl.PROPERTY__ANY_ATTRIBUTE:
+ return anyAttribute != null && !anyAttribute.featureMap().isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (aliasName: ");
+ result.append(aliasName);
+ result.append(", any: ");
+ result.append(any);
+ result.append(", containment: ");
+ if (containmentESet) result.append(containment); else result.append("<unset>");
+ result.append(", default: ");
+ result.append(default_);
+ result.append(", many: ");
+ if (manyESet) result.append(many); else result.append("<unset>");
+ result.append(", name: ");
+ result.append(name);
+ result.append(", readOnly: ");
+ if (readOnlyESet) result.append(readOnly); else result.append("<unset>");
+ result.append(", anyAttribute: ");
+ result.append(anyAttribute);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PropertyImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TextTypeImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TextTypeImpl.java
new file mode 100644
index 0000000000..5d77ce2fae
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TextTypeImpl.java
@@ -0,0 +1,170 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.impl;
+
+import java.util.Collection;
+import java.util.List;
+
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+import org.apache.tuscany.sdo.model.TextType;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Text Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.TextTypeImpl#getText <em>Text</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class TextTypeImpl extends DataObjectImpl implements TextType
+{
+ /**
+ * The cached value of the '{@link #getText() <em>Text</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getText()
+ * @generated
+ * @ordered
+ */
+ protected EList text = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TextTypeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return ModelPackageImpl.Literals.TEXT_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getText()
+ {
+ if (text == null)
+ {
+ text = new EDataTypeEList(String.class, this, ModelPackageImpl.TEXT_TYPE__TEXT);
+ }
+ return text;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.TEXT_TYPE__TEXT:
+ return getText();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.TEXT_TYPE__TEXT:
+ getText().clear();
+ getText().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.TEXT_TYPE__TEXT:
+ getText().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.TEXT_TYPE__TEXT:
+ return text != null && !text.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (text: ");
+ result.append(text);
+ result.append(')');
+ return result.toString();
+ }
+
+} //TextTypeImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TypeImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TypeImpl.java
new file mode 100644
index 0000000000..c51cd7948c
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TypeImpl.java
@@ -0,0 +1,851 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.impl;
+
+import commonj.sdo.Sequence;
+
+import java.util.Collection;
+import java.util.List;
+
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+import org.apache.tuscany.sdo.model.Property;
+import org.apache.tuscany.sdo.model.Type;
+import org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl;
+
+import org.apache.tuscany.sdo.util.BasicSequence;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.TypeImpl#getBaseType <em>Base Type</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.TypeImpl#getProperty <em>Property</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.TypeImpl#getAliasName <em>Alias Name</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.TypeImpl#getAny <em>Any</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.TypeImpl#isAbstract <em>Abstract</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.TypeImpl#isDataType <em>Data Type</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.TypeImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.TypeImpl#isOpen <em>Open</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.TypeImpl#isSequenced <em>Sequenced</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.TypeImpl#getUri <em>Uri</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.TypeImpl#getAnyAttribute <em>Any Attribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TypeImpl extends DataObjectImpl implements Type
+{
+ /**
+ * The cached value of the '{@link #getBaseType() <em>Base Type</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBaseType()
+ * @generated
+ * @ordered
+ */
+ protected EList baseType = null;
+
+ /**
+ * The cached value of the '{@link #getProperty() <em>Property</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProperty()
+ * @generated
+ * @ordered
+ */
+ protected EList property = null;
+
+ /**
+ * The cached value of the '{@link #getAliasName() <em>Alias Name</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAliasName()
+ * @generated
+ * @ordered
+ */
+ protected EList aliasName = null;
+
+ /**
+ * The cached value of the '{@link #getAny() <em>Any</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAny()
+ * @generated
+ * @ordered
+ */
+ protected BasicSequence any = null;
+
+ /**
+ * The default value of the '{@link #isAbstract() <em>Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ABSTRACT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isAbstract() <em>Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected boolean abstract_ = ABSTRACT_EDEFAULT;
+
+ /**
+ * This is true if the Abstract attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean abstractESet = false;
+
+ /**
+ * The default value of the '{@link #isDataType() <em>Data Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDataType()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DATA_TYPE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isDataType() <em>Data Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDataType()
+ * @generated
+ * @ordered
+ */
+ protected boolean dataType = DATA_TYPE_EDEFAULT;
+
+ /**
+ * This is true if the Data Type attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean dataTypeESet = false;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isOpen() <em>Open</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOpen()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean OPEN_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isOpen() <em>Open</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOpen()
+ * @generated
+ * @ordered
+ */
+ protected boolean open = OPEN_EDEFAULT;
+
+ /**
+ * This is true if the Open attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean openESet = false;
+
+ /**
+ * The default value of the '{@link #isSequenced() <em>Sequenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSequenced()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SEQUENCED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isSequenced() <em>Sequenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSequenced()
+ * @generated
+ * @ordered
+ */
+ protected boolean sequenced = SEQUENCED_EDEFAULT;
+
+ /**
+ * This is true if the Sequenced attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean sequencedESet = false;
+
+ /**
+ * The default value of the '{@link #getUri() <em>Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUri()
+ * @generated
+ * @ordered
+ */
+ protected static final String URI_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUri() <em>Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUri()
+ * @generated
+ * @ordered
+ */
+ protected String uri = URI_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getAnyAttribute() <em>Any Attribute</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAnyAttribute()
+ * @generated
+ * @ordered
+ */
+ protected BasicSequence anyAttribute = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TypeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return ModelPackageImpl.Literals.TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getBaseType()
+ {
+ if (baseType == null)
+ {
+ baseType = new EObjectResolvingEList(Type.class, this, ModelPackageImpl.TYPE__BASE_TYPE);
+ }
+ return baseType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getProperty()
+ {
+ if (property == null)
+ {
+ property = new EObjectContainmentEList(Property.class, this, ModelPackageImpl.TYPE__PROPERTY);
+ }
+ return property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getAliasName()
+ {
+ if (aliasName == null)
+ {
+ aliasName = new EDataTypeEList(String.class, this, ModelPackageImpl.TYPE__ALIAS_NAME);
+ }
+ return aliasName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getAny()
+ {
+ if (any == null)
+ {
+ any = new BasicSequence(new BasicFeatureMap(this, ModelPackageImpl.TYPE__ANY));
+ }
+ return any;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAbstract()
+ {
+ return abstract_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAbstract(boolean newAbstract)
+ {
+ boolean oldAbstract = abstract_;
+ abstract_ = newAbstract;
+ boolean oldAbstractESet = abstractESet;
+ abstractESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.TYPE__ABSTRACT, oldAbstract, abstract_, !oldAbstractESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetAbstract()
+ {
+ boolean oldAbstract = abstract_;
+ boolean oldAbstractESet = abstractESet;
+ abstract_ = ABSTRACT_EDEFAULT;
+ abstractESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, ModelPackageImpl.TYPE__ABSTRACT, oldAbstract, ABSTRACT_EDEFAULT, oldAbstractESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAbstract()
+ {
+ return abstractESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDataType()
+ {
+ return dataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDataType(boolean newDataType)
+ {
+ boolean oldDataType = dataType;
+ dataType = newDataType;
+ boolean oldDataTypeESet = dataTypeESet;
+ dataTypeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.TYPE__DATA_TYPE, oldDataType, dataType, !oldDataTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetDataType()
+ {
+ boolean oldDataType = dataType;
+ boolean oldDataTypeESet = dataTypeESet;
+ dataType = DATA_TYPE_EDEFAULT;
+ dataTypeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, ModelPackageImpl.TYPE__DATA_TYPE, oldDataType, DATA_TYPE_EDEFAULT, oldDataTypeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetDataType()
+ {
+ return dataTypeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.TYPE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isOpen()
+ {
+ return open;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOpen(boolean newOpen)
+ {
+ boolean oldOpen = open;
+ open = newOpen;
+ boolean oldOpenESet = openESet;
+ openESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.TYPE__OPEN, oldOpen, open, !oldOpenESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetOpen()
+ {
+ boolean oldOpen = open;
+ boolean oldOpenESet = openESet;
+ open = OPEN_EDEFAULT;
+ openESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, ModelPackageImpl.TYPE__OPEN, oldOpen, OPEN_EDEFAULT, oldOpenESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOpen()
+ {
+ return openESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSequenced()
+ {
+ return sequenced;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSequenced(boolean newSequenced)
+ {
+ boolean oldSequenced = sequenced;
+ sequenced = newSequenced;
+ boolean oldSequencedESet = sequencedESet;
+ sequencedESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.TYPE__SEQUENCED, oldSequenced, sequenced, !oldSequencedESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetSequenced()
+ {
+ boolean oldSequenced = sequenced;
+ boolean oldSequencedESet = sequencedESet;
+ sequenced = SEQUENCED_EDEFAULT;
+ sequencedESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, ModelPackageImpl.TYPE__SEQUENCED, oldSequenced, SEQUENCED_EDEFAULT, oldSequencedESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSequenced()
+ {
+ return sequencedESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getUri()
+ {
+ return uri;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUri(String newUri)
+ {
+ String oldUri = uri;
+ uri = newUri;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackageImpl.TYPE__URI, oldUri, uri));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getAnyAttribute()
+ {
+ if (anyAttribute == null)
+ {
+ anyAttribute = new BasicSequence(new BasicFeatureMap(this, ModelPackageImpl.TYPE__ANY_ATTRIBUTE));
+ }
+ return anyAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.TYPE__PROPERTY:
+ return ((InternalEList)getProperty()).basicRemove(otherEnd, msgs);
+ case ModelPackageImpl.TYPE__ANY:
+ return ((InternalEList)((FeatureMap.Internal.Wrapper)getAny()).featureMap()).basicRemove(otherEnd, msgs);
+ case ModelPackageImpl.TYPE__ANY_ATTRIBUTE:
+ return ((InternalEList)((FeatureMap.Internal.Wrapper)getAnyAttribute()).featureMap()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.TYPE__BASE_TYPE:
+ return getBaseType();
+ case ModelPackageImpl.TYPE__PROPERTY:
+ return getProperty();
+ case ModelPackageImpl.TYPE__ALIAS_NAME:
+ return getAliasName();
+ case ModelPackageImpl.TYPE__ANY:
+ if (coreType) return ((FeatureMap.Internal.Wrapper)getAny()).featureMap();
+ return getAny();
+ case ModelPackageImpl.TYPE__ABSTRACT:
+ return isAbstract() ? Boolean.TRUE : Boolean.FALSE;
+ case ModelPackageImpl.TYPE__DATA_TYPE:
+ return isDataType() ? Boolean.TRUE : Boolean.FALSE;
+ case ModelPackageImpl.TYPE__NAME:
+ return getName();
+ case ModelPackageImpl.TYPE__OPEN:
+ return isOpen() ? Boolean.TRUE : Boolean.FALSE;
+ case ModelPackageImpl.TYPE__SEQUENCED:
+ return isSequenced() ? Boolean.TRUE : Boolean.FALSE;
+ case ModelPackageImpl.TYPE__URI:
+ return getUri();
+ case ModelPackageImpl.TYPE__ANY_ATTRIBUTE:
+ if (coreType) return ((FeatureMap.Internal.Wrapper)getAnyAttribute()).featureMap();
+ return getAnyAttribute();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.TYPE__BASE_TYPE:
+ getBaseType().clear();
+ getBaseType().addAll((Collection)newValue);
+ return;
+ case ModelPackageImpl.TYPE__PROPERTY:
+ getProperty().clear();
+ getProperty().addAll((Collection)newValue);
+ return;
+ case ModelPackageImpl.TYPE__ALIAS_NAME:
+ getAliasName().clear();
+ getAliasName().addAll((Collection)newValue);
+ return;
+ case ModelPackageImpl.TYPE__ANY:
+ ((FeatureMap.Internal)((FeatureMap.Internal.Wrapper)getAny()).featureMap()).set(newValue);
+ return;
+ case ModelPackageImpl.TYPE__ABSTRACT:
+ setAbstract(((Boolean)newValue).booleanValue());
+ return;
+ case ModelPackageImpl.TYPE__DATA_TYPE:
+ setDataType(((Boolean)newValue).booleanValue());
+ return;
+ case ModelPackageImpl.TYPE__NAME:
+ setName((String)newValue);
+ return;
+ case ModelPackageImpl.TYPE__OPEN:
+ setOpen(((Boolean)newValue).booleanValue());
+ return;
+ case ModelPackageImpl.TYPE__SEQUENCED:
+ setSequenced(((Boolean)newValue).booleanValue());
+ return;
+ case ModelPackageImpl.TYPE__URI:
+ setUri((String)newValue);
+ return;
+ case ModelPackageImpl.TYPE__ANY_ATTRIBUTE:
+ ((FeatureMap.Internal)((FeatureMap.Internal.Wrapper)getAnyAttribute()).featureMap()).set(newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.TYPE__BASE_TYPE:
+ getBaseType().clear();
+ return;
+ case ModelPackageImpl.TYPE__PROPERTY:
+ getProperty().clear();
+ return;
+ case ModelPackageImpl.TYPE__ALIAS_NAME:
+ getAliasName().clear();
+ return;
+ case ModelPackageImpl.TYPE__ANY:
+ ((FeatureMap.Internal.Wrapper)getAny()).featureMap().clear();
+ return;
+ case ModelPackageImpl.TYPE__ABSTRACT:
+ unsetAbstract();
+ return;
+ case ModelPackageImpl.TYPE__DATA_TYPE:
+ unsetDataType();
+ return;
+ case ModelPackageImpl.TYPE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ModelPackageImpl.TYPE__OPEN:
+ unsetOpen();
+ return;
+ case ModelPackageImpl.TYPE__SEQUENCED:
+ unsetSequenced();
+ return;
+ case ModelPackageImpl.TYPE__URI:
+ setUri(URI_EDEFAULT);
+ return;
+ case ModelPackageImpl.TYPE__ANY_ATTRIBUTE:
+ ((FeatureMap.Internal.Wrapper)getAnyAttribute()).featureMap().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.TYPE__BASE_TYPE:
+ return baseType != null && !baseType.isEmpty();
+ case ModelPackageImpl.TYPE__PROPERTY:
+ return property != null && !property.isEmpty();
+ case ModelPackageImpl.TYPE__ALIAS_NAME:
+ return aliasName != null && !aliasName.isEmpty();
+ case ModelPackageImpl.TYPE__ANY:
+ return any != null && !any.featureMap().isEmpty();
+ case ModelPackageImpl.TYPE__ABSTRACT:
+ return isSetAbstract();
+ case ModelPackageImpl.TYPE__DATA_TYPE:
+ return isSetDataType();
+ case ModelPackageImpl.TYPE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ModelPackageImpl.TYPE__OPEN:
+ return isSetOpen();
+ case ModelPackageImpl.TYPE__SEQUENCED:
+ return isSetSequenced();
+ case ModelPackageImpl.TYPE__URI:
+ return URI_EDEFAULT == null ? uri != null : !URI_EDEFAULT.equals(uri);
+ case ModelPackageImpl.TYPE__ANY_ATTRIBUTE:
+ return anyAttribute != null && !anyAttribute.featureMap().isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (aliasName: ");
+ result.append(aliasName);
+ result.append(", any: ");
+ result.append(any);
+ result.append(", abstract: ");
+ if (abstractESet) result.append(abstract_); else result.append("<unset>");
+ result.append(", dataType: ");
+ if (dataTypeESet) result.append(dataType); else result.append("<unset>");
+ result.append(", name: ");
+ result.append(name);
+ result.append(", open: ");
+ if (openESet) result.append(open); else result.append("<unset>");
+ result.append(", sequenced: ");
+ if (sequencedESet) result.append(sequenced); else result.append("<unset>");
+ result.append(", uri: ");
+ result.append(uri);
+ result.append(", anyAttribute: ");
+ result.append(anyAttribute);
+ result.append(')');
+ return result.toString();
+ }
+
+ public String getInstanceClassName()
+ {
+ EStructuralFeature javaClassFeature = JavaPackageImpl.eINSTANCE.getDocumentRoot_JavaClass();
+ Sequence anyAttribute = getAnyAttribute();
+ int count = anyAttribute.size();
+ for (int i = 0; i < count; i++)
+ {
+ EStructuralFeature eFeature = (EStructuralFeature)anyAttribute.getProperty(i);
+ if (eFeature == javaClassFeature)
+ {
+ return (String)anyAttribute.getValue(i);
+ }
+ }
+ return null;
+ }
+
+} //TypeImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TypesImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TypesImpl.java
new file mode 100644
index 0000000000..bfd673f0d2
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TypesImpl.java
@@ -0,0 +1,179 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.impl;
+
+import java.util.Collection;
+import java.util.List;
+
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+import org.apache.tuscany.sdo.model.Type;
+import org.apache.tuscany.sdo.model.Types;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Types</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.TypesImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TypesImpl extends DataObjectImpl implements Types
+{
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected EList type = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TypesImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return ModelPackageImpl.Literals.TYPES;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getType_()
+ {
+ if (type == null)
+ {
+ type = new EObjectContainmentEList(Type.class, this, ModelPackageImpl.TYPES__TYPE);
+ }
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.TYPES__TYPE:
+ return ((InternalEList)getType()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.TYPES__TYPE:
+ return getType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.TYPES__TYPE:
+ getType_().clear();
+ getType_().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.TYPES__TYPE:
+ getType_().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.TYPES__TYPE:
+ return type != null && !type.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ public List getTypeList()
+ {
+ return getType_();
+ }
+
+} //TypesImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/XSDTypeImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/XSDTypeImpl.java
new file mode 100644
index 0000000000..74b60af0ae
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/XSDTypeImpl.java
@@ -0,0 +1,189 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.impl;
+
+import commonj.sdo.Sequence;
+
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+import org.apache.tuscany.sdo.model.XSDType;
+
+import org.apache.tuscany.sdo.util.BasicSequence;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XSD Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.impl.XSDTypeImpl#getAny <em>Any</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XSDTypeImpl extends DataObjectImpl implements XSDType
+{
+ /**
+ * The cached value of the '{@link #getAny() <em>Any</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAny()
+ * @generated
+ * @ordered
+ */
+ protected BasicSequence any = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected XSDTypeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return ModelPackageImpl.Literals.XSD_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getAny()
+ {
+ if (any == null)
+ {
+ any = new BasicSequence(new BasicFeatureMap(this, ModelPackageImpl.XSD_TYPE__ANY));
+ }
+ return any;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.XSD_TYPE__ANY:
+ return ((InternalEList)((FeatureMap.Internal.Wrapper)getAny()).featureMap()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.XSD_TYPE__ANY:
+ if (coreType) return ((FeatureMap.Internal.Wrapper)getAny()).featureMap();
+ return getAny();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.XSD_TYPE__ANY:
+ ((FeatureMap.Internal)((FeatureMap.Internal.Wrapper)getAny()).featureMap()).set(newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.XSD_TYPE__ANY:
+ ((FeatureMap.Internal.Wrapper)getAny()).featureMap().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackageImpl.XSD_TYPE__ANY:
+ return any != null && !any.featureMap().isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (any: ");
+ result.append(any);
+ result.append(')');
+ return result.toString();
+ }
+
+} //XSDTypeImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/JavaFactory.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/JavaFactory.java
new file mode 100644
index 0000000000..7ca6ee818f
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/JavaFactory.java
@@ -0,0 +1,46 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.java;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public interface JavaFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ JavaFactory INSTANCE = org.apache.tuscany.sdo.model.java.impl.JavaFactoryImpl.eINSTANCE;
+
+ /**
+ * Returns a new object of class '<em>Info</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Info</em>'.
+ * @generated
+ */
+ JavaInfo createJavaInfo();
+
+} //JavaFactory
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/JavaInfo.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/JavaInfo.java
new file mode 100644
index 0000000000..555be8de4f
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/JavaInfo.java
@@ -0,0 +1,60 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.java;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Info</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.java.JavaInfo#getJavaClass <em>Java Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface JavaInfo
+{
+ /**
+ * Returns the value of the '<em><b>Java Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Java Class</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Java Class</em>' attribute.
+ * @see #setJavaClass(String)
+ * @generated
+ */
+ String getJavaClass();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.model.java.JavaInfo#getJavaClass <em>Java Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Java Class</em>' attribute.
+ * @see #getJavaClass()
+ * @generated
+ */
+ void setJavaClass(String value);
+
+} // JavaInfo
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaFactoryImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaFactoryImpl.java
new file mode 100644
index 0000000000..6e76337615
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaFactoryImpl.java
@@ -0,0 +1,361 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.java.impl;
+
+import org.apache.tuscany.sdo.model.java.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.ecore.xml.type.XMLTypeFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class JavaFactoryImpl extends EFactoryImpl implements JavaFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final JavaFactoryImpl eINSTANCE = init();
+
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static JavaFactoryImpl init()
+ {
+ try
+ {
+ JavaFactoryImpl theJavaFactory = (JavaFactoryImpl)EPackage.Registry.INSTANCE.getEFactory("commonj.sdo/java");
+ if (theJavaFactory != null)
+ {
+ return theJavaFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new JavaFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JavaFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case JavaPackageImpl.DOCUMENT_ROOT: return (EObject)createDocumentRoot();
+ case JavaPackageImpl.JAVA_INFO: return (EObject)createJavaInfo();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object createFromString(EDataType eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case JavaPackageImpl.BOOLEAN_OBJECT:
+ return createBooleanObjectFromString(eDataType, initialValue);
+ case JavaPackageImpl.BYTE_OBJECT:
+ return createByteObjectFromString(eDataType, initialValue);
+ case JavaPackageImpl.CHARACTER_OBJECT:
+ return createCharacterObjectFromString(eDataType, initialValue);
+ case JavaPackageImpl.DOUBLE_OBJECT:
+ return createDoubleObjectFromString(eDataType, initialValue);
+ case JavaPackageImpl.FLOAT_OBJECT:
+ return createFloatObjectFromString(eDataType, initialValue);
+ case JavaPackageImpl.INT_OBJECT:
+ return createIntObjectFromString(eDataType, initialValue);
+ case JavaPackageImpl.LONG_OBJECT:
+ return createLongObjectFromString(eDataType, initialValue);
+ case JavaPackageImpl.SHORT_OBJECT:
+ return createShortObjectFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertToString(EDataType eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case JavaPackageImpl.BOOLEAN_OBJECT:
+ return convertBooleanObjectToString(eDataType, instanceValue);
+ case JavaPackageImpl.BYTE_OBJECT:
+ return convertByteObjectToString(eDataType, instanceValue);
+ case JavaPackageImpl.CHARACTER_OBJECT:
+ return convertCharacterObjectToString(eDataType, instanceValue);
+ case JavaPackageImpl.DOUBLE_OBJECT:
+ return convertDoubleObjectToString(eDataType, instanceValue);
+ case JavaPackageImpl.FLOAT_OBJECT:
+ return convertFloatObjectToString(eDataType, instanceValue);
+ case JavaPackageImpl.INT_OBJECT:
+ return convertIntObjectToString(eDataType, instanceValue);
+ case JavaPackageImpl.LONG_OBJECT:
+ return convertLongObjectToString(eDataType, instanceValue);
+ case JavaPackageImpl.SHORT_OBJECT:
+ return convertShortObjectToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject createDocumentRoot()
+ {
+ EObject documentRoot = super.create(JavaPackageImpl.Literals.DOCUMENT_ROOT);
+ return documentRoot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JavaInfo createJavaInfo()
+ {
+ JavaInfoImpl javaInfo = new JavaInfoImpl();
+ return javaInfo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Boolean createBooleanObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createBooleanObject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertBooleanObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertBooleanObject((Boolean)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Byte createByteObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createByteObject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertByteObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertByteObject((Byte)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Character createCharacterObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return (initialValue == null && initialValue.length() > 0)
+ ? null : (new Character(collapseWhiteSpace(initialValue).charAt(0)));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertCharacterObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Double createDoubleObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createDoubleObject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertDoubleObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertDoubleObject((Double)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Float createFloatObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createFloatObject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertFloatObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertFloatObject((Float)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Integer createIntObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createIntObject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertIntObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertIntObject((Integer)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Long createLongObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createLongObject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertLongObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertLongObject((Long)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Short createShortObjectFromString(EDataType eDataType, String initialValue)
+ {
+ return XMLTypeFactory.eINSTANCE.createShortObject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertShortObjectToString(EDataType eDataType, Object instanceValue)
+ {
+ return XMLTypeFactory.eINSTANCE.convertShortObject((Short)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JavaPackageImpl getJavaPackageImpl()
+ {
+ return (JavaPackageImpl)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static JavaPackageImpl getPackage()
+ {
+ return JavaPackageImpl.eINSTANCE;
+ }
+
+} //JavaFactoryImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaInfoImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaInfoImpl.java
new file mode 100644
index 0000000000..db395f9632
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaInfoImpl.java
@@ -0,0 +1,185 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.java.impl;
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+
+import org.apache.tuscany.sdo.model.java.JavaInfo;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Info</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.model.java.impl.JavaInfoImpl#getJavaClass <em>Java Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaInfoImpl extends DataObjectImpl implements JavaInfo
+{
+ /**
+ * The default value of the '{@link #getJavaClass() <em>Java Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getJavaClass()
+ * @generated
+ * @ordered
+ */
+ protected static final String JAVA_CLASS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getJavaClass() <em>Java Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getJavaClass()
+ * @generated
+ * @ordered
+ */
+ protected String javaClass = JAVA_CLASS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected JavaInfoImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return JavaPackageImpl.Literals.JAVA_INFO;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getJavaClass()
+ {
+ return javaClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setJavaClass(String newJavaClass)
+ {
+ String oldJavaClass = javaClass;
+ javaClass = newJavaClass;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, JavaPackageImpl.JAVA_INFO__JAVA_CLASS, oldJavaClass, javaClass));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case JavaPackageImpl.JAVA_INFO__JAVA_CLASS:
+ return getJavaClass();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case JavaPackageImpl.JAVA_INFO__JAVA_CLASS:
+ setJavaClass((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case JavaPackageImpl.JAVA_INFO__JAVA_CLASS:
+ setJavaClass(JAVA_CLASS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case JavaPackageImpl.JAVA_INFO__JAVA_CLASS:
+ return JAVA_CLASS_EDEFAULT == null ? javaClass != null : !JAVA_CLASS_EDEFAULT.equals(javaClass);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (javaClass: ");
+ result.append(javaClass);
+ result.append(')');
+ return result.toString();
+ }
+
+} //JavaInfoImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaPackageImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaPackageImpl.java
new file mode 100644
index 0000000000..de32f55141
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaPackageImpl.java
@@ -0,0 +1,1149 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed 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.model.java.impl;
+
+import org.apache.tuscany.sdo.impl.SDOPackageImpl;
+
+import org.apache.tuscany.sdo.model.impl.ModelPackageImpl;
+
+import org.apache.tuscany.sdo.model.java.JavaFactory;
+import org.apache.tuscany.sdo.model.java.JavaInfo;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EFactory;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.java.JavaFactory
+ * @generated
+ */
+public class JavaPackageImpl extends EPackageImpl
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String eNAME = "java";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String eNS_URI = "commonj.sdo/java";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String eNS_PREFIX = "java";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final JavaPackageImpl eINSTANCE = org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.model.java.impl.DocumentRootImpl <em>Document Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.java.impl.DocumentRootImpl
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getDocumentRoot()
+ * @generated
+ */
+ public static final int DOCUMENT_ROOT = 0;
+
+ /**
+ * The feature id for the '<em><b>Mixed</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__MIXED = 0;
+
+ /**
+ * The feature id for the '<em><b>XMLNS Prefix Map</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__XMLNS_PREFIX_MAP = 1;
+
+ /**
+ * The feature id for the '<em><b>XSI Schema Location</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__XSI_SCHEMA_LOCATION = 2;
+
+ /**
+ * The feature id for the '<em><b>Extended Instance Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__EXTENDED_INSTANCE_CLASS = 3;
+
+ /**
+ * The feature id for the '<em><b>Instance Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__INSTANCE_CLASS = 4;
+
+ /**
+ * The feature id for the '<em><b>Java Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__JAVA_CLASS = 5;
+
+ /**
+ * The feature id for the '<em><b>Nested Interfaces</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__NESTED_INTERFACES = 6;
+
+ /**
+ * The feature id for the '<em><b>Package</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__PACKAGE = 7;
+
+ /**
+ * The number of structural features of the '<em>Document Root</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT_FEATURE_COUNT = 8;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.model.java.impl.JavaInfoImpl <em>Info</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaInfoImpl
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getJavaInfo()
+ * @generated
+ */
+ public static final int JAVA_INFO = 1;
+
+ /**
+ * The feature id for the '<em><b>Java Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int JAVA_INFO__JAVA_CLASS = 0;
+
+ /**
+ * The number of structural features of the '<em>Info</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int JAVA_INFO_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '<em>Boolean Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Boolean
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getBooleanObject()
+ * @generated
+ */
+ public static final int BOOLEAN_OBJECT = 2;
+
+ /**
+ * The meta object id for the '<em>Byte Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Byte
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getByteObject()
+ * @generated
+ */
+ public static final int BYTE_OBJECT = 3;
+
+ /**
+ * The meta object id for the '<em>Character Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Character
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getCharacterObject()
+ * @generated
+ */
+ public static final int CHARACTER_OBJECT = 4;
+
+ /**
+ * The meta object id for the '<em>Double Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Double
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getDoubleObject()
+ * @generated
+ */
+ public static final int DOUBLE_OBJECT = 5;
+
+ /**
+ * The meta object id for the '<em>Float Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Float
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getFloatObject()
+ * @generated
+ */
+ public static final int FLOAT_OBJECT = 6;
+
+ /**
+ * The meta object id for the '<em>Int Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Integer
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getIntObject()
+ * @generated
+ */
+ public static final int INT_OBJECT = 7;
+
+ /**
+ * The meta object id for the '<em>Long Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Long
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getLongObject()
+ * @generated
+ */
+ public static final int LONG_OBJECT = 8;
+
+ /**
+ * The meta object id for the '<em>Short Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Short
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getShortObject()
+ * @generated
+ */
+ public static final int SHORT_OBJECT = 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass documentRootEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass javaInfoEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType booleanObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType byteObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType characterObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType doubleObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType floatObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType intObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType longObjectEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType shortObjectEDataType = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private JavaPackageImpl()
+ {
+ super(eNS_URI, ((EFactory)JavaFactory.INSTANCE));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this
+ * model, and for any others upon which it depends. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ * <p>Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ * <p>Invocation of this method will not affect any packages that have
+ * already been initialized.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static JavaPackageImpl init()
+ {
+ if (isInited) return (JavaPackageImpl)EPackage.Registry.INSTANCE.getEPackage(JavaPackageImpl.eNS_URI);
+
+ // Obtain or create and register package
+ JavaPackageImpl theJavaPackageImpl = (JavaPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof JavaPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new JavaPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ SDOPackageImpl.eINSTANCE.eClass();
+ ModelPackageImpl.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theJavaPackageImpl.createPackageContents();
+
+ // Initialize created meta-data
+ theJavaPackageImpl.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theJavaPackageImpl.freeze();
+
+ return theJavaPackageImpl;
+ }
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.ecore.EObject <em>Document Root</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Document Root</em>'.
+ * @see org.eclipse.emf.ecore.EObject
+ * @generated
+ */
+ public EClass getDocumentRoot()
+ {
+ return documentRootEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.emf.ecore.EObject#getMixed <em>Mixed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Mixed</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getMixed()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EAttribute getDocumentRoot_Mixed()
+ {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.emf.ecore.EObject#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>XMLNS Prefix Map</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getXMLNSPrefixMap()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_XMLNSPrefixMap()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.emf.ecore.EObject#getXSISchemaLocation <em>XSI Schema Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>XSI Schema Location</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getXSISchemaLocation()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_XSISchemaLocation()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.ecore.EObject#getExtendedInstanceClass <em>Extended Instance Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Extended Instance Class</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getExtendedInstanceClass()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EAttribute getDocumentRoot_ExtendedInstanceClass()
+ {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.ecore.EObject#getInstanceClass <em>Instance Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Instance Class</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getInstanceClass()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EAttribute getDocumentRoot_InstanceClass()
+ {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.ecore.EObject#getJavaClass <em>Java Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Java Class</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getJavaClass()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EAttribute getDocumentRoot_JavaClass()
+ {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.ecore.EObject#isNestedInterfaces <em>Nested Interfaces</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Nested Interfaces</em>'.
+ * @see org.eclipse.emf.ecore.EObject#isNestedInterfaces()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EAttribute getDocumentRoot_NestedInterfaces()
+ {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.ecore.EObject#getPackage <em>Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Package</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getPackage()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EAttribute getDocumentRoot_Package()
+ {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.model.java.JavaInfo <em>Info</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Info</em>'.
+ * @see org.apache.tuscany.sdo.model.java.JavaInfo
+ * @generated
+ */
+ public EClass getJavaInfo()
+ {
+ return javaInfoEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.model.java.JavaInfo#getJavaClass <em>Java Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Java Class</em>'.
+ * @see org.apache.tuscany.sdo.model.java.JavaInfo#getJavaClass()
+ * @see #getJavaInfo()
+ * @generated
+ */
+ public EAttribute getJavaInfo_JavaClass()
+ {
+ return (EAttribute)javaInfoEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Boolean <em>Boolean Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Boolean Object</em>'.
+ * @see java.lang.Boolean
+ * @generated
+ */
+ public EDataType getBooleanObject()
+ {
+ return booleanObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Byte <em>Byte Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Byte Object</em>'.
+ * @see java.lang.Byte
+ * @generated
+ */
+ public EDataType getByteObject()
+ {
+ return byteObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Character <em>Character Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Character Object</em>'.
+ * @see java.lang.Character
+ * @generated
+ */
+ public EDataType getCharacterObject()
+ {
+ return characterObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Double <em>Double Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Double Object</em>'.
+ * @see java.lang.Double
+ * @generated
+ */
+ public EDataType getDoubleObject()
+ {
+ return doubleObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Float <em>Float Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Float Object</em>'.
+ * @see java.lang.Float
+ * @generated
+ */
+ public EDataType getFloatObject()
+ {
+ return floatObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Integer <em>Int Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Int Object</em>'.
+ * @see java.lang.Integer
+ * @generated
+ */
+ public EDataType getIntObject()
+ {
+ return intObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Long <em>Long Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Long Object</em>'.
+ * @see java.lang.Long
+ * @generated
+ */
+ public EDataType getLongObject()
+ {
+ return longObjectEDataType;
+ }
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.Short <em>Short Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Short Object</em>'.
+ * @see java.lang.Short
+ * @generated
+ */
+ public EDataType getShortObject()
+ {
+ return shortObjectEDataType;
+ }
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ public JavaFactory getJavaFactory()
+ {
+ return (JavaFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ documentRootEClass = createEClass(DOCUMENT_ROOT);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__MIXED);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__EXTENDED_INSTANCE_CLASS);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__INSTANCE_CLASS);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__JAVA_CLASS);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__NESTED_INTERFACES);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__PACKAGE);
+
+ javaInfoEClass = createEClass(JAVA_INFO);
+ createEAttribute(javaInfoEClass, JAVA_INFO__JAVA_CLASS);
+
+ // Create data types
+ booleanObjectEDataType = createEDataType(BOOLEAN_OBJECT);
+ byteObjectEDataType = createEDataType(BYTE_OBJECT);
+ characterObjectEDataType = createEDataType(CHARACTER_OBJECT);
+ doubleObjectEDataType = createEDataType(DOUBLE_OBJECT);
+ floatObjectEDataType = createEDataType(FLOAT_OBJECT);
+ intObjectEDataType = createEDataType(INT_OBJECT);
+ longObjectEDataType = createEDataType(LONG_OBJECT);
+ shortObjectEDataType = createEDataType(SHORT_OBJECT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModelPackageImpl theModelPackageImpl = (ModelPackageImpl)EPackage.Registry.INSTANCE.getEPackage(ModelPackageImpl.eNS_URI);
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(documentRootEClass, null, "DocumentRoot", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDocumentRoot_Mixed(), ecorePackage.getEFeatureMapEntry(), "mixed", null, 0, -1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_XMLNSPrefixMap(), ecorePackage.getEStringToStringMapEntry(), null, "xMLNSPrefixMap", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_XSISchemaLocation(), ecorePackage.getEStringToStringMapEntry(), null, "xSISchemaLocation", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDocumentRoot_ExtendedInstanceClass(), theModelPackageImpl.getString(), "extendedInstanceClass", null, 0, 1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDocumentRoot_InstanceClass(), theModelPackageImpl.getString(), "instanceClass", null, 0, 1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDocumentRoot_JavaClass(), theModelPackageImpl.getString(), "javaClass", null, 0, 1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDocumentRoot_NestedInterfaces(), theModelPackageImpl.getBoolean(), "nestedInterfaces", null, 0, 1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDocumentRoot_Package(), theModelPackageImpl.getString(), "package", null, 0, 1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(javaInfoEClass, JavaInfo.class, "JavaInfo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getJavaInfo_JavaClass(), theModelPackageImpl.getString(), "javaClass", null, 0, 1, JavaInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize data types
+ initEDataType(booleanObjectEDataType, Boolean.class, "BooleanObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(byteObjectEDataType, Byte.class, "ByteObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(characterObjectEDataType, Character.class, "CharacterObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(doubleObjectEDataType, Double.class, "DoubleObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(floatObjectEDataType, Float.class, "FloatObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(intObjectEDataType, Integer.class, "IntObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(longObjectEDataType, Long.class, "LongObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(shortObjectEDataType, Short.class, "ShortObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
+ createExtendedMetaDataAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createExtendedMetaDataAnnotations()
+ {
+ String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
+ addAnnotation
+ (booleanObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "BooleanObject"
+ });
+ addAnnotation
+ (byteObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "ByteObject"
+ });
+ addAnnotation
+ (characterObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "CharacterObject"
+ });
+ addAnnotation
+ (documentRootEClass,
+ source,
+ new String[]
+ {
+ "name", "",
+ "kind", "mixed"
+ });
+ addAnnotation
+ (getDocumentRoot_Mixed(),
+ source,
+ new String[]
+ {
+ "kind", "elementWildcard",
+ "name", ":mixed"
+ });
+ addAnnotation
+ (getDocumentRoot_XMLNSPrefixMap(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "xmlns:prefix"
+ });
+ addAnnotation
+ (getDocumentRoot_XSISchemaLocation(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "xsi:schemaLocation"
+ });
+ addAnnotation
+ (getDocumentRoot_ExtendedInstanceClass(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "extendedInstanceClass",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_InstanceClass(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "instanceClass",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_JavaClass(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "javaClass",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_NestedInterfaces(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "nestedInterfaces",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (getDocumentRoot_Package(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "package",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (doubleObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "DoubleObject"
+ });
+ addAnnotation
+ (floatObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "FloatObject"
+ });
+ addAnnotation
+ (intObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "IntObject"
+ });
+ addAnnotation
+ (javaInfoEClass,
+ source,
+ new String[]
+ {
+ "name", "JavaInfo",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getJavaInfo_JavaClass(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "javaClass",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (longObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "LongObject"
+ });
+ addAnnotation
+ (shortObjectEDataType,
+ source,
+ new String[]
+ {
+ "name", "ShortObject"
+ });
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.model.java.impl.DocumentRootImpl <em>Document Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.java.impl.DocumentRootImpl
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getDocumentRoot()
+ * @generated
+ */
+ public static final EClass DOCUMENT_ROOT = eINSTANCE.getDocumentRoot();
+
+ /**
+ * The meta object literal for the '<em><b>Mixed</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute DOCUMENT_ROOT__MIXED = eINSTANCE.getDocumentRoot_Mixed();
+
+ /**
+ * The meta object literal for the '<em><b>XMLNS Prefix Map</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__XMLNS_PREFIX_MAP = eINSTANCE.getDocumentRoot_XMLNSPrefixMap();
+
+ /**
+ * The meta object literal for the '<em><b>XSI Schema Location</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__XSI_SCHEMA_LOCATION = eINSTANCE.getDocumentRoot_XSISchemaLocation();
+
+ /**
+ * The meta object literal for the '<em><b>Extended Instance Class</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute DOCUMENT_ROOT__EXTENDED_INSTANCE_CLASS = eINSTANCE.getDocumentRoot_ExtendedInstanceClass();
+
+ /**
+ * The meta object literal for the '<em><b>Instance Class</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute DOCUMENT_ROOT__INSTANCE_CLASS = eINSTANCE.getDocumentRoot_InstanceClass();
+
+ /**
+ * The meta object literal for the '<em><b>Java Class</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute DOCUMENT_ROOT__JAVA_CLASS = eINSTANCE.getDocumentRoot_JavaClass();
+
+ /**
+ * The meta object literal for the '<em><b>Nested Interfaces</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute DOCUMENT_ROOT__NESTED_INTERFACES = eINSTANCE.getDocumentRoot_NestedInterfaces();
+
+ /**
+ * The meta object literal for the '<em><b>Package</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute DOCUMENT_ROOT__PACKAGE = eINSTANCE.getDocumentRoot_Package();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.model.java.impl.JavaInfoImpl <em>Info</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaInfoImpl
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getJavaInfo()
+ * @generated
+ */
+ public static final EClass JAVA_INFO = eINSTANCE.getJavaInfo();
+
+ /**
+ * The meta object literal for the '<em><b>Java Class</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute JAVA_INFO__JAVA_CLASS = eINSTANCE.getJavaInfo_JavaClass();
+
+ /**
+ * The meta object literal for the '<em>Boolean Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Boolean
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getBooleanObject()
+ * @generated
+ */
+ public static final EDataType BOOLEAN_OBJECT = eINSTANCE.getBooleanObject();
+
+ /**
+ * The meta object literal for the '<em>Byte Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Byte
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getByteObject()
+ * @generated
+ */
+ public static final EDataType BYTE_OBJECT = eINSTANCE.getByteObject();
+
+ /**
+ * The meta object literal for the '<em>Character Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Character
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getCharacterObject()
+ * @generated
+ */
+ public static final EDataType CHARACTER_OBJECT = eINSTANCE.getCharacterObject();
+
+ /**
+ * The meta object literal for the '<em>Double Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Double
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getDoubleObject()
+ * @generated
+ */
+ public static final EDataType DOUBLE_OBJECT = eINSTANCE.getDoubleObject();
+
+ /**
+ * The meta object literal for the '<em>Float Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Float
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getFloatObject()
+ * @generated
+ */
+ public static final EDataType FLOAT_OBJECT = eINSTANCE.getFloatObject();
+
+ /**
+ * The meta object literal for the '<em>Int Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Integer
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getIntObject()
+ * @generated
+ */
+ public static final EDataType INT_OBJECT = eINSTANCE.getIntObject();
+
+ /**
+ * The meta object literal for the '<em>Long Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Long
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getLongObject()
+ * @generated
+ */
+ public static final EDataType LONG_OBJECT = eINSTANCE.getLongObject();
+
+ /**
+ * The meta object literal for the '<em>Short Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Short
+ * @see org.apache.tuscany.sdo.model.java.impl.JavaPackageImpl#getShortObject()
+ * @generated
+ */
+ public static final EDataType SHORT_OBJECT = eINSTANCE.getShortObject();
+
+ }
+
+} //JavaPackageImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/BasicSequence.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/BasicSequence.java
new file mode 100644
index 0000000000..5a631dde77
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/BasicSequence.java
@@ -0,0 +1,134 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMapUtil;
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+
+/**
+ * SDO Sequance implementation which delegates to a feature map.
+ */
+public class BasicSequence implements Sequence, FeatureMap.Internal.Wrapper
+{
+ protected FeatureMap.Internal featureMap;
+
+ public BasicSequence(FeatureMap.Internal featureMap)
+ {
+ this.featureMap = featureMap;
+ featureMap.setWrapper(this);
+ }
+
+ public FeatureMap featureMap()
+ {
+ return featureMap;
+ }
+
+ public int size()
+ {
+ return featureMap.size();
+ }
+
+ public Property getProperty(int index)
+ {
+ EStructuralFeature feature = featureMap.getEStructuralFeature(index);
+ boolean isText =
+ feature == XMLTypePackage.Literals.XML_TYPE_DOCUMENT_ROOT__TEXT ||
+ feature == XMLTypePackage.Literals.XML_TYPE_DOCUMENT_ROOT__CDATA ||
+ feature == XMLTypePackage.Literals.XML_TYPE_DOCUMENT_ROOT__COMMENT;
+ return isText ? null : (Property)feature;
+ }
+
+ public Object getValue(int index)
+ {
+ return featureMap.getValue(index);
+ }
+
+ public Object setValue(int index, Object value)
+ {
+ return featureMap.setValue(index, value);
+ }
+
+ protected EStructuralFeature getEStructuralFeature(String propertyName)
+ {
+ return featureMap.getEObject().eClass().getEStructuralFeature(propertyName);
+ }
+
+ protected EStructuralFeature getEStructuralFeature(int propertyIndex)
+ {
+ return featureMap.getEObject().eClass().getEStructuralFeature(propertyIndex);
+ }
+
+ public boolean add(String propertyName, Object value)
+ {
+ return featureMap.add(getEStructuralFeature(propertyName), value);
+ }
+
+ public boolean add(int propertyIndex, Object value)
+ {
+ return featureMap.add(getEStructuralFeature(propertyIndex), value);
+ }
+
+ public boolean add(Property property, Object value)
+ {
+ return featureMap.add((EStructuralFeature)property, value);
+ }
+
+ public void add(int index, String propertyName, Object value)
+ {
+ featureMap.add(index, getEStructuralFeature(propertyName), value);
+ }
+
+ public void add(int index, int propertyIndex, Object value)
+ {
+ featureMap.add(index, getEStructuralFeature(propertyIndex), value);
+ }
+
+ public void add(int index, Property property, Object value)
+ {
+ featureMap.add(index, (EStructuralFeature)property, value);
+ }
+
+ public void add(String text)
+ {
+ FeatureMapUtil.addText(featureMap, text);
+ }
+
+ public void add(int index, String text)
+ {
+ FeatureMapUtil.addText(featureMap, index, text);
+ }
+
+ public void remove(int index)
+ {
+ featureMap.remove(index);
+ }
+
+ public void move(int toIndex, int fromIndex)
+ {
+ featureMap.move(toIndex, fromIndex);
+ }
+
+ public String toString()
+ {
+ return featureMap.toString();
+ }
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataGraphResourceFactoryImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataGraphResourceFactoryImpl.java
new file mode 100644
index 0000000000..8f10b7f198
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataGraphResourceFactoryImpl.java
@@ -0,0 +1,644 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util;
+
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.sdo.SDOFactory;
+import org.apache.tuscany.sdo.SDOPackage;
+import org.apache.tuscany.sdo.impl.ChangeSummaryImpl;
+import org.apache.tuscany.sdo.impl.DataGraphImpl;
+import org.apache.tuscany.sdo.impl.DynamicDataObjectImpl;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.emf.ecore.xmi.EcoreBuilder;
+import org.eclipse.emf.ecore.xmi.NameInfo;
+import org.eclipse.emf.ecore.xmi.XMLHelper;
+import org.eclipse.emf.ecore.xmi.XMLLoad;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.ecore.xmi.XMLSave;
+import org.eclipse.emf.ecore.xmi.impl.SAXXMLHandler;
+import org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl;
+import org.eclipse.emf.ecore.xmi.util.DefaultEcoreBuilder;
+import org.w3c.dom.Element;
+import org.xml.sax.helpers.DefaultHandler;
+
+import commonj.sdo.ChangeSummary;
+
+
+public class DataGraphResourceFactoryImpl extends ResourceFactoryImpl
+{
+ /**
+ * Constructor for DataGraphResourceFactoryImpl.
+ */
+ public DataGraphResourceFactoryImpl()
+ {
+ super();
+ }
+
+ public Resource createResource(URI uri)
+ {
+ XMLResourceImpl result = new DataGraphResourceImpl(uri);
+
+ result.setEncoding("UTF-8");
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_LINE_WIDTH, new Integer(80));
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_ANY_TYPE, SDOPackage.eINSTANCE.getAnyTypeDataObject());
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_ANY_TYPE, SDOPackage.eINSTANCE.getAnyTypeDataObject());
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_ANY_SIMPLE_TYPE, SDOPackage.eINSTANCE.getSimpleAnyTypeDataObject());
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_ANY_SIMPLE_TYPE, SDOPackage.eINSTANCE.getSimpleAnyTypeDataObject());
+
+ return result;
+ }
+
+ public static class DataGraphResourceImpl extends XMLResourceImpl
+ {
+ public DataGraphResourceImpl(URI uri)
+ {
+ super(uri);
+ }
+
+ public static class HelperImpl extends XMLHelperImpl
+ {
+ protected DataGraphImpl eDataGraph;
+
+ protected List resources;
+ protected List uris;
+
+ public HelperImpl(XMLResource xmlResource)
+ {
+ super(xmlResource);
+ }
+
+ public void setResource(XMLResource resource)
+ {
+ super.setResource(resource);
+ if (!resource.getContents().isEmpty())
+ {
+ eDataGraph = (DataGraphImpl)resource.getContents().get(0);
+
+ resources = new ArrayList();
+ uris = new ArrayList();
+
+ resources.add(eDataGraph.getRootResource());
+ uris.add("#" + resource.getURIFragment(eDataGraph) + "/@eRootObject");
+
+ if (eDataGraph.getEChangeSummary() != null)
+ {
+ // Ensure that resource exists.
+ //
+ resources.add(((EObject)eDataGraph.getChangeSummary()).eResource());
+ uris.add("#" + resource.getURIFragment(eDataGraph) + "/@eChangeSummary");
+ }
+
+ if (eDataGraph.eResource() != null && eDataGraph.eResource().getResourceSet() != null)
+ {
+ int count = 0;
+ for (Iterator i = eDataGraph.eResource().getResourceSet().getResources().iterator(); i.hasNext();)
+ {
+ Resource ePackageResource = (Resource)i.next();
+ List resourceContents = ePackageResource.getContents();
+ if (resourceContents.size() == 1 && resourceContents.get(0) instanceof EPackage)
+ {
+ resources.add(ePackageResource);
+ uris.add("#" + resource.getURIFragment(eDataGraph) + "/@models." + count++);
+ }
+ }
+ }
+ }
+ }
+
+ public String getID(EObject eObject)
+ {
+ return super.getID(eObject);
+ }
+
+ public String getIDREF(EObject eObject)
+ {
+ return super.getIDREF(eObject);
+ }
+
+ public String getHREF(EObject eObject)
+ {
+ return super.getHREF(eObject);
+ }
+
+ protected URI getHREF(Resource otherResource, EObject obj)
+ {
+ int index = resources.indexOf(otherResource);
+ if (index == -1)
+ {
+ return super.getHREF(otherResource, obj);
+ }
+ else
+ {
+ return createHREF((String)uris.get(index), otherResource.getURIFragment(obj));
+ }
+ }
+
+ protected URI createHREF(String baseURI, String fragment)
+ {
+ if (fragment.startsWith("/"))
+ {
+ return URI.createURI(baseURI + fragment.substring(1));
+ }
+ else
+ {
+ return URI.createURI("#" + fragment);
+ }
+ }
+
+ public void populateNameInfo(NameInfo nameInfo, EClass c)
+ {
+ if (c == SDOPackage.eINSTANCE.getDataGraph())
+ {
+ if (extendedMetaData != null)
+ {
+ extendedMetaData.demandPackage("commonj.sdo").setNsPrefix("sdo");
+ }
+ nameInfo.setQualifiedName(getQName("commonj.sdo", "datagraph"));
+ nameInfo.setNamespaceURI("commonj.sdo");
+ nameInfo.setLocalPart("datagraph");
+ }
+ else if (c == SDOPackage.eINSTANCE.getChangeSummary())
+ {
+ if (extendedMetaData != null)
+ {
+ extendedMetaData.demandPackage("commonj.sdo").setNsPrefix("sdo");
+ }
+ nameInfo.setQualifiedName("changeSummary");
+ nameInfo.setNamespaceURI(null);
+ nameInfo.setLocalPart("changeSummary");
+ }
+ else
+ {
+ super.populateNameInfo(nameInfo, c);
+ }
+ }
+
+ public String getQName(EClass c)
+ {
+ if (c == SDOPackage.eINSTANCE.getDataGraph())
+ {
+ if (extendedMetaData != null)
+ {
+ extendedMetaData.demandPackage("commonj.sdo").setNsPrefix("sdo");
+ }
+ return getQName("commonj.sdo", "datagraph");
+ }
+ else if (c == SDOPackage.eINSTANCE.getChangeSummary())
+ {
+ if (extendedMetaData != null)
+ {
+ extendedMetaData.demandPackage("commonj.sdo").setNsPrefix("sdo");
+ }
+ return getQName((String)null, "changeSummary");
+ }
+ else
+ {
+ return super.getQName(c);
+ }
+ }
+ }
+
+ protected XMLHelper createXMLHelper()
+ {
+ return new HelperImpl(this);
+ }
+
+ protected EObject getEObjectByID(String id)
+ {
+ List contents = getContents();
+ if (contents.size() >= 1)
+ {
+ Object rootObject = contents.get(0);
+ if (rootObject instanceof DataGraphImpl)
+ {
+ DataGraphImpl eDataGraph = (DataGraphImpl)rootObject;
+ EObject result = eDataGraph.getRootResource().getEObject(id);
+ if (result != null)
+ {
+ return result;
+ }
+ else
+ {
+ ChangeSummary eChangeSummary = eDataGraph.getEChangeSummary();
+ if (eChangeSummary != null)
+ {
+ result = ((EObject)eDataGraph.getChangeSummary()).eResource().getEObject(id);
+ if (result != null)
+ {
+ return result;
+ }
+ }
+ }
+ }
+ }
+ return super.getEObjectByID(id);
+ }
+
+ public static class SaveImpl extends XMLSaveImpl
+ {
+ protected DataGraphImpl eDataGraph;
+
+ public SaveImpl(XMLHelper xmlHelper)
+ {
+ super(xmlHelper);
+ }
+
+ public void traverse(List contents)
+ {
+ if (contents.size() >= 1 && contents.get(0) instanceof DataGraphImpl)
+ {
+ eDataGraph = (DataGraphImpl)contents.get(0);
+
+ Object datagraphMark = null;
+ if (!toDOM)
+ {
+ if (declareXML)
+ {
+ doc.add("<?xml version=\"" + xmlVersion + "\" encoding=\"" + encoding + "\"?>");
+ doc.addLine();
+ }
+ String elementName = helper.getQName(eDataGraph.eClass());
+ doc.startElement(elementName);
+ datagraphMark = doc.mark();
+ }
+ else
+ {
+ helper.populateNameInfo(nameInfo, eDataGraph.eClass());
+ currentNode = document.createElementNS(nameInfo.getNamespaceURI(), nameInfo.getQualifiedName());
+ document.appendChild(currentNode);
+ // not calling handler since there is no corresponding EObject
+ }
+
+ if (eDataGraph.eResource() != null && eDataGraph.eResource().getResourceSet() != null)
+ {
+ List ePackages = new ArrayList();
+ for (Iterator i = eDataGraph.eResource().getResourceSet().getResources().iterator(); i.hasNext();)
+ {
+ List resourceContents = ((Resource)i.next()).getContents();
+ if (resourceContents.size() == 1 && resourceContents.get(0) instanceof EPackage)
+ {
+ ePackages.add(resourceContents.get(0));
+ }
+ }
+ if (!ePackages.isEmpty())
+ {
+ if (!toDOM)
+ {
+ doc.startElement("models");
+ doc.addAttribute("xmlns", "");
+ }
+ else
+ {
+ currentNode = currentNode.appendChild(document.createElementNS(null, "models"));
+ ((Element)currentNode).setAttributeNS(ExtendedMetaData.XMLNS_URI, ExtendedMetaData.XMLNS_PREFIX, "");
+ // not calling handler since there is no corresponding EObject
+ }
+ for (Iterator i = ePackages.iterator(); i.hasNext();)
+ {
+ writeTopObject((EPackage)i.next());
+ }
+ if (!toDOM)
+ {
+ doc.endElement();
+ }
+ else
+ {
+ currentNode = currentNode.getParentNode();
+ }
+ }
+ }
+
+ // use namespace declarations defined in the document (if any)
+ EObject eRootObject = eDataGraph.getERootObject();
+ EReference xmlnsPrefixMapFeature = extendedMetaData.getXMLNSPrefixMapFeature(eRootObject.eClass());
+ if (xmlnsPrefixMapFeature != null)
+ {
+ EMap xmlnsPrefixMap = (EMap)eRootObject.eGet(xmlnsPrefixMapFeature);
+ helper.setPrefixToNamespaceMap(xmlnsPrefixMap);
+ }
+ ChangeSummary changeSummary = eDataGraph.getEChangeSummary();
+
+ if (changeSummary != null)
+ {
+ helper.setMustHavePrefix(true);
+ if (changeSummary.isLogging())
+ {
+ ((ChangeSummaryImpl)changeSummary).summarize();
+ writeTopObject((EObject)changeSummary);
+ }
+ else
+ {
+ writeTopObject((EObject)changeSummary);
+ }
+ helper.setMustHavePrefix(false);
+ }
+
+ if (eRootObject != null && writeTopObject(eRootObject) == null && !toDOM)
+ {
+ doc.addLine();
+ doc.setMixed(false);
+ }
+ if (!toDOM)
+ {
+ doc.endElement();
+ // reset to add namespace declarations
+ //
+ doc.resetToMark(datagraphMark);
+ }
+ else
+ {
+ currentNode = document.getFirstChild();
+ }
+ addNamespaceDeclarations();
+ }
+ else
+ {
+ super.traverse(contents);
+ }
+ }
+
+ protected void writeTopAttributes(EObject top)
+ {
+ if (top == eDataGraph.getEChangeSummary())
+ {
+ if (!toDOM)
+ {
+ doc.addAttribute("xmlns", "");
+ }
+ else
+ {
+ ((Element)currentNode).setAttributeNS(ExtendedMetaData.XMLNS_URI, ExtendedMetaData.XMLNS_PREFIX, "");
+ }
+ }
+ }
+
+ protected EObject getSchemaLocationRoot(EObject eObject)
+ {
+ return eDataGraph.getERootObject();
+ }
+ }
+
+ protected XMLSave createXMLSave()
+ {
+ return new SaveImpl(createXMLHelper());
+ }
+
+ public static class LoadImpl extends XMLLoadImpl
+ {
+ public LoadImpl(XMLHelper xmlHelper)
+ {
+ super(xmlHelper);
+ }
+
+ protected DefaultHandler makeDefaultHandler()
+ {
+ return new SAXXMLHandler(resource, helper, options)
+ {
+ protected DataGraphImpl eDataGraph;
+
+ protected boolean isInModels;
+
+ protected List ePackages = new ArrayList();
+
+ protected EMap recordNamespacesSchemaLocations(EObject root)
+ {
+ EObject dgroot = eDataGraph.getERootObject();
+ if (dgroot == null)
+ {
+ return null;
+ }
+ EMap prefixToNamespaceMap = super.recordNamespacesSchemaLocations(dgroot);
+ if (prefixToNamespaceMap != null)
+ {
+ for (Iterator i = prefixToNamespaceMap.iterator(); i.hasNext();)
+ {
+ Map.Entry entry = (Map.Entry)i.next();
+ String prefix = (String)entry.getKey();
+ String namespace = (String)entry.getValue();
+ if (namespace.equals("commonj.sdo"))
+ {
+ prefixToNamespaceMap.removeKey(prefix);
+ break;
+ }
+ }
+ }
+ return prefixToNamespaceMap;
+ }
+
+ protected void handleFeature(String prefix, String name)
+ {
+ if (isInModels && objects.size() == 2)
+ {
+ EObject modelObject = createObjectByType(prefix, name, false);
+ processObject(modelObject);
+ ePackages.add(modelObject);
+ }
+ else if (objects.size() == 1)
+ {
+ eDataGraph = (DataGraphImpl)objects.peek();
+ eDataGraph.getResourceSet();
+ if ("".equals(prefix) && "changeSummary".equals(name))
+ {
+ ChangeSummary eChangeSummary = (ChangeSummary)createObjectFromFactory(SDOFactory.eINSTANCE, "EChangeSummary");
+ eDataGraph.setEChangeSummary(eChangeSummary);
+ processObject((EObject)eChangeSummary);
+ }
+ else if ("".equals(prefix) && "models".equals(name))
+ {
+ isInModels = true;
+ types.push(OBJECT_TYPE);
+ objects.push(eDataGraph);
+ mixedTargets.push(null);
+ }
+ else if (eDataGraph.getERootObject() == null)
+ {
+ if (processAnyXML)
+ {
+ // Ensure that anything can be handled, even if it's not recognized.
+ //
+ String namespaceURI = helper.getURI(prefix);
+ if (extendedMetaData.getPackage(namespaceURI) == null)
+ {
+ EStructuralFeature rootFeature = extendedMetaData.demandFeature(namespaceURI, name, true);
+ rootFeature.getEContainingClass().getEPackage().setEFactoryInstance(new DynamicDataObjectImpl.FactoryImpl());
+ }
+ }
+
+ EObject rootObject = createObjectByType(prefix, name, false);
+ eDataGraph.setERootObject(rootObject);
+ processObject(rootObject);
+ if (rootObject != null
+ && rootObject.eClass() == ExtendedMetaData.INSTANCE.getDocumentRoot(rootObject.eClass().getEPackage()))
+ {
+ super.handleFeature(prefix, name);
+
+ // Remove the document root from the stack.
+ //
+ Object mixedTarget = mixedTargets.pop();
+ Object object = objects.pop();
+ mixedTargets.pop();
+ objects.pop();
+ mixedTargets.push(mixedTarget);
+ objects.push(object);
+ }
+ }
+ }
+ else
+ {
+ super.handleFeature(prefix, name);
+ }
+ }
+
+ public void endElement(String uri, String localName, String name)
+ {
+ if (isInModels && objects.size() == 2)
+ {
+ if (!ePackages.isEmpty())
+ {
+ for (Iterator i = ePackages.iterator(); i.hasNext();)
+ {
+ EPackage ePackage = (EPackage)i.next();
+ ePackage.setEFactoryInstance(new DynamicDataObjectImpl.FactoryImpl());
+ Resource resource = resourceSet.createResource(URI.createURI("*.ecore"));
+ resource.getContents().add(ePackage);
+ if (ePackage.getNsURI() != null)
+ {
+ resource.setURI(URI.createURI(ePackage.getNsURI()));
+ }
+
+ if (extendedMetaData != null)
+ {
+ extendedMetaData.putPackage(extendedMetaData.getNamespace(ePackage), ePackage);
+ }
+ else
+ {
+ packageRegistry.put(ePackage.getNsURI(), ePackage);
+ }
+ }
+ handleForwardReferences();
+ }
+ isInModels = false;
+ }
+ super.endElement(uri, localName, name);
+ }
+
+ protected EPackage getPackageForURI(String uriString)
+ {
+ if ("commonj.sdo".equals(uriString))
+ {
+ return SDOPackage.eINSTANCE;
+ }
+ else
+ {
+ return super.getPackageForURI(uriString);
+ }
+ }
+
+ protected EObject createObjectFromFactory(EFactory factory, String typeName)
+ {
+ if (factory == SDOFactory.eINSTANCE)
+ {
+ if ("datagraph".equals(typeName))
+ {
+ return super.createObjectFromFactory(factory, "EDataGraph");
+ }
+ }
+ return super.createObjectFromFactory(factory, typeName);
+ }
+
+ protected EcoreBuilder createEcoreBuilder(Map options, ExtendedMetaData extendedMetaData)
+ {
+ return new DefaultEcoreBuilder(extendedMetaData)
+ {
+ public Collection generate(Map urisToLocations) throws Exception
+ {
+ Collection result = super.generate(urisToLocations);
+ return updateDynamicFactory(result);
+ }
+
+ public Collection generate(Collection urisToLocations) throws Exception
+ {
+ Collection result = super.generate(urisToLocations);
+ return updateDynamicFactory(result);
+ }
+
+ protected Collection updateDynamicFactory(Collection result)
+ {
+ for (Iterator i = result.iterator(); i.hasNext();)
+ {
+ Resource resource = (Resource)i.next();
+ for (Iterator j = EcoreUtil.getObjectsByType(resource.getContents(), EcorePackage.eINSTANCE.getEPackage()).iterator(); j.hasNext();)
+ {
+ EPackage ePackage = (EPackage)j.next();
+ ePackage.setEFactoryInstance(new DynamicDataObjectImpl.FactoryImpl());
+ }
+ }
+ return result;
+ }
+
+ };
+ }
+
+ protected EPackage handleMissingPackage(String uriString)
+ {
+ EPackage result = super.handleMissingPackage(uriString);
+ if (processAnyXML && objects.size() == 1)
+ {
+ result = extendedMetaData.demandPackage(uriString);
+ }
+ return result;
+ }
+ };
+ }
+ }
+
+ protected XMLLoad createXMLLoad()
+ {
+ return new LoadImpl(createXMLHelper());
+ }
+ }
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java
new file mode 100644
index 0000000000..23df894b32
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java
@@ -0,0 +1,2564 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util;
+
+
+import java.io.InvalidObjectException;
+import java.io.ObjectStreamException;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.tuscany.sdo.SDOExtendedMetaData;
+import org.apache.tuscany.sdo.impl.DataGraphImpl;
+import org.apache.tuscany.sdo.impl.SDOFactoryImpl;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMapUtil;
+import org.eclipse.emf.ecore.xmi.impl.EMOFResourceFactoryImpl;
+import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceFactoryImpl;
+import org.eclipse.emf.ecore.xml.type.internal.XMLCalendar;
+import org.eclipse.xsd.util.XSDResourceFactoryImpl;
+
+import commonj.sdo.ChangeSummary;
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+import commonj.sdo.helper.TypeHelper;
+
+
+public final class DataObjectUtil
+{
+ public static Object writeReplace(DataObject dataObject) throws ObjectStreamException
+ {
+ DataGraph dataGraph = dataObject.getDataGraph();
+ if (dataGraph != null)
+ {
+ return ((DataGraphImpl)dataGraph).getWriteReplacement((EObject)dataObject);
+ }
+ else
+ {
+ throw new InvalidObjectException("The object must be in a datagraph to be serialized " + dataObject);
+ }
+ }
+
+ public static void setString(DataObject dataObject, Property property, String value) {
+ dataObject.set(property, getSetValue(property, value));
+ }
+
+ public static void setShort(DataObject dataObject, Property property, short value) {
+ dataObject.set(property, getSetValue(property, value));
+ }
+
+ public static void setLong(DataObject dataObject, Property property, long value) {
+ dataObject.set(property, getSetValue(property, value));
+ }
+
+ public static void setList(DataObject dataObject, Property property, List value) {
+ dataObject.set(property, value);
+ }
+
+ public static void setInt(DataObject dataObject, Property property, int value) {
+ dataObject.set(property, getSetValue(property, value));
+ }
+
+ public static void setFloat(DataObject dataObject, Property property, float value) {
+ dataObject.set(property, getSetValue(property, value));
+ }
+
+ public static void setDouble(DataObject dataObject, Property property, double value) {
+ dataObject.set(property, getSetValue(property, value));
+ }
+
+ public static void setDate(DataObject dataObject, Property property, Date value) {
+ dataObject.set(property, getSetValue(property, value));
+ }
+
+ public static void setDataObject(DataObject dataObject, Property property, DataObject value) {
+ dataObject.set(property, value);
+ }
+
+ public static void setChar(DataObject dataObject, Property property, char value) {
+ dataObject.set(property, getSetValue(property, value));
+ }
+
+ public static void setBytes(DataObject dataObject, Property property, byte[] value) {
+ dataObject.set(property, getSetValue(property, value));
+ }
+
+ public static void setByte(DataObject dataObject, Property property, byte value) {
+ dataObject.set(property, getSetValue(property, value));
+ }
+
+ public static void setBoolean(DataObject dataObject, Property property, boolean value) {
+ dataObject.set(property, getSetValue(property, value));
+ }
+
+ public static void setBigInteger(DataObject dataObject, Property property, BigInteger value)
+ {
+ dataObject.set(property, getSetValue(property, value));
+ }
+
+ public static void setBigDecimal(DataObject dataObject, Property property, BigDecimal value)
+ {
+ dataObject.set(property, getSetValue(property, value));
+ }
+
+ public static String getString(DataObject dataObject, Property property)
+ {
+ return getString(dataObject.get(property));
+ }
+
+ public static short getShort(DataObject dataObject, Property property)
+ {
+ return getShort(dataObject.get(property));
+ }
+
+ public static Sequence getSequence(DataObject dataObject, Property property)
+ {
+ return (Sequence)dataObject.get(property);
+ }
+
+ public static long getLong(DataObject dataObject, Property property)
+ {
+ return getLong(dataObject.get(property));
+ }
+
+ public static List getList(DataObject dataObject, Property property)
+ {
+ return (List)dataObject.get(property);
+ }
+
+ public static int getInt(DataObject dataObject, Property property)
+ {
+ return getInt(dataObject.get(property));
+ }
+
+ public static float getFloat(DataObject dataObject, Property property)
+ {
+ return getFloat(dataObject.get(property));
+ }
+
+ public static double getDouble(DataObject dataObject, Property property)
+ {
+ return getDouble(dataObject.get(property));
+ }
+
+ public static Date getDate(DataObject dataObject, Property property)
+ {
+ return getDate(dataObject.get(property));
+ }
+
+ public static DataObject getDataObject(DataObject dataObject, Property property)
+ {
+ return (DataObject)dataObject.get(property);
+ }
+
+ public static char getChar(DataObject dataObject, Property property)
+ {
+ return getChar(dataObject.get(property));
+ }
+
+ public static byte[] getBytes(DataObject dataObject, Property property)
+ {
+ return getBytes(dataObject.get(property));
+ }
+
+ public static byte getByte(DataObject dataObject, Property property)
+ {
+ return getByte(dataObject.get(property));
+ }
+
+ public static boolean getBoolean(DataObject dataObject, Property property)
+ {
+ return getBoolean(dataObject.get(property));
+ }
+
+ public static BigInteger getBigInteger(DataObject dataObject, Property property)
+ {
+ return getBigInteger(dataObject.get(property));
+ }
+
+ public static BigDecimal getBigDecimal(DataObject dataObject, Property property)
+ {
+ return getBigDecimal(dataObject.get(property));
+ }
+
+
+
+ private static Property getPropertyByIndex(DataObject dataObject, int propertyIndex) {
+ EObject eObject = (EObject) dataObject;
+ Property property = (Property)eObject.eClass().getEStructuralFeature(propertyIndex);
+ return property;
+ }
+
+ public static void setString(DataObject dataObject, int propertyIndex, String value) {
+ dataObject.set(propertyIndex, getSetValue(getPropertyByIndex(dataObject, propertyIndex), value));
+ }
+
+ public static void setShort(DataObject dataObject, int propertyIndex, short value) {
+ dataObject.set(propertyIndex, getSetValue(getPropertyByIndex(dataObject, propertyIndex), value));
+ }
+
+ public static void setLong(DataObject dataObject, int propertyIndex, long value) {
+ dataObject.set(propertyIndex, getSetValue(getPropertyByIndex(dataObject, propertyIndex), value));
+ }
+
+ public static void setList(DataObject dataObject, int propertyIndex, List value) {
+ dataObject.set(propertyIndex, value);
+ }
+
+ public static void setInt(DataObject dataObject, int propertyIndex, int value) {
+ dataObject.set(propertyIndex, getSetValue(getPropertyByIndex(dataObject, propertyIndex), value));
+ }
+
+ public static void setFloat(DataObject dataObject, int propertyIndex, float value) {
+ dataObject.set(propertyIndex, getSetValue(getPropertyByIndex(dataObject, propertyIndex), value));
+ }
+
+ public static void setDouble(DataObject dataObject, int propertyIndex, double value) {
+ dataObject.set(propertyIndex, getSetValue(getPropertyByIndex(dataObject, propertyIndex), value));
+ }
+
+ public static void setDate(DataObject dataObject, int propertyIndex, Date value) {
+ dataObject.set(propertyIndex, getSetValue(getPropertyByIndex(dataObject, propertyIndex), value));
+ }
+
+ public static void setDataObject(DataObject dataObject, int propertyIndex, DataObject value) {
+ dataObject.set(propertyIndex, value);
+ }
+
+ public static void setChar(DataObject dataObject, int propertyIndex, char value) {
+ dataObject.set(propertyIndex, getSetValue(getPropertyByIndex(dataObject, propertyIndex), value));
+ }
+
+ public static void setBytes(DataObject dataObject, int propertyIndex, byte[] value) {
+ dataObject.set(propertyIndex, getSetValue(getPropertyByIndex(dataObject, propertyIndex), value));
+ }
+
+ public static void setByte(DataObject dataObject, int propertyIndex, byte value) {
+ dataObject.set(propertyIndex, getSetValue(getPropertyByIndex(dataObject, propertyIndex), value));
+ }
+
+ public static void setBoolean(DataObject dataObject, int propertyIndex, boolean value) {
+ dataObject.set(propertyIndex, getSetValue(getPropertyByIndex(dataObject, propertyIndex), value));
+ }
+
+ public static void setBigInteger(DataObject dataObject, int propertyIndex, BigInteger value)
+ {
+ dataObject.set(propertyIndex, getSetValue(getPropertyByIndex(dataObject, propertyIndex), value));
+ }
+
+ public static void setBigDecimal(DataObject dataObject, int propertyIndex, BigDecimal value)
+ {
+ dataObject.set(propertyIndex, getSetValue(getPropertyByIndex(dataObject, propertyIndex), value));
+ }
+
+ public static String getString(DataObject dataObject, int propertyIndex)
+ {
+ return getString(dataObject.get(propertyIndex));
+ }
+
+ public static short getShort(DataObject dataObject, int propertyIndex)
+ {
+ return getShort(dataObject.get(propertyIndex));
+ }
+
+ public static Sequence getSequence(DataObject dataObject, int propertyIndex)
+ {
+ return (Sequence)dataObject.get(propertyIndex);
+ }
+
+ public static long getLong(DataObject dataObject, int propertyIndex)
+ {
+ return getLong(dataObject.get(propertyIndex));
+ }
+
+ public static List getList(DataObject dataObject, int propertyIndex)
+ {
+ return (List)dataObject.get(propertyIndex);
+ }
+
+ public static int getInt(DataObject dataObject, int propertyIndex)
+ {
+ return getInt(dataObject.get(propertyIndex));
+ }
+
+ public static float getFloat(DataObject dataObject, int propertyIndex)
+ {
+ return getFloat(dataObject.get(propertyIndex));
+ }
+
+ public static double getDouble(DataObject dataObject, int propertyIndex)
+ {
+ return getDouble(dataObject.get(propertyIndex));
+ }
+
+ public static Date getDate(DataObject dataObject, int propertyIndex)
+ {
+ return getDate(dataObject.get(propertyIndex));
+ }
+
+ public static DataObject getDataObject(DataObject dataObject, int propertyIndex)
+ {
+ return (DataObject)dataObject.get(propertyIndex);
+ }
+
+ public static char getChar(DataObject dataObject, int propertyIndex)
+ {
+ return getChar(dataObject.get(propertyIndex));
+ }
+
+ public static byte[] getBytes(DataObject dataObject, int propertyIndex)
+ {
+ return getBytes(dataObject.get(propertyIndex));
+ }
+
+ public static byte getByte(DataObject dataObject, int propertyIndex)
+ {
+ return getByte(dataObject.get(propertyIndex));
+ }
+
+ public static boolean getBoolean(DataObject dataObject, int propertyIndex)
+ {
+ return getBoolean(dataObject.get(propertyIndex));
+ }
+
+ public static BigInteger getBigInteger(DataObject dataObject, int propertyIndex)
+ {
+ return getBigInteger(dataObject.get(propertyIndex));
+ }
+
+ public static BigDecimal getBigDecimal(DataObject dataObject, int propertyIndex)
+ {
+ return getBigDecimal(dataObject.get(propertyIndex));
+ }
+
+ public static void detach(DataObject dataObject) {
+ EcoreUtil.remove((EObject)dataObject);
+ }
+
+ public static DataObject getRootObject(DataObject dataObject)
+ {
+ return (DataObject)EcoreUtil.getRootContainer((EObject)dataObject);
+ }
+
+ public static List getInstanceProperties(DataObject dataObject)
+ {
+ //TODO maybe optimize this to just return type.getProperties if type.isOpen (isOpen would need to be cached)
+ EObject eDataObject = (EObject) dataObject;
+ List result = new UniqueEList(eDataObject.eClass().getEAllStructuralFeatures());
+ for (int i = 0, count = result.size(); i < count; ++i)
+ {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature)result.get(i);
+ if (!eStructuralFeature.isDerived() && FeatureMapUtil.isFeatureMap(eStructuralFeature))
+ {
+ List features = (List)eDataObject.eGet(eStructuralFeature);
+ for (int j = 0, size = features.size(); j < size; ++j)
+ {
+ FeatureMap.Entry entry = (FeatureMap.Entry)features.get(j);
+ EStructuralFeature entryFeature = entry.getEStructuralFeature();
+ result.add(entryFeature);
+ }
+ }
+ }
+ return result;
+ }
+
+ public static void delete(DataObject dataObject)
+ {
+ EObject eDataObject = (EObject)dataObject;
+ EcoreUtil.remove(eDataObject);
+ List contents = new ArrayList((eDataObject).eContents());
+ for (int i = 0, size = contents.size(); i < size; ++i)
+ {
+ ((DataObject)contents.get(i)).delete();
+ }
+ EClass eClass = eDataObject.eClass();
+ for (int i = 0, size = eClass.getFeatureCount(); i < size; ++i)
+ {
+ EStructuralFeature eStructuralFeature = eClass.getEStructuralFeature(i);
+ if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived() && !((Property)eStructuralFeature).isReadOnly())
+ {
+ eDataObject.eUnset(eStructuralFeature);
+ }
+ }
+ }
+
+ public static DataObject createDataObject(DataObject dataObject, Property property, Type type)
+ {
+ if (!property.isContainment())
+ {
+ throw new IllegalArgumentException("The property '" + property.getName() + "' of '" + property.getContainingType().getName()
+ + "' isn't a containment");
+ }
+ DataObject result = DataObjectUtil.create(type);
+ if (FeatureMapUtil.isMany((EObject)dataObject, (EStructuralFeature)property))
+ {
+ ((List)dataObject.get(property)).add(result);
+ }
+ else
+ {
+ dataObject.set(property, result);
+ }
+ return result;
+ }
+
+ public static DataObject createDataObject(DataObject dataObject, int propertyIndex, String namespaceURI, String typeName)
+ {
+ Property property = DataObjectUtil.getProperty(dataObject, propertyIndex);
+ Type type = DataObjectUtil.getType(dataObject, namespaceURI, typeName);
+ return createDataObject(dataObject, property, type);
+ }
+
+ public static DataObject createDataObject(DataObject dataObject, String propertyName, String namespaceURI, String typeName)
+ {
+ Property property = getProperty(dataObject, propertyName);
+ Type type = DataObjectUtil.getType(dataObject, namespaceURI, typeName);
+ return createDataObject(dataObject, property, type);
+ }
+
+ public static DataObject createDataObject(DataObject dataObject, Property property)
+ {
+ Type type = property.getType();
+ return createDataObject(dataObject, property, type);
+ }
+
+ public static DataObject createDataObject(DataObject dataObject, int propertyIndex)
+ {
+ Property property = getProperty(dataObject, propertyIndex);
+ Type type = property.getType();
+ return createDataObject(dataObject,property, type);
+ }
+
+ public static DataObject createDataObject(DataObject dataObject, String propertyName)
+ {
+ Property property = (Property)getProperty(dataObject, propertyName);
+ Type type = property.getType();
+ return createDataObject(dataObject,property, type);
+ }
+
+ public static void setString(DataObject dataObject, String path, String value)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.set(property, DataObjectUtil.getSetValue(property, value));
+ }
+ else
+ {
+ DataObjectUtil.Accessor accessor = DataObjectUtil.Accessor.create((EObject)dataObject, path);
+ accessor.setAndRecyle(DataObjectUtil.getSetValue(accessor.getProperty(), value));
+ }
+ }
+
+
+ public static void setShort(DataObject dataObject, String path, short value)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.set(property, DataObjectUtil.getSetValue(property, value));
+ }
+ else
+ {
+ DataObjectUtil.Accessor accessor = DataObjectUtil.Accessor.create((EObject)dataObject, path);
+ accessor.setAndRecyle(DataObjectUtil.getSetValue(accessor.getProperty(), value));
+ }
+ }
+
+ public static void setLong(DataObject dataObject, String path, long value)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.set(property, DataObjectUtil.getSetValue(property, value));
+ }
+ else
+ {
+ DataObjectUtil.Accessor accessor = DataObjectUtil.Accessor.create((EObject)dataObject, path);
+ accessor.setAndRecyle(DataObjectUtil.getSetValue(accessor.getProperty(), value));
+ }
+ }
+
+ public static void setList(DataObject dataObject, String path, List value)
+ {
+ dataObject.set(path, value);
+ }
+
+ public static void setInt(DataObject dataObject, String path, int value)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.set(property, DataObjectUtil.getSetValue(property, value));
+ }
+ else
+ {
+ DataObjectUtil.Accessor accessor = DataObjectUtil.Accessor.create((EObject)dataObject, path);
+ accessor.setAndRecyle(DataObjectUtil.getSetValue(accessor.getProperty(), value));
+ }
+ }
+
+ public static void setFloat(DataObject dataObject, String path, float value)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.set(property, DataObjectUtil.getSetValue(property, value));
+ }
+ else
+ {
+ DataObjectUtil.Accessor accessor = DataObjectUtil.Accessor.create((EObject)dataObject, path);
+ accessor.setAndRecyle(DataObjectUtil.getSetValue(accessor.getProperty(), value));
+ }
+ }
+
+ public static void setDouble(DataObject dataObject, String path, double value)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.set(property, DataObjectUtil.getSetValue(property, value));
+ }
+ else
+ {
+ DataObjectUtil.Accessor accessor = DataObjectUtil.Accessor.create((EObject)dataObject, path);
+ accessor.setAndRecyle(DataObjectUtil.getSetValue(accessor.getProperty(), value));
+ }
+ }
+
+ public static void setDate(DataObject dataObject, String path, Date value)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.set(property, DataObjectUtil.getSetValue(property, value));
+ }
+ else
+ {
+ DataObjectUtil.Accessor accessor = DataObjectUtil.Accessor.create((EObject)dataObject, path);
+ accessor.setAndRecyle(DataObjectUtil.getSetValue(accessor.getProperty(), value));
+ }
+ }
+
+ public static void setDataObject(DataObject dataObject, String path, DataObject value)
+ {
+ dataObject.set(path, value);
+ }
+
+ public static void setChar(DataObject dataObject, String path, char value)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.set(property, DataObjectUtil.getSetValue(property, value));
+ }
+ else
+ {
+ DataObjectUtil.Accessor accessor = DataObjectUtil.Accessor.create((EObject)dataObject, path);
+ accessor.setAndRecyle(DataObjectUtil.getSetValue(accessor.getProperty(), value));
+ }
+ }
+
+ public static void setBytes(DataObject dataObject, String path, byte[] value)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.set(property, DataObjectUtil.getSetValue(property, value));
+ }
+ else
+ {
+ DataObjectUtil.Accessor accessor = DataObjectUtil.Accessor.create((EObject)dataObject, path);
+ accessor.setAndRecyle(DataObjectUtil.getSetValue(accessor.getProperty(), value));
+ }
+ }
+
+ public static void setByte(DataObject dataObject, String path, byte value)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.set(property, DataObjectUtil.getSetValue(property, value));
+ }
+ else
+ {
+ DataObjectUtil.Accessor accessor = DataObjectUtil.Accessor.create((EObject)dataObject, path);
+ accessor.setAndRecyle(DataObjectUtil.getSetValue(accessor.getProperty(), value));
+ }
+ }
+
+ public static void setBoolean(DataObject dataObject, String path, boolean value)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.set(property, DataObjectUtil.getSetValue(property, value));
+ }
+ else
+ {
+ DataObjectUtil.Accessor accessor = DataObjectUtil.Accessor.create((EObject)dataObject, path);
+ accessor.setAndRecyle(DataObjectUtil.getSetValue(accessor.getProperty(), value));
+ }
+ }
+
+ public static void setBigInteger(DataObject dataObject, String path, BigInteger value)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.set(property, DataObjectUtil.getSetValue(property, value));
+ }
+ else
+ {
+ DataObjectUtil.Accessor accessor = DataObjectUtil.Accessor.create((EObject)dataObject, path);
+ accessor.setAndRecyle(DataObjectUtil.getSetValue(accessor.getProperty(), value));
+ }
+ }
+
+ public static void setBigDecimal(DataObject dataObject, String path, BigDecimal value)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.set(property, DataObjectUtil.getSetValue(property, value));
+ }
+ else
+ {
+ DataObjectUtil.Accessor accessor = DataObjectUtil.Accessor.create((EObject)dataObject, path);
+ accessor.setAndRecyle(DataObjectUtil.getSetValue(accessor.getProperty(), value));
+ }
+ }
+
+ public static DataGraph getDataGraph(DataObject dataObject)
+ {
+ Resource resource = ((EObject)dataObject).eResource();
+ if (resource != null)
+ {
+ ResourceSet resourceSet = resource.getResourceSet();
+ if (resourceSet != null)
+ {
+ return (DataGraphImpl)EcoreUtil.getAdapter(resourceSet.eAdapters(), DataGraph.class);
+ }
+ }
+ return null;
+ }
+
+ public static ChangeSummary getChangeSummary(DataObject dataObject)
+ {
+ DataGraph dataGraph = getDataGraph(dataObject);
+ if (dataGraph != null)
+ {
+ return dataGraph.getChangeSummary();
+ }
+ // TODO: handle ChangeSummary-type property
+ return null;
+ }
+
+ public static void unset(DataObject dataObject, String path)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.unset(property);
+ }
+ else
+ {
+ DataObjectUtil.Accessor.create((EObject)dataObject, path).unsetAndRecyle();
+ }
+ }
+
+ public static boolean isSet(DataObject dataObject, String path)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ return dataObject.isSet(property);
+ }
+ else
+ {
+ return DataObjectUtil.Accessor.create(
+ (EObject)dataObject, path).isSetAndRecyle();
+ }
+ }
+
+ public static void set(DataObject dataObject, String path, Object value)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null)
+ {
+ dataObject.set(property, value);
+ }
+ else
+ {
+ DataObjectUtil.Accessor.create(
+ (EObject)dataObject, path).setAndRecyle(value);
+ }
+ }
+
+ public static Object get(DataObject dataObject, String path)
+ {
+ Property property = dataObject.getType().getProperty(path);
+ if (property != null) {
+ return dataObject.get(property);
+ } else {
+ return Accessor.create((EObject)dataObject, path).getAndRecyle();
+ }
+ }
+
+ public static BigDecimal getBigDecimal(Object value)
+ {
+ if (value instanceof BigDecimal)
+ {
+ return (BigDecimal)value;
+ }
+
+ if (value instanceof BigInteger)
+ {
+ return new BigDecimal((BigInteger)value);
+ }
+
+ if (value instanceof Number)
+ {
+ return new BigDecimal(((Number)value).doubleValue());
+ }
+
+ if (value instanceof String)
+ {
+ return new BigDecimal((String)value);
+ }
+
+ if (value == null)
+ {
+ return null;
+ }
+
+ throw new IllegalArgumentException("The value of type '" + value.getClass().getName() + "' cannot be converted to BigDecimal");
+ }
+
+ public static Object getSetValue(Property property, BigDecimal value)
+ {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature)property;
+ EClassifier eType = eStructuralFeature.getEType();
+ if (value == null)
+ {
+ return eType.getDefaultValue();
+ }
+
+ String name = eType.getInstanceClassName();
+ if (name == "java.math.BigDecimal")
+ {
+ return value;
+ }
+
+ if (name == "java.math.BigInteger")
+ {
+ return value.toBigInteger();
+ }
+
+ if (name == "java.lang.Byte" || name == "byte")
+ {
+ return new Byte(value.byteValue());
+ }
+
+ if (name == "java.lang.Double" || name == "double")
+ {
+ return new Double(value.doubleValue());
+ }
+
+ if (name == "java.lang.Float" || name == "float")
+ {
+ return new Float(value.floatValue());
+ }
+
+ if (name == "java.lang.Integer" || name == "int")
+ {
+ return new Integer(value.intValue());
+ }
+
+ if (name == "java.lang.Long" || name == "long")
+ {
+ return new Long(value.longValue());
+ }
+
+ if (name == "java.lang.Short" || name == "short")
+ {
+ return new Short(value.shortValue());
+ }
+
+ if (name == "java.lang.String")
+ {
+ return String.valueOf(value);
+ }
+
+ //Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return value;
+ }
+
+ public static BigInteger getBigInteger(Object value)
+ {
+ if (value instanceof BigInteger)
+ {
+ return (BigInteger)value;
+ }
+
+ if (value instanceof BigDecimal)
+ {
+ return ((BigDecimal)value).toBigInteger();
+ }
+
+ if (value instanceof Number)
+ {
+ return BigInteger.valueOf(((Number)value).longValue());
+ }
+
+ if (value instanceof String)
+ {
+ return new BigInteger((String)value);
+ }
+
+ if (value instanceof byte[])
+ {
+ return new BigInteger((byte[])value);
+ }
+
+ if (value == null)
+ {
+ return null;
+ }
+
+ throw new IllegalArgumentException("The value of type '" + value.getClass().getName() + "' cannot be converted to BigInteger");
+ }
+
+ public static Object getSetValue(Property property, BigInteger value)
+ {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature)property;
+ EClassifier eType = eStructuralFeature.getEType();
+ if (value == null)
+ {
+ return eType.getDefaultValue();
+ }
+
+ String name = eType.getInstanceClassName();
+ if (name == "java.math.BigInteger")
+ {
+ return value;
+ }
+
+ if (name == "java.math.BigDecimal")
+ {
+ return new BigDecimal(value);
+ }
+
+ if (name == "java.lang.Byte" || name == "byte")
+ {
+ return new Byte(value.byteValue());
+ }
+
+ if (name == "java.lang.Double" || name == "double")
+ {
+ return new Double(value.doubleValue());
+ }
+
+ if (name == "java.lang.Float" || name == "float")
+ {
+ return new Float(value.floatValue());
+ }
+
+ if (name == "java.lang.Integer" || name == "int")
+ {
+ return new Integer(value.intValue());
+ }
+
+ if (name == "java.lang.Long" || name == "long")
+ {
+ return new Long(value.longValue());
+ }
+
+ if (name == "java.lang.Short" || name == "short")
+ {
+ return new Short(value.shortValue());
+ }
+
+ if (name == "java.lang.String")
+ {
+ return String.valueOf(value);
+ }
+
+ if (name == "byte[]")
+ {
+ return value.toByteArray();
+ }
+
+ //Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return value;
+ }
+
+ public static boolean getBoolean(Object value)
+ {
+ if (value instanceof Boolean)
+ {
+ return ((Boolean)value).booleanValue();
+ }
+
+ if (value instanceof String)
+ {
+ return Boolean.valueOf((String)value).booleanValue();
+ }
+
+ if (value == null)
+ {
+ return false;
+ }
+
+ throw new IllegalArgumentException("The value of type '" + value.getClass().getName() + "' cannot be converted to boolean");
+ }
+
+ public static Object getSetValue(Property property, boolean value)
+ {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature)property;
+ String name = eStructuralFeature.getEType().getInstanceClassName();
+ if (name == "java.lang.Boolean" || name == "boolean")
+ {
+ return value ? Boolean.TRUE : Boolean.FALSE;
+ }
+
+ if (name == "java.lang.String")
+ {
+ return String.valueOf(value);
+ }
+
+ //Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return value ? Boolean.TRUE : Boolean.FALSE;
+ }
+
+ public static byte getByte(Object value)
+ {
+ if (value instanceof Number)
+ {
+ return ((Number)value).byteValue();
+ }
+
+ if (value instanceof String)
+ {
+ return Byte.parseByte((String)value);
+ }
+
+ if (value == null)
+ {
+ return 0;
+ }
+
+ throw new IllegalArgumentException("The value of type '" + value.getClass().getName() + "' cannot be converted to byte");
+ }
+
+ public static Object getSetValue(Property property, byte value)
+ {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature)property;
+ String name = eStructuralFeature.getEType().getInstanceClassName();
+ if (name == "java.lang.Byte" || name == "byte")
+ {
+ return new Byte(value);
+ }
+
+ if (name == "java.lang.Double" || name == "double")
+ {
+ return new Double(value);
+ }
+
+ if (name == "java.lang.Float" || name == "float")
+ {
+ return new Float(value);
+ }
+
+ if (name == "java.lang.Integer" || name == "int")
+ {
+ return new Integer(value);
+ }
+
+ if (name == "java.lang.Long" || name == "long")
+ {
+ return new Long(value);
+ }
+
+ if (name == "java.lang.Short" || name == "short")
+ {
+ return new Short(value);
+ }
+
+ if (name == "java.math.BigDecimal")
+ {
+ return getBigDecimal(new Byte(value));
+ }
+
+ if (name == "java.math.BigInteger")
+ {
+ return getBigInteger(new Byte(value));
+ }
+
+ if (name == "java.lang.String")
+ {
+ return String.valueOf(value);
+ }
+
+ //Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return new Byte(value);
+ }
+
+ public static byte[] getBytes(Object value)
+ {
+ if (value instanceof byte[])
+ {
+ return (byte[])value;
+ }
+
+ if (value instanceof BigInteger)
+ {
+ return ((BigInteger)value).toByteArray();
+ }
+
+ if (value == null)
+ {
+ return null;
+ }
+
+ throw new IllegalArgumentException("The value of type '" + value.getClass().getName() + "' cannot be converted to byte array");
+ }
+
+ public static Object getSetValue(Property property, byte[] value)
+ {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature)property;
+ EClassifier eType = eStructuralFeature.getEType();
+ if (value == null)
+ {
+ return eType.getDefaultValue();
+ }
+
+ String name = eType.getInstanceClassName();
+ if (name == "byte[]")
+ {
+ return value;
+ }
+
+ if (name == "java.math.BigInteger")
+ {
+ return new BigInteger(value);
+ }
+
+ //Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return value;
+ }
+
+ public static char getChar(Object value)
+ {
+ if (value instanceof Character)
+ {
+ return ((Character)value).charValue();
+ }
+
+ if (value instanceof String)
+ {
+ return ((String)value).charAt(0);
+ }
+
+ if (value == null)
+ {
+ return 0;
+ }
+
+ throw new IllegalArgumentException("The value of type '" + value.getClass().getName() + "' cannot be converted to char");
+ }
+
+ public static Object getSetValue(Property property, char value)
+ {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature)property;
+ String name = eStructuralFeature.getEType().getInstanceClassName();
+ if (name == "java.lang.Character" || name == "char")
+ {
+ return new Character(value);
+ }
+
+ if (name == "java.lang.String")
+ {
+ return String.valueOf(value);
+ }
+
+ //Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return new Character(value);
+ }
+
+ public static Date getDate(Object value)
+ {
+ if (value instanceof XMLCalendar)
+ {
+ return ((XMLCalendar)value).getDate();
+ }
+
+ if (value instanceof Date)
+ {
+ return (Date)value;
+ }
+
+ if (value instanceof Long)
+ {
+ return new Date(((Long)value).longValue());
+ }
+
+ if (value == null)
+ {
+ return null;
+ }
+
+ throw new IllegalArgumentException("The value of type '" + value.getClass().getName() + "' cannot be converted to Date");
+ }
+
+ public static Object getSetValue(Property property, Date value)
+ {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature)property;
+ EClassifier eType = eStructuralFeature.getEType();
+ if (value == null)
+ {
+ return eType.getDefaultValue();
+ }
+
+ String name = eType.getInstanceClassName();
+ if (name == "java.lang.Object")
+ {
+ String typeName = getDateTypeName((EDataType)eType);
+ if ("Date".equals(typeName))
+ {
+ return new XMLCalendar(value, XMLCalendar.DATE);
+ }
+ if ("DateTime".equals(typeName))
+ {
+ return new XMLCalendar(value, XMLCalendar.DATETIME);
+ }
+ // Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return value;
+ }
+
+ if (name == "java.lang.Long" || name == "long")
+ {
+ return new Long(value.getTime());
+ }
+ if (name == "java.lang.String")
+ {
+ return value.toString();
+ }
+
+ // Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return value;
+ }
+
+ protected static String getDateTypeName(EDataType eDataType)
+ {
+ String name = eDataType.getName();
+ if (("DateTime".equals(name)) || ("Date".equals(name)))
+ {
+ return name;
+ }
+
+ EDataType baseType = ExtendedMetaData.INSTANCE.getBaseType(eDataType);
+ if (baseType != null)
+ {
+ return getDateTypeName(baseType);
+ }
+
+ List memberTypes = ExtendedMetaData.INSTANCE.getMemberTypes(eDataType);
+ if (!memberTypes.isEmpty())
+ {
+ for (int i = 0, size = memberTypes.size(); i < size; ++i)
+ {
+ EDataType memberType = (EDataType)memberTypes.get(i);
+ String memberTypeName = getDateTypeName(memberType);
+ if (("DateTime".equals(memberTypeName)) || ("Date".equals(memberTypeName)))
+ {
+ return memberTypeName;
+ }
+ }
+ }
+
+ return "";
+ }
+
+ public static double getDouble(Object value)
+ {
+ if (value instanceof Number)
+ {
+ return ((Number)value).doubleValue();
+ }
+
+ if (value instanceof String)
+ {
+ return Double.parseDouble((String)value);
+ }
+
+ if (value == null)
+ {
+ return 0;
+ }
+
+ throw new IllegalArgumentException("The value of type '" + value.getClass().getName() + "' cannot be converted to double");
+ }
+
+ public static Object getSetValue(Property property, double value)
+ {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature)property;
+ String name = eStructuralFeature.getEType().getInstanceClassName();
+ if (name == "java.lang.Byte" || name == "byte")
+ {
+ return new Byte((byte)value);
+ }
+
+ if (name == "java.lang.Double" || name == "double")
+ {
+ return new Double(value);
+ }
+
+ if (name == "java.lang.Float" || name == "float")
+ {
+ return new Float(value);
+ }
+
+ if (name == "java.lang.Integer" || name == "int")
+ {
+ return new Integer((int)value);
+ }
+
+ if (name == "java.lang.Long" || name == "long")
+ {
+ return new Long((long)value);
+ }
+
+ if (name == "java.lang.Short" || name == "short")
+ {
+ return new Short((short)value);
+ }
+
+ if (name == "java.math.BigDecimal")
+ {
+ return getBigDecimal(new Double(value));
+ }
+
+ if (name == "java.math.BigInteger")
+ {
+ return getBigInteger(new Double(value));
+ }
+
+ if (name == "java.lang.String")
+ {
+ return String.valueOf(value);
+ }
+
+ //Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return new Double(value);
+ }
+
+ public static float getFloat(Object value)
+ {
+ if (value instanceof Number)
+ {
+ return ((Number)value).floatValue();
+ }
+
+ if (value instanceof String)
+ {
+ return Float.parseFloat((String)value);
+ }
+
+ if (value == null)
+ {
+ return 0;
+ }
+
+ throw new IllegalArgumentException("The value of type '" + value.getClass().getName() + "' cannot be converted to float");
+ }
+
+ public static Object getSetValue(Property property, float value)
+ {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature)property;
+ String name = eStructuralFeature.getEType().getInstanceClassName();
+ if (name == "java.lang.Byte" || name == "byte")
+ {
+ return new Byte((byte)value);
+ }
+
+ if (name == "java.lang.Double" || name == "double")
+ {
+ return new Double(value);
+ }
+
+ if (name == "java.lang.Float" || name == "float")
+ {
+ return new Float(value);
+ }
+
+ if (name == "java.lang.Integer" || name == "int")
+ {
+ return new Integer((int)value);
+ }
+
+ if (name == "java.lang.Long" || name == "long")
+ {
+ return new Long((long)value);
+ }
+
+ if (name == "java.lang.Short" || name == "short")
+ {
+ return new Short((short)value);
+ }
+
+ if (name == "java.math.BigDecimal")
+ {
+ return getBigDecimal(new Float(value));
+ }
+
+ if (name == "java.math.BigInteger")
+ {
+ return getBigInteger(new Float(value));
+ }
+
+ if (name == "java.lang.String")
+ {
+ return String.valueOf(value);
+ }
+
+ // Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return new Float(value);
+ }
+
+ public static int getInt(Object value)
+ {
+ if (value instanceof Number)
+ {
+ return ((Number)value).intValue();
+ }
+
+ if (value instanceof String)
+ {
+ return Integer.parseInt((String)value);
+ }
+
+ if (value == null)
+ {
+ return 0;
+ }
+
+ throw new IllegalArgumentException("The value of type '" + value.getClass().getName() + "' cannot be converted to int");
+ }
+
+ public static Object getSetValue(Property property, int value)
+ {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature)property;
+ String name = eStructuralFeature.getEType().getInstanceClassName();
+ if (name == "java.lang.Byte" || name == "byte")
+ {
+ return new Byte((byte)value);
+ }
+
+ if (name == "java.lang.Double" || name == "double")
+ {
+ return new Double(value);
+ }
+
+ if (name == "java.lang.Float" || name == "float")
+ {
+ return new Float(value);
+ }
+
+ if (name == "java.lang.Integer" || name == "int")
+ {
+ return new Integer(value);
+ }
+
+ if (name == "java.lang.Long" || name == "long")
+ {
+ return new Long(value);
+ }
+
+ if (name == "java.lang.Short" || name == "short")
+ {
+ return new Short((short)value);
+ }
+
+ if (name == "java.math.BigDecimal")
+ {
+ return getBigDecimal(new Integer(value));
+ }
+
+ if (name == "java.math.BigInteger")
+ {
+ return getBigInteger(new Integer(value));
+ }
+
+ if (name == "java.lang.String")
+ {
+ return String.valueOf(value);
+ }
+
+ // Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return new Integer(value);
+ }
+
+ public static long getLong(Object value)
+ {
+ if (value instanceof Number)
+ {
+ return ((Number)value).longValue();
+ }
+
+ if (value instanceof String)
+ {
+ return Long.parseLong((String)value);
+ }
+
+ if (value instanceof Date)
+ {
+ return ((Date)value).getTime();
+ }
+
+ if (value == null)
+ {
+ return 0;
+ }
+
+ throw new IllegalArgumentException("The value of type '" + value.getClass().getName() + "' cannot be converted to long");
+ }
+
+ public static Object getSetValue(Property property, long value)
+ {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature)property;
+ String name = eStructuralFeature.getEType().getInstanceClassName();
+ if (name == "java.lang.Byte" || name == "byte")
+ {
+ return new Byte((byte)value);
+ }
+
+ if (name == "java.lang.Double" || name == "double")
+ {
+ return new Double(value);
+ }
+
+ if (name == "java.lang.Float" || name == "float")
+ {
+ return new Float(value);
+ }
+
+ if (name == "java.lang.Integer" || name == "int")
+ {
+ return new Integer((int)value);
+ }
+
+ if (name == "java.lang.Long" || name == "long")
+ {
+ return new Long(value);
+ }
+
+ if (name == "java.lang.Short" || name == "short")
+ {
+ return new Short((short)value);
+ }
+
+ if (name == "java.math.BigDecimal")
+ {
+ return getBigDecimal(new Long(value));
+ }
+
+ if (name == "java.math.BigInteger")
+ {
+ return getBigInteger(new Long(value));
+ }
+
+ if (name == "java.lang.String")
+ {
+ return String.valueOf(value);
+ }
+
+ if (name == "java.util.Date")
+ {
+ return new Date(value);
+ }
+
+ // Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return new Long(value);
+ }
+
+ public static short getShort(Object value)
+ {
+ if (value instanceof Number)
+ {
+ return ((Number)value).shortValue();
+ }
+
+ if (value instanceof String)
+ {
+ return Short.parseShort((String)value);
+ }
+
+ if (value == null)
+ {
+ return 0;
+ }
+
+ throw new IllegalArgumentException("The value of type '" + value.getClass().getName() + "' cannot be converted to short");
+ }
+
+ public static Object getSetValue(Property property, short value)
+ {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature)property;
+ String name = eStructuralFeature.getEType().getInstanceClassName();
+ if (name == "java.lang.Byte" || name == "byte")
+ {
+ return new Byte((byte)value);
+ }
+
+ if (name == "java.lang.Double" || name == "double")
+ {
+ return new Double(value);
+ }
+
+ if (name == "java.lang.Float" || name == "float")
+ {
+ return new Float(value);
+ }
+
+ if (name == "java.lang.Integer" || name == "int")
+ {
+ return new Integer(value);
+ }
+
+ if (name == "java.lang.Long" || name == "long")
+ {
+ return new Long(value);
+ }
+
+ if (name == "java.lang.Short" || name == "short")
+ {
+ return new Short(value);
+ }
+
+ if (name == "java.math.BigDecimal")
+ {
+ return getBigDecimal(new Short(value));
+ }
+
+ if (name == "java.math.BigInteger")
+ {
+ return getBigInteger(new Short(value));
+ }
+
+ if (name == "java.lang.String")
+ {
+ return String.valueOf(value);
+ }
+
+ // Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return new Short(value);
+ }
+
+ public static String getString(Object value)
+ {
+ if (value instanceof String)
+ {
+ return (String)value;
+ }
+
+ if (value instanceof Number || value instanceof Boolean || value instanceof Character)
+ {
+ return String.valueOf(value);
+ }
+
+ if (value == null)
+ {
+ return null;
+ }
+
+ throw new IllegalArgumentException("The value of type '" + value.getClass().getName() + "' cannot be converted to String");
+ }
+
+ public static Object getSetValue(Property property, String value)
+ {
+ EStructuralFeature eStructuralFeature = (EStructuralFeature)property;
+ EClassifier eType = eStructuralFeature.getEType();
+ if (value == null)
+ {
+ return eType.getDefaultValue();
+ }
+
+ String name = eType.getInstanceClassName();
+ if (name == "java.lang.String")
+ {
+ return value;
+ }
+
+ if (name == "java.lang.Byte" || name == "byte")
+ {
+ return Byte.valueOf(value);
+ }
+
+ if (name == "java.lang.Double" || name == "double" || name == "java.lang.Number")
+ {
+ return Double.valueOf(value);
+ }
+
+ if (name == "java.lang.Float" || name == "float")
+ {
+ return new Float(value);
+ }
+
+ if (name == "java.lang.Integer" || name == "int")
+ {
+ return Integer.valueOf(value);
+ }
+
+ if (name == "java.lang.Long" || name == "long")
+ {
+ return Long.valueOf(value);
+ }
+
+ if (name == "java.lang.Short" || name == "short")
+ {
+ return Short.valueOf(value);
+ }
+
+ if (name == "java.lang.Character" || name == "char")
+ {
+ return new Character(value.charAt(0));
+ }
+
+ if (name == "java.math.BigDecimal")
+ {
+ return getBigDecimal(value);
+ }
+
+ if (name == "java.math.BigInteger")
+ {
+ return getBigInteger(value);
+ }
+
+ if (name == "java.lang.Boolean" || name == "boolean")
+ {
+ return Boolean.valueOf(value);
+ }
+
+ // Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return value;
+ }
+
+ public static EStructuralFeature getOpenFeature(EObject eObject, int featureID)
+ {
+ EClass eClass = eObject.eClass();
+ int openFeatureCount = featureID - eClass.getFeatureCount();
+ Set openFeatureSet = new HashSet();
+ for (int i = 0, count = eClass.getEAllStructuralFeatures().size(); i < count; ++i)
+ {
+ EStructuralFeature eStructuralFeature = eClass.getEStructuralFeature(i);
+ if (!eStructuralFeature.isDerived() && FeatureMapUtil.isFeatureMap(eStructuralFeature))
+ {
+ List features = (List)eObject.eGet(eStructuralFeature);
+ for (int j = 0, size = features.size(); j < size; ++j)
+ {
+ FeatureMap.Entry entry = (FeatureMap.Entry)features.get(j);
+ EStructuralFeature entryFeature = entry.getEStructuralFeature();
+ if (openFeatureSet.add(entryFeature))
+ {
+ if (--openFeatureCount < 0) return entryFeature;
+ }
+ }
+ }
+ }
+ throw new IndexOutOfBoundsException();
+ }
+
+ public static EStructuralFeature getOpenFeature(EObject eObject, String featureName)
+ {
+ EClass eClass = eObject.eClass();
+ Set openFeatureSet = new HashSet();
+ for (int i = 0, count = eClass.getEAllStructuralFeatures().size(); i < count; ++i)
+ {
+ EStructuralFeature eStructuralFeature = eClass.getEStructuralFeature(i);
+ if (/*!eStructuralFeature.isDerived() && */FeatureMapUtil.isFeatureMap(eStructuralFeature))
+ {
+ List features = (List)eObject.eGet(eStructuralFeature);
+ for (int j = 0, size = features.size(); j < size; ++j)
+ {
+ FeatureMap.Entry entry = (FeatureMap.Entry)features.get(j);
+ EStructuralFeature entryFeature = entry.getEStructuralFeature();
+ if (openFeatureSet.add(entryFeature))
+ {
+ Property property = (Property)entryFeature;
+ if (property.getName().equals(featureName)) return entryFeature;
+
+ List aliasNames = property.getAliasNames();
+ for (int aliasCount = aliasNames.size(); aliasCount > 0; )
+ {
+ if (aliasNames.get(--aliasCount).equals(featureName)) return entryFeature;
+ }
+ }
+ }
+ }
+ }
+ throw new IllegalArgumentException("Class '" + eObject.eClass().getName() + "' does not have a feature named '" + featureName + "'");
+ }
+
+ public static List getAliasNames(EStructuralFeature eStructuralFeature)
+ {
+ List list = SDOExtendedMetaData.INSTANCE.getAliasNames(eStructuralFeature);
+ if (list == null) {
+ list = new ArrayList();
+ }
+ return list;
+ }
+
+ public static List getAliasNames(EClassifier eClassifier)
+ {
+ List list = SDOExtendedMetaData.INSTANCE.getAliasNames(eClassifier);
+ if (list == null) {
+ list = new ArrayList();
+ }
+ return list;
+ }
+
+ /**
+ * Process the default EMF path and minimal XPath syntax.
+ * This design is still under review and construction.
+ *
+ * Syntax:
+ *
+ *<pre>
+ * path = /? (step '/')* step
+ * step = feature
+ * | feature '.' index_from_0
+ * | feature '[' index_from_1 ']'
+ * | reference '[' attribute '=' value ']'
+ * | ..
+ * | '@' step
+ *</pre>
+ *
+ * feature = the name of an attribute or reference
+ * attribute = the name of an attribute
+ * reference = the name of a reference
+ * index = positive integer
+ * value = the string value of an attribute
+ * leading / begins at the root
+ * .. is containing object
+ *
+ * features must be multi-valued to use '.' and '[' operations.
+ * Only the last step may have an attribute as the feature.
+ */
+ public static final class Accessor //TODO rewrite this using SDO APIs
+ {
+ /**
+ * Creates an accessor for the path of the object.
+ */
+ public static Accessor create(EObject eObject, String path)
+ {
+ Accessor result = pool.get();
+ result.init(eObject, path);
+ return result;
+ }
+
+ /**
+ * Only the get and recycle methods should be call; they are the only synchronized methods.
+ */
+ protected static class Pool extends BasicEList
+ {
+ protected Accessor[] accessors;
+
+ public Pool()
+ {
+ super(10);
+ }
+
+ protected Object[] newData(int capacity)
+ {
+ return accessors = new Accessor [capacity];
+ }
+
+ /**
+ * Returns a recyled instance or a new instance.
+ */
+ public synchronized Accessor get()
+ {
+ if (size > 0)
+ {
+ return accessors[--size];
+ }
+ else
+ {
+ return new Accessor();
+ }
+ }
+
+ /** Safely gives the accessor back for recycled use.
+ */
+ public synchronized void recycle(Accessor accessor)
+ {
+ int minimumCapacity = size + 1;
+ if (minimumCapacity > data.length)
+ {
+ grow(minimumCapacity);
+ }
+ accessors[size++] = accessor;
+ }
+ }
+
+ /**
+ * A static thread safe pool of Accessors.
+ */
+ static final Pool pool = new Pool();
+
+ protected static final int NO_INDEX = -1;
+
+ protected EObject eObject;
+
+ protected EStructuralFeature feature;
+
+ protected int index;
+
+ protected Accessor()
+ {
+ }
+
+ protected Accessor(EObject eObject, String path)
+ {
+ init(eObject, path);
+ }
+
+ protected void init(EObject eObject, String path)
+ {
+ this.eObject = eObject;
+
+ // This should only be called with a path right now.
+ //
+ //feature = getType(eObject).getProperty(path).getEStructuralFeature();
+ //if (feature == null)
+ {
+ process(path);
+ }
+ //else
+ {
+ //index = NO_INDEX;
+ }
+ }
+
+ public Object get()
+ {
+ if (feature == null)
+ {
+ return eObject;
+ }
+ else
+ {
+ Object value = eObject.eGet(feature, true);
+ if (index >= 0)
+ {
+ value = ((List)value).get(index);
+ if (value instanceof FeatureMap.Entry)
+ {
+ value = ((FeatureMap.Entry)value).getValue();
+ }
+ }
+ else if (FeatureMapUtil.isFeatureMap(feature))
+ {
+ value = new BasicSequence((FeatureMap.Internal)value);
+ }
+ return value;
+ }
+ }
+
+ public Object getAndRecyle()
+ {
+ Object result = get();
+ pool.recycle(this);
+ return result;
+ }
+
+ public void set(Object newValue)
+ {
+ if (index >= 0)
+ {
+ List list = (List)eObject.eGet(feature, true);
+ list.set(index, newValue);
+ }
+ else
+ {
+ // EATM newValue = string2Enum(feature, newValue);
+ eObject.eSet(feature, newValue);
+ }
+ }
+
+ public void setAndRecyle(Object newValue)
+ {
+ set(newValue);
+ pool.recycle(this);
+ }
+
+ public boolean isSet()
+ {
+ return eObject.eIsSet(feature);
+ }
+
+ public boolean isSetAndRecyle()
+ {
+ boolean result = isSet();
+ pool.recycle(this);
+ return result;
+ }
+
+ public void unset()
+ {
+ eObject.eUnset(feature);
+ }
+
+ public void unsetAndRecyle()
+ {
+ unset();
+ pool.recycle(this);
+ }
+
+ public void recycle()
+ {
+ pool.recycle(this);
+ }
+
+ public EObject getEObject()
+ {
+ return eObject;
+ }
+
+ protected void setEObject(EObject eObject)
+ {
+ this.eObject = eObject;
+ feature = null;
+ index = NO_INDEX;
+ }
+
+ public EStructuralFeature getEStructuralFeature()
+ {
+ return feature;
+ }
+
+ public Property getProperty()
+ {
+ return (Property)feature;
+ }
+
+ protected void setFeatureName(String name)
+ {
+ if (name != null)
+ {
+ feature = (EStructuralFeature)((DataObject)eObject).getProperty(name);
+ }
+ else
+ {
+ feature = null;
+ }
+ index = NO_INDEX;
+ }
+
+ protected int getIndex()
+ {
+ return index;
+ }
+
+ protected void setIndex(int index)
+ {
+ this.index = index;
+ if (!FeatureMapUtil.isMany(eObject, feature))
+ {
+ throw new IndexOutOfBoundsException("Index applies only to multi-valued features.");
+ }
+ }
+
+ protected void process(String pathString)
+ {
+ TokenList tokens = new TokenList(pathString.toCharArray());
+ String token;
+ int size = tokens.size();
+ int x = 0;
+
+ if ("/".equals(tokens.peek(0)))
+ {
+ setEObject(EcoreUtil.getRootContainer(eObject));
+ x++;
+ }
+
+ for (; x < size; x++)
+ {
+ token = tokens.peek(x);
+ char c = token.charAt(0);
+ if ('/' == c)
+ {
+ setEObject((EObject)get());
+ }
+ else if ("..".equals(token))
+ {
+ EObject container = eObject.eContainer();
+ if (container == null)
+ {
+ throw new IllegalArgumentException("No containing object for " + eObject);
+ }
+ setEObject(container);
+ }
+ else if ('.' == c)
+ {
+ x++; // skip .
+ token = tokens.peek(x);
+ int index = Integer.parseInt(token);
+ setIndex(index);
+ }
+ else if ('[' == c)
+ {
+ x++; // skip [
+ token = tokens.peek(x); // name or index
+ char following = tokens.peek(x + 1).charAt(0);
+ if ('=' != following)
+ {
+ int index = Integer.parseInt(token) - 1;
+ setIndex(index);
+ x++; // skip ]
+ }
+ else
+ {
+ x++; // done name
+ x++; // skip =
+ String attributeValue = tokens.peek(x); // value
+ if ("\"".equals(attributeValue))
+ {
+ x++; // skip "
+ attributeValue = tokens.peek(++x);
+ }
+ x++; // skip ]
+ int index = matchingIndex((List)get(), token, attributeValue);
+ if (index < 0)
+ {
+ setEObject(null);
+ }
+ else
+ {
+ setIndex(index);
+ }
+ }
+ }
+ else if ('@' == c)
+ {
+ x++; // skip @
+ }
+ else
+ {
+ setFeatureName(token);
+ }
+ }
+ }
+
+ protected static int matchingIndex(List eObjects, String attributeName, String attributeValue)
+ {
+ for (int i = 0, size = eObjects.size(); i < size; i++)
+ {
+ EObject eObject = (EObject)eObjects.get(i);
+ EStructuralFeature feature = (EStructuralFeature)((Type)eObject.eClass()).getProperty(attributeName);
+ if (feature != null)
+ {
+ Object test = eObject.eGet(feature, true);
+ if (test != null)
+ {
+ String testString = EcoreUtil.convertToString((EDataType)feature.getEType(), test);
+ if (attributeValue.equals(testString))
+ {
+ return i;
+ }
+ }
+ }
+ }
+ return -1;
+ }
+
+ protected static class TokenList extends BasicEList
+ {
+ public TokenList(char[] path)
+ {
+ super(4);
+
+ int pathLength = path.length;
+ StringBuffer token = new StringBuffer();
+ char cPrev;
+ char c = 0;
+ char cNext;
+ char stringConstant = 0;
+ for (int pos = 0; pos < pathLength; pos++)
+ {
+ cPrev = c;
+ c = path[pos];
+ cNext = pos < pathLength - 1 ? path[pos + 1] : 0;
+
+ if (stringConstant != 0)
+ {
+ if (c == stringConstant)
+ {
+ endToken(token, true);
+ stringConstant = 0;
+ }
+ else
+ {
+ token.append(c);
+ }
+ }
+ else
+ {
+ switch (c)
+ {
+ case ' ':
+ case 0xA:
+ case 0xD:
+ case 0x9:
+ if (cPrev != ' ')
+ {
+ endToken(token, false);
+ }
+ c = ' ';
+ break;
+
+ case '"':
+ case '\'':
+ endToken(token, false);
+ stringConstant = c;
+ break;
+
+ // double or single tokens
+ case '/':
+ case ':':
+ case '.':
+ if (cPrev != c)
+ {
+ endToken(token, false);
+ }
+ token.append(c);
+ if (cNext != c)
+ {
+ endToken(token, false);
+ }
+ break;
+
+ // single tokens
+ case '*':
+ case '@':
+ case '[':
+ case ']':
+ case '(':
+ case ')':
+ case '|':
+ endToken(token, false);
+ add(String.valueOf(c));
+ break;
+
+ // TODO: < > <= >= + - !=
+ case '!':
+ endToken(token, false);
+ token.append(c);
+ break;
+
+ case '=':
+ endToken(token, false);
+ add(String.valueOf(c));
+ break;
+
+ default:
+ token.append(c);
+ }
+ }
+ }
+ endToken(token, false);
+ }
+
+ public String peek()
+ {
+ return size > 0 ? (String)data[0] : " ";
+ }
+
+ public String peek(int index)
+ {
+ return index < size ? (String)data[index] : " ";
+ }
+
+ public TokenList pop()
+ {
+ remove(0);
+ return this;
+ }
+
+ public TokenList pop(int count)
+ {
+ while (count-- > 0)
+ {
+ remove(count);
+ }
+ return this;
+ }
+
+ protected void endToken(StringBuffer token, boolean includeEmpty)
+ {
+ if (includeEmpty || token.length() > 0)
+ {
+ add(token.toString());
+ }
+ token.setLength(0);
+ }
+
+ protected boolean canContainNull()
+ {
+ return false;
+ }
+
+ protected Object[] newData(int capacity)
+ {
+ return new String [capacity];
+ }
+ }
+
+ public String toString()
+ {
+ StringBuffer result = new StringBuffer("Accessor (object:");
+ result.append(eObject == null ? "null" : eObject.toString());
+ result.append(", feature:");
+ result.append(feature == null ? "null" : feature.getName());
+ result.append(", index:");
+ result.append(index);
+ result.append(")");
+ return result.toString();
+ }
+ }
+
+ public static Type getType(DataObject dataObject, String namespaceURI, String typeName)
+ {
+ DataGraph dataGraph = dataObject.getDataGraph();
+ if (dataGraph != null)
+ {
+ return dataGraph.getType(namespaceURI, typeName);
+ }
+ else
+ {
+ //TODO think about where else to find the type
+ return TypeHelper.INSTANCE.getType(namespaceURI, typeName);
+ }
+ }
+
+ public static Property getProperty(DataObject dataObject, String propertyName)
+ {
+ Property property = dataObject.getType().getProperty(propertyName);
+ if (property == null)
+ {
+ property = (Property)DataObjectUtil.getOpenFeature((EObject)dataObject, propertyName);
+ //throw new IllegalArgumentException("Type '" + dataObject.getType().getName() + "' does not have a property named '" + propertyName + "'");
+ }
+
+ return property;
+ }
+
+ public static Property getProperty(DataObject dataObject, int propertyIndex)
+ {
+ List typeProperties = dataObject.getType().getProperties();
+
+ Property property = propertyIndex < typeProperties.size() ?
+ (Property)typeProperties.get(propertyIndex) :
+ (Property)dataObject.getInstanceProperties().get(propertyIndex);
+
+ //FB maybe should catch bad index exception and throw IllegalArgumentException?
+ return property;
+ }
+
+ public static Property getContainmentProperty(Property property)
+ {
+ if (property.isContainment())
+ {
+ return property;
+ }
+ throw new IllegalArgumentException("The property '" + property.getName() + "' of '" + property.getContainingType().getName()
+ + "' isn't a containment");
+ }
+
+ public static DataObject create(Type type)
+ {
+ return (DataObject)EcoreUtil.create((EClass)type);
+ }
+
+ public static ResourceSet createResourceSet()
+ {
+ ResourceSet result = new ResourceSetImpl();
+ configureResourceSet(result);
+ return result;
+ }
+
+ protected static Map registrations;
+
+ protected static Map getRegistrations()
+ {
+ if (registrations == null)
+ {
+ Map result = new HashMap();
+
+ if (!(Resource.Factory.Registry.INSTANCE.getFactory(URI.createURI("*.datagraph")) instanceof DataGraphResourceFactoryImpl))
+ {
+ result.put("datagraph", new DataGraphResourceFactoryImpl());
+ }
+ if (!(Resource.Factory.Registry.INSTANCE.getFactory(URI.createURI("*.ecore")) instanceof EcoreResourceFactoryImpl))
+ {
+ result.put("ecore", new EcoreResourceFactoryImpl());
+ }
+
+ if (!(Resource.Factory.Registry.INSTANCE.getFactory(URI.createURI("*.emof")) instanceof EMOFResourceFactoryImpl))
+ {
+ result.put("emof", new EMOFResourceFactoryImpl());
+ }
+
+ if (Resource.Factory.Registry.INSTANCE.getFactory(URI.createURI("*.xsd")) == null)
+ {
+ result.put("xsd", new XSDResourceFactoryImpl());
+ }
+
+ //FIXME ClassCastException in XSDHelper.define() if you give it a WSDL file
+ // Patch for JIRA TUSCANY-42
+ if (Resource.Factory.Registry.INSTANCE.getFactory(URI.createURI("*.wsdl")) == null)
+ {
+ result.put("wsdl", new XSDResourceFactoryImpl());
+ }
+
+ if (Resource.Factory.Registry.INSTANCE.getFactory(URI.createURI("*.*")) == null)
+ {
+ result.put("*", new XMLResourceFactoryImpl());
+ }
+
+ registrations = result;
+ }
+
+ return registrations;
+ }
+
+ protected static void configureResourceSet(ResourceSet resourceSet)
+ {
+ resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().putAll(getRegistrations());
+ }
+
+ public static EClass createDocumentRoot()
+ {
+ EClass documentRootEClass = EcoreFactory.eINSTANCE.createEClass();
+ ExtendedMetaData.INSTANCE.setName(documentRootEClass, "");
+ ExtendedMetaData.INSTANCE.setContentKind(documentRootEClass, ExtendedMetaData.MIXED_CONTENT);
+
+ EAttribute mixed = EcoreFactory.eINSTANCE.createEAttribute();
+ mixed.setName("mixed");
+ mixed.setEType(EcorePackage.eINSTANCE.getEFeatureMapEntry());
+ mixed.setUpperBound(EStructuralFeature.UNBOUNDED_MULTIPLICITY);
+ ExtendedMetaData.INSTANCE.setName(mixed, ":mixed");
+ ExtendedMetaData.INSTANCE.setFeatureKind(mixed, ExtendedMetaData.ELEMENT_WILDCARD_FEATURE);
+ documentRootEClass.getEStructuralFeatures().add(mixed);
+
+ EReference xmlnsPrefixMap = EcoreFactory.eINSTANCE.createEReference();
+ xmlnsPrefixMap.setName("xMLNSPrefixMap");
+ xmlnsPrefixMap.setEType(EcorePackage.eINSTANCE.getEStringToStringMapEntry());
+ xmlnsPrefixMap.setUpperBound(EStructuralFeature.UNBOUNDED_MULTIPLICITY);
+ xmlnsPrefixMap.setContainment(true);
+ xmlnsPrefixMap.setTransient(true);
+ ExtendedMetaData.INSTANCE.setName(xmlnsPrefixMap, "xmlns:prefix");
+ ExtendedMetaData.INSTANCE.setFeatureKind(xmlnsPrefixMap, ExtendedMetaData.ATTRIBUTE_FEATURE);
+ documentRootEClass.getEStructuralFeatures().add(xmlnsPrefixMap);
+
+ EReference xsiSchemaLocation = EcoreFactory.eINSTANCE.createEReference();
+ xsiSchemaLocation.setName("xSISchemaLocation");
+ xsiSchemaLocation.setEType(EcorePackage.eINSTANCE.getEStringToStringMapEntry());
+ xsiSchemaLocation.setUpperBound(EStructuralFeature.UNBOUNDED_MULTIPLICITY);
+ xsiSchemaLocation.setContainment(true);
+ xsiSchemaLocation.setTransient(true);
+ ExtendedMetaData.INSTANCE.setName(xsiSchemaLocation, "xsi:schemaLocation");
+ ExtendedMetaData.INSTANCE.setFeatureKind(xsiSchemaLocation, ExtendedMetaData.ATTRIBUTE_FEATURE);
+ documentRootEClass.getEStructuralFeatures().add(xsiSchemaLocation);
+
+ return documentRootEClass;
+ }
+
+ /**
+ * Configure EMF to support the SDO runtime by registering a specialized Ecore factory, SDOEcoreFactory.
+ * This static initializion must run before any SDO metadata is created or loaded.
+ * As long as SDO helper classes (e.g., TypeHelper, XMLHelper, etc.) are accessed though their
+ * corresponding INSTANCE fields (e.g., TypeHelper.INSTANCE), or using the SDOUtil methods (e.g.,
+ * SDOUtil.createTypeHelper(), this will always be the case.
+ */
+ static
+ {
+ EPackage.Registry.INSTANCE.put(EcorePackage.eNS_URI, new EPackage.Descriptor()
+ {
+ public EPackage getEPackage()
+ {
+ return EcorePackage.eINSTANCE;
+ }
+
+ public EFactory getEFactory()
+ {
+ return new SDOFactoryImpl.SDOEcoreFactory();
+ }
+ });
+ }
+
+ public static void initRuntime()
+ {
+ // NOOP since init is done during static initialization of this class. See above.
+ }
+
+ /*
+ public static Object get(org.apache.tuscany.sdo.model.Property property, int propertyIndex) {
+ switch(propertyIndex)
+ {
+ case ModelPackageImpl.PROPERTY__ALIAS_NAME:
+ return property.getAliasName();
+ case ModelPackageImpl.PROPERTY__ANY:
+ return property.getAny();
+ case ModelPackageImpl.PROPERTY__ANY_ATTRIBUTE:
+ return property.getAnyAttribute();
+ case ModelPackageImpl.PROPERTY__CONTAINMENT:
+ return Boolean.valueOf(property.isContainment());
+ case ModelPackageImpl.PROPERTY__DEFAULT:
+ return property.getDefault_();
+ case ModelPackageImpl.PROPERTY__MANY:
+ return Boolean.valueOf(property.isMany());
+ case ModelPackageImpl.PROPERTY__NAME:
+ return property.getName();
+ case ModelPackageImpl.PROPERTY__OPPOSITE:
+ return property.getOpposite_();
+ case ModelPackageImpl.PROPERTY__READ_ONLY:
+ return Boolean.valueOf(property.isReadOnly());
+ case ModelPackageImpl.PROPERTY__TYPE:
+ return property.getType_();
+ }
+ return null;
+ }
+
+ public static boolean isSet(org.apache.tuscany.sdo.model.Property property, int propertyIndex) {
+ switch(propertyIndex)
+ {
+ case ModelPackageImpl.PROPERTY__ALIAS_NAME:
+ return !property.getAliasName().isEmpty();
+ case ModelPackageImpl.PROPERTY__ANY:
+ return false;
+ case ModelPackageImpl.PROPERTY__ANY_ATTRIBUTE:
+ return false;
+ case ModelPackageImpl.PROPERTY__CONTAINMENT:
+ return property.isSetContainment();
+ case ModelPackageImpl.PROPERTY__DEFAULT:
+ return property.getDefault_() != null;
+ case ModelPackageImpl.PROPERTY__MANY:
+ return property.isSetMany();
+ case ModelPackageImpl.PROPERTY__NAME:
+ return property.getName() != null;
+ case ModelPackageImpl.PROPERTY__OPPOSITE:
+ return property.getOpposite_() != null;
+ case ModelPackageImpl.PROPERTY__READ_ONLY:
+ return property.isSetReadOnly();
+ case ModelPackageImpl.PROPERTY__TYPE:
+ return property.getType_() != null;
+ }
+ return false;
+ }
+
+ public static Object get(org.apache.tuscany.sdo.model.Type type, int propertyIndex) {
+ switch (propertyIndex)
+ {
+ case ModelPackageImpl.TYPE__BASE_TYPE:
+ return type.getBaseType();
+ case ModelPackageImpl.TYPE__PROPERTY:
+ return type.getProperty();
+ case ModelPackageImpl.TYPE__ALIAS_NAME:
+ return type.getAliasName();
+ case ModelPackageImpl.TYPE__ANY:
+ return type.getAny();
+ case ModelPackageImpl.TYPE__ABSTRACT:
+ return Boolean.valueOf(type.isAbstract());
+ case ModelPackageImpl.TYPE__DATA_TYPE:
+ return Boolean.valueOf(type.isDataType());
+ case ModelPackageImpl.TYPE__NAME:
+ return type.getName();
+ case ModelPackageImpl.TYPE__OPEN:
+ return Boolean.valueOf(type.isOpen());
+ case ModelPackageImpl.TYPE__SEQUENCED:
+ return Boolean.valueOf(type.isSequenced());
+ case ModelPackageImpl.TYPE__URI:
+ return type.getUri();
+ case ModelPackageImpl.TYPE__ANY_ATTRIBUTE:
+ return type.getAnyAttribute();
+ }
+ return null;
+ }
+
+ public static boolean isSet(org.apache.tuscany.sdo.model.Type type, int propertyIndex) {
+ //FB Note that this implementation has the undesirable effect of invoking lazy creation of feature lists
+ switch (propertyIndex)
+ {
+ case ModelPackageImpl.TYPE__BASE_TYPE:
+ return !type.getBaseType().isEmpty();
+ case ModelPackageImpl.TYPE__PROPERTY:
+ return !type.getProperty().isEmpty();
+ case ModelPackageImpl.TYPE__ALIAS_NAME:
+ return !type.getAliasName().isEmpty();
+ case ModelPackageImpl.TYPE__ANY:
+ return false;
+ case ModelPackageImpl.TYPE__ABSTRACT:
+ return type.isSetAbstract();
+ case ModelPackageImpl.TYPE__DATA_TYPE:
+ return type.isSetDataType();
+ case ModelPackageImpl.TYPE__NAME:
+ return type.getName() != null;
+ case ModelPackageImpl.TYPE__OPEN:
+ return type.isSetOpen();
+ case ModelPackageImpl.TYPE__SEQUENCED:
+ return type.isSetSequenced();
+ case ModelPackageImpl.TYPE__URI:
+ return type.getUri() != null;
+ case ModelPackageImpl.TYPE__ANY_ATTRIBUTE:
+ return false;
+ }
+ return false;
+ }
+ */
+
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java
new file mode 100644
index 0000000000..834176bfab
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java
@@ -0,0 +1,543 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.lang.reflect.Field;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.security.AccessController;
+import java.security.PrivilegedExceptionAction;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.tuscany.sdo.SDOExtendedMetaData;
+import org.apache.tuscany.sdo.SDOFactory;
+import org.apache.tuscany.sdo.SDOPackage;
+import org.apache.tuscany.sdo.SimpleAnyTypeDataObject;
+import org.apache.tuscany.sdo.helper.DataFactoryImpl;
+import org.apache.tuscany.sdo.helper.SDOExtendedMetaDataImpl;
+import org.apache.tuscany.sdo.helper.TypeHelperImpl;
+import org.apache.tuscany.sdo.helper.XMLHelperImpl;
+import org.apache.tuscany.sdo.helper.XSDHelperImpl;
+import org.apache.tuscany.sdo.impl.DataGraphImpl;
+import org.apache.tuscany.sdo.impl.DynamicDataObjectImpl;
+import org.apache.tuscany.sdo.model.impl.ModelPackageImpl;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EDataType;
+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.impl.EPackageRegistryImpl;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Type;
+import commonj.sdo.helper.DataFactory;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
+
+/**
+ * This class provides some useful static utility functions which are not specified in the SDO
+ * specification itself. Use of the functions in this class is recommended, instead of resorting
+ * to low-level implementation-specific APIs.
+ */
+public final class SDOUtil
+{
+ /**
+ * Create a DataObject wrapper for an instance of the specified dataType.
+ * This method is typically used to create a root object that can be passed to the XMLHelper.save()
+ * method when the root element to be serialized is an XMLSchema simpleType.
+ * @param dataType a Type for which isDataType() returns true.
+ * @param value the instance value.
+ * @return a DataObject wrapper for the specified value.
+ */
+ public static DataObject createDataTypeWrapper(Type dataType, Object value)
+ {
+ SimpleAnyTypeDataObject simpleAnyType = SDOFactory.eINSTANCE.createSimpleAnyTypeDataObject();
+ simpleAnyType.setInstanceType((EDataType)dataType);
+ simpleAnyType.setValue(value);
+ return simpleAnyType;
+ }
+
+ /**
+ * Creates an instance of a data type from the specified string.
+ * @param dataType a Type, for which isDataType() returns true, to instantiate.
+ * @param literal the string value of the dataType.
+ * @return an instance of the dataType.
+ * @see #convertToString(Type, Object)
+ */
+ public static Object createFromString(Type dataType, String literal)
+ {
+ return EcoreUtil.createFromString((EDataType)dataType, literal);
+ }
+
+ /**
+ * Converts an instance of a data type to a string literal representation.
+ * @param dataType the Type, for which isDataType() returns true, of the value to convert.
+ * @param value a value of the dataType.
+ * @return the string literal representation of the value.
+ * @see #createFromString(Type, String)
+ */
+ public static String convertToString(Type dataType, Object value)
+ {
+ return EcoreUtil.convertToString((EDataType)dataType, value);
+ }
+
+ /**
+ * Get the SDO built-in type corresponding to the specified XSD type in the XML Schema
+ * namespace ("http://www.w3.org/2001/XMLSchema").
+ * @param xsdType a type name in the XML Schema namespace.
+ * @return the SDO built-in Type corresponding to the specified XSD type.
+ */
+ public static Type getXSDSDOType(String xsdType)
+ {
+ Type type = null;
+ if ("anyType".equals(xsdType)) {
+ type = (Type)SDOPackage.eINSTANCE.getDataObject();
+ } else {
+ String name = (String)xsdToSdoMappings.get(xsdType);
+ if (name != null) {
+ type = (Type)ModelPackageImpl.eINSTANCE.getEClassifier(name);
+ } else {
+ type = (Type)SDOExtendedMetaData.INSTANCE.getType(XMLTypePackage.eINSTANCE, xsdType);
+ }
+ }
+ return type;
+ }
+
+ /**
+ * Get the SDO built-in type corresponding to the specified Java instanceClass.
+ * @param javaClass the Java instanceClass of the type.
+ * @return the SDO built-in Type corresponding to the specified instanceClass.
+ */
+ public static Type getJavaSDOType(Class javaClass)
+ {
+ String name = (String)javaToSdoMappings.get(javaClass);
+ if (name != null)
+ {
+ return (Type)ModelPackageImpl.eINSTANCE.getEClassifier(name);
+ }
+ return null;
+ }
+
+ /**
+ * Create an empty data graph.
+ * @return the new data graph instance.
+ */
+ public static DataGraph createDataGraph()
+ {
+ return SDOFactory.eINSTANCE.createDataGraph();
+ }
+
+ /**
+ * Load a serialized data graph from the specified insputStream.
+ * @param inputStream the inputStream of the data graph.
+ * @param options loader control options, or null.
+ * @return the de-serialized data graph.
+ * @throws IOException
+ */
+ public static DataGraph loadDataGraph(InputStream inputStream, Map options) throws IOException
+ {
+ ResourceSet resourceSet = DataObjectUtil.createResourceSet();
+ Resource resource = resourceSet.createResource(URI.createURI("all.datagraph"));
+ resource.load(inputStream, options);
+ return (DataGraph)resource.getContents().get(0);
+ }
+
+ /**
+ * Serialize the specified data graph to the specified outputStream.
+ * @param dataGraph the data graph to save.
+ * @param outputStream the outputStream for the data graph.
+ * @param options serializer control options, or null.
+ * @throws IOException
+ */
+ public static void saveDataGraph(DataGraph dataGraph, OutputStream outputStream, Map options) throws IOException
+ {
+ ((DataGraphImpl)dataGraph).getDataGraphResource().save(outputStream, options);
+ }
+
+ /**
+ * Create a new TypeHelper instance. The returned type helper will have visibility of types registered
+ * directly by calling a define method on it or by calling define on an associated XSDHelper. It will
+ * also have visibility of static types registered by calling SDOUtil.registerStaticTypes in the
+ * same classLoader scope.
+ * @return the new TypeHelper.
+ */
+ public static TypeHelper createTypeHelper()
+ {
+ EPackage.Registry registry = new EPackageRegistryImpl(EPackage.Registry.INSTANCE);
+ ExtendedMetaData extendedMetaData = new SDOExtendedMetaDataImpl(registry); //TODO create subclass that makes demand() methods synchronous
+ return new TypeHelperImpl(extendedMetaData);
+ }
+
+ /**
+ * Create a new DataFactory, with visibility to types in the specified TypeHelper scope.
+ * @param scope the TypeHelper to use for locating types.
+ * @return the new DataFactory.
+ */
+ public static DataFactory createDataFactory(TypeHelper scope)
+ {
+ return new DataFactoryImpl(scope);
+ }
+
+ /**
+ * Create a new XMLHelper, with visibility to types in the specified TypeHelper scope.
+ * @param scope the TypeHelper to use for locating types.
+ * @return the new XMLHelper.
+ */
+ public static XMLHelper createXMLHelper(TypeHelper scope)
+ {
+ return new XMLHelperImpl(scope);
+ }
+
+ /**
+ * Create a new XSDHelper, with visibility to types in the specified TypeHelper scope.
+ * @param scope the TypeHelper to use for locating and populating types.
+ * @return the new XSDHelper.
+ */
+ public static XSDHelper createXSDHelper(TypeHelper scope)
+ {
+ return new XSDHelperImpl(scope);
+ }
+
+ public static Type createType(TypeHelper scope, String uri, String name, boolean isDataType)
+ {
+ ExtendedMetaData extendedMetaData = ((TypeHelperImpl)scope).getExtendedMetaData();
+
+ EPackage ePackage = extendedMetaData.getPackage(uri);
+ if (ePackage == null)
+ {
+ ePackage = EcoreFactory.eINSTANCE.createEPackage();
+ ePackage.setEFactoryInstance(new DynamicDataObjectImpl.FactoryImpl());
+ ePackage.setNsURI(uri);
+ String packagePrefix = URI.createURI(uri).trimFileExtension().lastSegment();
+ ePackage.setName(packagePrefix);
+ ePackage.setNsPrefix(packagePrefix);
+ extendedMetaData.putPackage(uri, ePackage);
+ }
+
+ EClassifier eClassifier = ePackage.getEClassifier(name);
+ if (eClassifier != null)
+ throw new IllegalArgumentException(); // already defined
+
+ if (name != null)
+ {
+ eClassifier = isDataType ? (EClassifier)SDOFactory.eINSTANCE.createDataType() : (EClassifier)SDOFactory.eINSTANCE.createClass();
+ eClassifier.setName(name);
+ }
+ else
+ {
+ eClassifier = DataObjectUtil.createDocumentRoot();
+ }
+
+ ePackage.getEClassifiers().add(eClassifier);
+
+ return (Type)eClassifier;
+ }
+
+ public static void addBaseType(Type type, Type baseType)
+ {
+ ((EClass)type).getESuperTypes().add(baseType);
+ }
+
+ public static void addAliasName(Type type, String aliasName)
+ {
+ throw new UnsupportedOperationException(); // TODO: implement this method properly
+ //type.getAliasNames().add(aliasName);
+ }
+
+ public static void setOpen(Type type, boolean isOpen)
+ {
+ if (isOpen == type.isOpen()) return;
+
+ if (isOpen)
+ {
+ EAttribute eAttribute = EcoreFactory.eINSTANCE.createEAttribute();
+ ((EClass)type).getEStructuralFeatures().add(eAttribute);
+
+ eAttribute.setName("any");
+ eAttribute.setUnique(false);
+ eAttribute.setUpperBound(ETypedElement.UNBOUNDED_MULTIPLICITY);
+ eAttribute.setEType(EcorePackage.eINSTANCE.getEFeatureMapEntry());
+ ExtendedMetaData.INSTANCE.setFeatureKind(eAttribute, ExtendedMetaData.ELEMENT_WILDCARD_FEATURE);
+ ExtendedMetaData.INSTANCE.setProcessingKind(eAttribute, ExtendedMetaData.LAX_PROCESSING);
+ ExtendedMetaData.INSTANCE.setWildcards(eAttribute, Collections.singletonList("##any"));
+
+ if (type.isSequenced()) {
+ eAttribute.setDerived(true);
+ eAttribute.setTransient(true);
+ eAttribute.setVolatile(true);
+ }
+ }
+ else
+ {
+ EClass eClass = (EClass)type;
+ EAttribute any = (EAttribute)eClass.getEStructuralFeature("any");
+ eClass.getEStructuralFeatures().remove(any);
+ }
+ }
+
+ public static void setSequenced(Type type, boolean isSequenced)
+ {
+ if (isSequenced == type.isSequenced()) return;
+
+ // currently, we require setSequenced to be called first, before anything else is added to the type.
+ if (type.isDataType() || !type.getProperties().isEmpty())
+ {
+ if (type.getName() != null) // document root is a special case
+ throw new IllegalArgumentException();
+ }
+
+ if (isSequenced) {
+ EClass eClass = (EClass)type;
+ ExtendedMetaData.INSTANCE.setContentKind(eClass, ExtendedMetaData.MIXED_CONTENT);
+ EAttribute mixedFeature = EcoreFactory.eINSTANCE.createEAttribute();
+ mixedFeature.setName("mixed");
+ mixedFeature.setUnique(false);
+ mixedFeature.setEType(EcorePackage.eINSTANCE.getEFeatureMapEntry());
+ mixedFeature.setLowerBound(0);
+ mixedFeature.setUpperBound(-1);
+ eClass.getEStructuralFeatures().add(mixedFeature);
+ ExtendedMetaData.INSTANCE.setFeatureKind(mixedFeature, ExtendedMetaData.ELEMENT_WILDCARD_FEATURE);
+ ExtendedMetaData.INSTANCE.setName(mixedFeature, ":mixed");
+ }
+ else
+ {
+ // nothing to do, because of current restriction that setSequence must be called first.
+ }
+ }
+
+ public static void setAbstract(Type type, boolean isAbstract)
+ {
+ ((EClass)type).setAbstract(isAbstract);
+ }
+
+ public static void setJavaClassName(Type type, String javaClassName)
+ {
+ ((EClassifier)type).setInstanceClassName(javaClassName);
+ }
+
+ public static Property createProperty(Type containingType, String name, Type propertyType)
+ {
+ EStructuralFeature eStructuralFeature = propertyType.isDataType() ? (EStructuralFeature)SDOFactory.eINSTANCE.createAttribute() : (EStructuralFeature)SDOFactory.eINSTANCE.createReference();
+ eStructuralFeature.setName(name);
+ eStructuralFeature.setEType((EClassifier)propertyType);
+ if (containingType.getName() == null)
+ {
+ ExtendedMetaData.INSTANCE.setFeatureKind(eStructuralFeature, ExtendedMetaData.ELEMENT_FEATURE);
+ }
+ ((EClass)containingType).getEStructuralFeatures().add(eStructuralFeature);
+
+ if (containingType.isSequenced()) {
+ eStructuralFeature.setDerived(true);
+ eStructuralFeature.setTransient(true);
+ eStructuralFeature.setVolatile(true);
+ }
+
+ return (Property)eStructuralFeature;
+ }
+
+ public static void addAliasName(Property property, String aliasName)
+ {
+ throw new UnsupportedOperationException(); // TODO: implement this method properly
+ //property.getAliasNames().add(aliasName);
+ }
+
+ public static void setMany(Property property, boolean isMany)
+ {
+ ((EStructuralFeature)property).setUpperBound(isMany ? EStructuralFeature.UNBOUNDED_MULTIPLICITY : 1);
+ }
+
+ public static void setContainment(Property property, boolean isContainment)
+ {
+ ((EReference)property).setContainment(isContainment);
+ }
+
+ public static void setDefault(Property property, String defaultValue)
+ {
+ ((EStructuralFeature)property).setDefaultValueLiteral(defaultValue);
+ }
+
+ public static void setReadOnly(Property property, boolean isReadOnly)
+ {
+ ((EStructuralFeature)property).setChangeable(!isReadOnly);
+ }
+
+ public static void setOpposite(Property property, Property opposite)
+ {
+ ((EReference)property).setEOpposite((EReference)opposite);
+ }
+
+ /**
+ * Register and initialize the SDO types supported by the specified generated factory class.
+ * This function must be called before instances of the generated types can be created/used.
+ * The registered types will be visible in all TypeHelper's created in the same classLoader
+ * scope as the call to this function.
+ * @param factoryClass the generated factory class.
+ */
+ public static void registerStaticTypes(Class factoryClass)
+ {
+ //TODO this implementation is temporary, until the SDO generated factory pattern is decided
+ //
+ String temp = factoryClass.getName().replaceFirst("Factory$", "PackageImpl");
+ int lastDot = temp.lastIndexOf('.');
+ String packageName = temp.substring(0, lastDot) + ".impl" + temp.substring(lastDot);
+ try // this case handles the current default generator pattern
+ {
+ Class javaClass = getPackageClass(factoryClass, packageName);
+ Field field = javaClass.getField("eINSTANCE");
+ field.get(null);
+ }
+ catch (Exception e1)
+ {
+ packageName = factoryClass.getName().replaceFirst("Factory$", "Package");
+ try // this case handles the -noInterfaces generator pattern
+ {
+ Class javaClass = getPackageClass(factoryClass, packageName);
+ Field field = javaClass.getField("eINSTANCE");
+ field.get(null);
+ }
+ catch (Exception e2)
+ {
+ try // this case handles the -noEMF generator pattern
+ {
+ Field field = factoryClass.getField("INSTANCE");
+ field.get(null);
+ }
+ catch (Exception e3)
+ {
+ e3.printStackTrace();
+ }
+ }
+ }
+ }
+
+ private static Class getPackageClass(Class factoryClass, String packageName) throws Exception
+ {
+ final Class factoryClassTemp = factoryClass;
+ final String packageNameTemp = packageName;
+ return (Class)AccessController.doPrivileged(new PrivilegedExceptionAction() {
+ public Object run() throws Exception {
+ return factoryClassTemp.getClassLoader().loadClass(packageNameTemp);
+ }
+ });
+ }
+
+ //Java instance class to SDO mappings (p.69 - p.71 of the SDO spec)
+ private static Map javaToSdoMappings = new HashMap();
+ static {
+ javaToSdoMappings.put(boolean.class, "Boolean");
+ javaToSdoMappings.put(byte.class, "Byte");
+ javaToSdoMappings.put(char.class, "Character");
+ javaToSdoMappings.put(Date.class, "Date");
+ javaToSdoMappings.put(BigDecimal.class, "Decimal");
+ javaToSdoMappings.put(double.class, "Double");
+ javaToSdoMappings.put(float.class, "Float");
+ javaToSdoMappings.put(int.class, "Int");
+ javaToSdoMappings.put(BigInteger.class, "Integer");
+ javaToSdoMappings.put(long.class, "Long");
+ javaToSdoMappings.put(Object.class, "Object");
+ javaToSdoMappings.put(short.class, "Short");
+ javaToSdoMappings.put(String.class, "String");
+ javaToSdoMappings.put(Boolean.class, "BooleanObject");
+ javaToSdoMappings.put(Byte.class, "ByteObject");
+ javaToSdoMappings.put(Character.class, "CharacterObject");
+ javaToSdoMappings.put(Double.class, "DoubleObject");
+ javaToSdoMappings.put(Float.class, "FloatObject");
+ javaToSdoMappings.put(Integer.class, "IntObject");
+ javaToSdoMappings.put(Long.class, "LongObject");
+ javaToSdoMappings.put(Short.class, "ShortObject");
+ }
+
+ //XSD to SDO mappings (p.95 of the SDO spec)
+ private static Map xsdToSdoMappings = new HashMap();
+ static {
+ xsdToSdoMappings.put("anySimpleType", "Object");
+ xsdToSdoMappings.put("anyType", "DataObject");
+ xsdToSdoMappings.put("anyURI", "URI");
+ xsdToSdoMappings.put("base64Binary", "Bytes");
+ xsdToSdoMappings.put("boolean", "Boolean");
+ xsdToSdoMappings.put("byte", "Byte");
+ xsdToSdoMappings.put("date", "YearMonthDay");
+ xsdToSdoMappings.put("dateTime", "DateTime");
+ xsdToSdoMappings.put("decimal", "Decimal");
+ xsdToSdoMappings.put("double", "Double");
+ xsdToSdoMappings.put("duration", "Duration");
+ xsdToSdoMappings.put("ENTITIES", "Strings");
+ xsdToSdoMappings.put("ENTITY", "String");
+ xsdToSdoMappings.put("float", "Float");
+ xsdToSdoMappings.put("gDay", "Day");
+ xsdToSdoMappings.put("gMonth", "Month");
+ xsdToSdoMappings.put("gMonthDay", "MonthDay");
+ xsdToSdoMappings.put("gYear", "Year");
+ xsdToSdoMappings.put("gYearMonth", "YearMonth");
+ xsdToSdoMappings.put("hexBinary", "Bytes");
+ xsdToSdoMappings.put("ID","String");
+ xsdToSdoMappings.put("IDREF","String");
+ xsdToSdoMappings.put("IDREFS","Strings");
+ xsdToSdoMappings.put("int","Int");
+ xsdToSdoMappings.put("integer","Integer");
+ xsdToSdoMappings.put("language","String");
+ xsdToSdoMappings.put("long","Long");
+ xsdToSdoMappings.put("Name","String");
+ xsdToSdoMappings.put("NCName","String");
+ xsdToSdoMappings.put("negativeInteger","Integer");
+ xsdToSdoMappings.put("NMTOKEN","String");
+ xsdToSdoMappings.put("NMTOKENS","Strings");
+ xsdToSdoMappings.put("nonNegativeInteger","Integer");
+ xsdToSdoMappings.put("nonPositiveInteger","Integer");
+ xsdToSdoMappings.put("normalizedString","String");
+ xsdToSdoMappings.put("NOTATION","String");
+ xsdToSdoMappings.put("positiveInteger","Integer");
+ xsdToSdoMappings.put("QName","URI");
+ xsdToSdoMappings.put("short","Short");
+ xsdToSdoMappings.put("string","String");
+ xsdToSdoMappings.put("time","Time");
+ xsdToSdoMappings.put("token","String");
+ xsdToSdoMappings.put("unsignedByte","Short");
+ xsdToSdoMappings.put("unsignedInt","Long");
+ xsdToSdoMappings.put("unsignedLong","Integer");
+ xsdToSdoMappings.put("unsignedShort","Int");
+ }
+
+ /**
+ * Initialize SDO runtime.
+ */
+ static
+ {
+ DataObjectUtil.initRuntime();
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/StAX2SAXAdapter.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/StAX2SAXAdapter.java
new file mode 100644
index 0000000000..858d445640
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/StAX2SAXAdapter.java
@@ -0,0 +1,242 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
+
+/**
+ * Adapter that converts from StAX to SAX event streams.
+ * Currently the following SAX events are not generated:
+ * <ul>
+ * <li>ignorableWhitespace</li>
+ * <li>skippedEntity</li>
+ * <ul>
+ * Also the following StAX events are not mapped:
+ * <ul>
+ * <li>CDATA</li>
+ * <li>COMMENT</li>
+ * <li>DTD</li>
+ * <li>ENTITY_DECLARATION</li>
+ * <li>ENTITY_REFERENCE</li>
+ * <li>NOTATION_DECLARATION</li>
+ * <li>SPACE</li>
+ * </ul>
+ * StAX ATTRIBUTE events are ignored but the equivalent attributes (derived from the START_ELEMENT event)
+ * are supplied in the SAX startElement event's Attributes parameter. If the adaptor is configured to
+ * pass namespace prefixes then namespace information will also be included in the Attributes;
+ * StAX NAMESPACE events are ignored.
+ *
+ * @version $Rev$ $Date$
+ */
+public class StAX2SAXAdapter {
+ private final boolean namespacePrefixes;
+
+ /**
+ * Construct a new StAX to SAX adapter that will convert a StAX event stream into a SAX event stream.
+ *
+ * @param namespacePrefixes whether xmlns attributes should be included in startElement events;
+ */
+ public StAX2SAXAdapter(boolean namespacePrefixes) {
+ this.namespacePrefixes = namespacePrefixes;
+ }
+
+ /**
+ * Pull events from the StAX stream and dispatch to the SAX ContentHandler.
+ * The StAX stream would typically be located on a START_DOCUMENT or START_ELEMENT event
+ * and when this method returns it will be located on the associated END_DOCUMENT or
+ * END_ELEMENT event. Behaviour with other start events is undefined.
+ *
+ * @param reader StAX event source to read
+ * @param handler SAX ContentHandler for processing events
+ * @throws XMLStreamException if there was a problem reading the stream
+ * @throws SAXException passed through from the ContentHandler
+ */
+ public void parse(XMLStreamReader reader, ContentHandler handler) throws XMLStreamException, SAXException {
+ handler.setDocumentLocator(new LocatorAdaptor(reader.getLocation()));
+
+ // remembers the nest level of elements to know when we are done
+ int level = 0;
+ int event = reader.getEventType();
+ while (true) {
+ switch (event) {
+ case XMLStreamConstants.START_DOCUMENT:
+ level++;
+ handler.startDocument();
+ break;
+ case XMLStreamConstants.START_ELEMENT:
+ level++;
+ handleStartElement(reader, handler);
+ break;
+ case XMLStreamConstants.PROCESSING_INSTRUCTION:
+ handler.processingInstruction(reader.getPITarget(), reader.getPIData());
+ break;
+ case XMLStreamConstants.CHARACTERS:
+ char[] chars = reader.getTextCharacters();
+ handler.characters(chars, 0, chars.length);
+ break;
+ case XMLStreamConstants.END_ELEMENT:
+ handleEndElement(reader, handler);
+ level--;
+ if (level == 0) {
+ return;
+ }
+ break;
+ case XMLStreamConstants.END_DOCUMENT:
+ handler.endDocument();
+ return;
+/* uncomment to handle all events rather than just mapped ones
+ // StAX events that are not mapped to SAX
+ case XMLStreamConstants.COMMENT:
+ case XMLStreamConstants.SPACE:
+ case XMLStreamConstants.ENTITY_REFERENCE:
+ case XMLStreamConstants.DTD:
+ case XMLStreamConstants.CDATA:
+ case XMLStreamConstants.NOTATION_DECLARATION:
+ case XMLStreamConstants.ENTITY_DECLARATION:
+ break;
+ // StAX events handled in START_ELEMENT
+ case XMLStreamConstants.ATTRIBUTE:
+ case XMLStreamConstants.NAMESPACE:
+ break;
+ default:
+ throw new AssertionError("Unknown StAX event: " + event);
+*/
+ }
+ event = reader.next();
+ }
+ }
+
+ private void handleStartElement(XMLStreamReader reader, ContentHandler handler) throws SAXException {
+ // send startPrefixMapping events immediately before startElement event
+ int nsCount = reader.getNamespaceCount();
+ for (int i = 0; i < nsCount; i++) {
+ String prefix = reader.getNamespacePrefix(i);
+ if (prefix == null) { // true for default namespace
+ prefix = "";
+ }
+ handler.startPrefixMapping(prefix, reader.getNamespaceURI(i));
+ }
+
+ // fire startElement
+ QName qname = reader.getName();
+ String prefix = qname.getPrefix();
+ String rawname;
+ if (prefix == null || prefix.length() == 0) {
+ rawname = qname.getLocalPart();
+ } else {
+ rawname = prefix + ':' + qname.getLocalPart();
+ }
+ Attributes attrs = getAttributes(reader);
+ handler.startElement(qname.getNamespaceURI(), qname.getLocalPart(), rawname, attrs);
+ }
+
+ private static void handleEndElement(XMLStreamReader reader, ContentHandler handler) throws SAXException {
+ // fire endElement
+ QName qname = reader.getName();
+ handler.endElement(qname.getNamespaceURI(), qname.getLocalPart(), qname.toString());
+
+ // send endPrefixMapping events immediately after endElement event
+ // we send them in the opposite order to that returned but this is not actually required by SAX
+ int nsCount = reader.getNamespaceCount();
+ for (int i = nsCount - 1; i >= 0; i--) {
+ String prefix = reader.getNamespacePrefix(i);
+ if (prefix == null) { // true for default namespace
+ prefix = "";
+ }
+ handler.endPrefixMapping(prefix);
+ }
+ }
+
+ /**
+ * Get the attributes associated with the current START_ELEMENT event.
+ *
+ * @return the StAX attributes converted to org.xml.sax.Attributes
+ */
+ private Attributes getAttributes(XMLStreamReader reader) {
+ assert reader.getEventType() == XMLStreamConstants.START_ELEMENT;
+
+ AttributesImpl attrs = new AttributesImpl();
+
+ // add namespace declarations if required
+ if (namespacePrefixes) {
+ for (int i = 0; i < reader.getNamespaceCount(); i++) {
+ String prefix = reader.getNamespacePrefix(i);
+ String uri = reader.getNamespaceURI(i);
+ attrs.addAttribute(null, prefix, "xmlns:" + prefix, "CDATA", uri);
+ }
+ }
+
+ // Regular attributes
+ for (int i = 0; i < reader.getAttributeCount(); i++) {
+ String uri = reader.getAttributeNamespace(i);
+ if (uri == null) {
+ uri = "";
+ }
+ String localName = reader.getAttributeLocalName(i);
+ String prefix = reader.getAttributePrefix(i);
+ String qname;
+ if (prefix == null || prefix.length() == 0) {
+ qname = localName;
+ } else {
+ qname = prefix + ':' + localName;
+ }
+ String type = reader.getAttributeType(i);
+ String value = reader.getAttributeValue(i);
+
+ attrs.addAttribute(uri, localName, qname, type, value);
+ }
+
+ return attrs;
+ }
+
+ /**
+ * Adaptor for mapping Locator information.
+ */
+ private static class LocatorAdaptor implements Locator {
+ private final Location location;
+
+ private LocatorAdaptor(Location location) {
+ this.location = location;
+ }
+
+ public int getColumnNumber() {
+ return location.getColumnNumber();
+ }
+
+ public int getLineNumber() {
+ return location.getLineNumber();
+ }
+
+ public String getPublicId() {
+ return location.getPublicId();
+ }
+
+ public String getSystemId() {
+ return location.getSystemId();
+ }
+ }
+} \ No newline at end of file
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/JavaMetaData.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/JavaMetaData.java
new file mode 100644
index 0000000000..4dd00c075d
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/JavaMetaData.java
@@ -0,0 +1,85 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util.metadata;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Java Meta Data</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.util.metadata.JavaMetaData#getFactoryInterface <em>Factory Interface</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.util.metadata.JavaMetaData#getTypeInterface <em>Type Interface</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface JavaMetaData
+{
+ /**
+ * Returns the value of the '<em><b>Factory Interface</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Factory Interface</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Factory Interface</em>' attribute.
+ * @see #setFactoryInterface(String)
+ * @generated
+ */
+ String getFactoryInterface();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.util.metadata.JavaMetaData#getFactoryInterface <em>Factory Interface</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Factory Interface</em>' attribute.
+ * @see #getFactoryInterface()
+ * @generated
+ */
+ void setFactoryInterface(String value);
+
+ /**
+ * Returns the value of the '<em><b>Type Interface</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type Interface</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type Interface</em>' attribute.
+ * @see #setTypeInterface(String)
+ * @generated
+ */
+ String getTypeInterface();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.util.metadata.JavaMetaData#getTypeInterface <em>Type Interface</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type Interface</em>' attribute.
+ * @see #getTypeInterface()
+ * @generated
+ */
+ void setTypeInterface(String value);
+
+} // JavaMetaData \ No newline at end of file
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/MetadataFactory.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/MetadataFactory.java
new file mode 100644
index 0000000000..e2c33713d3
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/MetadataFactory.java
@@ -0,0 +1,73 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util.metadata;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public interface MetadataFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ MetadataFactory INSTANCE = org.apache.tuscany.sdo.util.metadata.impl.MetadataFactoryImpl.eINSTANCE;
+
+ /**
+ * Returns a new object of class '<em>Java Meta Data</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Java Meta Data</em>'.
+ * @generated
+ */
+ JavaMetaData createJavaMetaData();
+
+ /**
+ * Returns a new object of class '<em>SDO Meta Data Group</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>SDO Meta Data Group</em>'.
+ * @generated
+ */
+ SDOMetaDataGroup createSDOMetaDataGroup();
+
+ /**
+ * Returns a new object of class '<em>Type Meta Data</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Type Meta Data</em>'.
+ * @generated
+ */
+ TypeMetaData createTypeMetaData();
+
+ /**
+ * Returns a new object of class '<em>XSD Meta Data</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>XSD Meta Data</em>'.
+ * @generated
+ */
+ XSDMetaData createXSDMetaData();
+
+} //MetadataFactory
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/SDOMetaDataGroup.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/SDOMetaDataGroup.java
new file mode 100644
index 0000000000..7cbeeda682
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/SDOMetaDataGroup.java
@@ -0,0 +1,86 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util.metadata;
+
+import java.util.List;
+
+import commonj.sdo.helper.TypeHelper;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SDO Meta Data Group</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.util.metadata.SDOMetaDataGroup#getJavaMetaData <em>Java Meta Data</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.util.metadata.SDOMetaDataGroup#getXsdMetaData <em>Xsd Meta Data</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.util.metadata.SDOMetaDataGroup#getTypeMetaData <em>Type Meta Data</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface SDOMetaDataGroup
+{
+ /**
+ * Returns the value of the '<em><b>Java Meta Data</b></em>' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.sdo.util.metadata.JavaMetaData}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Java Meta Data</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Java Meta Data</em>' containment reference list.
+ * @generated
+ */
+ List getJavaMetaData();
+
+ /**
+ * Returns the value of the '<em><b>Xsd Meta Data</b></em>' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.sdo.util.metadata.XSDMetaData}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Xsd Meta Data</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Xsd Meta Data</em>' containment reference list.
+ * @generated
+ */
+ List getXsdMetaData();
+
+ /**
+ * Returns the value of the '<em><b>Type Meta Data</b></em>' containment reference list.
+ * The list contents are of type {@link org.apache.tuscany.sdo.util.metadata.TypeMetaData}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type Meta Data</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type Meta Data</em>' containment reference list.
+ * @generated
+ */
+ List getTypeMetaData();
+
+ void register(TypeHelper scope);
+ void register(TypeHelper scope, ClassLoader classLoader);
+
+} // SDOMetaDataGroup \ No newline at end of file
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/TypeMetaData.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/TypeMetaData.java
new file mode 100644
index 0000000000..bc311015ec
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/TypeMetaData.java
@@ -0,0 +1,60 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util.metadata;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Type Meta Data</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.util.metadata.TypeMetaData#getLocation <em>Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface TypeMetaData
+{
+ /**
+ * Returns the value of the '<em><b>Location</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Location</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Location</em>' attribute.
+ * @see #setLocation(String)
+ * @generated
+ */
+ String getLocation();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.util.metadata.TypeMetaData#getLocation <em>Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Location</em>' attribute.
+ * @see #getLocation()
+ * @generated
+ */
+ void setLocation(String value);
+
+} // TypeMetaData \ No newline at end of file
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/XSDMetaData.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/XSDMetaData.java
new file mode 100644
index 0000000000..dc004a8f5e
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/XSDMetaData.java
@@ -0,0 +1,60 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util.metadata;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>XSD Meta Data</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.util.metadata.XSDMetaData#getLocation <em>Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface XSDMetaData
+{
+ /**
+ * Returns the value of the '<em><b>Location</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Location</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Location</em>' attribute.
+ * @see #setLocation(String)
+ * @generated
+ */
+ String getLocation();
+
+ /**
+ * Sets the value of the '{@link org.apache.tuscany.sdo.util.metadata.XSDMetaData#getLocation <em>Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Location</em>' attribute.
+ * @see #getLocation()
+ * @generated
+ */
+ void setLocation(String value);
+
+} // XSDMetaData \ No newline at end of file
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/JavaMetaDataImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/JavaMetaDataImpl.java
new file mode 100644
index 0000000000..b36d7fa8f9
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/JavaMetaDataImpl.java
@@ -0,0 +1,241 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util.metadata.impl;
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+
+import org.apache.tuscany.sdo.util.metadata.JavaMetaData;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Java Meta Data</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.util.metadata.impl.JavaMetaDataImpl#getFactoryInterface <em>Factory Interface</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.util.metadata.impl.JavaMetaDataImpl#getTypeInterface <em>Type Interface</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaMetaDataImpl extends DataObjectImpl implements JavaMetaData
+{
+ /**
+ * The default value of the '{@link #getFactoryInterface() <em>Factory Interface</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFactoryInterface()
+ * @generated
+ * @ordered
+ */
+ protected static final String FACTORY_INTERFACE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFactoryInterface() <em>Factory Interface</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFactoryInterface()
+ * @generated
+ * @ordered
+ */
+ protected String factoryInterface = FACTORY_INTERFACE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTypeInterface() <em>Type Interface</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypeInterface()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_INTERFACE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTypeInterface() <em>Type Interface</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypeInterface()
+ * @generated
+ * @ordered
+ */
+ protected String typeInterface = TYPE_INTERFACE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected JavaMetaDataImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return MetadataPackageImpl.Literals.JAVA_META_DATA;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFactoryInterface()
+ {
+ return factoryInterface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFactoryInterface(String newFactoryInterface)
+ {
+ String oldFactoryInterface = factoryInterface;
+ factoryInterface = newFactoryInterface;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, MetadataPackageImpl.JAVA_META_DATA__FACTORY_INTERFACE, oldFactoryInterface, factoryInterface));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTypeInterface()
+ {
+ return typeInterface;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTypeInterface(String newTypeInterface)
+ {
+ String oldTypeInterface = typeInterface;
+ typeInterface = newTypeInterface;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, MetadataPackageImpl.JAVA_META_DATA__TYPE_INTERFACE, oldTypeInterface, typeInterface));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.JAVA_META_DATA__FACTORY_INTERFACE:
+ return getFactoryInterface();
+ case MetadataPackageImpl.JAVA_META_DATA__TYPE_INTERFACE:
+ return getTypeInterface();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.JAVA_META_DATA__FACTORY_INTERFACE:
+ setFactoryInterface((String)newValue);
+ return;
+ case MetadataPackageImpl.JAVA_META_DATA__TYPE_INTERFACE:
+ setTypeInterface((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.JAVA_META_DATA__FACTORY_INTERFACE:
+ setFactoryInterface(FACTORY_INTERFACE_EDEFAULT);
+ return;
+ case MetadataPackageImpl.JAVA_META_DATA__TYPE_INTERFACE:
+ setTypeInterface(TYPE_INTERFACE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.JAVA_META_DATA__FACTORY_INTERFACE:
+ return FACTORY_INTERFACE_EDEFAULT == null ? factoryInterface != null : !FACTORY_INTERFACE_EDEFAULT.equals(factoryInterface);
+ case MetadataPackageImpl.JAVA_META_DATA__TYPE_INTERFACE:
+ return TYPE_INTERFACE_EDEFAULT == null ? typeInterface != null : !TYPE_INTERFACE_EDEFAULT.equals(typeInterface);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (factoryInterface: ");
+ result.append(factoryInterface);
+ result.append(", typeInterface: ");
+ result.append(typeInterface);
+ result.append(')');
+ return result.toString();
+ }
+
+} //JavaMetaDataImpl \ No newline at end of file
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/MetadataFactoryImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/MetadataFactoryImpl.java
new file mode 100644
index 0000000000..e0e24fc9c2
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/MetadataFactoryImpl.java
@@ -0,0 +1,174 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util.metadata.impl;
+
+import org.apache.tuscany.sdo.util.metadata.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MetadataFactoryImpl extends EFactoryImpl implements MetadataFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final MetadataFactoryImpl eINSTANCE = init();
+
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MetadataFactoryImpl init()
+ {
+ try
+ {
+ MetadataFactoryImpl theMetadataFactory = (MetadataFactoryImpl)EPackage.Registry.INSTANCE.getEFactory("org.apache.tuscany.sdo/metadata");
+ if (theMetadataFactory != null)
+ {
+ return theMetadataFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new MetadataFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MetadataFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case MetadataPackageImpl.DOCUMENT_ROOT: return (EObject)createDocumentRoot();
+ case MetadataPackageImpl.JAVA_META_DATA: return (EObject)createJavaMetaData();
+ case MetadataPackageImpl.SDO_META_DATA_GROUP: return (EObject)createSDOMetaDataGroup();
+ case MetadataPackageImpl.TYPE_META_DATA: return (EObject)createTypeMetaData();
+ case MetadataPackageImpl.XSD_META_DATA: return (EObject)createXSDMetaData();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject createDocumentRoot()
+ {
+ EObject documentRoot = super.create(MetadataPackageImpl.Literals.DOCUMENT_ROOT);
+ return documentRoot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JavaMetaData createJavaMetaData()
+ {
+ JavaMetaDataImpl javaMetaData = new JavaMetaDataImpl();
+ return javaMetaData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SDOMetaDataGroup createSDOMetaDataGroup()
+ {
+ SDOMetaDataGroupImpl sdoMetaDataGroup = new SDOMetaDataGroupImpl();
+ return sdoMetaDataGroup;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TypeMetaData createTypeMetaData()
+ {
+ TypeMetaDataImpl typeMetaData = new TypeMetaDataImpl();
+ return typeMetaData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XSDMetaData createXSDMetaData()
+ {
+ XSDMetaDataImpl xsdMetaData = new XSDMetaDataImpl();
+ return xsdMetaData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MetadataPackageImpl getMetadataPackageImpl()
+ {
+ return (MetadataPackageImpl)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static MetadataPackageImpl getPackage()
+ {
+ return MetadataPackageImpl.eINSTANCE;
+ }
+
+} //MetadataFactoryImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/MetadataPackageImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/MetadataPackageImpl.java
new file mode 100644
index 0000000000..df1404ddd9
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/MetadataPackageImpl.java
@@ -0,0 +1,1015 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util.metadata.impl;
+
+import org.apache.tuscany.sdo.impl.SDOPackageImpl;
+
+import org.apache.tuscany.sdo.model.impl.ModelPackageImpl;
+
+import org.apache.tuscany.sdo.util.metadata.JavaMetaData;
+import org.apache.tuscany.sdo.util.metadata.MetadataFactory;
+import org.apache.tuscany.sdo.util.metadata.SDOMetaDataGroup;
+import org.apache.tuscany.sdo.util.metadata.TypeMetaData;
+import org.apache.tuscany.sdo.util.metadata.XSDMetaData;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EFactory;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.util.metadata.MetadataFactory
+ * @generated
+ */
+public class MetadataPackageImpl extends EPackageImpl
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String eNAME = "metadata";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String eNS_URI = "org.apache.tuscany.sdo/metadata";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String eNS_PREFIX = "metadata";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final MetadataPackageImpl eINSTANCE = org.apache.tuscany.sdo.util.metadata.impl.MetadataPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.util.metadata.impl.DocumentRootImpl <em>Document Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.util.metadata.impl.DocumentRootImpl
+ * @see org.apache.tuscany.sdo.util.metadata.impl.MetadataPackageImpl#getDocumentRoot()
+ * @generated
+ */
+ public static final int DOCUMENT_ROOT = 0;
+
+ /**
+ * The feature id for the '<em><b>Mixed</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__MIXED = 0;
+
+ /**
+ * The feature id for the '<em><b>XMLNS Prefix Map</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__XMLNS_PREFIX_MAP = 1;
+
+ /**
+ * The feature id for the '<em><b>XSI Schema Location</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__XSI_SCHEMA_LOCATION = 2;
+
+ /**
+ * The feature id for the '<em><b>Sdo Meta Data Group</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__SDO_META_DATA_GROUP = 3;
+
+ /**
+ * The number of structural features of the '<em>Document Root</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.util.metadata.impl.JavaMetaDataImpl <em>Java Meta Data</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.util.metadata.impl.JavaMetaDataImpl
+ * @see org.apache.tuscany.sdo.util.metadata.impl.MetadataPackageImpl#getJavaMetaData()
+ * @generated
+ */
+ public static final int JAVA_META_DATA = 1;
+
+ /**
+ * The feature id for the '<em><b>Factory Interface</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int JAVA_META_DATA__FACTORY_INTERFACE = 0;
+
+ /**
+ * The feature id for the '<em><b>Type Interface</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int JAVA_META_DATA__TYPE_INTERFACE = 1;
+
+ /**
+ * The number of structural features of the '<em>Java Meta Data</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int JAVA_META_DATA_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.util.metadata.impl.SDOMetaDataGroupImpl <em>SDO Meta Data Group</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.util.metadata.impl.SDOMetaDataGroupImpl
+ * @see org.apache.tuscany.sdo.util.metadata.impl.MetadataPackageImpl#getSDOMetaDataGroup()
+ * @generated
+ */
+ public static final int SDO_META_DATA_GROUP = 2;
+
+ /**
+ * The feature id for the '<em><b>Java Meta Data</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int SDO_META_DATA_GROUP__JAVA_META_DATA = 0;
+
+ /**
+ * The feature id for the '<em><b>Xsd Meta Data</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int SDO_META_DATA_GROUP__XSD_META_DATA = 1;
+
+ /**
+ * The feature id for the '<em><b>Type Meta Data</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int SDO_META_DATA_GROUP__TYPE_META_DATA = 2;
+
+ /**
+ * The number of structural features of the '<em>SDO Meta Data Group</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int SDO_META_DATA_GROUP_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.util.metadata.impl.TypeMetaDataImpl <em>Type Meta Data</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.util.metadata.impl.TypeMetaDataImpl
+ * @see org.apache.tuscany.sdo.util.metadata.impl.MetadataPackageImpl#getTypeMetaData()
+ * @generated
+ */
+ public static final int TYPE_META_DATA = 3;
+
+ /**
+ * The feature id for the '<em><b>Location</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPE_META_DATA__LOCATION = 0;
+
+ /**
+ * The number of structural features of the '<em>Type Meta Data</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int TYPE_META_DATA_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.apache.tuscany.sdo.util.metadata.impl.XSDMetaDataImpl <em>XSD Meta Data</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.util.metadata.impl.XSDMetaDataImpl
+ * @see org.apache.tuscany.sdo.util.metadata.impl.MetadataPackageImpl#getXSDMetaData()
+ * @generated
+ */
+ public static final int XSD_META_DATA = 4;
+
+ /**
+ * The feature id for the '<em><b>Location</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int XSD_META_DATA__LOCATION = 0;
+
+ /**
+ * The number of structural features of the '<em>XSD Meta Data</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int XSD_META_DATA_FEATURE_COUNT = 1;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass documentRootEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass javaMetaDataEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sdoMetaDataGroupEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass typeMetaDataEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass xsdMetaDataEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.apache.tuscany.sdo.util.metadata.impl.MetadataPackageImpl#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private MetadataPackageImpl()
+ {
+ super(eNS_URI, ((EFactory)MetadataFactory.INSTANCE));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this
+ * model, and for any others upon which it depends. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ * <p>Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ * <p>Invocation of this method will not affect any packages that have
+ * already been initialized.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static MetadataPackageImpl init()
+ {
+ if (isInited) return (MetadataPackageImpl)EPackage.Registry.INSTANCE.getEPackage(MetadataPackageImpl.eNS_URI);
+
+ // Obtain or create and register package
+ MetadataPackageImpl theMetadataPackageImpl = (MetadataPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof MetadataPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new MetadataPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ SDOPackageImpl.eINSTANCE.eClass();
+ ModelPackageImpl.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theMetadataPackageImpl.createPackageContents();
+
+ // Initialize created meta-data
+ theMetadataPackageImpl.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theMetadataPackageImpl.freeze();
+
+ return theMetadataPackageImpl;
+ }
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.ecore.EObject <em>Document Root</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Document Root</em>'.
+ * @see org.eclipse.emf.ecore.EObject
+ * @generated
+ */
+ public EClass getDocumentRoot()
+ {
+ return documentRootEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.emf.ecore.EObject#getMixed <em>Mixed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Mixed</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getMixed()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EAttribute getDocumentRoot_Mixed()
+ {
+ return (EAttribute)documentRootEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.emf.ecore.EObject#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>XMLNS Prefix Map</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getXMLNSPrefixMap()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_XMLNSPrefixMap()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.emf.ecore.EObject#getXSISchemaLocation <em>XSI Schema Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>XSI Schema Location</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getXSISchemaLocation()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_XSISchemaLocation()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.ecore.EObject#getSdoMetaDataGroup <em>Sdo Meta Data Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Sdo Meta Data Group</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getSdoMetaDataGroup()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_SdoMetaDataGroup()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.util.metadata.JavaMetaData <em>Java Meta Data</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Java Meta Data</em>'.
+ * @see org.apache.tuscany.sdo.util.metadata.JavaMetaData
+ * @generated
+ */
+ public EClass getJavaMetaData()
+ {
+ return javaMetaDataEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.util.metadata.JavaMetaData#getFactoryInterface <em>Factory Interface</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Factory Interface</em>'.
+ * @see org.apache.tuscany.sdo.util.metadata.JavaMetaData#getFactoryInterface()
+ * @see #getJavaMetaData()
+ * @generated
+ */
+ public EAttribute getJavaMetaData_FactoryInterface()
+ {
+ return (EAttribute)javaMetaDataEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.util.metadata.JavaMetaData#getTypeInterface <em>Type Interface</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type Interface</em>'.
+ * @see org.apache.tuscany.sdo.util.metadata.JavaMetaData#getTypeInterface()
+ * @see #getJavaMetaData()
+ * @generated
+ */
+ public EAttribute getJavaMetaData_TypeInterface()
+ {
+ return (EAttribute)javaMetaDataEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.util.metadata.SDOMetaDataGroup <em>SDO Meta Data Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>SDO Meta Data Group</em>'.
+ * @see org.apache.tuscany.sdo.util.metadata.SDOMetaDataGroup
+ * @generated
+ */
+ public EClass getSDOMetaDataGroup()
+ {
+ return sdoMetaDataGroupEClass;
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.sdo.util.metadata.SDOMetaDataGroup#getJavaMetaData <em>Java Meta Data</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Java Meta Data</em>'.
+ * @see org.apache.tuscany.sdo.util.metadata.SDOMetaDataGroup#getJavaMetaData()
+ * @see #getSDOMetaDataGroup()
+ * @generated
+ */
+ public EReference getSDOMetaDataGroup_JavaMetaData()
+ {
+ return (EReference)sdoMetaDataGroupEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.sdo.util.metadata.SDOMetaDataGroup#getXsdMetaData <em>Xsd Meta Data</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Xsd Meta Data</em>'.
+ * @see org.apache.tuscany.sdo.util.metadata.SDOMetaDataGroup#getXsdMetaData()
+ * @see #getSDOMetaDataGroup()
+ * @generated
+ */
+ public EReference getSDOMetaDataGroup_XsdMetaData()
+ {
+ return (EReference)sdoMetaDataGroupEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.apache.tuscany.sdo.util.metadata.SDOMetaDataGroup#getTypeMetaData <em>Type Meta Data</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Type Meta Data</em>'.
+ * @see org.apache.tuscany.sdo.util.metadata.SDOMetaDataGroup#getTypeMetaData()
+ * @see #getSDOMetaDataGroup()
+ * @generated
+ */
+ public EReference getSDOMetaDataGroup_TypeMetaData()
+ {
+ return (EReference)sdoMetaDataGroupEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.util.metadata.TypeMetaData <em>Type Meta Data</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Type Meta Data</em>'.
+ * @see org.apache.tuscany.sdo.util.metadata.TypeMetaData
+ * @generated
+ */
+ public EClass getTypeMetaData()
+ {
+ return typeMetaDataEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.util.metadata.TypeMetaData#getLocation <em>Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Location</em>'.
+ * @see org.apache.tuscany.sdo.util.metadata.TypeMetaData#getLocation()
+ * @see #getTypeMetaData()
+ * @generated
+ */
+ public EAttribute getTypeMetaData_Location()
+ {
+ return (EAttribute)typeMetaDataEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for class '{@link org.apache.tuscany.sdo.util.metadata.XSDMetaData <em>XSD Meta Data</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>XSD Meta Data</em>'.
+ * @see org.apache.tuscany.sdo.util.metadata.XSDMetaData
+ * @generated
+ */
+ public EClass getXSDMetaData()
+ {
+ return xsdMetaDataEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link org.apache.tuscany.sdo.util.metadata.XSDMetaData#getLocation <em>Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Location</em>'.
+ * @see org.apache.tuscany.sdo.util.metadata.XSDMetaData#getLocation()
+ * @see #getXSDMetaData()
+ * @generated
+ */
+ public EAttribute getXSDMetaData_Location()
+ {
+ return (EAttribute)xsdMetaDataEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ public MetadataFactory getMetadataFactory()
+ {
+ return (MetadataFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ documentRootEClass = createEClass(DOCUMENT_ROOT);
+ createEAttribute(documentRootEClass, DOCUMENT_ROOT__MIXED);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
+ createEReference(documentRootEClass, DOCUMENT_ROOT__SDO_META_DATA_GROUP);
+
+ javaMetaDataEClass = createEClass(JAVA_META_DATA);
+ createEAttribute(javaMetaDataEClass, JAVA_META_DATA__FACTORY_INTERFACE);
+ createEAttribute(javaMetaDataEClass, JAVA_META_DATA__TYPE_INTERFACE);
+
+ sdoMetaDataGroupEClass = createEClass(SDO_META_DATA_GROUP);
+ createEReference(sdoMetaDataGroupEClass, SDO_META_DATA_GROUP__JAVA_META_DATA);
+ createEReference(sdoMetaDataGroupEClass, SDO_META_DATA_GROUP__XSD_META_DATA);
+ createEReference(sdoMetaDataGroupEClass, SDO_META_DATA_GROUP__TYPE_META_DATA);
+
+ typeMetaDataEClass = createEClass(TYPE_META_DATA);
+ createEAttribute(typeMetaDataEClass, TYPE_META_DATA__LOCATION);
+
+ xsdMetaDataEClass = createEClass(XSD_META_DATA);
+ createEAttribute(xsdMetaDataEClass, XSD_META_DATA__LOCATION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModelPackageImpl theModelPackageImpl = (ModelPackageImpl)EPackage.Registry.INSTANCE.getEPackage(ModelPackageImpl.eNS_URI);
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(documentRootEClass, null, "DocumentRoot", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDocumentRoot_Mixed(), ecorePackage.getEFeatureMapEntry(), "mixed", null, 0, -1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_XMLNSPrefixMap(), ecorePackage.getEStringToStringMapEntry(), null, "xMLNSPrefixMap", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_XSISchemaLocation(), ecorePackage.getEStringToStringMapEntry(), null, "xSISchemaLocation", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDocumentRoot_SdoMetaDataGroup(), this.getSDOMetaDataGroup(), null, "sdoMetaDataGroup", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+ initEClass(javaMetaDataEClass, JavaMetaData.class, "JavaMetaData", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getJavaMetaData_FactoryInterface(), theModelPackageImpl.getString(), "factoryInterface", null, 0, 1, JavaMetaData.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getJavaMetaData_TypeInterface(), theModelPackageImpl.getString(), "typeInterface", null, 0, 1, JavaMetaData.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(sdoMetaDataGroupEClass, SDOMetaDataGroup.class, "SDOMetaDataGroup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSDOMetaDataGroup_JavaMetaData(), this.getJavaMetaData(), null, "javaMetaData", null, 0, -1, SDOMetaDataGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSDOMetaDataGroup_XsdMetaData(), this.getXSDMetaData(), null, "xsdMetaData", null, 0, -1, SDOMetaDataGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSDOMetaDataGroup_TypeMetaData(), this.getTypeMetaData(), null, "typeMetaData", null, 0, -1, SDOMetaDataGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(typeMetaDataEClass, TypeMetaData.class, "TypeMetaData", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTypeMetaData_Location(), theModelPackageImpl.getString(), "location", null, 1, 1, TypeMetaData.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(xsdMetaDataEClass, XSDMetaData.class, "XSDMetaData", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getXSDMetaData_Location(), theModelPackageImpl.getString(), "location", null, 1, 1, XSDMetaData.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
+ createExtendedMetaDataAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createExtendedMetaDataAnnotations()
+ {
+ String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
+ addAnnotation
+ (documentRootEClass,
+ source,
+ new String[]
+ {
+ "name", "",
+ "kind", "mixed"
+ });
+ addAnnotation
+ (getDocumentRoot_Mixed(),
+ source,
+ new String[]
+ {
+ "kind", "elementWildcard",
+ "name", ":mixed"
+ });
+ addAnnotation
+ (getDocumentRoot_XMLNSPrefixMap(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "xmlns:prefix"
+ });
+ addAnnotation
+ (getDocumentRoot_XSISchemaLocation(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "xsi:schemaLocation"
+ });
+ addAnnotation
+ (getDocumentRoot_SdoMetaDataGroup(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "sdoMetaDataGroup",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (javaMetaDataEClass,
+ source,
+ new String[]
+ {
+ "name", "JavaMetaData",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getJavaMetaData_FactoryInterface(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "factoryInterface"
+ });
+ addAnnotation
+ (getJavaMetaData_TypeInterface(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "typeInterface"
+ });
+ addAnnotation
+ (sdoMetaDataGroupEClass,
+ source,
+ new String[]
+ {
+ "name", "SDOMetaDataGroup",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getSDOMetaDataGroup_JavaMetaData(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "javaMetaData"
+ });
+ addAnnotation
+ (getSDOMetaDataGroup_XsdMetaData(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "xsdMetaData"
+ });
+ addAnnotation
+ (getSDOMetaDataGroup_TypeMetaData(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "typeMetaData"
+ });
+ addAnnotation
+ (typeMetaDataEClass,
+ source,
+ new String[]
+ {
+ "name", "TypeMetaData",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getTypeMetaData_Location(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "location"
+ });
+ addAnnotation
+ (xsdMetaDataEClass,
+ source,
+ new String[]
+ {
+ "name", "XSDMetaData",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getXSDMetaData_Location(),
+ source,
+ new String[]
+ {
+ "kind", "attribute",
+ "name", "location"
+ });
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.util.metadata.impl.DocumentRootImpl <em>Document Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.util.metadata.impl.DocumentRootImpl
+ * @see org.apache.tuscany.sdo.util.metadata.impl.MetadataPackageImpl#getDocumentRoot()
+ * @generated
+ */
+ public static final EClass DOCUMENT_ROOT = eINSTANCE.getDocumentRoot();
+
+ /**
+ * The meta object literal for the '<em><b>Mixed</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute DOCUMENT_ROOT__MIXED = eINSTANCE.getDocumentRoot_Mixed();
+
+ /**
+ * The meta object literal for the '<em><b>XMLNS Prefix Map</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__XMLNS_PREFIX_MAP = eINSTANCE.getDocumentRoot_XMLNSPrefixMap();
+
+ /**
+ * The meta object literal for the '<em><b>XSI Schema Location</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__XSI_SCHEMA_LOCATION = eINSTANCE.getDocumentRoot_XSISchemaLocation();
+
+ /**
+ * The meta object literal for the '<em><b>Sdo Meta Data Group</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__SDO_META_DATA_GROUP = eINSTANCE.getDocumentRoot_SdoMetaDataGroup();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.util.metadata.impl.JavaMetaDataImpl <em>Java Meta Data</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.util.metadata.impl.JavaMetaDataImpl
+ * @see org.apache.tuscany.sdo.util.metadata.impl.MetadataPackageImpl#getJavaMetaData()
+ * @generated
+ */
+ public static final EClass JAVA_META_DATA = eINSTANCE.getJavaMetaData();
+
+ /**
+ * The meta object literal for the '<em><b>Factory Interface</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute JAVA_META_DATA__FACTORY_INTERFACE = eINSTANCE.getJavaMetaData_FactoryInterface();
+
+ /**
+ * The meta object literal for the '<em><b>Type Interface</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute JAVA_META_DATA__TYPE_INTERFACE = eINSTANCE.getJavaMetaData_TypeInterface();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.util.metadata.impl.SDOMetaDataGroupImpl <em>SDO Meta Data Group</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.util.metadata.impl.SDOMetaDataGroupImpl
+ * @see org.apache.tuscany.sdo.util.metadata.impl.MetadataPackageImpl#getSDOMetaDataGroup()
+ * @generated
+ */
+ public static final EClass SDO_META_DATA_GROUP = eINSTANCE.getSDOMetaDataGroup();
+
+ /**
+ * The meta object literal for the '<em><b>Java Meta Data</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference SDO_META_DATA_GROUP__JAVA_META_DATA = eINSTANCE.getSDOMetaDataGroup_JavaMetaData();
+
+ /**
+ * The meta object literal for the '<em><b>Xsd Meta Data</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference SDO_META_DATA_GROUP__XSD_META_DATA = eINSTANCE.getSDOMetaDataGroup_XsdMetaData();
+
+ /**
+ * The meta object literal for the '<em><b>Type Meta Data</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference SDO_META_DATA_GROUP__TYPE_META_DATA = eINSTANCE.getSDOMetaDataGroup_TypeMetaData();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.util.metadata.impl.TypeMetaDataImpl <em>Type Meta Data</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.util.metadata.impl.TypeMetaDataImpl
+ * @see org.apache.tuscany.sdo.util.metadata.impl.MetadataPackageImpl#getTypeMetaData()
+ * @generated
+ */
+ public static final EClass TYPE_META_DATA = eINSTANCE.getTypeMetaData();
+
+ /**
+ * The meta object literal for the '<em><b>Location</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute TYPE_META_DATA__LOCATION = eINSTANCE.getTypeMetaData_Location();
+
+ /**
+ * The meta object literal for the '{@link org.apache.tuscany.sdo.util.metadata.impl.XSDMetaDataImpl <em>XSD Meta Data</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.apache.tuscany.sdo.util.metadata.impl.XSDMetaDataImpl
+ * @see org.apache.tuscany.sdo.util.metadata.impl.MetadataPackageImpl#getXSDMetaData()
+ * @generated
+ */
+ public static final EClass XSD_META_DATA = eINSTANCE.getXSDMetaData();
+
+ /**
+ * The meta object literal for the '<em><b>Location</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute XSD_META_DATA__LOCATION = eINSTANCE.getXSDMetaData_Location();
+
+ }
+
+} //MetadataPackageImpl
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/SDOMetaDataGroupImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/SDOMetaDataGroupImpl.java
new file mode 100644
index 0000000000..5a668bb306
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/SDOMetaDataGroupImpl.java
@@ -0,0 +1,323 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util.metadata.impl;
+
+import java.io.InputStream;
+import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+import org.apache.tuscany.sdo.model.Types;
+import org.apache.tuscany.sdo.util.SDOUtil;
+import org.apache.tuscany.sdo.util.metadata.JavaMetaData;
+import org.apache.tuscany.sdo.util.metadata.SDOMetaDataGroup;
+import org.apache.tuscany.sdo.util.metadata.TypeMetaData;
+import org.apache.tuscany.sdo.util.metadata.XSDMetaData;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SDO Meta Data Group</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.util.metadata.impl.SDOMetaDataGroupImpl#getJavaMetaData <em>Java Meta Data</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.util.metadata.impl.SDOMetaDataGroupImpl#getXsdMetaData <em>Xsd Meta Data</em>}</li>
+ * <li>{@link org.apache.tuscany.sdo.util.metadata.impl.SDOMetaDataGroupImpl#getTypeMetaData <em>Type Meta Data</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SDOMetaDataGroupImpl extends DataObjectImpl implements SDOMetaDataGroup
+{
+ public void register(TypeHelper typeHelper)
+ {
+ try
+ {
+ ClassLoader classLoader = (ClassLoader)AccessController.doPrivileged(new PrivilegedAction()
+ {
+ public Object run()
+ {
+ return Thread.currentThread().getContextClassLoader();
+ }
+ });
+ register(typeHelper, classLoader);
+ }
+ catch (SecurityException e)
+ {
+ }
+ }
+
+ public void register(TypeHelper typeHelper, ClassLoader classLoader)
+ {
+ try
+ {
+ for (Iterator iter = getJavaMetaData().iterator(); iter.hasNext();)
+ {
+ JavaMetaData metadata = (JavaMetaData)iter.next();
+ String factoryInterface = metadata.getFactoryInterface();
+ if (factoryInterface != null)
+ {
+ Class factoryInterfaceClass = classLoader.loadClass(factoryInterface);
+ SDOUtil.registerStaticTypes(factoryInterfaceClass);
+ }
+ else
+ {
+ String typeInterface = metadata.getTypeInterface();
+ Class typeInterfaceClass = classLoader.loadClass(typeInterface);
+ // TODO: introspect and register the type
+ }
+ }
+
+ XSDHelper xsdHelper = SDOUtil.createXSDHelper(typeHelper);
+ for (Iterator iter = getXsdMetaData().iterator(); iter.hasNext();)
+ {
+ XSDMetaData metadata = (XSDMetaData)iter.next();
+ URL url = getClass().getResource(metadata.getLocation());
+ InputStream inputStream = url.openStream();
+ xsdHelper.define(inputStream, url.toString());
+ }
+
+ XMLHelper xmlHelper = SDOUtil.createXMLHelper(typeHelper);
+ for (Iterator iter = getTypeMetaData().iterator(); iter.hasNext();)
+ {
+ TypeMetaData metadata = (TypeMetaData)iter.next();
+ URL url = getClass().getResource(metadata.getLocation());
+ InputStream inputStream = url.openStream();
+ XMLDocument xmlDocument = xmlHelper.load(inputStream);
+ Types types = (Types)xmlDocument.getRootObject();
+ typeHelper.define(types.getTypeList());
+ }
+ }
+ catch (Exception e)
+ {
+ }
+ }
+
+ /**
+ * The cached value of the '{@link #getJavaMetaData() <em>Java Meta Data</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getJavaMetaData()
+ * @generated
+ * @ordered
+ */
+ protected EList javaMetaData = null;
+
+ /**
+ * The cached value of the '{@link #getXsdMetaData() <em>Xsd Meta Data</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getXsdMetaData()
+ * @generated
+ * @ordered
+ */
+ protected EList xsdMetaData = null;
+
+ /**
+ * The cached value of the '{@link #getTypeMetaData() <em>Type Meta Data</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypeMetaData()
+ * @generated
+ * @ordered
+ */
+ protected EList typeMetaData = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SDOMetaDataGroupImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return MetadataPackageImpl.Literals.SDO_META_DATA_GROUP;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getJavaMetaData()
+ {
+ if (javaMetaData == null)
+ {
+ javaMetaData = new EObjectContainmentEList(JavaMetaData.class, this, MetadataPackageImpl.SDO_META_DATA_GROUP__JAVA_META_DATA);
+ }
+ return javaMetaData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getXsdMetaData()
+ {
+ if (xsdMetaData == null)
+ {
+ xsdMetaData = new EObjectContainmentEList(XSDMetaData.class, this, MetadataPackageImpl.SDO_META_DATA_GROUP__XSD_META_DATA);
+ }
+ return xsdMetaData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getTypeMetaData()
+ {
+ if (typeMetaData == null)
+ {
+ typeMetaData = new EObjectContainmentEList(TypeMetaData.class, this, MetadataPackageImpl.SDO_META_DATA_GROUP__TYPE_META_DATA);
+ }
+ return typeMetaData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__JAVA_META_DATA:
+ return ((InternalEList)getJavaMetaData()).basicRemove(otherEnd, msgs);
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__XSD_META_DATA:
+ return ((InternalEList)getXsdMetaData()).basicRemove(otherEnd, msgs);
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__TYPE_META_DATA:
+ return ((InternalEList)getTypeMetaData()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__JAVA_META_DATA:
+ return getJavaMetaData();
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__XSD_META_DATA:
+ return getXsdMetaData();
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__TYPE_META_DATA:
+ return getTypeMetaData();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__JAVA_META_DATA:
+ getJavaMetaData().clear();
+ getJavaMetaData().addAll((Collection)newValue);
+ return;
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__XSD_META_DATA:
+ getXsdMetaData().clear();
+ getXsdMetaData().addAll((Collection)newValue);
+ return;
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__TYPE_META_DATA:
+ getTypeMetaData().clear();
+ getTypeMetaData().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__JAVA_META_DATA:
+ getJavaMetaData().clear();
+ return;
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__XSD_META_DATA:
+ getXsdMetaData().clear();
+ return;
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__TYPE_META_DATA:
+ getTypeMetaData().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__JAVA_META_DATA:
+ return javaMetaData != null && !javaMetaData.isEmpty();
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__XSD_META_DATA:
+ return xsdMetaData != null && !xsdMetaData.isEmpty();
+ case MetadataPackageImpl.SDO_META_DATA_GROUP__TYPE_META_DATA:
+ return typeMetaData != null && !typeMetaData.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SDOMetaDataGroupImpl \ No newline at end of file
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/TypeMetaDataImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/TypeMetaDataImpl.java
new file mode 100644
index 0000000000..a147b12053
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/TypeMetaDataImpl.java
@@ -0,0 +1,185 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util.metadata.impl;
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+
+import org.apache.tuscany.sdo.util.metadata.TypeMetaData;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Type Meta Data</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.util.metadata.impl.TypeMetaDataImpl#getLocation <em>Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TypeMetaDataImpl extends DataObjectImpl implements TypeMetaData
+{
+ /**
+ * The default value of the '{@link #getLocation() <em>Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocation()
+ * @generated
+ * @ordered
+ */
+ protected static final String LOCATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLocation() <em>Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocation()
+ * @generated
+ * @ordered
+ */
+ protected String location = LOCATION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TypeMetaDataImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return MetadataPackageImpl.Literals.TYPE_META_DATA;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLocation()
+ {
+ return location;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocation(String newLocation)
+ {
+ String oldLocation = location;
+ location = newLocation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, MetadataPackageImpl.TYPE_META_DATA__LOCATION, oldLocation, location));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.TYPE_META_DATA__LOCATION:
+ return getLocation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.TYPE_META_DATA__LOCATION:
+ setLocation((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.TYPE_META_DATA__LOCATION:
+ setLocation(LOCATION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.TYPE_META_DATA__LOCATION:
+ return LOCATION_EDEFAULT == null ? location != null : !LOCATION_EDEFAULT.equals(location);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (location: ");
+ result.append(location);
+ result.append(')');
+ return result.toString();
+ }
+
+} //TypeMetaDataImpl \ No newline at end of file
diff --git a/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/XSDMetaDataImpl.java b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/XSDMetaDataImpl.java
new file mode 100644
index 0000000000..1bfdc9d465
--- /dev/null
+++ b/sca-java-1.x/tags/java-M1-final/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/XSDMetaDataImpl.java
@@ -0,0 +1,185 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed 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.util.metadata.impl;
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+
+import org.apache.tuscany.sdo.util.metadata.XSDMetaData;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>XSD Meta Data</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.apache.tuscany.sdo.util.metadata.impl.XSDMetaDataImpl#getLocation <em>Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XSDMetaDataImpl extends DataObjectImpl implements XSDMetaData
+{
+ /**
+ * The default value of the '{@link #getLocation() <em>Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocation()
+ * @generated
+ * @ordered
+ */
+ protected static final String LOCATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLocation() <em>Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocation()
+ * @generated
+ * @ordered
+ */
+ protected String location = LOCATION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected XSDMetaDataImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return MetadataPackageImpl.Literals.XSD_META_DATA;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLocation()
+ {
+ return location;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocation(String newLocation)
+ {
+ String oldLocation = location;
+ location = newLocation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, MetadataPackageImpl.XSD_META_DATA__LOCATION, oldLocation, location));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.XSD_META_DATA__LOCATION:
+ return getLocation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.XSD_META_DATA__LOCATION:
+ setLocation((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.XSD_META_DATA__LOCATION:
+ setLocation(LOCATION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case MetadataPackageImpl.XSD_META_DATA__LOCATION:
+ return LOCATION_EDEFAULT == null ? location != null : !LOCATION_EDEFAULT.equals(location);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (location: ");
+ result.append(location);
+ result.append(')');
+ return result.toString();
+ }
+
+} //XSDMetaDataImpl \ No newline at end of file