summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/branches/java-post-M1/sdo
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-1.x/branches/java-post-M1/sdo')
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/model/SDO.ecore962
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/model/SDO.genmodel564
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/model/SDO.mdl7670
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/pom.xml110
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/AnyTypeDataObject.java34
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOExtendedMetaData.java35
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOFactory.java173
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOPackage.java1599
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOTypeVisitor.java46
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/SimpleAnyTypeDataObject.java32
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/BytecodeInterfaceGenerator.java95
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/GenerationException.java39
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/JavaInterfaceGenerator.java176
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/NoJavaImplementationException.java58
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/CopyHelperImpl.java51
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataFactoryImpl.java62
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java310
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/EqualityHelperImpl.java67
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperProviderImpl.java212
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java96
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOXSDEcoreBuilder.java434
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/TypeHelperImpl.java215
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLDocumentImpl.java533
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLHelperImpl.java116
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLStreamHelper.java89
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLStreamHelperImpl.java126
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java218
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/AnyTypeDataObjectImpl.java296
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/AttributeImpl.java732
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ChangeSummaryImpl.java679
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ChangeSummarySettingImpl.java110
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ClassImpl.java773
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataGraphImpl.java821
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectBase.java238
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectImpl.java1508
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataTypeImpl.java750
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DynamicDataObjectImpl.java196
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DynamicStoreDataObjectImpl.java88
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/EnumImpl.java170
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/FactoryBase.java214
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ReferenceImpl.java698
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOFactoryImpl.java325
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOPackageImpl.java2133
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SimpleAnyTypeDataObjectImpl.java330
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/StoreDataObjectImpl.java311
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/BaseDataGraphType.java125
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ChangeSummaryType.java152
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/DataGraphType.java50
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/DataObject.java30
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelFactory.java100
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelPackage.java141
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelsType.java56
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Property.java342
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/TextType.java51
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Type.java371
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Types.java53
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/XSDType.java56
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/BaseDataGraphTypeImpl.java408
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ChangeSummaryTypeImpl.java396
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/DataGraphTypeImpl.java187
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/DataObjectImpl.java54
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java1095
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelPackageImpl.java4331
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelsTypeImpl.java189
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/PropertyImpl.java801
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TextTypeImpl.java170
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TypeImpl.java851
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TypesImpl.java179
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/XSDTypeImpl.java189
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/JavaFactory.java46
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/JavaInfo.java60
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaFactoryImpl.java361
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaInfoImpl.java185
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaPackageImpl.java1149
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/BasicSequence.java134
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataGraphResourceFactoryImpl.java691
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java2669
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java595
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/StAX2SAXAdapter.java247
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/JavaMetaData.java85
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/MetadataFactory.java73
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/SDOMetaDataGroup.java86
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/TypeMetaData.java60
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/XSDMetaData.java60
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/JavaMetaDataImpl.java241
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/MetadataFactoryImpl.java174
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/MetadataPackageImpl.java1015
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/SDOMetaDataGroupImpl.java323
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/TypeMetaDataImpl.java185
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/XSDMetaDataImpl.java185
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java1500
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/SDOXMLResourceFactoryImpl.java44
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/SDOXMLResourceImpl.java181
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/XMLDocumentStreamReader.java426
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/XMLFragmentStreamReader.java34
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/XMLStreamSerializer.java258
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/LICENSE.txt1277
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/MANIFEST.MF25
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/NOTICE18
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/README.txt35
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/services/commonj.sdo.impl.HelperProvider1
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/sdo-metadata.xsd42
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Bar1.java23
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Bar2.java23
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/BytecodeInterfaceGeneratorTestCase.java164
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Foo.java23
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/JavaInterfaceGeneratorTestCase.java126
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/MockProperty.java75
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/MockType.java93
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/ChangeSummaryTestCase.java89
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/DataTypeBaseTypeTestCase.java65
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/DefineTypeTestCase.java632
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/MixedTypeTestCase.java86
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/OpenTypeTestCase.java82
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleCopyTestCase.java68
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleDynamicTestCase.java78
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleEqualityTestCase.java60
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SubstitutionValues.java24
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TestUtil.java282
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TypeRoundTripTest.java161
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XMLDocumentTestCase.java107
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XMLStreamHelperTestCase.java125
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XPathTestCase.java125
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XSDHelperTestCase.java61
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/SubstitutionValues.xsd12
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/XMLDocumentNoNamespaceSchemaLocation.xsd28
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/XMLDocumentSchemaLocation.xsd32
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/XMLDocumentTestCase.xml14
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/customer1.xml8
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/customer2.xml8
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/datatype.xsd31
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/foo-ext.xml9
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/foo-ext.xsd41
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/foo.xsd229
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixed.xml9
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixed.xsd38
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixed2.xml12
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixedopen.xml13
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/names.xsd30
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/open.xml8
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/open.xsd41
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/open2.xml9
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/quote.xml14
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/sdoannotations.xsd57
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/sdotypes.xsd68
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/shallowquote.xml11
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/simple.xsd38
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/simplechangesummary.xml36
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/xpath.xml51
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/xpath.xsd58
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/plugin/pom.xml41
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/java/org/apache/tuscany/sdo/plugin/GeneratorMojo.java264
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/java/org/apache/tuscany/sdo/plugin/SchemaFileOption.java189
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/resources/META-INF/LICENSE.txt1277
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/resources/META-INF/NOTICE18
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/resources/META-INF/README.txt35
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/pom.xml83
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/pom.xml55
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/readme.htm29
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/Interface2JavaGenerator.java242
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/JavaGenerator.java616
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/XSD2JavaGenerator.java179
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/adapter/SDOGenClassGeneratorAdapter.java43
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/adapter/SDOGenModelGeneratorAdapterFactory.java51
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/adapter/SDOGenPackageGeneratorAdapter.java49
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/templates/model/SDOClass.java4165
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/templates/model/SDOFactoryClass.java1495
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/eclipse/jdt/core/formatter/CodeFormatter.java24
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/resources/META-INF/LICENSE.txt1277
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/resources/META-INF/NOTICE18
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/resources/META-INF/README.txt35
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/MixedQuote.java323
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/MixedRepeatingChoice.java96
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/RepeatingChoice.java82
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/SequencesFactory.java83
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/TwoRCs.java151
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/TwoRCsMixed.java165
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/MixedQuoteImpl.java657
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/MixedRepeatingChoiceImpl.java299
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/RepeatingChoiceImpl.java265
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/SequencesFactoryImpl.java692
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/TwoRCsImpl.java449
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/TwoRCsMixedImpl.java447
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/Quote.java307
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/SimpleFactory.java46
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/impl/QuoteImpl.java712
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/impl/SimpleFactoryImpl.java138
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/impl/SimplePackageImpl.java908
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/SimpleStaticTest.java64
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/StaticSequenceNoEmfTest.java249
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/TestUtil.java282
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/enum.xsd47
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/mixedRepeatingChoiceTestResult.xml22
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/mixedStaticTestResult.xml31
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/repeatingChoice.xsd29
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/repeatingChoiceTestResult.xml22
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/sequences.xsd97
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/simple.xsd38
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/twoRepeatingChoicesMixedTestResult.xml25
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/twoRepeatingChoicesTestResult.xml25
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/templates/Header.javajetinc6
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/templates/models/SDOClass.javajet1813
-rw-r--r--sca-java-1.x/branches/java-post-M1/sdo/tools/templates/models/SDOFactoryClass.javajet727
203 files changed, 70295 insertions, 0 deletions
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/model/SDO.ecore b/sca-java-1.x/branches/java-post-M1/sdo/impl/model/SDO.ecore
new file mode 100644
index 0000000000..dce261ecd2
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/model/SDO.ecore
@@ -0,0 +1,962 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="sdo"
+ nsURI="http://www.apache.org/tuscany/2005/SDO" nsPrefix="sdo">
+ <eClassifiers xsi:type="ecore:EClass" name="ChangeSummary" instanceClassName="commonj.sdo.ChangeSummary"
+ eSuperTypes="../../org.eclipse.emf.ecore.change/model/Change.ecore#//ChangeDescription">
+ <eOperations name="beginLogging"/>
+ <eOperations name="endLogging"/>
+ <eOperations name="isCreated" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eParameters name="dataObject" eType="#//DataObject"/>
+ </eOperations>
+ <eOperations name="isDeleted" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eParameters name="dataObject" eType="#//DataObject"/>
+ </eOperations>
+ <eOperations name="getOldValues" eType="#//EJavaList">
+ <eParameters name="dataObject" eType="#//DataObject"/>
+ </eOperations>
+ <eOperations name="isModified" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eParameters name="dataObject" eType="#//DataObject"/>
+ </eOperations>
+ <eOperations name="getOldValue" eType="#//ChangeSummarySetting">
+ <eParameters name="dataObject" eType="#//DataObject"/>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getOldContainer" eType="#//DataObject">
+ <eParameters name="dataObject" eType="#//DataObject"/>
+ </eOperations>
+ <eOperations name="getOldContainmentProperty" eType="#//Property">
+ <eParameters name="dataObject" eType="#//DataObject"/>
+ </eOperations>
+ <eOperations name="getOldSequence" eType="#//Sequence">
+ <eParameters name="dataObject" eType="#//DataObject"/>
+ </eOperations>
+ <eOperations name="undoChanges"/>
+ <eOperations name="isLogging" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="getDataGraph" eType="#//DataGraph"/>
+ <eOperations name="getChangedObjects" eType="#//EJavaList"/>
+ <eOperations name="getRootObject" eType="#//DataObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eDataGraph" lowerBound="1"
+ eType="#//DataGraph" transient="true" resolveProxies="false" eOpposite="#//DataGraph/eChangeSummary"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ChangeSummarySetting" instanceClassName="commonj.sdo.ChangeSummary$Setting"
+ eSuperTypes="../../org.eclipse.emf.ecore.change/model/Change.ecore#//FeatureChange">
+ <eOperations name="isSet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="getValue" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ <eOperations name="getProperty" eType="#//Property"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DataGraph" instanceClassName="commonj.sdo.DataGraph"
+ eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
+ <eOperations name="createRootObject" eType="#//DataObject">
+ <eParameters name="namespaceURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="typeName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="createRootObject" eType="#//DataObject">
+ <eParameters name="type" eType="#//Type"/>
+ </eOperations>
+ <eOperations name="getType" eType="#//Type">
+ <eParameters name="namespaceURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="typeName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getRootObject" eType="#//DataObject"/>
+ <eOperations name="getChangeSummary" eType="#//ChangeSummary"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceSet" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EResourceSet"
+ transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="rootResource" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EResource"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eChangeSummary" lowerBound="1"
+ eType="#//ChangeSummary" resolveProxies="false" eOpposite="#//ChangeSummary/eDataGraph"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eRootObject" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"
+ resolveProxies="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DataObject" instanceClassName="commonj.sdo.DataObject"
+ abstract="true">
+ <eOperations name="get" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.get(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="set">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.set(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="isSet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.isSet(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="unset">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.unset(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="get" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.get(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="set">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.set(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="isSet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.isSet(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="unset">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.unset(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="get" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.get(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="set">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.set(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="isSet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.isSet(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="unset">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.unset(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getContainer" eType="#//DataObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getContainer(this);"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getContainmentProperty" eType="#//Property">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getContainmentProperty(this);"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getDataGraph" eType="#//DataGraph">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getDataGraph(this);"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getType" eType="#//Type">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getType(this);"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getBigDecimal" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigDecimal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getBigDecimal(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getBigInteger" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getBigInteger(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getBoolean(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getByte" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getByte(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getBytes" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EByteArray">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getBytes(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getChar" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EChar">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getChar(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getDataObject" eType="#//DataObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getDataObject(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getDate" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getDate(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getDouble" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getDouble(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getFloat" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getFloat(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getInt" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getInt(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getList" eType="#//EJavaList">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getList(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getLong" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getLong(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getSequence" eType="#//Sequence">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getSequence(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getShort" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EShort">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getShort(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getString(this, path);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="setBigDecimal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setBigDecimal(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigDecimal"/>
+ </eOperations>
+ <eOperations name="setBigInteger">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setBigInteger(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"/>
+ </eOperations>
+ <eOperations name="setBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setBoolean(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eOperations name="setByte">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setByte(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"/>
+ </eOperations>
+ <eOperations name="setBytes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setBytes(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EByteArray"/>
+ </eOperations>
+ <eOperations name="setChar">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setChar(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EChar"/>
+ </eOperations>
+ <eOperations name="setDataObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setDataObject(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="#//DataObject"/>
+ </eOperations>
+ <eOperations name="setDate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setDate(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDate"/>
+ </eOperations>
+ <eOperations name="setDouble">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setDouble(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ </eOperations>
+ <eOperations name="setFloat">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setFloat(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+ </eOperations>
+ <eOperations name="setInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setInt(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="setList">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setList(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="#//EJavaList"/>
+ </eOperations>
+ <eOperations name="setLong">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setLong(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
+ </eOperations>
+ <eOperations name="setShort">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setShort(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EShort"/>
+ </eOperations>
+ <eOperations name="setString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setString(this, path, value);"/>
+ </eAnnotations>
+ <eParameters name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getBigDecimal" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigDecimal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getBigDecimal(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getBigInteger" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getBigInteger(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getBoolean(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getByte" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getByte(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getBytes" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EByteArray">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getBytes(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getChar" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EChar">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getChar(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getDataObject" eType="#//DataObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getDataObject(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getDate" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getDate(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getDouble" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getDouble(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getFloat" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getFloat(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getInt" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getInt(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getList" eType="#//EJavaList">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getList(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getLong" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getLong(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getSequence" eType="#//Sequence">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getSequence(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getShort" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EShort">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getShort(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getString(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="setBigDecimal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setBigDecimal(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigDecimal"/>
+ </eOperations>
+ <eOperations name="setBigInteger">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setBigInteger(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"/>
+ </eOperations>
+ <eOperations name="setBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setBoolean(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eOperations name="setByte">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setByte(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"/>
+ </eOperations>
+ <eOperations name="setBytes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setBytes(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EByteArray"/>
+ </eOperations>
+ <eOperations name="setChar">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setChar(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EChar"/>
+ </eOperations>
+ <eOperations name="setDataObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setDataObject(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="#//DataObject"/>
+ </eOperations>
+ <eOperations name="setDate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setDate(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDate"/>
+ </eOperations>
+ <eOperations name="setDouble">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setDouble(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ </eOperations>
+ <eOperations name="setFloat">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setFloat(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+ </eOperations>
+ <eOperations name="setInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setInt(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="setList">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setList(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="#//EJavaList"/>
+ </eOperations>
+ <eOperations name="setLong">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setLong(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
+ </eOperations>
+ <eOperations name="setShort">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setShort(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EShort"/>
+ </eOperations>
+ <eOperations name="setString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setString(this, propertyIndex, value);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getBigDecimal" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigDecimal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getBigDecimal(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getBigInteger" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getBigInteger(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getBoolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getBoolean(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getByte" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getByte(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getBytes" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EByteArray">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getBytes(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getChar" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EChar">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getChar(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getDataObject" eType="#//DataObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getDataObject(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getDate" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getDate(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getDouble" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getDouble(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getFloat" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getFloat(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getInt" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getInt(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getList" eType="#//EJavaList">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getList(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getLong" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getLong(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getSequence" eType="#//Sequence">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getSequence(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getShort" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EShort">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getShort(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getString(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="setBigDecimal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setBigDecimal(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigDecimal"/>
+ </eOperations>
+ <eOperations name="setBigInteger">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setBigInteger(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"/>
+ </eOperations>
+ <eOperations name="setBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setBoolean(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eOperations name="setByte">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setByte(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EByte"/>
+ </eOperations>
+ <eOperations name="setBytes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setBytes(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EByteArray"/>
+ </eOperations>
+ <eOperations name="setChar">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setChar(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EChar"/>
+ </eOperations>
+ <eOperations name="setDataObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setDataObject(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="#//DataObject"/>
+ </eOperations>
+ <eOperations name="setDate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setDate(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDate"/>
+ </eOperations>
+ <eOperations name="setDouble">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setDouble(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ </eOperations>
+ <eOperations name="setFloat">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setFloat(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+ </eOperations>
+ <eOperations name="setInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setInt(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="setList">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setList(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="#//EJavaList"/>
+ </eOperations>
+ <eOperations name="setLong">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setLong(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
+ </eOperations>
+ <eOperations name="setShort">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setShort(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EShort"/>
+ </eOperations>
+ <eOperations name="setString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.setString(this, property, value);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="createDataObject" eType="#//DataObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.createDataObject(this, propertyName);"/>
+ </eAnnotations>
+ <eParameters name="propertyName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="createDataObject" eType="#//DataObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.createDataObject(this, propertyIndex);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="createDataObject" eType="#//DataObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.createDataObject(this, property);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="createDataObject" eType="#//DataObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.createDataObject(this, propertyName, namespaceURI, typeName);"/>
+ </eAnnotations>
+ <eParameters name="propertyName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="namespaceURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="typeName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="createDataObject" eType="#//DataObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.createDataObject(this, propertyIndex, namespaceURI, typeName);"/>
+ </eAnnotations>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="namespaceURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="typeName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="createDataObject" eType="#//DataObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.createDataObject(this, property, type);"/>
+ </eAnnotations>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="type" eType="#//Type"/>
+ </eOperations>
+ <eOperations name="delete">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.delete(this);"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSequence" eType="#//Sequence">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getSequence(this);"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getInstanceProperties" eType="#//EJavaList">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getInstanceProperties(this);"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getProperty" eType="#//Property">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getProperty(this, propertyName);"/>
+ </eAnnotations>
+ <eParameters name="propertyName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getRootObject" eType="#//DataObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getRootObject(this);"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getChangeSummary" eType="#//ChangeSummary">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return &lt;%org.apache.sdo.util.SDOUtil%>.getChangeSummary(this);"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="detach">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="&lt;%org.apache.sdo.util.SDOUtil%>.detach(this);"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Property" instanceClassName="commonj.sdo.Property"
+ abstract="true" interface="true">
+ <eOperations name="getName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getType" eType="#//Type"/>
+ <eOperations name="isMany" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="isContainment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="isReadOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="getContainingType" eType="#//Type"/>
+ <eOperations name="getAliasNames" eType="#//EJavaList"/>
+ <eOperations name="getOpposite" eType="#//Property"/>
+ <eOperations name="getDefault" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Sequence" instanceClassName="commonj.sdo.Sequence"
+ abstract="true" interface="true">
+ <eOperations name="size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eOperations name="getProperty" eType="#//Property">
+ <eParameters name="index" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="getValue" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
+ <eParameters name="index" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="setValue" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject">
+ <eParameters name="index" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="add" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eParameters name="propertyName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="add" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eParameters name="propertIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="add" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="add">
+ <eParameters name="index" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="propertyName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="add">
+ <eParameters name="index" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="propertyIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="add">
+ <eParameters name="index" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="property" eType="#//Property"/>
+ <eParameters name="value" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="add">
+ <eParameters name="text" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="add">
+ <eParameters name="index" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="text" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Type" instanceClassName="commonj.sdo.Type"
+ abstract="true" interface="true">
+ <eOperations name="getName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getInstanceClass" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaClass"/>
+ <eOperations name="isInstance" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eParameters name="object" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+ </eOperations>
+ <eOperations name="isDataType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="isSequenced" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="isOpen" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="isAbstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="getBaseTypes" eType="#//EJavaList"/>
+ <eOperations name="getAliasNames" eType="#//EJavaList"/>
+ <eOperations name="getProperties" eType="#//EJavaList"/>
+ <eOperations name="getDeclaredProperties" eType="#//EJavaList"/>
+ <eOperations name="getProperty" eType="#//Property">
+ <eParameters name="propertyName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="EJavaList" instanceClassName="java.util.List"
+ serializable="false"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="EObjectStreamException" instanceClassName="java.io.ObjectStreamException"
+ serializable="false"/>
+ <eClassifiers xsi:type="ecore:EClass" name="AnyTypeDataObject" eSuperTypes="#//DataObject ../../org.eclipse.emf.ecore/model/XMLType.ecore#//AnyType">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="mixed"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SimpleAnyTypeDataObject" eSuperTypes="#//AnyTypeDataObject ../../org.eclipse.emf.ecore/model/XMLType.ecore#//SimpleAnyType">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="simple"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Class" instanceClassName="commonj.sdo.Type"
+ eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass #//Type"/>
+ <eClassifiers xsi:type="ecore:EClass" name="DataType" instanceClassName="commonj.sdo.Type"
+ eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDataType #//Type"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Attribute" instanceClassName="commonj.sdo.Property"
+ eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAttribute #//Property"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Reference" instanceClassName="commonj.sdo.Property"
+ eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference #//Property"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Enum" instanceClassName="commonj.sdo.Type"
+ eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum #//Type"/>
+ <eClassifiers xsi:type="ecore:EClass" name="DynamicDataObject" instanceClassName="commonj.sdo.DataObject"
+ eSuperTypes="#//DataObject"/>
+ <eClassifiers xsi:type="ecore:EClass" name="StoreDataObject" instanceClassName="commonj.sdo.DataObject"
+ eSuperTypes="#//DataObject"/>
+ <eClassifiers xsi:type="ecore:EClass" name="DynamicStoreDataObject" instanceClassName="commonj.sdo.DataObject"
+ eSuperTypes="#//StoreDataObject"/>
+</ecore:EPackage>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/model/SDO.genmodel b/sca-java-1.x/branches/java-post-M1/sdo/impl/model/SDO.genmodel
new file mode 100644
index 0000000000..d28946204c
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/model/SDO.genmodel
@@ -0,0 +1,564 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.apache.tuscany.sdo.impl/src/main/java"
+ creationCommands="false" modelPluginID="org.apache.tuscany.sdo.impl" runtimeJar="true"
+ modelName="SDO" modelPluginClass="" updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.BasicEObjectImpl"
+ rootImplementsInterface="" testsDirectory="" importerID="org.eclipse.emf.importer.rose"
+ usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.emf.ecore/model/XMLType.genmodel#//type ../../org.eclipse.emf.ecore.change/model/Change.genmodel#//change">
+ <foreignModel>SDO.mdl</foreignModel>
+ <foreignModel>VABASE_PLUGINS_PATH</foreignModel>
+ <foreignModel>../..</foreignModel>
+ <genPackages prefix="SDO" basePackage="org.apache.tuscany" disposableProviderFactory="true"
+ adapterFactory="false" generateExampleClass="false" ecorePackage="SDO.ecore#/">
+ <genDataTypes ecoreDataType="SDO.ecore#//EJavaList"/>
+ <genDataTypes ecoreDataType="SDO.ecore#//EObjectStreamException"/>
+ <genClasses ecoreClass="SDO.ecore#//ChangeSummary">
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SDO.ecore#//ChangeSummary/eDataGraph"/>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/beginLogging"/>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/endLogging"/>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/isCreated">
+ <genParameters ecoreParameter="SDO.ecore#//ChangeSummary/isCreated/dataObject"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/isDeleted">
+ <genParameters ecoreParameter="SDO.ecore#//ChangeSummary/isDeleted/dataObject"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/getOldValues">
+ <genParameters ecoreParameter="SDO.ecore#//ChangeSummary/getOldValues/dataObject"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/isModified">
+ <genParameters ecoreParameter="SDO.ecore#//ChangeSummary/isModified/dataObject"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/getOldValue">
+ <genParameters ecoreParameter="SDO.ecore#//ChangeSummary/getOldValue/dataObject"/>
+ <genParameters ecoreParameter="SDO.ecore#//ChangeSummary/getOldValue/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/getOldContainer">
+ <genParameters ecoreParameter="SDO.ecore#//ChangeSummary/getOldContainer/dataObject"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/getOldContainmentProperty">
+ <genParameters ecoreParameter="SDO.ecore#//ChangeSummary/getOldContainmentProperty/dataObject"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/getOldSequence">
+ <genParameters ecoreParameter="SDO.ecore#//ChangeSummary/getOldSequence/dataObject"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/undoChanges"/>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/isLogging"/>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/getDataGraph"/>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/getChangedObjects"/>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummary/getRootObject"/>
+ </genClasses>
+ <genClasses ecoreClass="SDO.ecore#//ChangeSummarySetting">
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummarySetting/isSet"/>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummarySetting/getValue"/>
+ <genOperations ecoreOperation="SDO.ecore#//ChangeSummarySetting/getProperty"/>
+ </genClasses>
+ <genClasses ecoreClass="SDO.ecore#//DataGraph">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SDO.ecore#//DataGraph/resourceSet"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute SDO.ecore#//DataGraph/rootResource"/>
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SDO.ecore#//DataGraph/eChangeSummary"/>
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference SDO.ecore#//DataGraph/eRootObject"/>
+ <genOperations ecoreOperation="SDO.ecore#//DataGraph/createRootObject">
+ <genParameters ecoreParameter="SDO.ecore#//DataGraph/createRootObject/namespaceURI"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataGraph/createRootObject/typeName"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataGraph/createRootObject.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataGraph/createRootObject.1/type"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataGraph/getType">
+ <genParameters ecoreParameter="SDO.ecore#//DataGraph/getType/namespaceURI"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataGraph/getType/typeName"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataGraph/getRootObject"/>
+ <genOperations ecoreOperation="SDO.ecore#//DataGraph/getChangeSummary"/>
+ </genClasses>
+ <genClasses ecoreClass="SDO.ecore#//DataObject">
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/get">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/get/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/set">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/set/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/set/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/isSet">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/isSet/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/unset">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/unset/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/get.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/get.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/set.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/set.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/set.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/isSet.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/isSet.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/unset.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/unset.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/get.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/get.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/set.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/set.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/set.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/isSet.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/isSet.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/unset.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/unset.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getContainer"/>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getContainmentProperty"/>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getDataGraph"/>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getType"/>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getBigDecimal">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getBigDecimal/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getBigInteger">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getBigInteger/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getBoolean">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getBoolean/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getByte">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getByte/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getBytes">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getBytes/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getChar">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getChar/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getDataObject">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getDataObject/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getDate">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getDate/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getDouble">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getDouble/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getFloat">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getFloat/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getInt">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getInt/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getList">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getList/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getLong">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getLong/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getSequence">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getSequence/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getShort">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getShort/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getString">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getString/path"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setBigDecimal">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBigDecimal/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBigDecimal/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setBigInteger">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBigInteger/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBigInteger/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setBoolean">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBoolean/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBoolean/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setByte">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setByte/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setByte/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setBytes">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBytes/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBytes/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setChar">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setChar/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setChar/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setDataObject">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDataObject/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDataObject/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setDate">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDate/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDate/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setDouble">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDouble/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDouble/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setFloat">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setFloat/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setFloat/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setInt">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setInt/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setInt/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setList">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setList/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setList/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setLong">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setLong/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setLong/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setShort">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setShort/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setShort/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setString">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setString/path"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setString/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getBigDecimal.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getBigDecimal.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getBigInteger.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getBigInteger.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getBoolean.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getBoolean.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getByte.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getByte.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getBytes.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getBytes.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getChar.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getChar.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getDataObject.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getDataObject.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getDate.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getDate.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getDouble.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getDouble.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getFloat.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getFloat.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getInt.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getInt.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getList.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getList.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getLong.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getLong.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getSequence.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getSequence.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getShort.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getShort.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getString.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getString.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setBigDecimal.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBigDecimal.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBigDecimal.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setBigInteger.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBigInteger.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBigInteger.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setBoolean.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBoolean.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBoolean.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setByte.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setByte.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setByte.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setBytes.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBytes.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBytes.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setChar.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setChar.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setChar.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setDataObject.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDataObject.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDataObject.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setDate.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDate.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDate.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setDouble.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDouble.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDouble.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setFloat.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setFloat.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setFloat.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setInt.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setInt.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setInt.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setList.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setList.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setList.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setLong.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setLong.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setLong.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setShort.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setShort.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setShort.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setString.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setString.1/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setString.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getBigDecimal.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getBigDecimal.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getBigInteger.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getBigInteger.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getBoolean.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getBoolean.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getByte.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getByte.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getBytes.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getBytes.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getChar.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getChar.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getDataObject.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getDataObject.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getDate.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getDate.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getDouble.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getDouble.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getFloat.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getFloat.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getInt.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getInt.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getList.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getList.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getLong.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getLong.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getSequence.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getSequence.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getShort.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getShort.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getString.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getString.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setBigDecimal.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBigDecimal.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBigDecimal.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setBigInteger.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBigInteger.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBigInteger.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setBoolean.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBoolean.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBoolean.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setByte.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setByte.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setByte.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setBytes.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBytes.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setBytes.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setChar.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setChar.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setChar.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setDataObject.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDataObject.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDataObject.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setDate.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDate.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDate.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setDouble.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDouble.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setDouble.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setFloat.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setFloat.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setFloat.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setInt.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setInt.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setInt.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setList.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setList.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setList.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setLong.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setLong.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setLong.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setShort.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setShort.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setShort.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/setString.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setString.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/setString.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/createDataObject">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/createDataObject/propertyName"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/createDataObject.1">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/createDataObject.1/propertyIndex"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/createDataObject.2">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/createDataObject.2/property"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/createDataObject.3">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/createDataObject.3/propertyName"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/createDataObject.3/namespaceURI"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/createDataObject.3/typeName"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/createDataObject.4">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/createDataObject.4/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/createDataObject.4/namespaceURI"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/createDataObject.4/typeName"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/createDataObject.5">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/createDataObject.5/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/createDataObject.5/type"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/delete"/>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getSequence.3"/>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getInstanceProperties"/>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getProperty">
+ <genParameters ecoreParameter="SDO.ecore#//DataObject/getProperty/propertyName"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getRootObject"/>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/getChangeSummary"/>
+ <genOperations ecoreOperation="SDO.ecore#//DataObject/detach"/>
+ </genClasses>
+ <genClasses ecoreClass="SDO.ecore#//Property">
+ <genOperations ecoreOperation="SDO.ecore#//Property/getName"/>
+ <genOperations ecoreOperation="SDO.ecore#//Property/getType"/>
+ <genOperations ecoreOperation="SDO.ecore#//Property/isMany"/>
+ <genOperations ecoreOperation="SDO.ecore#//Property/isContainment"/>
+ <genOperations ecoreOperation="SDO.ecore#//Property/isReadOnly"/>
+ <genOperations ecoreOperation="SDO.ecore#//Property/getContainingType"/>
+ <genOperations ecoreOperation="SDO.ecore#//Property/getAliasNames"/>
+ <genOperations ecoreOperation="SDO.ecore#//Property/getOpposite"/>
+ <genOperations ecoreOperation="SDO.ecore#//Property/getDefault"/>
+ </genClasses>
+ <genClasses ecoreClass="SDO.ecore#//Sequence">
+ <genOperations ecoreOperation="SDO.ecore#//Sequence/size"/>
+ <genOperations ecoreOperation="SDO.ecore#//Sequence/getProperty">
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/getProperty/index"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//Sequence/getValue">
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/getValue/index"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//Sequence/setValue">
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/setValue/index"/>
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/setValue/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//Sequence/add">
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add/propertyName"/>
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//Sequence/add.1">
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.1/propertIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.1/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//Sequence/add.2">
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.2/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.2/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//Sequence/add.3">
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.3/index"/>
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.3/propertyName"/>
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.3/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//Sequence/add.4">
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.4/index"/>
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.4/propertyIndex"/>
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.4/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//Sequence/add.5">
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.5/index"/>
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.5/property"/>
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.5/value"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//Sequence/add.6">
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.6/text"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//Sequence/add.7">
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.7/index"/>
+ <genParameters ecoreParameter="SDO.ecore#//Sequence/add.7/text"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="SDO.ecore#//Type">
+ <genOperations ecoreOperation="SDO.ecore#//Type/getName"/>
+ <genOperations ecoreOperation="SDO.ecore#//Type/getURI"/>
+ <genOperations ecoreOperation="SDO.ecore#//Type/getInstanceClass"/>
+ <genOperations ecoreOperation="SDO.ecore#//Type/isInstance">
+ <genParameters ecoreParameter="SDO.ecore#//Type/isInstance/object"/>
+ </genOperations>
+ <genOperations ecoreOperation="SDO.ecore#//Type/isDataType"/>
+ <genOperations ecoreOperation="SDO.ecore#//Type/isSequenced"/>
+ <genOperations ecoreOperation="SDO.ecore#//Type/isOpen"/>
+ <genOperations ecoreOperation="SDO.ecore#//Type/isAbstract"/>
+ <genOperations ecoreOperation="SDO.ecore#//Type/getBaseTypes"/>
+ <genOperations ecoreOperation="SDO.ecore#//Type/getAliasNames"/>
+ <genOperations ecoreOperation="SDO.ecore#//Type/getProperties"/>
+ <genOperations ecoreOperation="SDO.ecore#//Type/getDeclaredProperties"/>
+ <genOperations ecoreOperation="SDO.ecore#//Type/getProperty">
+ <genParameters ecoreParameter="SDO.ecore#//Type/getProperty/propertyName"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="SDO.ecore#//AnyTypeDataObject"/>
+ <genClasses ecoreClass="SDO.ecore#//SimpleAnyTypeDataObject"/>
+ <genClasses ecoreClass="SDO.ecore#//Class"/>
+ <genClasses ecoreClass="SDO.ecore#//DataType"/>
+ <genClasses ecoreClass="SDO.ecore#//Attribute"/>
+ <genClasses ecoreClass="SDO.ecore#//Reference"/>
+ <genClasses ecoreClass="SDO.ecore#//Enum"/>
+ <genClasses ecoreClass="SDO.ecore#//DynamicDataObject"/>
+ <genClasses ecoreClass="SDO.ecore#//StoreDataObject"/>
+ <genClasses ecoreClass="SDO.ecore#//DynamicStoreDataObject"/>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/model/SDO.mdl b/sca-java-1.x/branches/java-post-M1/sdo/impl/model/SDO.mdl
new file mode 100644
index 0000000000..2288766bab
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/model/SDO.mdl
@@ -0,0 +1,7670 @@
+
+(object Petal
+ version 42
+ _written "Rose 4.5.8163.3"
+ charSet 0)
+
+(object Design "Logical View"
+ is_unit TRUE
+ is_loaded TRUE
+ defaults (object defaults
+ rightMargin 0.250000
+ leftMargin 0.250000
+ topMargin 0.250000
+ bottomMargin 0.500000
+ pageOverlap 0.250000
+ clipIconLabels TRUE
+ autoResize FALSE
+ snapToGrid TRUE
+ gridX 16
+ gridY 16
+ defaultFont (object Font
+ size 10
+ face "Arial"
+ bold FALSE
+ italics FALSE
+ underline FALSE
+ strike FALSE
+ color 0
+ default_color TRUE)
+ showMessageNum 1
+ showClassOfObject TRUE
+ notation "Unified")
+ root_usecase_package (object Class_Category "Use Case View"
+ quid "3FAA8E8700BE"
+ exportControl "Public"
+ global TRUE
+ logical_models (list unit_reference_list)
+ logical_presentations (list unit_reference_list
+ (object UseCaseDiagram "Main"
+ quid "3FAA8E8700EF"
+ title "Main"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list))))
+ root_category (object Class_Category "Logical View"
+ quid "3FAA8E8700BD"
+ exportControl "Public"
+ global TRUE
+ subsystem "Component View"
+ quidu "3FAA8E8700BF"
+ logical_models (list unit_reference_list
+ (object Class_Category "sdo"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "nsPrefix"
+ value "sdo")
+ (object Attribute
+ tool "Ecore"
+ name "nsURI"
+ value "http://www.apache.org/tuscany/2005/SDO")
+ (object Attribute
+ tool "Ecore"
+ name "basePackage"
+ value "org.apache.tuscany")
+ (object Attribute
+ tool "Ecore"
+ name "prefix"
+ value "SDO"))
+ quid "3FAA8E8B0306"
+ exportControl "Public"
+ logical_models (list unit_reference_list
+ (object Class "ChangeSummary"
+ quid "3FAB7C360208"
+ superclasses (list inheritance_relationship_list
+ (object Inheritance_Relationship
+ quid "4361480602D8"
+ supplier "Logical View::change::ChangeDescription"
+ quidu "4FAB6F110198"))
+ operations (list Operations
+ (object Operation "beginLogging"
+ quid "3FAB8899003B"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "endLogging"
+ quid "3FAB88AB0145"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isCreated"
+ quid "3FAB89650125"
+ parameters (list Parameters
+ (object Parameter "dataObject"
+ type "DataObject"))
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isDeleted"
+ quid "3FAB896F0314"
+ parameters (list Parameters
+ (object Parameter "dataObject"
+ type "DataObject"))
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getOldValues"
+ quid "3FAB89A4039C"
+ parameters (list Parameters
+ (object Parameter "dataObject"
+ type "DataObject"))
+ result "EJavaList"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isModified"
+ quid "435500FB024C"
+ parameters (list Parameters
+ (object Parameter "dataObject"
+ type "DataObject"))
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getOldValue"
+ quid "435501180185"
+ parameters (list Parameters
+ (object Parameter "dataObject"
+ type "DataObject")
+ (object Parameter "property"
+ type "Property"))
+ result "ChangeSummarySetting"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getOldContainer"
+ quid "43550265035B"
+ parameters (list Parameters
+ (object Parameter "dataObject"
+ type "DataObject"))
+ result "DataObject"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getOldContainmentProperty"
+ quid "4355027F01D2"
+ parameters (list Parameters
+ (object Parameter "dataObject"
+ type "DataObject"))
+ result "Property"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getOldSequence"
+ quid "4355029E03A3"
+ parameters (list Parameters
+ (object Parameter "dataObject"
+ type "DataObject"))
+ result "Sequence"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "undoChanges"
+ quid "435502B303D5"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isLogging"
+ quid "435D2CB50354"
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getDataGraph"
+ quid "435D2CC200A0"
+ result "DataGraph"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getChangedDataObjects"
+ quid "435D2D2B001F"
+ result "EJavaList"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getRootObject"
+ quid "435D2D360151"
+ result "DataObject"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.ChangeSummary"
+ quid "3FAB7C4D0373"
+ stereotype "javaclass"
+ exportControl "Public")))
+ (object Class "ChangeSummarySetting"
+ quid "3FAB8BF8005A"
+ superclasses (list inheritance_relationship_list
+ (object Inheritance_Relationship
+ quid "436134F001A6"
+ supplier "Logical View::change::FeatureChange"
+ quidu "4FC39D6D0177"))
+ operations (list Operations
+ (object Operation "isSet"
+ quid "3FD14B5800BD"
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getValue"
+ quid "3FDEF80600EA"
+ result "EJavaObject"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getProperty"
+ quid "435D2C440045"
+ result "Property"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.ChangeSummary$Setting"
+ quid "3FAB8C05003A"
+ stereotype "javaclass"
+ exportControl "Public")))
+ (object Class "DataGraph"
+ quid "3FAB7BFE03C0"
+ superclasses (list inheritance_relationship_list
+ (object Inheritance_Relationship
+ quid "43612C7B0243"
+ supplier "Logical View::ecore::EObject"
+ quidu "3C4F1C860123"))
+ operations (list Operations
+ (object Operation "createRootObject"
+ quid "3FAB86D40102"
+ parameters (list Parameters
+ (object Parameter "namespaceURI"
+ type "String")
+ (object Parameter "typeName"
+ type "String"))
+ result "DataObject"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "createRootObject"
+ quid "3FAB87520135"
+ parameters (list Parameters
+ (object Parameter "type"
+ type "Type"))
+ result "DataObject"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getType"
+ quid "3FAB87E20024"
+ parameters (list Parameters
+ (object Parameter "namespaceURI"
+ type "String")
+ (object Parameter "typeName"
+ type "String"))
+ result "Type"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getRootObject"
+ quid "435D2C900120"
+ result "DataObject"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getChangeSummary"
+ quid "435D2C9B039D"
+ result "ChangeSummary"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.DataGraph"
+ quid "3FAB7C1A0171"
+ stereotype "javaclass"
+ exportControl "Public")
+ (object ClassAttribute "resourceSet"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "isTransient"
+ value TRUE))
+ quid "436129AF0208"
+ type "EResourceSet"
+ exportControl "Public")
+ (object ClassAttribute "rootResource"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "isTransient"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "isVolatile"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "isChangeable"
+ value FALSE))
+ quid "436129BF0016"
+ type "EResource"
+ exportControl "Public"
+ derived TRUE)))
+ (object Class "DataObject"
+ quid "3FAB6F7501C4"
+ operations (list Operations
+ (object Operation "get"
+ quid "3FAB8EF201A0"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "EJavaObject"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.get(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "set"
+ quid "3FAB8FE502FE"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "EJavaObject"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.set(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isSet"
+ quid "3FAB901001BF"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "boolean"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.isSet(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "unset"
+ quid "3FAB901803B6"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.unset(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "get"
+ quid "01EDEDEDEDED"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "EJavaObject"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.get(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "set"
+ quid "02EDEDEDEDED"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "EJavaObject"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.set(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isSet"
+ quid "03EDEDEDEDED"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "boolean"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.isSet(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "unset"
+ quid "04EDEDEDEDED"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.unset(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "get"
+ quid "01ADEDEDEDED"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "EJavaObject"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.get(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "set"
+ quid "02ADEDEDEDED"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "EJavaObject"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.set(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isSet"
+ quid "03ADEDEDEDED"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "boolean"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.isSet(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "unset"
+ quid "04ADEDEDEDED"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.unset(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getContainer"
+ quid "AAEDEDEDEDE0"
+ result "DataObject"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getContainer(this);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getContainmentProperty"
+ quid "AAEDEDEDEDE2"
+ result "Property"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getContainmentProperty(this);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getDataGraph"
+ quid "AAEDEDEDEDE3"
+ result "DataGraph"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getDataGraph(this);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getType"
+ quid "AAEDEDEDEDE1"
+ result "Type"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getType(this);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getBigDecimal"
+ quid "EDEDEDED0000"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "EBigDecimal"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getBigDecimal(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getBigInteger"
+ quid "EDEDEDED0001"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "EBigInteger"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getBigInteger(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getBoolean"
+ quid "EDEDEDED0002"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "boolean"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getBoolean(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getByte"
+ quid "EDEDEDED0003"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "byte"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getByte(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getBytes"
+ quid "EDEDEDED0004"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "EByteArray"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getBytes(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getChar"
+ quid "EDEDEDED0005"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "char"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getChar(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getDataObject"
+ quid "EDEDEDED0006"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "DataObject"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getDataObject(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getDate"
+ quid "EDEDEDED0007"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "EDate"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getDate(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getDouble"
+ quid "EDEDEDED0008"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "double"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getDouble(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getFloat"
+ quid "EDEDEDED0009"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "float"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getFloat(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getInt"
+ quid "EDEDEDED000A"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "int"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getInt(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getList"
+ quid "EDEDEDED000B"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "EJavaList"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getList(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getLong"
+ quid "EDEDEDED000C"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "long"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getLong(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getSequence"
+ quid "EDEDEDED000D"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "Sequence"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getSequence(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getShort"
+ quid "EDEDEDED000E"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "short"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getShort(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getString"
+ quid "EDEDEDED000F"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String"))
+ result "String"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getString(this, path);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setBigDecimal"
+ quid "EDEDEDED1000"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "EBigDecimal"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setBigDecimal(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setBigInteger"
+ quid "EDEDEDED1001"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "EBigInteger"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setBigInteger(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setBoolean"
+ quid "EDEDEDED1002"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "boolean"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setBoolean(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setByte"
+ quid "EDEDEDED1003"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "byte"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setByte(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setBytes"
+ quid "EDEDEDED1004"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "EByteArray"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setBytes(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setChar"
+ quid "EDEDEDED1005"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "char"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setChar(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setDataObject"
+ quid "EDEDEDED1006"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "DataObject"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setDataObject(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setDate"
+ quid "EDEDEDED1007"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "EDate"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setDate(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setDouble"
+ quid "EDEDEDED1008"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "double"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setDouble(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setFloat"
+ quid "EDEDEDED1009"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "float"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setFloat(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setInt"
+ quid "EDEDEDED100A"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "int"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setInt(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setList"
+ quid "EDEDEDED100B"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "EJavaList"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setList(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setLong"
+ quid "EDEDEDED100C"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "long"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setLong(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setShort"
+ quid "EDEDEDED100E"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "short"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setShort(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setString"
+ quid "EDEDEDED100F"
+ parameters (list Parameters
+ (object Parameter "path"
+ type "String")
+ (object Parameter "value"
+ type "String"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setString(this, path, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getBigDecimal"
+ quid "EDEDEDED2000"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "EBigDecimal"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getBigDecimal(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getBigInteger"
+ quid "EDEDEDED2001"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "EBigInteger"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getBigInteger(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getBoolean"
+ quid "EDEDEDED2002"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "boolean"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getBoolean(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getByte"
+ quid "EDEDEDED2003"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "byte"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getByte(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getBytes"
+ quid "EDEDEDED2004"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "EByteArray"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getBytes(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getChar"
+ quid "EDEDEDED2005"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "char"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getChar(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getDataObject"
+ quid "EDEDEDED2006"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "DataObject"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getDataObject(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getDate"
+ quid "EDEDEDED2007"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "EDate"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getDate(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getDouble"
+ quid "EDEDEDED2008"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "double"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getDouble(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getFloat"
+ quid "EDEDEDED2009"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "float"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getFloat(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getInt"
+ quid "EDEDEDED200A"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "int"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getInt(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getList"
+ quid "EDEDEDED200B"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "EJavaList"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getList(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getLong"
+ quid "EDEDEDED200C"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "long"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getLong(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getSequence"
+ quid "EDEDEDED200D"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "Sequence"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getSequence(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getShort"
+ quid "EDEDEDED200E"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "short"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getShort(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getString"
+ quid "EDEDEDED200F"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "String"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getString(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setBigDecimal"
+ quid "EDEDEDED3000"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "EBigDecimal"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setBigDecimal(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setBigInteger"
+ quid "EDEDEDED3001"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "EBigInteger"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setBigInteger(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setBoolean"
+ quid "EDEDEDED3002"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "boolean"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setBoolean(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setByte"
+ quid "EDEDEDED3003"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "byte"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setByte(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setBytes"
+ quid "EDEDEDED3004"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "EByteArray"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setBytes(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setChar"
+ quid "EDEDEDED3005"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "char"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setChar(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setDataObject"
+ quid "EDEDEDED3006"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "DataObject"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setDataObject(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setDate"
+ quid "EDEDEDED3007"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "EDate"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setDate(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setDouble"
+ quid "EDEDEDED3008"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "double"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setDouble(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setFloat"
+ quid "EDEDEDED3009"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "float"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setFloat(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setInt"
+ quid "EDEDEDED300A"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "int"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setInt(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setList"
+ quid "EDEDEDED300B"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "EJavaList"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setList(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setLong"
+ quid "EDEDEDED300C"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "long"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setLong(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setShort"
+ quid "EDEDEDED300E"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "short"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setShort(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setString"
+ quid "EDEDEDED300F"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "String"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setString(this, propertyIndex, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getBigDecimal"
+ quid "EDEDEEEE2000"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "EBigDecimal"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getBigDecimal(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getBigInteger"
+ quid "EDEDEEEE2001"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "EBigInteger"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getBigInteger(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getBoolean"
+ quid "EDEDEEEE2002"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "boolean"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getBoolean(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getByte"
+ quid "EDEDEEEE2003"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "byte"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getByte(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getBytes"
+ quid "EDEDEEEE2004"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "EByteArray"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getBytes(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getChar"
+ quid "EDEDEEEE2005"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "char"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getChar(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getDataObject"
+ quid "EDEDEEEE2006"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "DataObject"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getDataObject(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getDate"
+ quid "EDEDEEEE2007"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "EDate"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getDate(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getDouble"
+ quid "EDEDEEEE2008"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "double"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getDouble(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getFloat"
+ quid "EDEDEEEE2009"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "float"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getFloat(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getInt"
+ quid "EDEDEEEE200A"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "int"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getInt(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getList"
+ quid "EDEDEEEE200B"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "EJavaList"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getList(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getLong"
+ quid "EDEDEEEE200C"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "long"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getLong(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getSequence"
+ quid "EDEDEEEE200D"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "Sequence"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getSequence(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getShort"
+ quid "EDEDEEEE200E"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "short"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getShort(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getString"
+ quid "EDEDEEEE200F"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "String"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getString(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setBigDecimal"
+ quid "EDEDEEEE3000"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "EBigDecimal"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setBigDecimal(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setBigInteger"
+ quid "EDEDEEEE3001"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "EBigInteger"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setBigInteger(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setBoolean"
+ quid "EDEDEEEE3002"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "boolean"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setBoolean(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setByte"
+ quid "EDEDEEEE3003"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "byte"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setByte(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setBytes"
+ quid "EDEDEEEE3004"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "EByteArray"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setBytes(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setChar"
+ quid "EDEDEEEE3005"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "char"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setChar(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setDataObject"
+ quid "EDEDEEEE3006"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "DataObject"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setDataObject(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setDate"
+ quid "EDEDEEEE3007"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "EDate"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setDate(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setDouble"
+ quid "EDEDEEEE3008"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "double"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setDouble(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setFloat"
+ quid "EDEDEEEE3009"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "float"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setFloat(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setInt"
+ quid "EDEDEEEE300A"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "int"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setInt(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setList"
+ quid "EDEDEEEE300B"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "EJavaList"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setList(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setLong"
+ quid "EDEDEEEE300C"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "long"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setLong(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setShort"
+ quid "EDEDEEEE300E"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "short"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setShort(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setString"
+ quid "EDEDEEEE300F"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "String"))
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.setString(this, property, value);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "createDataObject"
+ quid "EDEDEEEEEEE0"
+ parameters (list Parameters
+ (object Parameter "propertyName"
+ type "String"))
+ result "DataObject"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.createDataObject(this, propertyName);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "createDataObject"
+ quid "EDEDEEEEEEE1"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int"))
+ result "DataObject"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.createDataObject(this, propertyIndex);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "createDataObject"
+ quid "EDEDEEEEEEE2"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property"))
+ result "DataObject"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.createDataObject(this, property);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "createDataObject"
+ quid "EDEDEEEEEEE3"
+ parameters (list Parameters
+ (object Parameter "propertyName"
+ type "String")
+ (object Parameter "namespaceURI"
+ type "String")
+ (object Parameter "typeName"
+ type "String"))
+ result "DataObject"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.createDataObject(this, propertyName, namespaceURI, typeName);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "createDataObject"
+ quid "EDEDEEEEEEE4"
+ parameters (list Parameters
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "namespaceURI"
+ type "String")
+ (object Parameter "typeName"
+ type "String"))
+ result "DataObject"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.createDataObject(this, propertyIndex, namespaceURI, typeName);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "createDataObject"
+ quid "EDEDEEEEEEE5"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "type"
+ type "Type"))
+ result "DataObject"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.createDataObject(this, property, type);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "delete"
+ quid "EDEDEEEEEEE6"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.delete(this);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getSequence"
+ quid "4354FB2702D3"
+ result "Sequence"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getSequence(this);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getInstanceProperties"
+ quid "4354FB9F00CC"
+ result "EJavaList"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getInstanceProperties(this);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getProperty"
+ quid "4354FBB20369"
+ parameters (list Parameters
+ (object Parameter "propertyName"
+ type "String"))
+ result "Property"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getProperty(this, propertyName);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getRootObject"
+ quid "4354FBDD01B2"
+ result "DataObject"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getRootObject(this);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getChangeSummary"
+ quid "4354FC0400F0"
+ result "ChangeSummary"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "return <%org.apache.sdo.util.SDOUtil%>.getChangeSummary(this);")
+ opExportControl "Public"
+ uid 0)
+ (object Operation "detach"
+ quid "4354FC150068"
+ concurrency "Sequential"
+ semantics (object Semantic_Info
+ PDL "<%org.apache.sdo.util.SDOUtil%>.detach(this);")
+ opExportControl "Public"
+ uid 0))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.DataObject"
+ quid "3FAB6F8B0284"
+ stereotype "javaclass"
+ exportControl "Public"))
+ abstract TRUE)
+ (object Class "Property"
+ quid "3FAB7CA1031A"
+ stereotype "Interface"
+ operations (list Operations
+ (object Operation "getName"
+ quid "4357B5A1009C"
+ result "String"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getType"
+ quid "4358FF1A0291"
+ result "Type"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isMany"
+ quid "4357B64B019A"
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isContainment"
+ quid "4357B76501FA"
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isReadOnly"
+ quid "4358FF3501DC"
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getContainingType"
+ quid "4358FF3C03D1"
+ result "Type"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getAliasNames"
+ quid "4358FF4D02EF"
+ result "EJavaList"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getOpposite"
+ quid "4358FF59013D"
+ result "Property"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getDefault"
+ quid "4358FF66029B"
+ result "EJavaObject"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.Property"
+ quid "3FAB7CAB00E4"
+ stereotype "javaclass"
+ exportControl "Public")))
+ (object Class "Sequence"
+ quid "3FAB7CC302B5"
+ stereotype "Interface"
+ operations (list Operations
+ (object Operation "size"
+ quid "3FD1F958017D"
+ result "int"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getProperty"
+ quid "3FAC32F4028D"
+ parameters (list Parameters
+ (object Parameter "index"
+ type "int"))
+ result "Property"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getValue"
+ quid "3FAC3318010E"
+ parameters (list Parameters
+ (object Parameter "index"
+ type "int"))
+ result "EJavaObject"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "setValue"
+ quid "3FAC33270259"
+ parameters (list Parameters
+ (object Parameter "index"
+ type "int")
+ (object Parameter "value"
+ type "EJavaObject"))
+ result "EJavaObject"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "add"
+ quid "3FAC333D017C"
+ parameters (list Parameters
+ (object Parameter "propertyName"
+ type "String")
+ (object Parameter "value"
+ type "EJavaObject"))
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "add"
+ quid "3FAC3371009F"
+ parameters (list Parameters
+ (object Parameter "propertIndex"
+ type "int")
+ (object Parameter "value"
+ type "EJavaObject"))
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "add"
+ quid "3FAC338C00CE"
+ parameters (list Parameters
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "EJavaObject"))
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "add"
+ quid "3FAC33AD02C6"
+ parameters (list Parameters
+ (object Parameter "index"
+ type "int")
+ (object Parameter "propertyName"
+ type "String")
+ (object Parameter "value"
+ type "EJavaObject"))
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "add"
+ quid "3FAC33C40263"
+ parameters (list Parameters
+ (object Parameter "index"
+ type "int")
+ (object Parameter "propertyIndex"
+ type "int")
+ (object Parameter "value"
+ type "EJavaObject"))
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "add"
+ quid "3FAC33C70375"
+ parameters (list Parameters
+ (object Parameter "index"
+ type "int")
+ (object Parameter "property"
+ type "Property")
+ (object Parameter "value"
+ type "EJavaObject"))
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "add"
+ quid "43550F7D01DE"
+ parameters (list Parameters
+ (object Parameter "text"
+ type "String"))
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "add"
+ quid "43550F930352"
+ parameters (list Parameters
+ (object Parameter "index"
+ type "int")
+ (object Parameter "text"
+ type "String"))
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.Sequence"
+ quid "3FAB7CEB00D2"
+ stereotype "javaclass"
+ exportControl "Public")))
+ (object Class "Type"
+ quid "3FAB7C7C0349"
+ stereotype "Interface"
+ operations (list Operations
+ (object Operation "getName"
+ quid "4357B56E012E"
+ result "String"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getURI"
+ quid "4358FE18013C"
+ result "String"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getInstanceClass"
+ quid "4357B6380265"
+ result "EJavaClass"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isInstance"
+ quid "3FAB82AD0027"
+ parameters (list Parameters
+ (object Parameter "object"
+ type "EJavaObject"))
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isDataType"
+ quid "4358FE26031D"
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isSequenced"
+ quid "4358FE33020D"
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isOpen"
+ quid "4358FE4000F3"
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "isAbstract"
+ quid "4357B7440365"
+ result "boolean"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getBaseTypes"
+ quid "4358FE4B0316"
+ result "EJavaList"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getAliasNames"
+ quid "4358FE740351"
+ result "EJavaList"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getProperties"
+ quid "4358FE8D0248"
+ result "EJavaList"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getDeclaredProperties"
+ quid "4358FE9C02A4"
+ result "EJavaList"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0)
+ (object Operation "getProperty"
+ quid "3FAB831701D8"
+ parameters (list Parameters
+ (object Parameter "propertyName"
+ type "String"))
+ result "Property"
+ concurrency "Sequential"
+ opExportControl "Public"
+ uid 0))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.Type"
+ quid "3FAB7C8B0015"
+ stereotype "javaclass"
+ exportControl "Public")))
+ (object Class "EJavaList"
+ quid "3FAB8A010237"
+ stereotype "datatype"
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "java.util.List"
+ quid "3FAB8A0F01F1"
+ stereotype "javaclass"
+ exportControl "Public"))
+ abstract TRUE)
+ (object Class "EObjectStreamException"
+ quid "3FC352DE038F"
+ stereotype "datatype"
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "java.io.ObjectStreamException"
+ quid "3FC352F90171"
+ stereotype "javaclass"
+ exportControl "Public"))
+ abstract TRUE)
+ (object Class "AnyTypeDataObject"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "xmlContentKind"
+ value ("ContentKind" 3)))
+ quid "4069645E0146"
+ superclasses (list inheritance_relationship_list
+ (object Inheritance_Relationship
+ quid "406964870375"
+ supplier "Logical View::type::AnyType"
+ quidu "40695FE40332")
+ (object Inheritance_Relationship
+ quid "436141F003E7"
+ stereotype "extend"
+ supplier "Logical View::sdo::DataObject"
+ quidu "3FAB6F7501C4")))
+ (object Class "SimpleAnyTypeDataObject"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "xmlContentKind"
+ value ("ContentKind" 2)))
+ quid "406964710189"
+ superclasses (list inheritance_relationship_list
+ (object Inheritance_Relationship
+ quid "4069648302E3"
+ stereotype "extend"
+ supplier "Logical View::sdo::AnyTypeDataObject"
+ quidu "4069645E0146")
+ (object Inheritance_Relationship
+ quid "4069648D02E8"
+ supplier "Logical View::type::SimpleAnyType"
+ quidu "406961210099")))
+ (object Class "Class"
+ quid "43559BB702E7"
+ superclasses (list inheritance_relationship_list
+ (object Inheritance_Relationship
+ quid "43559D3A01A3"
+ supplier "Logical View::ecore::EClass"
+ quidu "3903D5BF000A")
+ (object Inheritance_Relationship
+ quid "435901C600DC"
+ supplier "Logical View::sdo::Type"
+ quidu "3FAB7C7C0349"))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.Type"
+ quid "435900CF00F5"
+ stereotype "javaclass"
+ exportControl "Public")))
+ (object Class "DataType"
+ quid "43559BE502F7"
+ superclasses (list inheritance_relationship_list
+ (object Inheritance_Relationship
+ quid "43590C6F016D"
+ supplier "Logical View::sdo::Type"
+ quidu "3FAB7C7C0349")
+ (object Inheritance_Relationship
+ quid "43590C73038F"
+ supplier "Logical View::ecore::EDataType"
+ quidu "3903D525033E"))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.Type"
+ quid "4358FFE30331"
+ stereotype "javaclass"
+ exportControl "Public")))
+ (object Class "Attribute"
+ quid "43559E690004"
+ superclasses (list inheritance_relationship_list
+ (object Inheritance_Relationship
+ quid "43559ED801E4"
+ supplier "Logical View::ecore::EAttribute"
+ quidu "39238472039D")
+ (object Inheritance_Relationship
+ quid "43567DFD03B6"
+ supplier "Logical View::sdo::Property"
+ quidu "3FAB7CA1031A"))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.Property"
+ quid "4359014A0246"
+ stereotype "javaclass"
+ exportControl "Public")))
+ (object Class "Reference"
+ quid "43559E86025E"
+ superclasses (list inheritance_relationship_list
+ (object Inheritance_Relationship
+ quid "43559EE0011D"
+ supplier "Logical View::ecore::EReference"
+ quidu "39238479039D")
+ (object Inheritance_Relationship
+ quid "43567DF9022A"
+ supplier "Logical View::sdo::Property"
+ quidu "3FAB7CA1031A"))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.Property"
+ quid "4359018E0226"
+ stereotype "javaclass"
+ exportControl "Public")))
+ (object Class "Enum"
+ quid "4357B1010017"
+ superclasses (list inheritance_relationship_list
+ (object Inheritance_Relationship
+ quid "4357B1410218"
+ supplier "Logical View::sdo::Type"
+ quidu "3FAB7C7C0349")
+ (object Inheritance_Relationship
+ quid "4357B14701DA"
+ supplier "Logical View::ecore::EEnum"
+ quidu "39A473E901D4"))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.Type"
+ quid "4359006102CE"
+ stereotype "javaclass"
+ exportControl "Public")))
+ (object Class "DynamicDataObject"
+ quid "435E94210124"
+ superclasses (list inheritance_relationship_list
+ (object Inheritance_Relationship
+ quid "435E9435008D"
+ supplier "Logical View::sdo::DataObject"
+ quidu "3FAB6F7501C4"))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.DataObject"
+ quid "435E9459021F"
+ stereotype "javaclass"
+ exportControl "Public")))
+ (object Class "StoreDataObject"
+ quid "43621EBA03B4"
+ superclasses (list inheritance_relationship_list
+ (object Inheritance_Relationship
+ quid "43621F0B03A6"
+ supplier "Logical View::sdo::DataObject"
+ quidu "3FAB6F7501C4"))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.DataObject"
+ quid "43621EDF015E"
+ stereotype "javaclass"
+ exportControl "Public")))
+ (object Class "DynamicStoreDataObject"
+ quid "43621F4203CD"
+ superclasses (list inheritance_relationship_list
+ (object Inheritance_Relationship
+ quid "43621F920242"
+ supplier "Logical View::sdo::StoreDataObject"
+ quidu "43621EBA03B4"))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "commonj.sdo.DataObject"
+ quid "43621F5701ED"
+ stereotype "javaclass"
+ exportControl "Public")))
+ (object Association "$UNNAMED$0"
+ quid "3FAD10CA01D5"
+ roles (list role_list
+ (object Role "eDataGraph"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "isResolveProxies"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "isTransient"
+ value TRUE))
+ quid "3FAD10CC001F"
+ label "eDataGraph"
+ supplier "Logical View::sdo::DataGraph"
+ quidu "3FAB7BFE03C0"
+ client_cardinality (value cardinality "1")
+ is_navigable TRUE)
+ (object Role "eChangeSummary"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "isResolveProxies"
+ value FALSE))
+ quid "3FAD10CC0020"
+ label "eChangeSummary"
+ supplier "Logical View::sdo::ChangeSummary"
+ quidu "3FAB7C360208"
+ client_cardinality (value cardinality "1")
+ Containment "By Value"
+ is_navigable TRUE)))
+ (object Association "$UNNAMED$1"
+ quid "3FAD26E802F5"
+ roles (list role_list
+ (object Role "$UNNAMED$2"
+ quid "3FAD26ED00E9"
+ supplier "Logical View::sdo::DataGraph"
+ quidu "3FAB7BFE03C0")
+ (object Role "eRootObject"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "isResolveProxies"
+ value FALSE))
+ quid "3FAD26ED00F3"
+ label "eRootObject"
+ supplier "Logical View::ecore::EObject"
+ quidu "3C4F1C860123"
+ client_cardinality (value cardinality "1")
+ is_navigable TRUE)))
+ (object Association "$UNNAMED$3"
+ quid "406962A200CF"
+ roles (list role_list
+ (object Role "$UNNAMED$4"
+ quid "406962A30076"
+ supplier "Logical View::type::SimpleAnyType"
+ quidu "406961210099")
+ (object Role "instanceType"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "isResolveProxies"
+ value FALSE))
+ quid "406962A30077"
+ label "instanceType"
+ supplier "Logical View::ecore::EDataType"
+ quidu "3903D525033E"
+ client_cardinality (value cardinality "1")
+ is_navigable TRUE))))
+ logical_presentations (list unit_reference_list
+ (object ClassDiagram "SDO Interfaces"
+ quid "3FAB8BAA0329"
+ title "SDO Interfaces"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 764
+ origin_y 0
+ items (list diagram_item_list
+ (object ClassView "Class" "Logical View::sdo::Sequence" @1
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ ShowOperationSignature TRUE
+ location (2560, 2032)
+ label (object ItemLabel
+ Parent_View @1
+ location (1999, 1673)
+ fill_color 13434879
+ nlines 1
+ max_width 1122
+ justify 0
+ label "Sequence")
+ stereotype (object ItemLabel
+ Parent_View @1
+ location (1999, 1623)
+ fill_color 13434879
+ anchor 10
+ nlines 1
+ max_width 1122
+ justify 0
+ label "<<Interface>>")
+ icon "Interface"
+ icon_style "Label"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB7CC302B5"
+ compartment (object Compartment
+ Parent_View @1
+ location (1999, 1733)
+ icon_style "Icon"
+ fill_color 16777215
+ anchor 2
+ nlines 14
+ max_width 1128)
+ width 1140
+ height 842
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::DataGraph" @2
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ ShowOperationSignature TRUE
+ location (768, 304)
+ label (object ItemLabel
+ Parent_View @2
+ location (65, 48)
+ fill_color 13434879
+ nlines 1
+ max_width 1406
+ justify 0
+ label "DataGraph")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB7BFE03C0"
+ compartment (object Compartment
+ Parent_View @2
+ location (65, 108)
+ icon_style "Icon"
+ fill_color 16777215
+ anchor 2
+ nlines 9
+ max_width 1412)
+ width 1424
+ height 536
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::DataObject" @3
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ ShowOperationSignature TRUE
+ location (976, 1280)
+ font (object Font
+ italics TRUE)
+ label (object ItemLabel
+ Parent_View @3
+ location (62, 674)
+ fill_color 13434879
+ nlines 1
+ max_width 1828
+ justify 0
+ label "DataObject")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB6F7501C4"
+ compartment (object Compartment
+ Parent_View @3
+ location (62, 734)
+ icon_style "Icon"
+ fill_color 13434879
+ anchor 2
+ nlines 23
+ max_width 1834
+ compartmentItems (list Compartment
+ "+ get(property : Property) : EJavaObject"
+ "+ set(property : Property, value : EJavaObject)"
+ "+ isSet(property : Property) : boolean"
+ "+ unset(property : Property)"
+ "+ getContainer() : DataObject"
+ "+ getContainmentProperty() : Property"
+ "+ getDataGraph() : DataGraph"
+ "+ getType() : Type"
+ "+ createDataObject(propertyName : String) : DataObject"
+ "+ createDataObject(propertyIndex : int) : DataObject"
+ "+ createDataObject(property : Property) : DataObject"
+ "+ createDataObject(propertyName : String, namespaceURI : String, typeName : String) : DataObject"
+ "+ createDataObject(propertyIndex : int, namespaceURI : String, typeName : String) : DataObject"
+ "+ createDataObject(property : Property, type : Type) : DataObject"
+ "+ delete()"
+ "+ getSequence() : Sequence"
+ "+ getInstanceProperties() : EJavaList"
+ "+ getProperty(propertyName : String) : Property"
+ "+ getRootObject() : DataObject"
+ "+ getChangeSummary() : ChangeSummary"
+ "+ detach()"))
+ width 1846
+ height 1236
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::ChangeSummary" @4
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ ShowOperationSignature TRUE
+ location (2768, 528)
+ label (object ItemLabel
+ Parent_View @4
+ location (1979, 72)
+ fill_color 13434879
+ nlines 1
+ max_width 1578
+ justify 0
+ label "ChangeSummary")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB7C360208"
+ compartment (object Compartment
+ Parent_View @4
+ location (1979, 132)
+ icon_style "Icon"
+ fill_color 16777215
+ anchor 2
+ nlines 17
+ max_width 1575)
+ width 1596
+ height 936
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::Type" @5
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ ShowOperationSignature TRUE
+ location (512, 2448)
+ label (object ItemLabel
+ Parent_View @5
+ location (75, 2064)
+ fill_color 13434879
+ nlines 1
+ max_width 874
+ justify 0
+ label "Type")
+ stereotype (object ItemLabel
+ Parent_View @5
+ location (75, 2014)
+ fill_color 13434879
+ anchor 10
+ nlines 1
+ max_width 874
+ justify 0
+ label "<<Interface>>")
+ icon "Interface"
+ icon_style "Label"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB7C7C0349"
+ compartment (object Compartment
+ Parent_View @5
+ location (75, 2124)
+ icon_style "Icon"
+ fill_color 16777215
+ anchor 2
+ nlines 15
+ max_width 881)
+ width 892
+ height 892
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::Property" @6
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ ShowOperationSignature TRUE
+ location (1424, 2352)
+ label (object ItemLabel
+ Parent_View @6
+ location (1054, 2068)
+ fill_color 13434879
+ nlines 1
+ max_width 740
+ justify 0
+ label "Property")
+ stereotype (object ItemLabel
+ Parent_View @6
+ location (1054, 2018)
+ fill_color 13434879
+ anchor 10
+ nlines 1
+ max_width 740
+ justify 0
+ label "<<Interface>>")
+ icon "Interface"
+ icon_style "Label"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB7CA1031A"
+ compartment (object Compartment
+ Parent_View @6
+ location (1054, 2128)
+ icon_style "Icon"
+ fill_color 16777215
+ anchor 2
+ nlines 11
+ max_width 746)
+ width 758
+ height 692
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::ChangeSummarySetting" @7
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ ShowOperationSignature TRUE
+ location (2528, 1328)
+ label (object ItemLabel
+ Parent_View @7
+ location (2003, 1144)
+ fill_color 13434879
+ nlines 1
+ max_width 1050
+ justify 0
+ label "ChangeSummarySetting")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB8BF8005A"
+ compartment (object Compartment
+ Parent_View @7
+ location (2003, 1204)
+ icon_style "Icon"
+ fill_color 16777215
+ anchor 2
+ nlines 5
+ max_width 1056)
+ width 1068
+ height 392
+ annotation 8
+ autoResize TRUE)))
+ (object ClassDiagram "SDO DataObject Access"
+ quid "3FAC2D8D008D"
+ title "SDO DataObject Access"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list
+ (object ClassView "Class" "Logical View::sdo::DataObject" @8
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ ShowOperationSignature TRUE
+ location (528, 1360)
+ font (object Font
+ italics TRUE)
+ label (object ItemLabel
+ Parent_View @8
+ location (53, 79)
+ fill_color 13434879
+ nlines 1
+ max_width 950
+ justify 0
+ label "DataObject")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 16316638
+ quidu "3FAB6F7501C4"
+ compartment (object Compartment
+ Parent_View @8
+ location (53, 139)
+ icon_style "Icon"
+ fill_color 13434879
+ anchor 2
+ nlines 50
+ max_width 0
+ compartmentItems (list Compartment
+ "+ getBigDecimal(path : String) : EBigDecimal"
+ "+ getBigInteger(path : String) : EBigInteger"
+ "+ getBoolean(path : String) : boolean"
+ "+ getByte(path : String) : byte"
+ "+ getBytes(path : String) : EByteArray"
+ "+ getChar(path : String) : char"
+ "+ getDataObject(path : String) : DataObject"
+ "+ getDate(path : String) : EDate"
+ "+ getDouble(path : String) : double"
+ "+ getFloat(path : String) : float"
+ "+ getInt(path : String) : int"
+ "+ getList(path : String) : EJavaList"
+ "+ getLong(path : String) : long"
+ "+ getSequence(path : String) : Sequence"
+ "+ getShort(path : String) : short"
+ "+ getString(path : String) : String"
+ "+ getBigDecimal(propertyIndex : int) : EBigDecimal"
+ "+ getBigInteger(propertyIndex : int) : EBigInteger"
+ "+ getBoolean(propertyIndex : int) : boolean"
+ "+ getByte(propertyIndex : int) : byte"
+ "+ getBytes(propertyIndex : int) : EByteArray"
+ "+ getChar(propertyIndex : int) : char"
+ "+ getDataObject(propertyIndex : int) : DataObject"
+ "+ getDate(propertyIndex : int) : EDate"
+ "+ getDouble(propertyIndex : int) : double"
+ "+ getFloat(propertyIndex : int) : float"
+ "+ getInt(propertyIndex : int) : int"
+ "+ getList(propertyIndex : int) : EJavaList"
+ "+ getLong(propertyIndex : int) : long"
+ "+ getSequence(propertyIndex : int) : Sequence"
+ "+ getShort(propertyIndex : int) : short"
+ "+ getString(propertyIndex : int) : String"
+ "+ getBigDecimal(property : Property) : EBigDecimal"
+ "+ getBigInteger(property : Property) : EBigInteger"
+ "+ getBoolean(property : Property) : boolean"
+ "+ getByte(property : Property) : byte"
+ "+ getBytes(property : Property) : EByteArray"
+ "+ getChar(property : Property) : char"
+ "+ getDataObject(property : Property) : DataObject"
+ "+ getDate(property : Property) : EDate"
+ "+ getDouble(property : Property) : double"
+ "+ getFloat(property : Property) : float"
+ "+ getInt(property : Property) : int"
+ "+ getList(property : Property) : EJavaList"
+ "+ getLong(property : Property) : long"
+ "+ getSequence(property : Property) : Sequence"
+ "+ getShort(property : Property) : short"
+ "+ getString(property : Property) : String"
+ "<<javaclass>> + commonj.sdo.DataObject"))
+ width 968
+ height 2586
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::DataObject" @9
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ ShowOperationSignature TRUE
+ location (1664, 1280)
+ font (object Font
+ italics TRUE)
+ label (object ItemLabel
+ Parent_View @9
+ location (1131, 74)
+ fill_color 13434879
+ nlines 1
+ max_width 1066
+ justify 0
+ label "DataObject")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 16316638
+ quidu "3FAB6F7501C4"
+ compartment (object Compartment
+ Parent_View @9
+ location (1131, 134)
+ icon_style "Icon"
+ fill_color 13434879
+ anchor 2
+ nlines 47
+ max_width 0
+ compartmentItems (list Compartment
+ "+ setBigDecimal(path : String, value : EBigDecimal)"
+ "+ setBigInteger(path : String, value : EBigInteger)"
+ "+ setBoolean(path : String, value : boolean)"
+ "+ setByte(path : String, value : byte)"
+ "+ setBytes(path : String, value : EByteArray)"
+ "+ setChar(path : String, value : char)"
+ "+ setDataObject(path : String, value : DataObject)"
+ "+ setDate(path : String, value : EDate)"
+ "+ setDouble(path : String, value : double)"
+ "+ setFloat(path : String, value : float)"
+ "+ setInt(path : String, value : int)"
+ "+ setList(path : String, value : EJavaList)"
+ "+ setLong(path : String, value : long)"
+ "+ setShort(path : String, value : short)"
+ "+ setString(path : String, value : String)"
+ "+ setBigDecimal(propertyIndex : int, value : EBigDecimal)"
+ "+ setBigInteger(propertyIndex : int, value : EBigInteger)"
+ "+ setBoolean(propertyIndex : int, value : boolean)"
+ "+ setByte(propertyIndex : int, value : byte)"
+ "+ setBytes(propertyIndex : int, value : EByteArray)"
+ "+ setChar(propertyIndex : int, value : char)"
+ "+ setDataObject(propertyIndex : int, value : DataObject)"
+ "+ setDate(propertyIndex : int, value : EDate)"
+ "+ setDouble(propertyIndex : int, value : double)"
+ "+ setFloat(propertyIndex : int, value : float)"
+ "+ setInt(propertyIndex : int, value : int)"
+ "+ setList(propertyIndex : int, value : EJavaList)"
+ "+ setLong(propertyIndex : int, value : long)"
+ "+ setShort(propertyIndex : int, value : short)"
+ "+ setString(propertyIndex : int, value : String)"
+ "+ setBigDecimal(property : Property, value : EBigDecimal)"
+ "+ setBigInteger(property : Property, value : EBigInteger)"
+ "+ setBoolean(property : Property, value : boolean)"
+ "+ setByte(property : Property, value : byte)"
+ "+ setBytes(property : Property, value : EByteArray)"
+ "+ setChar(property : Property, value : char)"
+ "+ setDataObject(property : Property, value : DataObject)"
+ "+ setDate(property : Property, value : EDate)"
+ "+ setDouble(property : Property, value : double)"
+ "+ setFloat(property : Property, value : float)"
+ "+ setInt(property : Property, value : int)"
+ "+ setList(property : Property, value : EJavaList)"
+ "+ setLong(property : Property, value : long)"
+ "+ setShort(property : Property, value : short)"
+ "+ setString(property : Property, value : String)"
+ "<<javaclass>> + commonj.sdo.DataObject"))
+ width 1084
+ height 2436
+ annotation 8
+ autoResize TRUE)))
+ (object ClassDiagram "Ecore SDO"
+ quid "3FAC379A02D5"
+ title "Ecore SDO"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list
+ (object ClassView "Class" "Logical View::sdo::DataGraph" @10
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ location (464, 160)
+ label (object ItemLabel
+ Parent_View @10
+ location (74, 104)
+ fill_color 13434879
+ nlines 1
+ max_width 780
+ justify 0
+ label "DataGraph")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB7BFE03C0"
+ compartment (object Compartment
+ Parent_View @10
+ location (74, 164)
+ icon_style "Icon"
+ fill_color 13434879
+ anchor 2
+ nlines 1
+ max_width 0
+ compartmentItems (list Compartment
+ "<<javaclass>> + commonj.sdo.DataGraph"))
+ width 798
+ height 136
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::ChangeSummary" @11
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ location (528, 400)
+ label (object ItemLabel
+ Parent_View @11
+ location (78, 344)
+ fill_color 13434879
+ nlines 1
+ max_width 900
+ justify 0
+ label "ChangeSummary")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB7C360208"
+ compartment (object Compartment
+ Parent_View @11
+ location (78, 404)
+ icon_style "Icon"
+ fill_color 13434879
+ anchor 2
+ nlines 1
+ max_width 0
+ compartmentItems (list Compartment
+ "<<javaclass>> + commonj.sdo.ChangeSummary"))
+ width 918
+ height 136
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::Type" @12
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ location (416, 1088)
+ label (object ItemLabel
+ Parent_View @12
+ location (79, 1054)
+ fill_color 13434879
+ nlines 1
+ max_width 674
+ justify 0
+ label "Type")
+ stereotype (object ItemLabel
+ Parent_View @12
+ location (79, 1004)
+ fill_color 13434879
+ anchor 10
+ nlines 1
+ max_width 674
+ justify 0
+ label "<<Interface>>")
+ icon "Interface"
+ icon_style "Label"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB7C7C0349"
+ compartment (object Compartment
+ Parent_View @12
+ location (79, 1114)
+ icon_style "Icon"
+ fill_color 13434879
+ anchor 2
+ nlines 1
+ max_width 0
+ compartmentItems (list Compartment
+ "<<javaclass>> + commonj.sdo.Type"))
+ width 692
+ height 192
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::Property" @13
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ location (448, 1648)
+ label (object ItemLabel
+ Parent_View @13
+ location (78, 1614)
+ fill_color 13434879
+ nlines 1
+ max_width 740
+ justify 0
+ label "Property")
+ stereotype (object ItemLabel
+ Parent_View @13
+ location (78, 1564)
+ fill_color 13434879
+ anchor 10
+ nlines 1
+ max_width 740
+ justify 0
+ label "<<Interface>>")
+ icon "Interface"
+ icon_style "Label"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB7CA1031A"
+ compartment (object Compartment
+ Parent_View @13
+ location (78, 1674)
+ icon_style "Icon"
+ fill_color 13434879
+ anchor 2
+ nlines 1
+ max_width 0
+ compartmentItems (list Compartment
+ "<<javaclass>> + commonj.sdo.Property"))
+ width 758
+ height 192
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::ChangeSummarySetting" @14
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ IncludeOperation TRUE
+ location (608, 640)
+ label (object ItemLabel
+ Parent_View @14
+ location (83, 584)
+ fill_color 13434879
+ nlines 1
+ max_width 1050
+ justify 0
+ label "ChangeSummarySetting")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB8BF8005A"
+ compartment (object Compartment
+ Parent_View @14
+ location (83, 644)
+ icon_style "Icon"
+ fill_color 13434879
+ anchor 2
+ nlines 1
+ max_width 0
+ compartmentItems (list Compartment
+ "<<javaclass>> + commonj.sdo.ChangeSummary$Setting"))
+ width 1068
+ height 136
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::change::ChangeDescription" @15
+ ShowCompartmentStereotypes TRUE
+ SuppressAttribute TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (2496, 400)
+ label (object ItemLabel
+ Parent_View @15
+ location (2311, 350)
+ fill_color 13434879
+ nlines 1
+ max_width 370
+ justify 0
+ label "ChangeDescription")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "4FAB6F110198"
+ width 388
+ height 124
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::ecore::EObject" @16
+ ShowCompartmentStereotypes TRUE
+ SuppressAttribute TRUE
+ SuppressOperation TRUE
+ location (2592, 160)
+ label (object ItemLabel
+ Parent_View @16
+ location (2503, 110)
+ fill_color 13434879
+ nlines 1
+ max_width 178
+ justify 0
+ label "EObject")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3C4F1C860123"
+ width 196
+ height 124
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::change::FeatureChange" @17
+ ShowCompartmentStereotypes TRUE
+ SuppressAttribute TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (2528, 640)
+ label (object ItemLabel
+ Parent_View @17
+ location (2374, 590)
+ fill_color 13434879
+ nlines 1
+ max_width 308
+ justify 0
+ label "FeatureChange")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "4FC39D6D0177"
+ width 326
+ height 124
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::Class" @18
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (1648, 1296)
+ label (object ItemLabel
+ Parent_View @18
+ location (1311, 1241)
+ fill_color 13434879
+ nlines 1
+ max_width 674
+ justify 0
+ label "Class")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "43559BB702E7"
+ width 692
+ height 134
+ annotation 8)
+ (object ClassView "Class" "Logical View::sdo::DataType" @19
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (1648, 880)
+ label (object ItemLabel
+ Parent_View @19
+ location (1311, 825)
+ fill_color 13434879
+ nlines 1
+ max_width 674
+ justify 0
+ label "DataType")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "43559BE502F7"
+ width 692
+ height 134
+ annotation 8)
+ (object ClassView "Class" "Logical View::ecore::EClass" @20
+ ShowCompartmentStereotypes TRUE
+ SuppressAttribute TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (2592, 1296)
+ label (object ItemLabel
+ Parent_View @20
+ location (2502, 1246)
+ fill_color 13434879
+ nlines 1
+ max_width 181
+ justify 0
+ label "EClass")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3903D5BF000A"
+ width 199
+ height 124
+ annotation 8)
+ (object ClassView "Class" "Logical View::ecore::EDataType" @21
+ ShowCompartmentStereotypes TRUE
+ SuppressAttribute TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (2560, 880)
+ label (object ItemLabel
+ Parent_View @21
+ location (2444, 830)
+ fill_color 13434879
+ nlines 1
+ max_width 232
+ justify 0
+ label "EDataType")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3903D525033E"
+ width 250
+ height 124
+ annotation 8)
+ (object ClassView "Class" "Logical View::sdo::Attribute" @22
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (1664, 1536)
+ label (object ItemLabel
+ Parent_View @22
+ location (1294, 1481)
+ fill_color 13434879
+ nlines 1
+ max_width 740
+ justify 0
+ label "Attribute")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "43559E690004"
+ width 758
+ height 134
+ annotation 8)
+ (object ClassView "Class" "Logical View::sdo::Reference" @23
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (1664, 1760)
+ label (object ItemLabel
+ Parent_View @23
+ location (1294, 1705)
+ fill_color 13434879
+ nlines 1
+ max_width 740
+ justify 0
+ label "Reference")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "43559E86025E"
+ width 758
+ height 134
+ annotation 8)
+ (object ClassView "Class" "Logical View::ecore::EAttribute" @24
+ ShowCompartmentStereotypes TRUE
+ SuppressAttribute TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (2576, 1536)
+ label (object ItemLabel
+ Parent_View @24
+ location (2470, 1486)
+ fill_color 13434879
+ nlines 1
+ max_width 212
+ justify 0
+ label "EAttribute")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "39238472039D"
+ width 230
+ height 124
+ annotation 8)
+ (object ClassView "Class" "Logical View::ecore::EReference" @25
+ ShowCompartmentStereotypes TRUE
+ SuppressAttribute TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (2576, 1760)
+ label (object ItemLabel
+ Parent_View @25
+ location (2458, 1710)
+ fill_color 13434879
+ nlines 1
+ max_width 236
+ justify 0
+ label "EReference")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "39238479039D"
+ width 254
+ height 124
+ annotation 8)
+ (object InheritView "" @26
+ stereotype TRUE
+ line_color 3342489
+ quidu "43559ED801E4"
+ client @22
+ supplier @24
+ line_style 0)
+ (object InheritView "" @27
+ stereotype TRUE
+ line_color 3342489
+ quidu "43559EE0011D"
+ client @23
+ supplier @25
+ line_style 0)
+ (object InheritView "" @28
+ stereotype TRUE
+ line_color 3342489
+ quidu "43567DF9022A"
+ client @23
+ supplier @13
+ line_style 0)
+ (object InheritView "" @29
+ stereotype TRUE
+ line_color 3342489
+ quidu "43567DFD03B6"
+ client @22
+ supplier @13
+ line_style 0)
+ (object ClassView "Class" "Logical View::sdo::Enum" @30
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (1648, 1088)
+ label (object ItemLabel
+ Parent_View @30
+ location (1311, 1033)
+ fill_color 13434879
+ nlines 1
+ max_width 674
+ justify 0
+ label "Enum")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "4357B1010017"
+ width 692
+ height 134
+ annotation 8)
+ (object ClassView "Class" "Logical View::ecore::EEnum" @31
+ ShowCompartmentStereotypes TRUE
+ SuppressAttribute TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (2592, 1088)
+ label (object ItemLabel
+ Parent_View @31
+ location (2502, 1038)
+ fill_color 13434879
+ nlines 1
+ max_width 181
+ justify 0
+ label "EEnum")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "39A473E901D4"
+ width 199
+ height 124
+ annotation 8)
+ (object InheritView "" @32
+ stereotype TRUE
+ line_color 3342489
+ quidu "4357B1410218"
+ client @30
+ supplier @12
+ line_style 0)
+ (object InheritView "" @33
+ stereotype TRUE
+ line_color 3342489
+ quidu "4357B14701DA"
+ client @30
+ supplier @31
+ line_style 0)
+ (object InheritView "" @34
+ stereotype TRUE
+ line_color 3342489
+ quidu "43559D3A01A3"
+ client @18
+ supplier @20
+ line_style 0)
+ (object InheritView "" @35
+ stereotype TRUE
+ line_color 3342489
+ quidu "435901C600DC"
+ client @18
+ supplier @12
+ line_style 0)
+ (object InheritView "" @36
+ stereotype TRUE
+ line_color 3342489
+ quidu "43590C6F016D"
+ client @19
+ supplier @12
+ line_style 0)
+ (object InheritView "" @37
+ stereotype TRUE
+ line_color 3342489
+ quidu "43590C73038F"
+ client @19
+ supplier @21
+ line_style 0)
+ (object InheritView "" @38
+ stereotype TRUE
+ line_color 3342489
+ quidu "43612C7B0243"
+ client @10
+ supplier @16
+ line_style 0)
+ (object InheritView "" @39
+ stereotype TRUE
+ line_color 3342489
+ quidu "436134F001A6"
+ client @14
+ supplier @17
+ line_style 0)
+ (object InheritView "" @40
+ stereotype TRUE
+ line_color 3342489
+ quidu "4361480602D8"
+ client @11
+ supplier @15
+ line_style 0)))
+ (object ClassDiagram "Ecore Data Graph"
+ quid "3FAD029E0142"
+ title "Ecore Data Graph"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list
+ (object ClassView "Class" "Logical View::ecore::EObject" @41
+ ShowCompartmentStereotypes TRUE
+ SuppressAttribute TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (464, 832)
+ label (object ItemLabel
+ Parent_View @41
+ location (375, 782)
+ fill_color 13434879
+ nlines 1
+ max_width 178
+ justify 0
+ label "EObject")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3C4F1C860123"
+ width 196
+ height 124
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::DataGraph" @42
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (768, 256)
+ label (object ItemLabel
+ Parent_View @42
+ location (378, 150)
+ fill_color 13434879
+ nlines 1
+ max_width 780
+ justify 0
+ label "DataGraph")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB7BFE03C0"
+ width 798
+ height 236
+ annotation 8)
+ (object AssociationViewNew "$UNNAMED$1" @43
+ location (469, 572)
+ stereotype TRUE
+ quidu "3FAD26E802F5"
+ roleview_list (list RoleViews
+ (object RoleView "$UNNAMED$2" @44
+ Parent_View @43
+ location (-1067, -932)
+ stereotype TRUE
+ line_color 3342489
+ quidu "3FAD26ED00E9"
+ client @43
+ supplier @42
+ line_style 3
+ origin_attachment (469, 572)
+ terminal_attachment (469, 374))
+ (object RoleView "eRootObject" @45
+ Parent_View @43
+ location (-1067, -932)
+ label (object SegLabel @46
+ Parent_View @45
+ location (324, 683)
+ anchor 1
+ anchor_loc 1
+ nlines 1
+ max_width 252
+ justify 0
+ label "+eRootObject"
+ pctDist 0.567708
+ height 146
+ orientation 1)
+ stereotype TRUE
+ line_color 3342489
+ quidu "3FAD26ED00F3"
+ client @43
+ supplier @41
+ line_style 3
+ origin_attachment (469, 572)
+ terminal_attachment (469, 770)
+ label (object SegLabel @47
+ Parent_View @45
+ location (512, 690)
+ anchor 2
+ anchor_loc 1
+ nlines 1
+ max_width 15
+ justify 0
+ label "1"
+ pctDist 0.598958
+ height 43
+ orientation 0))))
+ (object ClassView "Class" "Logical View::sdo::ChangeSummary" @48
+ ShowCompartmentStereotypes TRUE
+ SuppressAttribute TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (1072, 832)
+ label (object ItemLabel
+ Parent_View @48
+ location (881, 782)
+ fill_color 13434879
+ nlines 1
+ max_width 382
+ justify 0
+ label "ChangeSummary")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB7C360208"
+ width 400
+ height 125
+ annotation 8)
+ (object AssociationViewNew "$UNNAMED$0" @49
+ location (1078, 572)
+ stereotype TRUE
+ quidu "3FAD10CA01D5"
+ roleview_list (list RoleViews
+ (object RoleView "eDataGraph" @50
+ Parent_View @49
+ location (662, -692)
+ label (object SegLabel @51
+ Parent_View @50
+ location (929, 437)
+ anchor 1
+ anchor_loc 1
+ nlines 1
+ max_width 240
+ justify 0
+ label "+eDataGraph"
+ pctDist 0.686170
+ height 150
+ orientation 0)
+ stereotype TRUE
+ line_color 3342489
+ quidu "3FAD10CC001F"
+ client @49
+ supplier @42
+ line_style 3
+ origin_attachment (1078, 572)
+ terminal_attachment (1078, 374)
+ label (object SegLabel @52
+ Parent_View @50
+ location (1115, 437)
+ anchor 2
+ anchor_loc 1
+ nlines 1
+ max_width 15
+ justify 0
+ label "1"
+ pctDist 0.686170
+ height 37
+ orientation 1))
+ (object RoleView "eChangeSummary" @53
+ Parent_View @49
+ location (662, -692)
+ label (object SegLabel @54
+ Parent_View @53
+ location (876, 692)
+ anchor 1
+ anchor_loc 1
+ nlines 1
+ max_width 360
+ justify 0
+ label "+eChangeSummary"
+ pctDist 0.611702
+ height 203
+ orientation 1)
+ stereotype TRUE
+ line_color 3342489
+ quidu "3FAD10CC0020"
+ client @49
+ supplier @48
+ line_style 3
+ origin_attachment (1078, 572)
+ terminal_attachment (1078, 770)
+ label (object SegLabel @55
+ Parent_View @53
+ location (1114, 692)
+ anchor 2
+ anchor_loc 1
+ nlines 1
+ max_width 15
+ justify 0
+ label "1"
+ pctDist 0.611702
+ height 36
+ orientation 0))))))
+ (object ClassDiagram "External Types"
+ quid "3FAB907F00F7"
+ title "External Types"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list
+ (object ClassView "Class" "Logical View::sdo::EObjectStreamException" @56
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ ShowOperationSignature TRUE
+ location (1184, 176)
+ font (object Font
+ italics TRUE)
+ label (object ItemLabel
+ Parent_View @56
+ location (741, 142)
+ fill_color 13434879
+ nlines 1
+ max_width 886
+ justify 0
+ label "EObjectStreamException")
+ stereotype (object ItemLabel
+ Parent_View @56
+ location (741, 92)
+ fill_color 13434879
+ anchor 10
+ nlines 1
+ max_width 886
+ justify 0
+ label "<<datatype>>")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 12303359
+ quidu "3FC352DE038F"
+ width 904
+ height 192
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::EJavaList" @57
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ ShowOperationSignature TRUE
+ location (352, 176)
+ font (object Font
+ italics TRUE)
+ label (object ItemLabel
+ Parent_View @57
+ location (80, 142)
+ fill_color 13434879
+ nlines 1
+ max_width 544
+ justify 0
+ label "EJavaList")
+ stereotype (object ItemLabel
+ Parent_View @57
+ location (80, 92)
+ fill_color 13434879
+ anchor 10
+ nlines 1
+ max_width 544
+ justify 0
+ label "<<datatype>>")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 8963327
+ quidu "3FAB8A010237"
+ width 562
+ height 192
+ annotation 8)))
+ (object ClassDiagram "SDO XML Type"
+ quid "406964270056"
+ title "SDO XML Type"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list
+ (object ClassView "Class" "Logical View::type::AnyType" @58
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ ShowOperationSignature TRUE
+ location (1488, 576)
+ label (object ItemLabel
+ Parent_View @58
+ location (1075, 421)
+ fill_color 13434879
+ nlines 1
+ max_width 826
+ justify 0
+ label "AnyType")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "40695FE40332"
+ width 844
+ height 334
+ annotation 8)
+ (object ClassView "Class" "Logical View::type::SimpleAnyType" @59
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ ShowOperationSignature TRUE
+ location (1488, 1040)
+ label (object ItemLabel
+ Parent_View @59
+ location (1272, 910)
+ fill_color 13434879
+ nlines 1
+ max_width 432
+ justify 0
+ label "SimpleAnyType")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "406961210099"
+ width 450
+ height 284
+ annotation 8)
+ (object ClassView "Class" "Logical View::sdo::AnyTypeDataObject" @60
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ ShowOperationSignature TRUE
+ location (448, 560)
+ label (object ItemLabel
+ Parent_View @60
+ location (250, 509)
+ fill_color 13434879
+ nlines 1
+ max_width 396
+ justify 0
+ label "AnyTypeDataObject")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "4069645E0146"
+ width 414
+ height 126
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::SimpleAnyTypeDataObject" @61
+ ShowCompartmentStereotypes TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ ShowOperationSignature TRUE
+ location (464, 1024)
+ label (object ItemLabel
+ Parent_View @61
+ location (201, 973)
+ fill_color 13434879
+ nlines 1
+ max_width 526
+ justify 0
+ label "SimpleAnyTypeDataObject")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "406964710189"
+ width 544
+ height 126
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::DataObject" @62
+ ShowCompartmentStereotypes TRUE
+ SuppressAttribute TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (448, 208)
+ font (object Font
+ italics TRUE)
+ label (object ItemLabel
+ Parent_View @62
+ location (328, 165)
+ fill_color 13434879
+ nlines 1
+ max_width 240
+ justify 0
+ label "DataObject")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB6F7501C4"
+ width 258
+ height 110
+ annotation 8)
+ (object InheritView "" @63
+ stereotype (object SegLabel @64
+ Parent_View @63
+ location (298, 791)
+ anchor 10
+ anchor_loc 1
+ nlines 1
+ max_width 450
+ justify 0
+ label "<<extend>>"
+ pctDist 0.502959
+ height 150
+ orientation 0)
+ line_color 3342489
+ quidu "4069648302E3"
+ client @61
+ supplier @60
+ line_style 3
+ origin_attachment (448, 961)
+ terminal_attachment (448, 623))
+ (object InheritView "" @65
+ stereotype TRUE
+ line_color 3342489
+ quidu "4069648D02E8"
+ client @61
+ supplier @59
+ line_style 3
+ origin_attachment (736, 1002)
+ terminal_attachment (1263, 1002))
+ (object InheritView "" @66
+ stereotype TRUE
+ line_color 3342489
+ quidu "40696143020B"
+ client @59
+ supplier @58
+ line_style 3
+ origin_attachment (1479, 898)
+ terminal_attachment (1479, 743))
+ (object InheritView "" @67
+ stereotype TRUE
+ line_color 3342489
+ quidu "406964870375"
+ client @60
+ supplier @58
+ line_style 3
+ origin_attachment (655, 561)
+ terminal_attachment (1066, 561))
+ (object InheritView "" @68
+ stereotype (object SegLabel @69
+ Parent_View @68
+ location (294, 403)
+ anchor 10
+ anchor_loc 1
+ nlines 1
+ max_width 450
+ justify 0
+ label "<<extend>>"
+ pctDist 0.405229
+ height 155
+ orientation 0)
+ line_color 3342489
+ quidu "436141F003E7"
+ client @60
+ supplier @62
+ line_style 0)))
+ (object ClassDiagram "SDO DataObject Implementations"
+ quid "43621DF90149"
+ title "SDO DataObject Implementations"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list
+ (object ClassView "Class" "Logical View::sdo::DataObject" @70
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ location (1056, 368)
+ font (object Font
+ italics TRUE)
+ label (object ItemLabel
+ Parent_View @70
+ location (661, 312)
+ fill_color 13434879
+ nlines 1
+ max_width 790
+ justify 0
+ label "DataObject")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAB6F7501C4"
+ compartment (object Compartment
+ Parent_View @70
+ location (661, 372)
+ icon_style "Icon"
+ fill_color 13434879
+ anchor 2
+ nlines 1
+ max_width 0
+ compartmentItems (list Compartment
+ "<<javaclass>> + commonj.sdo.DataObject"))
+ width 808
+ height 136
+ annotation 8
+ autoResize TRUE)
+ (object ClassView "Class" "Logical View::sdo::DynamicDataObject" @71
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (576, 720)
+ label (object ItemLabel
+ Parent_View @71
+ location (181, 664)
+ fill_color 13434879
+ nlines 1
+ max_width 790
+ justify 0
+ label "DynamicDataObject")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "435E94210124"
+ width 808
+ height 136
+ annotation 8)
+ (object ClassView "Class" "Logical View::sdo::StoreDataObject" @72
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (1680, 720)
+ label (object ItemLabel
+ Parent_View @72
+ location (1285, 664)
+ fill_color 13434879
+ nlines 1
+ max_width 790
+ justify 0
+ label "StoreDataObject")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "43621EBA03B4"
+ width 808
+ height 136
+ annotation 8)
+ (object InheritTreeView "" @73
+ location (1053, 559)
+ line_color 3342489
+ fill_color 13434879
+ supplier @70
+ vertices (list Points
+ (1053, 559)
+ (1053, 436)))
+ (object InheritView "" @74
+ stereotype TRUE
+ line_color 3342489
+ quidu "435E9435008D"
+ client @71
+ supplier @70
+ line_style 3
+ origin_attachment (562, 652)
+ terminal_attachment (562, 559)
+ drawSupplier @73)
+ (object ClassView "Class" "Logical View::sdo::DynamicStoreDataObject" @75
+ ShowCompartmentStereotypes TRUE
+ SuppressOperation TRUE
+ IncludeAttribute TRUE
+ IncludeOperation TRUE
+ location (1680, 1056)
+ label (object ItemLabel
+ Parent_View @75
+ location (1285, 1000)
+ fill_color 13434879
+ nlines 1
+ max_width 790
+ justify 0
+ label "DynamicStoreDataObject")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "43621F4203CD"
+ width 808
+ height 136
+ annotation 8)
+ (object InheritView "" @76
+ stereotype TRUE
+ line_color 3342489
+ quidu "43621F920242"
+ client @75
+ supplier @72
+ line_style 0)
+ (object InheritView "" @77
+ stereotype TRUE
+ line_color 3342489
+ quidu "43621F0B03A6"
+ client @72
+ supplier @70
+ line_style 3
+ origin_attachment (1681, 652)
+ terminal_attachment (1681, 559)
+ drawSupplier @73)))))
+ (object Class_Category "ecore"
+ is_unit TRUE
+ is_loaded FALSE
+ file_name "$VABASE_PLUGINS_PATH\\org.eclipse.emf.ecore\\model\\org.eclipse.emf.Ecore.cat"
+ quid "39A5ED04004E")
+ (object Class_Category "change"
+ is_unit TRUE
+ is_loaded FALSE
+ file_name "$VABASE_PLUGINS_PATH\\org.eclipse.emf.ecore.change\\model\\org.eclipse.emf.ecore.Change.cat"
+ quid "4FAA8E8B0306")
+ (object Class_Category "type"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "packageName"
+ value "type")
+ (object Attribute
+ tool "Ecore"
+ name "nsPrefix"
+ value "xml.type")
+ (object Attribute
+ tool "Ecore"
+ name "nsURI"
+ value "http://www.eclipse.org/emf/2003/XMLType")
+ (object Attribute
+ tool "Ecore"
+ name "basePackage"
+ value "org.eclipse.emf.ecore.xml")
+ (object Attribute
+ tool "Ecore"
+ name "prefix"
+ value "XMLType"))
+ quid "40696924000C"
+ exportControl "Public"
+ logical_models (list unit_reference_list
+ (object Class "AnyType"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "xmlContentKind"
+ value ("ContentKind" 3)))
+ quid "40695FE40332"
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "mixed"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "isUnique"
+ value FALSE))
+ quid "40696039001D"
+ stereotype "0..*"
+ type "EFeatureMapEntry"
+ exportControl "Public")
+ (object ClassAttribute "any"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "isTransient"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "isVolatile"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "isUnique"
+ value FALSE))
+ quid "40696084002F"
+ stereotype "0..*"
+ type "EFeatureMapEntry"
+ exportControl "Public"
+ derived TRUE)
+ (object ClassAttribute "anyAttribute"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "isUnique"
+ value FALSE))
+ quid "4069609A0153"
+ stereotype "0..*"
+ type "EFeatureMapEntry"
+ exportControl "Public")))
+ (object Class "SimpleAnyType"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "xmlContentKind"
+ value ("ContentKind" 2)))
+ quid "406961210099"
+ superclasses (list inheritance_relationship_list
+ (object Inheritance_Relationship
+ quid "40696143020B"
+ supplier "Logical View::type::AnyType"
+ quidu "40695FE40332"))
+ class_attributes (list class_attribute_list
+ (object ClassAttribute "rawValue"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "isTransient"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "isVolatile"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "isUnique"
+ value FALSE))
+ quid "4069612E0391"
+ type "String"
+ exportControl "Public"
+ derived TRUE)
+ (object ClassAttribute "value"
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "isTransient"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "isVolatile"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "isUnique"
+ value FALSE))
+ quid "406961A40106"
+ type "EJavaObject"
+ exportControl "Public"
+ derived TRUE))))
+ logical_presentations (list unit_reference_list)))
+ logical_presentations (list unit_reference_list
+ (object ClassDiagram "Main"
+ quid "3FAA8E8700D0"
+ title "Main"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list
+ (object CategoryView "Logical View::ecore" @78
+ location (912, 272)
+ label (object ItemLabel
+ Parent_View @78
+ location (768, 188)
+ fill_color 13434879
+ nlines 2
+ max_width 288
+ justify 0
+ label "ecore")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "39A5ED04004E"
+ width 300
+ height 180)
+ (object CategoryView "Logical View::sdo" @79
+ location (368, 272)
+ label (object ItemLabel
+ Parent_View @79
+ location (224, 188)
+ fill_color 13434879
+ nlines 2
+ max_width 288
+ justify 0
+ label "sdo")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "3FAA8E8B0306"
+ width 300
+ height 180)
+ (object CategoryView "Logical View::change" @80
+ location (1440, 272)
+ label (object ItemLabel
+ Parent_View @80
+ location (1296, 188)
+ fill_color 13434879
+ nlines 2
+ max_width 288
+ justify 0
+ label "change")
+ icon_style "Icon"
+ line_color 3342489
+ fill_color 13434879
+ quidu "4FAA8E8B0306"
+ width 300
+ height 180)))))
+ root_subsystem (object SubSystem "Component View"
+ quid "3FAA8E8700BF"
+ physical_models (list unit_reference_list)
+ physical_presentations (list unit_reference_list
+ (object Module_Diagram "Main"
+ quid "3FAA8E8700EE"
+ title "Main"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list))))
+ process_structure (object Processes
+ quid "3FAA8E8700C0"
+ ProcsNDevs (list
+ (object Process_Diagram "Deployment View"
+ quid "3FAA8E8700C2"
+ title "Deployment View"
+ zoom 100
+ max_height 28350
+ max_width 21600
+ origin_x 0
+ origin_y 0
+ items (list diagram_item_list))))
+ properties (object Properties
+ attributes (list Attribute_Set
+ (object Attribute
+ tool "DDL"
+ name "propertyId"
+ value "809135966")
+ (object Attribute
+ tool "DDL"
+ name "default__Project"
+ value (list Attribute_Set
+ (object Attribute
+ tool "DDL"
+ name "Directory"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "DDL"
+ name "DataBase"
+ value ("DataBaseSet" 800))
+ (object Attribute
+ tool "DDL"
+ name "DataBaseSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "DDL"
+ name "ANSI"
+ value 800)
+ (object Attribute
+ tool "DDL"
+ name "Oracle"
+ value 801)
+ (object Attribute
+ tool "DDL"
+ name "SQLServer"
+ value 802)
+ (object Attribute
+ tool "DDL"
+ name "Sybase"
+ value 803)
+ (object Attribute
+ tool "DDL"
+ name "Watcom"
+ value 804)))
+ (object Attribute
+ tool "DDL"
+ name "PrimaryKeyColumnName"
+ value "Id")
+ (object Attribute
+ tool "DDL"
+ name "PrimaryKeyColumnType"
+ value "NUMBER(5)")
+ (object Attribute
+ tool "DDL"
+ name "ViewName"
+ value "V_")
+ (object Attribute
+ tool "DDL"
+ name "TableName"
+ value "T_")
+ (object Attribute
+ tool "DDL"
+ name "InheritSuffix"
+ value "_V")
+ (object Attribute
+ tool "DDL"
+ name "DropClause"
+ value FALSE)
+ (object Attribute
+ tool "DDL"
+ name "BaseViews"
+ value FALSE)
+ (object Attribute
+ tool "DDL"
+ name "DDLScriptFilename"
+ value "DDL1.SQL")))
+ (object Attribute
+ tool "DDL"
+ name "default__Attribute"
+ value (list Attribute_Set
+ (object Attribute
+ tool "DDL"
+ name "ColumnType"
+ value "VARCHAR")
+ (object Attribute
+ tool "DDL"
+ name "Length"
+ value "")
+ (object Attribute
+ tool "DDL"
+ name "NullsOK"
+ value TRUE)
+ (object Attribute
+ tool "DDL"
+ name "PrimaryKey"
+ value FALSE)
+ (object Attribute
+ tool "DDL"
+ name "Unique"
+ value FALSE)
+ (object Attribute
+ tool "DDL"
+ name "CompositeUnique"
+ value FALSE)
+ (object Attribute
+ tool "DDL"
+ name "CheckConstraint"
+ value "")))
+ (object Attribute
+ tool "DDL"
+ name "HiddenTool"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "propertyId"
+ value "809135966")
+ (object Attribute
+ tool "IDL"
+ name "default__Project"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "CreateMissingDirectories"
+ value TRUE)
+ (object Attribute
+ tool "IDL"
+ name "StopOnError"
+ value TRUE)
+ (object Attribute
+ tool "IDL"
+ name "Directory"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "IDL"
+ name "GeneratePreserveRegions"
+ value TRUE)))
+ (object Attribute
+ tool "IDL"
+ name "default__Class"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "ImplementationType"
+ value "")
+ (object Attribute
+ tool "IDL"
+ name "ConstValue"
+ value "")
+ (object Attribute
+ tool "IDL"
+ name "GenerateDefaultSpecifier"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "DefaultSpecifier"
+ value "")
+ (object Attribute
+ tool "IDL"
+ name "IDLElement"
+ value TRUE)
+ (object Attribute
+ tool "IDL"
+ name "IDLSpecificationType"
+ value ("IDLSpecSet" 22))
+ (object Attribute
+ tool "IDL"
+ name "IDLSpecSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "Interface"
+ value 22)
+ (object Attribute
+ tool "IDL"
+ name "Typedef"
+ value 54)
+ (object Attribute
+ tool "IDL"
+ name "Enumeration"
+ value 8)
+ (object Attribute
+ tool "IDL"
+ name "Const"
+ value 71)
+ (object Attribute
+ tool "IDL"
+ name "Exception"
+ value 61)
+ (object Attribute
+ tool "IDL"
+ name "Struct"
+ value 51)
+ (object Attribute
+ tool "IDL"
+ name "Union"
+ value 81)))))
+ (object Attribute
+ tool "IDL"
+ name "default__Module-Spec"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "Generate"
+ value TRUE)
+ (object Attribute
+ tool "IDL"
+ name "CmIdentification"
+ value (value Text " %X% @(#) plugins/org.eclipse.emf.ecore.sdo/model/SDO.mdl, emf.ecore.sdo, org.eclipse.dev"))
+ (object Attribute
+ tool "IDL"
+ name "CopyrightNotice"
+ value (value Text ""))
+ (object Attribute
+ tool "IDL"
+ name "FileName"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "IDL"
+ name "GenerateIDLModule"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "InclusionProtectionSymbol"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "IDL"
+ name "AdditionalIncludes"
+ value (value Text ""))
+ (object Attribute
+ tool "IDL"
+ name "IncludeBySimpleName"
+ value FALSE)))
+ (object Attribute
+ tool "IDL"
+ name "default__Module-Body"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "CmIdentification"
+ value (value Text " %X% @(#) plugins/org.eclipse.emf.ecore.sdo/model/SDO.mdl, emf.ecore.sdo, org.eclipse.dev"))
+ (object Attribute
+ tool "IDL"
+ name "CopyrightNotice"
+ value (value Text ""))
+ (object Attribute
+ tool "IDL"
+ name "FileName"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "IDL"
+ name "AdditionalIncludes"
+ value (value Text ""))
+ (object Attribute
+ tool "IDL"
+ name "IncludeBySimpleName"
+ value FALSE)))
+ (object Attribute
+ tool "IDL"
+ name "default__Operation"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "OperationIsOneWay"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "Context"
+ value "")
+ (object Attribute
+ tool "IDL"
+ name "Raises"
+ value "")))
+ (object Attribute
+ tool "IDL"
+ name "default__Attribute"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "CaseSpecifier"
+ value "")
+ (object Attribute
+ tool "IDL"
+ name "GenerateDataMember"
+ value TRUE)
+ (object Attribute
+ tool "IDL"
+ name "DataMemberName"
+ value "$relationship")
+ (object Attribute
+ tool "IDL"
+ name "IsReadOnly"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "IsConst"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "ConstValue"
+ value "")))
+ (object Attribute
+ tool "IDL"
+ name "default__Has"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "NameIfUnlabeled"
+ value "the_$supplier")
+ (object Attribute
+ tool "IDL"
+ name "GenerateDataMember"
+ value TRUE)
+ (object Attribute
+ tool "IDL"
+ name "DataMemberName"
+ value "$relationship")
+ (object Attribute
+ tool "IDL"
+ name "GenerateForwardReference"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "IsReadOnly"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "BoundedHasRelType"
+ value ("HasRelTypeSet" 47))
+ (object Attribute
+ tool "IDL"
+ name "HasRelTypeSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "Array"
+ value 24)
+ (object Attribute
+ tool "IDL"
+ name "Sequence"
+ value 47)))))
+ (object Attribute
+ tool "IDL"
+ name "default__Role"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "NameIfUnlabeled"
+ value "the_$supplier")
+ (object Attribute
+ tool "IDL"
+ name "GenerateDataMember"
+ value TRUE)
+ (object Attribute
+ tool "IDL"
+ name "DataMemberName"
+ value "$relationship")
+ (object Attribute
+ tool "IDL"
+ name "GenerateForwardReference"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "IsReadOnly"
+ value FALSE)
+ (object Attribute
+ tool "IDL"
+ name "BoundedRoleType"
+ value ("AssocTypeSet" 47))
+ (object Attribute
+ tool "IDL"
+ name "AssocTypeSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "Array"
+ value 24)
+ (object Attribute
+ tool "IDL"
+ name "Sequence"
+ value 47)))))
+ (object Attribute
+ tool "IDL"
+ name "default__Uses"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "GenerateForwardReference"
+ value FALSE)))
+ (object Attribute
+ tool "IDL"
+ name "default__Subsystem"
+ value (list Attribute_Set
+ (object Attribute
+ tool "IDL"
+ name "Directory"
+ value "AUTO GENERATE")))
+ (object Attribute
+ tool "IDL"
+ name "HiddenTool"
+ value FALSE)
+ (object Attribute
+ tool "SCC"
+ name "HiddenTool"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "propertyId"
+ value "809135969")
+ (object Attribute
+ tool "Ecore"
+ name "default__Category"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "packageName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "nsPrefix"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "nsURI"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "basePackage"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "prefix"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "annotation"
+ value "")))
+ (object Attribute
+ tool "Ecore"
+ name "default__Class"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "classifierName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "xmlName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "xmlContentKind"
+ value ("ContentKind" 0))
+ (object Attribute
+ tool "Ecore"
+ name "ContentKind"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "Unspecified"
+ value 0)
+ (object Attribute
+ tool "Ecore"
+ name "Empty"
+ value 1)
+ (object Attribute
+ tool "Ecore"
+ name "Simple"
+ value 2)
+ (object Attribute
+ tool "Ecore"
+ name "Mixed"
+ value 3)
+ (object Attribute
+ tool "Ecore"
+ name "ElementOnly"
+ value 4)))
+ (object Attribute
+ tool "Ecore"
+ name "annotation"
+ value "")))
+ (object Attribute
+ tool "Ecore"
+ name "default__Operation"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "operationName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "annotation"
+ value "")))
+ (object Attribute
+ tool "Ecore"
+ name "default__Attribute"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "attributeName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "isTransient"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "isVolatile"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "isChangeable"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "isUnsettable"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "isUnique"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "isID"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "xmlName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "xmlNamespace"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "xmlFeatureKind"
+ value ("FeatureKind" 0))
+ (object Attribute
+ tool "Ecore"
+ name "FeatureKind"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "Unspecified"
+ value 0)
+ (object Attribute
+ tool "Ecore"
+ name "Simple"
+ value 1)
+ (object Attribute
+ tool "Ecore"
+ name "Attribute"
+ value 2)
+ (object Attribute
+ tool "Ecore"
+ name "Element"
+ value 4)))
+ (object Attribute
+ tool "Ecore"
+ name "annotation"
+ value "")))
+ (object Attribute
+ tool "Ecore"
+ name "default__Role"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "referenceName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "isTransient"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "isVolatile"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "isChangeable"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "isUnsettable"
+ value FALSE)
+ (object Attribute
+ tool "Ecore"
+ name "isResolveProxies"
+ value TRUE)
+ (object Attribute
+ tool "Ecore"
+ name "xmlName"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "xmlNamespace"
+ value "")
+ (object Attribute
+ tool "Ecore"
+ name "xmlFeatureKind"
+ value ("FeatureKind" 0))
+ (object Attribute
+ tool "Ecore"
+ name "FeatureKind"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Ecore"
+ name "Unspecified"
+ value 0)
+ (object Attribute
+ tool "Ecore"
+ name "Simple"
+ value 1)
+ (object Attribute
+ tool "Ecore"
+ name "Attribute"
+ value 2)
+ (object Attribute
+ tool "Ecore"
+ name "Element"
+ value 4)))
+ (object Attribute
+ tool "Ecore"
+ name "annotation"
+ value "")))
+ (object Attribute
+ tool "framework"
+ name "HiddenTool"
+ value FALSE)
+ (object Attribute
+ tool "Java"
+ name "propertyId"
+ value "809135966")
+ (object Attribute
+ tool "Java"
+ name "default__Project"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Java"
+ name "CreateMissingDirectories"
+ value TRUE)
+ (object Attribute
+ tool "Java"
+ name "StopOnError"
+ value FALSE)
+ (object Attribute
+ tool "Java"
+ name "Directory"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "Java"
+ name "UsePrefixes"
+ value FALSE)
+ (object Attribute
+ tool "Java"
+ name "InstanceVariablePrefix"
+ value "m_")
+ (object Attribute
+ tool "Java"
+ name "ClassVariablePrefix"
+ value "s_")
+ (object Attribute
+ tool "Java"
+ name "DefaultAttributeDataType"
+ value "int")
+ (object Attribute
+ tool "Java"
+ name "DefaultOperationReturnType"
+ value "void")))
+ (object Attribute
+ tool "Java"
+ name "default__Class"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Java"
+ name "Final"
+ value FALSE)
+ (object Attribute
+ tool "Java"
+ name "GenerateDefaultConstructor"
+ value TRUE)
+ (object Attribute
+ tool "Java"
+ name "ConstructorIs"
+ value ("Ctor_Set" 62))
+ (object Attribute
+ tool "Java"
+ name "Ctor_Set"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Java"
+ name "Public"
+ value 62)
+ (object Attribute
+ tool "Java"
+ name "Protected"
+ value 63)
+ (object Attribute
+ tool "Java"
+ name "Private"
+ value 64)))
+ (object Attribute
+ tool "Java"
+ name "GenerateFinalizer"
+ value FALSE)
+ (object Attribute
+ tool "Java"
+ name "GenerateStaticInitializer"
+ value FALSE)
+ (object Attribute
+ tool "Java"
+ name "GenerateInstanceInitializer"
+ value FALSE)))
+ (object Attribute
+ tool "Java"
+ name "default__Module-Spec"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Java"
+ name "Generate"
+ value TRUE)
+ (object Attribute
+ tool "Java"
+ name "CmIdentification"
+ value (value Text ""))
+ (object Attribute
+ tool "Java"
+ name "CopyrightNotice"
+ value (value Text ""))
+ (object Attribute
+ tool "Java"
+ name "AdditionalImports"
+ value (value Text ""))))
+ (object Attribute
+ tool "Java"
+ name "default__Module-Body"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Java"
+ name "Generate"
+ value TRUE)
+ (object Attribute
+ tool "Java"
+ name "CmIdentification"
+ value (value Text ""))
+ (object Attribute
+ tool "Java"
+ name "CopyrightNotice"
+ value (value Text ""))
+ (object Attribute
+ tool "Java"
+ name "AdditionalImports"
+ value (value Text ""))))
+ (object Attribute
+ tool "Java"
+ name "default__Operation"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Java"
+ name "Abstract"
+ value FALSE)
+ (object Attribute
+ tool "Java"
+ name "Static"
+ value FALSE)
+ (object Attribute
+ tool "Java"
+ name "Final"
+ value FALSE)
+ (object Attribute
+ tool "Java"
+ name "Native"
+ value FALSE)
+ (object Attribute
+ tool "Java"
+ name "Synchronized"
+ value FALSE)))
+ (object Attribute
+ tool "Java"
+ name "default__Attribute"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Java"
+ name "GenerateDataMember"
+ value TRUE)
+ (object Attribute
+ tool "Java"
+ name "Final"
+ value FALSE)
+ (object Attribute
+ tool "Java"
+ name "Transient"
+ value FALSE)
+ (object Attribute
+ tool "Java"
+ name "Volatile"
+ value FALSE)))
+ (object Attribute
+ tool "Java"
+ name "default__Role"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Java"
+ name "GenerateDataMember"
+ value TRUE)
+ (object Attribute
+ tool "Java"
+ name "ContainerClass"
+ value "")
+ (object Attribute
+ tool "Java"
+ name "InitialValue"
+ value "")
+ (object Attribute
+ tool "Java"
+ name "Final"
+ value FALSE)
+ (object Attribute
+ tool "Java"
+ name "Transient"
+ value FALSE)
+ (object Attribute
+ tool "Java"
+ name "Volatile"
+ value FALSE)))
+ (object Attribute
+ tool "Java"
+ name "HiddenTool"
+ value FALSE)
+ (object Attribute
+ tool "Oracle8"
+ name "propertyId"
+ value "360000002")
+ (object Attribute
+ tool "Oracle8"
+ name "default__Project"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Oracle8"
+ name "DDLScriptFilename"
+ value "DDL1.SQL")
+ (object Attribute
+ tool "Oracle8"
+ name "DropClause"
+ value FALSE)
+ (object Attribute
+ tool "Oracle8"
+ name "PrimaryKeyColumnName"
+ value "_ID")
+ (object Attribute
+ tool "Oracle8"
+ name "PrimaryKeyColumnType"
+ value "NUMBER(5,0)")
+ (object Attribute
+ tool "Oracle8"
+ name "SchemaNamePrefix"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "SchemaNameSuffix"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "TableNamePrefix"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "TableNameSuffix"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "TypeNamePrefix"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "TypeNameSuffix"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "ViewNamePrefix"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "ViewNameSuffix"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "VarrayNamePrefix"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "VarrayNameSuffix"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "NestedTableNamePrefix"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "NestedTableNameSuffix"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "ObjectTableNamePrefix"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "ObjectTableNameSuffix"
+ value "")))
+ (object Attribute
+ tool "Oracle8"
+ name "default__Module-Spec"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Oracle8"
+ name "IsSchema"
+ value FALSE)))
+ (object Attribute
+ tool "Oracle8"
+ name "default__Class"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Oracle8"
+ name "OID"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "WhereClause"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "CheckConstraint"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "CollectionTypeLength"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "CollectionTypePrecision"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "CollectionTypeScale"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "CollectionOfREFS"
+ value FALSE)))
+ (object Attribute
+ tool "Oracle8"
+ name "default__Operation"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Oracle8"
+ name "MethodKind"
+ value ("MethodKindSet" 1903))
+ (object Attribute
+ tool "Oracle8"
+ name "OverloadID"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "OrderNumber"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "IsReadNoDataState"
+ value FALSE)
+ (object Attribute
+ tool "Oracle8"
+ name "IsReadNoProcessState"
+ value FALSE)
+ (object Attribute
+ tool "Oracle8"
+ name "IsWriteNoDataState"
+ value FALSE)
+ (object Attribute
+ tool "Oracle8"
+ name "IsWriteNoProcessState"
+ value FALSE)
+ (object Attribute
+ tool "Oracle8"
+ name "IsSelfish"
+ value FALSE)
+ (object Attribute
+ tool "Oracle8"
+ name "TriggerType"
+ value ("TriggerTypeSet" 1801))
+ (object Attribute
+ tool "Oracle8"
+ name "TriggerEvent"
+ value ("TriggerEventSet" 1601))
+ (object Attribute
+ tool "Oracle8"
+ name "TriggerText"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "TriggerReferencingNames"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "TriggerForEach"
+ value ("TriggerForEachSet" 1701))
+ (object Attribute
+ tool "Oracle8"
+ name "TriggerWhenClause"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "MethodKindSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Oracle8"
+ name "MapMethod"
+ value 1901)
+ (object Attribute
+ tool "Oracle8"
+ name "OrderMethod"
+ value 1902)
+ (object Attribute
+ tool "Oracle8"
+ name "Function"
+ value 1903)
+ (object Attribute
+ tool "Oracle8"
+ name "Procedure"
+ value 1904)
+ (object Attribute
+ tool "Oracle8"
+ name "Operator"
+ value 1905)
+ (object Attribute
+ tool "Oracle8"
+ name "Constructor"
+ value 1906)
+ (object Attribute
+ tool "Oracle8"
+ name "Destructor"
+ value 1907)
+ (object Attribute
+ tool "Oracle8"
+ name "Trigger"
+ value 1908)
+ (object Attribute
+ tool "Oracle8"
+ name "Calculated"
+ value 1909)))
+ (object Attribute
+ tool "Oracle8"
+ name "TriggerTypeSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Oracle8"
+ name "AFTER"
+ value 1801)
+ (object Attribute
+ tool "Oracle8"
+ name "BEFORE"
+ value 1802)
+ (object Attribute
+ tool "Oracle8"
+ name "INSTEAD OF"
+ value 1803)))
+ (object Attribute
+ tool "Oracle8"
+ name "TriggerForEachSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Oracle8"
+ name "ROW"
+ value 1701)
+ (object Attribute
+ tool "Oracle8"
+ name "STATEMENT"
+ value 1702)))
+ (object Attribute
+ tool "Oracle8"
+ name "TriggerEventSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Oracle8"
+ name "INSERT"
+ value 1601)
+ (object Attribute
+ tool "Oracle8"
+ name "UPDATE"
+ value 1602)
+ (object Attribute
+ tool "Oracle8"
+ name "DELETE"
+ value 1603)
+ (object Attribute
+ tool "Oracle8"
+ name "INSERT OR UPDATE"
+ value 1604)
+ (object Attribute
+ tool "Oracle8"
+ name "INSERT OR DELETE"
+ value 1605)
+ (object Attribute
+ tool "Oracle8"
+ name "UPDATE OR DELETE"
+ value 1606)
+ (object Attribute
+ tool "Oracle8"
+ name "INSERT OR UPDATE OR DELETE"
+ value 1607)))))
+ (object Attribute
+ tool "Oracle8"
+ name "default__Role"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Oracle8"
+ name "OrderNumber"
+ value "")))
+ (object Attribute
+ tool "Oracle8"
+ name "default__Attribute"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Oracle8"
+ name "OrderNumber"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "IsUnique"
+ value FALSE)
+ (object Attribute
+ tool "Oracle8"
+ name "NullsAllowed"
+ value TRUE)
+ (object Attribute
+ tool "Oracle8"
+ name "Length"
+ value "")
+ (object Attribute
+ tool "Oracle8"
+ name "Precision"
+ value "2")
+ (object Attribute
+ tool "Oracle8"
+ name "Scale"
+ value "6")
+ (object Attribute
+ tool "Oracle8"
+ name "IsIndex"
+ value FALSE)
+ (object Attribute
+ tool "Oracle8"
+ name "IsPrimaryKey"
+ value FALSE)
+ (object Attribute
+ tool "Oracle8"
+ name "CompositeUnique"
+ value FALSE)
+ (object Attribute
+ tool "Oracle8"
+ name "CheckConstraint"
+ value "")))
+ (object Attribute
+ tool "Oracle8"
+ name "HiddenTool"
+ value FALSE)
+ (object Attribute
+ tool "Repository"
+ name "HiddenTool"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "propertyId"
+ value "809135966")
+ (object Attribute
+ tool "cg"
+ name "default__Project"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "UseMSVC"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "HeaderFileExtension"
+ value "h")
+ (object Attribute
+ tool "cg"
+ name "HeaderFileBackupExtension"
+ value "h~")
+ (object Attribute
+ tool "cg"
+ name "HeaderFileTemporaryExtension"
+ value "h#")
+ (object Attribute
+ tool "cg"
+ name "CodeFileExtension"
+ value "cpp")
+ (object Attribute
+ tool "cg"
+ name "CodeFileBackupExtension"
+ value "cp~")
+ (object Attribute
+ tool "cg"
+ name "CodeFileTemporaryExtension"
+ value "cp#")
+ (object Attribute
+ tool "cg"
+ name "CreateMissingDirectories"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "StopOnError"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "ErrorLimit"
+ value 30)
+ (object Attribute
+ tool "cg"
+ name "Directory"
+ value "$ROSECPP_SOURCE")
+ (object Attribute
+ tool "cg"
+ name "PathSeparator"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "FileNameFormat"
+ value "128vx_b")
+ (object Attribute
+ tool "cg"
+ name "BooleanType"
+ value "int")
+ (object Attribute
+ tool "cg"
+ name "AllowTemplates"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "AllowExplicitInstantiations"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "AllowProtectedInheritance"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "CommentWidth"
+ value 60)
+ (object Attribute
+ tool "cg"
+ name "OneByValueContainer"
+ value "$targetClass")
+ (object Attribute
+ tool "cg"
+ name "OneByReferenceContainer"
+ value "$targetClass *")
+ (object Attribute
+ tool "cg"
+ name "OptionalByValueContainer"
+ value "OptionalByValue<$targetClass>")
+ (object Attribute
+ tool "cg"
+ name "OptionalByReferenceContainer"
+ value "$targetClass *")
+ (object Attribute
+ tool "cg"
+ name "FixedByValueContainer"
+ value "$targetClass[$limit]")
+ (object Attribute
+ tool "cg"
+ name "UnorderedFixedByValueContainer"
+ value "$targetClass[$limit]")
+ (object Attribute
+ tool "cg"
+ name "FixedByReferenceContainer"
+ value "$targetClass *[$limit]")
+ (object Attribute
+ tool "cg"
+ name "UnorderedFixedByReferenceContainer"
+ value "$targetClass *[$limit]")
+ (object Attribute
+ tool "cg"
+ name "BoundedByValueContainer"
+ value "BoundedListByValue<$targetClass,$limit>")
+ (object Attribute
+ tool "cg"
+ name "UnorderedBoundedByValueContainer"
+ value "BoundedSetByValue<$targetClass,$limit>")
+ (object Attribute
+ tool "cg"
+ name "BoundedByReferenceContainer"
+ value "BoundedListByReference<$targetClass,$limit>")
+ (object Attribute
+ tool "cg"
+ name "UnorderedBoundedByReferenceContainer"
+ value "BoundedSetByReference<$targetClass,$limit>")
+ (object Attribute
+ tool "cg"
+ name "UnboundedByValueContainer"
+ value "UnboundedListByValue<$targetClass>")
+ (object Attribute
+ tool "cg"
+ name "UnorderedUnboundedByValueContainer"
+ value "UnboundedSetByValue<$targetClass>")
+ (object Attribute
+ tool "cg"
+ name "UnboundedByReferenceContainer"
+ value "UnboundedListByReference<$targetClass>")
+ (object Attribute
+ tool "cg"
+ name "UnorderedUnboundedByReferenceContainer"
+ value "UnboundedSetByReference<$targetClass>")
+ (object Attribute
+ tool "cg"
+ name "QualifiedByValueContainer"
+ value "AssociationByValue<$qualtype, $qualcont>")
+ (object Attribute
+ tool "cg"
+ name "UnorderedQualifiedByValueContainer"
+ value "DictionaryByValue<$qualtype, $qualcont>")
+ (object Attribute
+ tool "cg"
+ name "QualifiedByReferenceContainer"
+ value "AssociationByReference<$qualtype, $qualcont>")
+ (object Attribute
+ tool "cg"
+ name "UnorderedQualifiedByReferenceContainer"
+ value "DictionaryByReference<$qualtype, $qualcont>")
+ (object Attribute
+ tool "cg"
+ name "GeneratePreserveRegions"
+ value TRUE)))
+ (object Attribute
+ tool "cg"
+ name "default__Class"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "CodeName"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "ImplementationType"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "ClassKey"
+ value "class")
+ (object Attribute
+ tool "cg"
+ name "GenerateEmptyRegions"
+ value ("GenerateEmptyRegionSet" 3))
+ (object Attribute
+ tool "cg"
+ name "GenerateEmptyRegionSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "None"
+ value 0)
+ (object Attribute
+ tool "cg"
+ name "Preserved"
+ value 1)
+ (object Attribute
+ tool "cg"
+ name "Unpreserved"
+ value 2)
+ (object Attribute
+ tool "cg"
+ name "All"
+ value 3)))
+ (object Attribute
+ tool "cg"
+ name "PutBodiesInSpec"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "GenerateDefaultConstructor"
+ value ("GenerateSet" 199))
+ (object Attribute
+ tool "cg"
+ name "DefaultConstructorVisibility"
+ value ("VisibilitySet" 45))
+ (object Attribute
+ tool "cg"
+ name "InlineDefaultConstructor"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "ExplicitDefaultConstructor"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "GenerateCopyConstructor"
+ value ("GenerateSet" 199))
+ (object Attribute
+ tool "cg"
+ name "CopyConstructorVisibility"
+ value ("VisibilitySet" 45))
+ (object Attribute
+ tool "cg"
+ name "InlineCopyConstructor"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "ExplicitCopyConstructor"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "GenerateDestructor"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "DestructorVisibility"
+ value ("VisibilitySet" 45))
+ (object Attribute
+ tool "cg"
+ name "DestructorKind"
+ value ("ThreeKindSet" 200))
+ (object Attribute
+ tool "cg"
+ name "InlineDestructor"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "GenerateAssignmentOperation"
+ value ("GenerateSet" 199))
+ (object Attribute
+ tool "cg"
+ name "AssignmentVisibility"
+ value ("VisibilitySet" 45))
+ (object Attribute
+ tool "cg"
+ name "AssignmentKind"
+ value ("ThreeKindSet" 200))
+ (object Attribute
+ tool "cg"
+ name "InlineAssignmentOperation"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "GenerateEqualityOperations"
+ value ("GenerateSet" 199))
+ (object Attribute
+ tool "cg"
+ name "EqualityVisibility"
+ value ("VisibilitySet" 45))
+ (object Attribute
+ tool "cg"
+ name "EqualityKind"
+ value ("FriendKindSet" 200))
+ (object Attribute
+ tool "cg"
+ name "InlineEqualityOperations"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "GenerateRelationalOperations"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "RelationalVisibility"
+ value ("VisibilitySet" 45))
+ (object Attribute
+ tool "cg"
+ name "RelationalKind"
+ value ("FriendKindSet" 200))
+ (object Attribute
+ tool "cg"
+ name "InlineRelationalOperations"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "GenerateStorageMgmtOperations"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "StorageMgmtVisibility"
+ value ("VisibilitySet" 45))
+ (object Attribute
+ tool "cg"
+ name "InlineStorageMgmtOperations"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "GenerateSubscriptOperation"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "SubscriptVisibility"
+ value ("VisibilitySet" 45))
+ (object Attribute
+ tool "cg"
+ name "SubscriptKind"
+ value ("ThreeKindSet" 200))
+ (object Attribute
+ tool "cg"
+ name "SubscriptResultType"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "InlineSubscriptOperation"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "GenerateDereferenceOperation"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "DereferenceVisibility"
+ value ("VisibilitySet" 45))
+ (object Attribute
+ tool "cg"
+ name "DereferenceKind"
+ value ("ThreeKindSet" 200))
+ (object Attribute
+ tool "cg"
+ name "DereferenceResultType"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "InlineDereferenceOperation"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "GenerateIndirectionOperation"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "IndirectionVisibility"
+ value ("VisibilitySet" 45))
+ (object Attribute
+ tool "cg"
+ name "IndirectionKind"
+ value ("ThreeKindSet" 200))
+ (object Attribute
+ tool "cg"
+ name "IndirectionResultType"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "InlineIndirectionOperation"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "GenerateStreamOperations"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "StreamVisibility"
+ value ("VisibilitySet" 45))
+ (object Attribute
+ tool "cg"
+ name "InlineStreamOperations"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "ThreeKindSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Common"
+ value 200)
+ (object Attribute
+ tool "cg"
+ name "Virtual"
+ value 201)
+ (object Attribute
+ tool "cg"
+ name "Abstract"
+ value 202)))
+ (object Attribute
+ tool "cg"
+ name "KindSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Common"
+ value 200)
+ (object Attribute
+ tool "cg"
+ name "Virtual"
+ value 201)
+ (object Attribute
+ tool "cg"
+ name "Abstract"
+ value 202)
+ (object Attribute
+ tool "cg"
+ name "Static"
+ value 203)))
+ (object Attribute
+ tool "cg"
+ name "FriendKindSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Common"
+ value 200)
+ (object Attribute
+ tool "cg"
+ name "Virtual"
+ value 201)
+ (object Attribute
+ tool "cg"
+ name "Abstract"
+ value 202)
+ (object Attribute
+ tool "cg"
+ name "Friend"
+ value 204)))
+ (object Attribute
+ tool "cg"
+ name "GenerateSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "DeclareAndDefine"
+ value 199)
+ (object Attribute
+ tool "cg"
+ name "DeclareOnly"
+ value 205)
+ (object Attribute
+ tool "cg"
+ name "DoNotDeclare"
+ value 206)))
+ (object Attribute
+ tool "cg"
+ name "VisibilitySet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Public"
+ value 45)
+ (object Attribute
+ tool "cg"
+ name "Protected"
+ value 44)
+ (object Attribute
+ tool "cg"
+ name "Private"
+ value 43)
+ (object Attribute
+ tool "cg"
+ name "Implementation"
+ value 14)))
+ (object Attribute
+ tool "cg"
+ name "ConstValue"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "GenerateDefaultSpecifier"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "DefaultSpecifier"
+ value "")))
+ (object Attribute
+ tool "cg"
+ name "default__Module-Spec"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Generate"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GenerateEmptyRegions"
+ value ("GenerateEmptyRegionSet" 3))
+ (object Attribute
+ tool "cg"
+ name "GenerateEmptyRegionSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "None"
+ value 0)
+ (object Attribute
+ tool "cg"
+ name "Preserved"
+ value 1)
+ (object Attribute
+ tool "cg"
+ name "Unpreserved"
+ value 2)
+ (object Attribute
+ tool "cg"
+ name "All"
+ value 3)))
+ (object Attribute
+ tool "cg"
+ name "CmIdentification"
+ value (value Text " %X% %Q% %Z% %W%"))
+ (object Attribute
+ tool "cg"
+ name "CopyrightNotice"
+ value (value Text ""))
+ (object Attribute
+ tool "cg"
+ name "FileName"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "cg"
+ name "AllowExtensionlessFileName"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "InclusionProtectionSymbol"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "cg"
+ name "IncludeFormat"
+ value (value Text
+|// $package
+|#include "$file"
+|
+ ))
+ (object Attribute
+ tool "cg"
+ name "IncludeBySimpleName"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "IncludePrecompiledHeader"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "IncludeOrder"
+ value "AMIR")
+ (object Attribute
+ tool "cg"
+ name "AdditionalIncludes"
+ value (value Text ""))
+ (object Attribute
+ tool "cg"
+ name "InliningStyle"
+ value ("InliningStyleSet" 207))
+ (object Attribute
+ tool "cg"
+ name "InliningStyleSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "InClassDeclaration"
+ value 208)
+ (object Attribute
+ tool "cg"
+ name "FollowingClassDeclaration"
+ value 207)))
+ (object Attribute
+ tool "cg"
+ name "TypesDefined"
+ value (value Text ""))
+ (object Attribute
+ tool "cg"
+ name "IncludeClosure"
+ value (value Text ""))))
+ (object Attribute
+ tool "cg"
+ name "default__Module-Body"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Generate"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GenerateEmptyRegions"
+ value ("GenerateEmptyRegionSet" 3))
+ (object Attribute
+ tool "cg"
+ name "GenerateEmptyRegionSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "None"
+ value 0)
+ (object Attribute
+ tool "cg"
+ name "Preserved"
+ value 1)
+ (object Attribute
+ tool "cg"
+ name "Unpreserved"
+ value 2)
+ (object Attribute
+ tool "cg"
+ name "All"
+ value 3)))
+ (object Attribute
+ tool "cg"
+ name "CmIdentification"
+ value (value Text " %X% %Q% %Z% %W%"))
+ (object Attribute
+ tool "cg"
+ name "CopyrightNotice"
+ value (value Text ""))
+ (object Attribute
+ tool "cg"
+ name "FileName"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "cg"
+ name "AllowExtensionlessFileName"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "IncludeFormat"
+ value (value Text
+|// $package
+|#include "$file"
+|
+ ))
+ (object Attribute
+ tool "cg"
+ name "IncludeBySimpleName"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "IncludePrecompiledHeader"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "IncludeOrder"
+ value "AMIR")
+ (object Attribute
+ tool "cg"
+ name "AdditionalIncludes"
+ value (value Text ""))
+ (object Attribute
+ tool "cg"
+ name "InliningStyle"
+ value ("InliningStyleSet" 207))
+ (object Attribute
+ tool "cg"
+ name "InliningStyleSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "InClassDeclaration"
+ value 208)
+ (object Attribute
+ tool "cg"
+ name "FollowingClassDeclaration"
+ value 207)))
+ (object Attribute
+ tool "cg"
+ name "TypesDefined"
+ value (value Text ""))
+ (object Attribute
+ tool "cg"
+ name "IncludeClosure"
+ value (value Text ""))))
+ (object Attribute
+ tool "cg"
+ name "default__Operation"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "CodeName"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "OperationKind"
+ value ("OperationKindSet" 200))
+ (object Attribute
+ tool "cg"
+ name "OperationKindSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Common"
+ value 200)
+ (object Attribute
+ tool "cg"
+ name "Virtual"
+ value 201)
+ (object Attribute
+ tool "cg"
+ name "Abstract"
+ value 202)
+ (object Attribute
+ tool "cg"
+ name "Static"
+ value 203)
+ (object Attribute
+ tool "cg"
+ name "Friend"
+ value 204)))
+ (object Attribute
+ tool "cg"
+ name "OperationIsConst"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "OperationIsExplicit"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "Inline"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "EntryCode"
+ value (value Text ""))
+ (object Attribute
+ tool "cg"
+ name "ExitCode"
+ value (value Text ""))
+ (object Attribute
+ tool "cg"
+ name "GenerateEmptyRegions"
+ value ("GenerateEmptyRegionSet" 3))
+ (object Attribute
+ tool "cg"
+ name "GenerateEmptyRegionSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "None"
+ value 0)
+ (object Attribute
+ tool "cg"
+ name "Preserved"
+ value 1)
+ (object Attribute
+ tool "cg"
+ name "Unpreserved"
+ value 2)
+ (object Attribute
+ tool "cg"
+ name "All"
+ value 3)))
+ (object Attribute
+ tool "cg"
+ name "BodyAnnotations"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "OperationIsOneWay"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "Context"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "Raises"
+ value "")))
+ (object Attribute
+ tool "cg"
+ name "default__Has"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "CodeName"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "Ordered"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "NameIfUnlabeled"
+ value "the_$supplier")
+ (object Attribute
+ tool "cg"
+ name "GenerateDataMember"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "DataMemberName"
+ value "$relationship")
+ (object Attribute
+ tool "cg"
+ name "DataMemberVisibility"
+ value ("DataMemberVisibilitySet" 14))
+ (object Attribute
+ tool "cg"
+ name "DataMemberVisibilitySet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Public"
+ value 45)
+ (object Attribute
+ tool "cg"
+ name "Protected"
+ value 44)
+ (object Attribute
+ tool "cg"
+ name "Private"
+ value 43)
+ (object Attribute
+ tool "cg"
+ name "Implementation"
+ value 14)
+ (object Attribute
+ tool "cg"
+ name "AtRelationshipVisibility"
+ value 210)))
+ (object Attribute
+ tool "cg"
+ name "DataMemberMutability"
+ value ("DataMemberMutabilitySet" 0))
+ (object Attribute
+ tool "cg"
+ name "DataMemberMutabilitySet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Unrestricted"
+ value 0)
+ (object Attribute
+ tool "cg"
+ name "Mutable"
+ value 1)
+ (object Attribute
+ tool "cg"
+ name "Const"
+ value 2)))
+ (object Attribute
+ tool "cg"
+ name "DataMemberIsVolatile"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "DataMemberFieldSize"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "InitialValue"
+ value (value Text ""))
+ (object Attribute
+ tool "cg"
+ name "GenerateGetOperation"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GenerateSetOperation"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GetName"
+ value "get_$relationship")
+ (object Attribute
+ tool "cg"
+ name "SetName"
+ value "set_$relationship")
+ (object Attribute
+ tool "cg"
+ name "GetSetKinds"
+ value ("GetSetKindsSet" 200))
+ (object Attribute
+ tool "cg"
+ name "GetSetKindsSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Common"
+ value 200)
+ (object Attribute
+ tool "cg"
+ name "Virtual"
+ value 201)
+ (object Attribute
+ tool "cg"
+ name "Abstract"
+ value 202)
+ (object Attribute
+ tool "cg"
+ name "Static"
+ value 203)
+ (object Attribute
+ tool "cg"
+ name "Friend"
+ value 204)))
+ (object Attribute
+ tool "cg"
+ name "ContainerClass"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "SelectorName"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "SelectorType"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "GetIsConst"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GetResultIsConst"
+ value ("GetResultIsConstSet" 2))
+ (object Attribute
+ tool "cg"
+ name "GetResultIsConstSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "False"
+ value 0)
+ (object Attribute
+ tool "cg"
+ name "True"
+ value 1)
+ (object Attribute
+ tool "cg"
+ name "Same_As_Function"
+ value 2)))
+ (object Attribute
+ tool "cg"
+ name "GetSetByReference"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "InlineGet"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "SetReturnsValue"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "InlineSet"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "ForwardReferenceOnly"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "GenerateForwardReference"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "IsReadOnly"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "BoundedHasRelType"
+ value ("HasRelTypeSet" 47))
+ (object Attribute
+ tool "cg"
+ name "HasRelTypeSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Array"
+ value 24)
+ (object Attribute
+ tool "cg"
+ name "Sequence"
+ value 47)))))
+ (object Attribute
+ tool "cg"
+ name "default__Association"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "NameIfUnlabeled"
+ value "the_$targetClass")))
+ (object Attribute
+ tool "cg"
+ name "default__Inherit"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "InstanceArguments"
+ value "")))
+ (object Attribute
+ tool "cg"
+ name "default__Role"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "CodeName"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "ForwardReferenceOnly"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "NameIfUnlabeled"
+ value "the_$targetClass")
+ (object Attribute
+ tool "cg"
+ name "GenerateDataMember"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "DataMemberName"
+ value "$target")
+ (object Attribute
+ tool "cg"
+ name "DataMemberVisibility"
+ value ("DataMemberVisibilitySet" 14))
+ (object Attribute
+ tool "cg"
+ name "DataMemberVisibilitySet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Public"
+ value 45)
+ (object Attribute
+ tool "cg"
+ name "Protected"
+ value 44)
+ (object Attribute
+ tool "cg"
+ name "Private"
+ value 43)
+ (object Attribute
+ tool "cg"
+ name "Implementation"
+ value 14)
+ (object Attribute
+ tool "cg"
+ name "AtRelationshipVisibility"
+ value 210)))
+ (object Attribute
+ tool "cg"
+ name "DataMemberMutability"
+ value ("DataMemberMutabilitySet" 0))
+ (object Attribute
+ tool "cg"
+ name "DataMemberMutabilitySet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Unrestricted"
+ value 0)
+ (object Attribute
+ tool "cg"
+ name "Mutable"
+ value 1)
+ (object Attribute
+ tool "cg"
+ name "Const"
+ value 2)))
+ (object Attribute
+ tool "cg"
+ name "DataMemberIsVolatile"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "DataMemberFieldSize"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "InitialValue"
+ value (value Text ""))
+ (object Attribute
+ tool "cg"
+ name "ContainerClass"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "ContainerGet"
+ value "$data.get($keys)")
+ (object Attribute
+ tool "cg"
+ name "ContainerSet"
+ value "$data.set($keys,$value)")
+ (object Attribute
+ tool "cg"
+ name "QualifiedContainer"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "AssocClassContainer"
+ value "$supplier *")
+ (object Attribute
+ tool "cg"
+ name "AssocClassInitialValue"
+ value (value Text ""))
+ (object Attribute
+ tool "cg"
+ name "GetSetKinds"
+ value ("GetSetKindsSet" 200))
+ (object Attribute
+ tool "cg"
+ name "GetSetKindsSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Common"
+ value 200)
+ (object Attribute
+ tool "cg"
+ name "Virtual"
+ value 201)
+ (object Attribute
+ tool "cg"
+ name "Abstract"
+ value 202)
+ (object Attribute
+ tool "cg"
+ name "Static"
+ value 203)
+ (object Attribute
+ tool "cg"
+ name "Friend"
+ value 204)))
+ (object Attribute
+ tool "cg"
+ name "GetSetByReference"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "GenerateGetOperation"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GetName"
+ value "get_$target")
+ (object Attribute
+ tool "cg"
+ name "GetIsConst"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GetResultIsConst"
+ value ("GetResultIsConstSet" 2))
+ (object Attribute
+ tool "cg"
+ name "GetResultIsConstSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "False"
+ value 0)
+ (object Attribute
+ tool "cg"
+ name "True"
+ value 1)
+ (object Attribute
+ tool "cg"
+ name "Same_As_Function"
+ value 2)))
+ (object Attribute
+ tool "cg"
+ name "InlineGet"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GenerateSetOperation"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "SetName"
+ value "set_$target")
+ (object Attribute
+ tool "cg"
+ name "SetReturnsValue"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "InlineSet"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "QualifiedGetSetByReference"
+ value ("QualifiedGetSetByReferenceSet" 2))
+ (object Attribute
+ tool "cg"
+ name "QualifiedGetSetByReferenceSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "False"
+ value 0)
+ (object Attribute
+ tool "cg"
+ name "True"
+ value 1)
+ (object Attribute
+ tool "cg"
+ name "Same_As_GetSetByReference"
+ value 2)))
+ (object Attribute
+ tool "cg"
+ name "GenerateQualifiedGetOperation"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "QualifiedGetName"
+ value "get_$target")
+ (object Attribute
+ tool "cg"
+ name "QualifiedGetIsConst"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "QualifiedGetResultIsConst"
+ value ("GetResultIsConstSet" 2))
+ (object Attribute
+ tool "cg"
+ name "InlineQualifiedGet"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GenerateQualifiedSetOperation"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "QualifiedSetName"
+ value "set_$target")
+ (object Attribute
+ tool "cg"
+ name "QualifiedSetReturnsValue"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "InlineQualifiedSet"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GenerateAssocClassDataMember"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "AssocClassDataMemberName"
+ value "$target")
+ (object Attribute
+ tool "cg"
+ name "AssocClassDataMemberVisibility"
+ value ("DataMemberVisibilitySet" 14))
+ (object Attribute
+ tool "cg"
+ name "DataMemberVisibilitySet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Public"
+ value 45)
+ (object Attribute
+ tool "cg"
+ name "Protected"
+ value 44)
+ (object Attribute
+ tool "cg"
+ name "Private"
+ value 43)
+ (object Attribute
+ tool "cg"
+ name "Implementation"
+ value 14)
+ (object Attribute
+ tool "cg"
+ name "AtRelationshipVisibility"
+ value 210)))
+ (object Attribute
+ tool "cg"
+ name "AssocClassDataMemberMutability"
+ value ("DataMemberMutabilitySet" 0))
+ (object Attribute
+ tool "cg"
+ name "DataMemberMutabilitySet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Unrestricted"
+ value 0)
+ (object Attribute
+ tool "cg"
+ name "Mutable"
+ value 1)
+ (object Attribute
+ tool "cg"
+ name "Const"
+ value 2)))
+ (object Attribute
+ tool "cg"
+ name "AssocClassDataMemberIsVolatile"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "AssocClassGetSetKinds"
+ value ("GetSetKindsSet" 200))
+ (object Attribute
+ tool "cg"
+ name "GenerateAssocClassGetOperation"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "AssocClassGetName"
+ value "get_$target")
+ (object Attribute
+ tool "cg"
+ name "AssocClassGetIsConst"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "AssocClassGetResultIsConst"
+ value ("GetResultIsConstSet" 2))
+ (object Attribute
+ tool "cg"
+ name "InlineAssocClassGet"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GenerateAssocClassSetOperation"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "AssocClassSetName"
+ value "set_$target")
+ (object Attribute
+ tool "cg"
+ name "AssocClassSetReturnsValue"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "InlineAssocClassSet"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "AssocClassForwardReferenceOnly"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GenerateForwardReference"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "IsReadOnly"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "BoundedRoleType"
+ value ("AssocTypeSet" 47))
+ (object Attribute
+ tool "cg"
+ name "AssocTypeSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Array"
+ value 24)
+ (object Attribute
+ tool "cg"
+ name "Sequence"
+ value 47)))))
+ (object Attribute
+ tool "cg"
+ name "default__Attribute"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "CodeName"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "GenerateDataMember"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "DataMemberName"
+ value "$attribute")
+ (object Attribute
+ tool "cg"
+ name "DataMemberVisibility"
+ value ("DataMemberVisibilitySet" 14))
+ (object Attribute
+ tool "cg"
+ name "DataMemberVisibilitySet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Public"
+ value 45)
+ (object Attribute
+ tool "cg"
+ name "Protected"
+ value 44)
+ (object Attribute
+ tool "cg"
+ name "Private"
+ value 43)
+ (object Attribute
+ tool "cg"
+ name "Implementation"
+ value 14)
+ (object Attribute
+ tool "cg"
+ name "AtAttributeVisibility"
+ value 211)))
+ (object Attribute
+ tool "cg"
+ name "DataMemberMutability"
+ value ("DataMemberMutabilitySet" 0))
+ (object Attribute
+ tool "cg"
+ name "DataMemberMutabilitySet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Unrestricted"
+ value 0)
+ (object Attribute
+ tool "cg"
+ name "Mutable"
+ value 1)
+ (object Attribute
+ tool "cg"
+ name "Const"
+ value 2)))
+ (object Attribute
+ tool "cg"
+ name "DataMemberIsVolatile"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "DataMemberFieldSize"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "GenerateGetOperation"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GenerateSetOperation"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GetName"
+ value "get_$attribute")
+ (object Attribute
+ tool "cg"
+ name "SetName"
+ value "set_$attribute")
+ (object Attribute
+ tool "cg"
+ name "GetSetKinds"
+ value ("GetSetKindsSet" 200))
+ (object Attribute
+ tool "cg"
+ name "GetSetKindsSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Common"
+ value 200)
+ (object Attribute
+ tool "cg"
+ name "Virtual"
+ value 201)
+ (object Attribute
+ tool "cg"
+ name "Abstract"
+ value 202)
+ (object Attribute
+ tool "cg"
+ name "Static"
+ value 203)
+ (object Attribute
+ tool "cg"
+ name "Friend"
+ value 204)))
+ (object Attribute
+ tool "cg"
+ name "GetIsConst"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "GetResultIsConst"
+ value ("GetResultIsConstSet" 2))
+ (object Attribute
+ tool "cg"
+ name "GetResultIsConstSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "False"
+ value 0)
+ (object Attribute
+ tool "cg"
+ name "True"
+ value 1)
+ (object Attribute
+ tool "cg"
+ name "Same_As_Function"
+ value 2)))
+ (object Attribute
+ tool "cg"
+ name "GetSetByReference"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "InlineGet"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "SetReturnsValue"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "InlineSet"
+ value TRUE)
+ (object Attribute
+ tool "cg"
+ name "CaseSpecifier"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "IsReadOnly"
+ value FALSE)))
+ (object Attribute
+ tool "cg"
+ name "default__Uses"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "ForwardReferenceOnly"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "BodyReferenceOnly"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "GenerateForwardReference"
+ value FALSE)))
+ (object Attribute
+ tool "cg"
+ name "default__Subsystem"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "Directory"
+ value "AUTO GENERATE")
+ (object Attribute
+ tool "cg"
+ name "DirectoryIsOnSearchList"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "PrecompiledHeader"
+ value "")))
+ (object Attribute
+ tool "cg"
+ name "default__Category"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "IsNamespace"
+ value FALSE)
+ (object Attribute
+ tool "cg"
+ name "Indent"
+ value 2)
+ (object Attribute
+ tool "cg"
+ name "CodeName"
+ value "")
+ (object Attribute
+ tool "cg"
+ name "GenerateEmptyRegions"
+ value ("GenerateEmptyRegionSet" 3))
+ (object Attribute
+ tool "cg"
+ name "GenerateEmptyRegionSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "cg"
+ name "None"
+ value 0)
+ (object Attribute
+ tool "cg"
+ name "Preserved"
+ value 1)
+ (object Attribute
+ tool "cg"
+ name "Unpreserved"
+ value 2)
+ (object Attribute
+ tool "cg"
+ name "All"
+ value 3)))))
+ (object Attribute
+ tool "MSVC"
+ name "propertyId"
+ value "809135966")
+ (object Attribute
+ tool "MSVC"
+ name "default__Project"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "Version"
+ value "5.0")))
+ (object Attribute
+ tool "MSVC"
+ name "default__Class"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "Type"
+ value ("MSVCClassTypeSet" 0))
+ (object Attribute
+ tool "MSVC"
+ name "MSVCClassTypeSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "Normal"
+ value 0)
+ (object Attribute
+ tool "MSVC"
+ name "Interface_Part"
+ value 1)
+ (object Attribute
+ tool "MSVC"
+ name "Connection_Part"
+ value 2)
+ (object Attribute
+ tool "MSVC"
+ name "Class_Factory"
+ value 3)))
+ (object Attribute
+ tool "MSVC"
+ name "CObjectFunctionality"
+ value ("CObjectFunctionalitySet" 0))
+ (object Attribute
+ tool "MSVC"
+ name "CObjectFunctionalitySet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "None"
+ value 0)
+ (object Attribute
+ tool "MSVC"
+ name "Dynamic"
+ value 1)
+ (object Attribute
+ tool "MSVC"
+ name "Dyncreate"
+ value 2)
+ (object Attribute
+ tool "MSVC"
+ name "Serial"
+ value 3)))
+ (object Attribute
+ tool "MSVC"
+ name "GenerateOverrideGroup"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "GenerateDataGroup"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "AFX_DATA_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "GenerateFieldGroup"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "AFX_FIELD_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "GenerateMessageGroup"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "GenerateMessageMap"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "AFX_MSG_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "MESSAGE_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "OLEFactory"
+ value ("OLEFactorySet" 0))
+ (object Attribute
+ tool "MSVC"
+ name "OLEFactorySet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "None"
+ value 0)
+ (object Attribute
+ tool "MSVC"
+ name "Built_in"
+ value 1)
+ (object Attribute
+ tool "MSVC"
+ name "Simple"
+ value 2)
+ (object Attribute
+ tool "MSVC"
+ name "Licensed"
+ value 3)))
+ (object Attribute
+ tool "MSVC"
+ name "OLEName"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "OLEClassID"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "GenerateOLECtlType"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "OLECtlType"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "GenerateOLETypeLib"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "OLETypeLibID"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "OLETypeLibMajor"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "OLETypeLibMinor"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "GeneratePropPageIDs"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "OLEPropPageIDs"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "GenerateDispatchMap"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "AFX_DISPATCH_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "AFX_DISPATCH_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "DISPATCH_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "StockProperties"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "StockFunctions"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "DispatchDefValue"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "GenerateDispIdEnum"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "AFX_DISP_ID_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "GenerateInterfaceMap"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "INTERFACE_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "InitInterface"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "GenerateEventMap"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "AFX_EVENT_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "AFX_EVENT_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "EVENT_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "StockEvents"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "GenerateEventSinkMap"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "AFX_EVENTSINK_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "AFX_EVENTSINK_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "EVENTSINK_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "PropNotifySinks"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "GenerateConnectionMap"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "CONNECTION_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "ConnectionPointIID"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "InheritanceType"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "DeclSpec"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "OLECommands"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "MFCDeclares"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "MFCImplements"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "ATL_Declares"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "GenerateCOMMap"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "COM_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "GenerateConnectionPointMap"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "CONNECTION_POINT_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "GenerateMsgMap"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "MSG_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "GeneratePropertyMap"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "PROPERTY_MAP_Entries"
+ value (value Text ""))))
+ (object Attribute
+ tool "MSVC"
+ name "default__Operation"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "Type"
+ value ("MSVCOperationTypeSet" 0))
+ (object Attribute
+ tool "MSVC"
+ name "MSVCOperationTypeSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "Normal"
+ value 0)
+ (object Attribute
+ tool "MSVC"
+ name "Virtual_Override"
+ value 1)
+ (object Attribute
+ tool "MSVC"
+ name "Message_Handler"
+ value 2)
+ (object Attribute
+ tool "MSVC"
+ name "Dispatch_Handler"
+ value 3)
+ (object Attribute
+ tool "MSVC"
+ name "Event_Firing_Function"
+ value 4)
+ (object Attribute
+ tool "MSVC"
+ name "Event_Sink_Handler"
+ value 5)
+ (object Attribute
+ tool "MSVC"
+ name "Std_OLE_Method"
+ value 6)
+ (object Attribute
+ tool "MSVC"
+ name "Command_Parser"
+ value 7)
+ (object Attribute
+ tool "MSVC"
+ name "Property_Get_Function"
+ value 8)
+ (object Attribute
+ tool "MSVC"
+ name "Property_Set_Function"
+ value 9)
+ (object Attribute
+ tool "MSVC"
+ name "Property_Notify_Function"
+ value 10)
+ (object Attribute
+ tool "MSVC"
+ name "Macro_Generated_Function"
+ value 11)))
+ (object Attribute
+ tool "MSVC"
+ name "AFX_MSG_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "MESSAGE_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "AFX_DISPATCH_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "DISPATCH_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "AFX_EVENT_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "EVENT_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "AFX_EVENTSINK_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "EVENTSINK_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "CallType"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "DeclSpec"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "BodyImage"
+ value (value Text ""))))
+ (object Attribute
+ tool "MSVC"
+ name "default__Role"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "Type"
+ value ("MSVCAttributeTypeSet" 0))
+ (object Attribute
+ tool "MSVC"
+ name "MSVCAttributeTypeSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "Normal"
+ value 0)
+ (object Attribute
+ tool "MSVC"
+ name "Member_Property"
+ value 1)
+ (object Attribute
+ tool "MSVC"
+ name "Get_Set_Property"
+ value 2)
+ (object Attribute
+ tool "MSVC"
+ name "Dialog_Data"
+ value 3)
+ (object Attribute
+ tool "MSVC"
+ name "Field_Data"
+ value 4)
+ (object Attribute
+ tool "MSVC"
+ name "Stock_Property"
+ value 5)))
+ (object Attribute
+ tool "MSVC"
+ name "AFX_DISPATCH_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "DISPATCH_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "DeclSpec"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "PointerBase"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "CallType"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "StockPropertyImplementation"
+ value "")))
+ (object Attribute
+ tool "MSVC"
+ name "default__Has"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "Type"
+ value ("MSVCAttributeTypeSet" 0))
+ (object Attribute
+ tool "MSVC"
+ name "MSVCAttributeTypeSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "Normal"
+ value 0)
+ (object Attribute
+ tool "MSVC"
+ name "Member_Property"
+ value 1)
+ (object Attribute
+ tool "MSVC"
+ name "Get_Set_Property"
+ value 2)
+ (object Attribute
+ tool "MSVC"
+ name "Dialog_Data"
+ value 3)
+ (object Attribute
+ tool "MSVC"
+ name "Field_Data"
+ value 4)
+ (object Attribute
+ tool "MSVC"
+ name "Stock_Property"
+ value 5)))
+ (object Attribute
+ tool "MSVC"
+ name "AFX_DISPATCH_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "DISPATCH_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "DeclSpec"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "PointerBase"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "CallType"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "StockPropertyImplementation"
+ value "")))
+ (object Attribute
+ tool "MSVC"
+ name "default__Attribute"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "Type"
+ value ("MSVCAttributeTypeSet" 0))
+ (object Attribute
+ tool "MSVC"
+ name "MSVCAttributeTypeSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "Normal"
+ value 0)
+ (object Attribute
+ tool "MSVC"
+ name "Member_Property"
+ value 1)
+ (object Attribute
+ tool "MSVC"
+ name "Get_Set_Property"
+ value 2)
+ (object Attribute
+ tool "MSVC"
+ name "Dialog_Data"
+ value 3)
+ (object Attribute
+ tool "MSVC"
+ name "Field_Data"
+ value 4)
+ (object Attribute
+ tool "MSVC"
+ name "Stock_Property"
+ value 5)))
+ (object Attribute
+ tool "MSVC"
+ name "AFX_DISPATCH_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "DISPATCH_MAP_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "DeclSpec"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "PointerBase"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "CallType"
+ value "")
+ (object Attribute
+ tool "MSVC"
+ name "StockPropertyImplementation"
+ value "")))
+ (object Attribute
+ tool "MSVC"
+ name "default__Module-Spec"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "GenerateIncludesGroup"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "AFX_INCLUDES_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "GenerateInsertLocation"
+ value FALSE)))
+ (object Attribute
+ tool "MSVC"
+ name "default__Module-Body"
+ value (list Attribute_Set
+ (object Attribute
+ tool "MSVC"
+ name "GenerateIncludesGroup"
+ value FALSE)
+ (object Attribute
+ tool "MSVC"
+ name "AFX_INCLUDES_Entries"
+ value (value Text ""))
+ (object Attribute
+ tool "MSVC"
+ name "GenerateInsertLocation"
+ value FALSE)))
+ (object Attribute
+ tool "cg"
+ name "HiddenTool"
+ value FALSE)
+ (object Attribute
+ tool "TypeLibImporter"
+ name "HiddenTool"
+ value FALSE)
+ (object Attribute
+ tool "Visual Basic"
+ name "propertyId"
+ value "783606378")
+ (object Attribute
+ tool "Visual Basic"
+ name "default__Class"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Visual Basic"
+ name "CreatableSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Visual Basic"
+ name "Private"
+ value 221)
+ (object Attribute
+ tool "Visual Basic"
+ name "PublicNotCreatable"
+ value 213)
+ (object Attribute
+ tool "Visual Basic"
+ name "SingleUse"
+ value 214)
+ (object Attribute
+ tool "Visual Basic"
+ name "GlobalSingleUse"
+ value 215)
+ (object Attribute
+ tool "Visual Basic"
+ name "MultiUse"
+ value 219)
+ (object Attribute
+ tool "Visual Basic"
+ name "GlobalMultiUse"
+ value 220)))
+ (object Attribute
+ tool "Visual Basic"
+ name "OptionBase"
+ value "0")
+ (object Attribute
+ tool "Visual Basic"
+ name "OptionExplicit"
+ value TRUE)
+ (object Attribute
+ tool "Visual Basic"
+ name "OptionCompare"
+ value ("CompareSet" 202))
+ (object Attribute
+ tool "Visual Basic"
+ name "Creatable"
+ value ("CreatableSet" 221))
+ (object Attribute
+ tool "Visual Basic"
+ name "GenerateInitialization"
+ value FALSE)
+ (object Attribute
+ tool "Visual Basic"
+ name "GenerateTermination"
+ value FALSE)
+ (object Attribute
+ tool "Visual Basic"
+ name "CollectionClass"
+ value "Collection")
+ (object Attribute
+ tool "Visual Basic"
+ name "CompareSet"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Visual Basic"
+ name "None"
+ value 202)
+ (object Attribute
+ tool "Visual Basic"
+ name "Binary"
+ value 203)
+ (object Attribute
+ tool "Visual Basic"
+ name "Text"
+ value 204)))))
+ (object Attribute
+ tool "Visual Basic"
+ name "default__Operation"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Visual Basic"
+ name "OperationName"
+ value "$operation")
+ (object Attribute
+ tool "Visual Basic"
+ name "LibraryName"
+ value "")
+ (object Attribute
+ tool "Visual Basic"
+ name "AliasName"
+ value "")
+ (object Attribute
+ tool "Visual Basic"
+ name "IsStatic"
+ value FALSE)
+ (object Attribute
+ tool "Visual Basic"
+ name "EntryCode"
+ value (value Text ""))
+ (object Attribute
+ tool "Visual Basic"
+ name "ExitCode"
+ value (value Text ""))))
+ (object Attribute
+ tool "Visual Basic"
+ name "default__Attribute"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Visual Basic"
+ name "IsConst"
+ value FALSE)
+ (object Attribute
+ tool "Visual Basic"
+ name "New"
+ value FALSE)
+ (object Attribute
+ tool "Visual Basic"
+ name "WithEvents"
+ value FALSE)
+ (object Attribute
+ tool "Visual Basic"
+ name "Subscript"
+ value "")
+ (object Attribute
+ tool "Visual Basic"
+ name "NameIfUnlabeled"
+ value "the$supplier")
+ (object Attribute
+ tool "Visual Basic"
+ name "GenerateDataMember"
+ value TRUE)
+ (object Attribute
+ tool "Visual Basic"
+ name "DataMemberName"
+ value "$relationship")
+ (object Attribute
+ tool "Visual Basic"
+ name "GenerateGetOperation"
+ value FALSE)
+ (object Attribute
+ tool "Visual Basic"
+ name "GenerateSetOperation"
+ value FALSE)
+ (object Attribute
+ tool "Visual Basic"
+ name "GenerateLetOperation"
+ value FALSE)))
+ (object Attribute
+ tool "Visual Basic"
+ name "default__Role"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Visual Basic"
+ name "New"
+ value FALSE)
+ (object Attribute
+ tool "Visual Basic"
+ name "WithEvents"
+ value FALSE)
+ (object Attribute
+ tool "Visual Basic"
+ name "Subscript"
+ value "")
+ (object Attribute
+ tool "Visual Basic"
+ name "NameIfUnlabeled"
+ value "the$supplier")
+ (object Attribute
+ tool "Visual Basic"
+ name "GenerateDataMember"
+ value TRUE)
+ (object Attribute
+ tool "Visual Basic"
+ name "DataMemberName"
+ value "$relationship")
+ (object Attribute
+ tool "Visual Basic"
+ name "GenerateGetOperation"
+ value FALSE)
+ (object Attribute
+ tool "Visual Basic"
+ name "GenerateSetOperation"
+ value FALSE)
+ (object Attribute
+ tool "Visual Basic"
+ name "GenerateLetOperation"
+ value FALSE)))
+ (object Attribute
+ tool "Visual Basic"
+ name "default__Inherit"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Visual Basic"
+ name "ImplementsDelegation"
+ value TRUE)))
+ (object Attribute
+ tool "Visual Basic"
+ name "default__Module-Spec"
+ value (list Attribute_Set
+ (object Attribute
+ tool "Visual Basic"
+ name "ProjectFile"
+ value "")))
+ (object Attribute
+ tool "Visual Basic"
+ name "HiddenTool"
+ value FALSE)
+ (object Attribute
+ tool "VisualStudio"
+ name "HiddenTool"
+ value FALSE))
+ quid "3FAA8E8700C1"))
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/pom.xml b/sca-java-1.x/branches/java-post-M1/sdo/impl/pom.xml
new file mode 100644
index 0000000000..c0e3477d73
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/pom.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 2005-2006 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.
+ -->
+<project>
+ <parent>
+ <groupId>org.apache.tuscany</groupId>
+ <artifactId>tuscany-sdo</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>tuscany-sdo-impl</artifactId>
+ <name>Tuscany SDO Implementation</name>
+ <description>Tuscany implementation of SDO API.</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>commonj</groupId>
+ <artifactId>sdo-api</artifactId>
+ <version>incubating-M1</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ <version>1.0</version>
+ <!-- mark as provided to avoid adding this to the classpath for users that are not using StAX -->
+ <scope>provided</scope>
+ <optional>true</optional>
+ </dependency>
+
+ <dependency>
+ <groupId>woodstox</groupId>
+ <artifactId>wstx-asl</artifactId>
+ <version>2.9.3</version>
+ <scope>test</scope>
+ </dependency>
+
+
+ <dependency>
+ <groupId>asm</groupId>
+ <artifactId>asm</artifactId>
+ <version>2.2</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>common</artifactId>
+ <version>${emfVersion}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>ecore</artifactId>
+ <version>${emfVersion}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>ecore-change</artifactId>
+ <version>${emfVersion}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>ecore-xmi</artifactId>
+ <version>${emfVersion}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.xsd</groupId>
+ <artifactId>xsd</artifactId>
+ <version>${emfVersion}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/AnyTypeDataObject.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOExtendedMetaData.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOFactory.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOPackage.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/SDOTypeVisitor.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/SimpleAnyTypeDataObject.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/BytecodeInterfaceGenerator.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/GenerationException.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/JavaInterfaceGenerator.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/codegen/NoJavaImplementationException.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/CopyHelperImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataFactoryImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java
new file mode 100644
index 0000000000..8ba98407cf
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java
@@ -0,0 +1,310 @@
+/**
+ *
+ * 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("'P'yyyy'Y' MM'M' dd'D' 'T' HH'H' mm'M' ss'S.'SSS"),
+ new SimpleDateFormat("--MM zz"),
+ new SimpleDateFormat("--MM-dd zz"),
+ new SimpleDateFormat("---dd zz"),
+ new SimpleDateFormat("HH:mm:ss'.'SSS"),
+ new SimpleDateFormat("yyyy-MM-dd"),
+ new SimpleDateFormat("yyyy-MM"),
+ new SimpleDateFormat("yyyy")
+ };
+
+ 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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/EqualityHelperImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperProviderImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperProviderImpl.java
new file mode 100644
index 0000000000..89512a73f6
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/HelperProviderImpl.java
@@ -0,0 +1,212 @@
+/**
+ *
+ * Copyright 2006 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.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.NotSerializableException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.ObjectStreamException;
+import java.util.zip.GZIPInputStream;
+import java.util.zip.GZIPOutputStream;
+
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+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.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
+import commonj.sdo.impl.HelperProvider;
+import commonj.sdo.impl.ExternalizableDelegator.Resolvable;
+
+
+/**
+ * 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()
+ {
+ return new ResolvableImpl();
+ }
+
+ public Resolvable resolvable(Object target)
+ {
+ return new ResolvableImpl(target);
+ }
+
+ protected class ResolvableImpl implements Resolvable
+ {
+ protected Object target;
+
+ public ResolvableImpl(Object target) { this.target = target; }
+
+ public ResolvableImpl() { this.target = null; }
+
+ public void writeExternal(ObjectOutput out) throws IOException
+ {
+ if (target instanceof DataObject)
+ {
+ writeDataObject((DataObject)target, out);
+ }
+ else
+ {
+ throw new NotSerializableException(); // should never happen
+ }
+ }
+
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
+ {
+ target = readDataObject(in);
+ }
+
+ public Object readResolve() throws ObjectStreamException
+ {
+ return target;
+ }
+
+ protected void writeDataObject(DataObject dataObject, ObjectOutput objectOutput) throws IOException
+ {
+ DataGraph dataGraph = dataObject.getDataGraph();
+ if (dataGraph != null)
+ {
+ objectOutput.writeByte(0);
+ objectOutput.writeUTF(DataObjectUtil.getXPath(dataObject));
+ objectOutput.writeObject(dataGraph);
+ }
+ else if (dataObject.getContainer() != null)
+ {
+ objectOutput.writeByte(0);
+ objectOutput.writeUTF(DataObjectUtil.getXPath(dataObject));
+ objectOutput.writeObject(dataObject.getRootObject());
+ }
+ else
+ {
+ // Root object
+ objectOutput.writeByte(1);
+
+ ByteArrayOutputStream compressedByteArrayOutputStream = new ByteArrayOutputStream();
+ GZIPOutputStream gzipOutputStream = new GZIPOutputStream(compressedByteArrayOutputStream);
+
+ xmlHelper.save(dataObject, "commonj.sdo", "dataObject", gzipOutputStream);
+ gzipOutputStream.close(); // Flush the contents
+
+ byte[] byteArray = compressedByteArrayOutputStream.toByteArray();
+ objectOutput.writeInt(byteArray.length);
+ objectOutput.write(byteArray);
+ }
+ }
+
+ protected DataObject readDataObject(ObjectInput objectInput) throws IOException, ClassNotFoundException
+ {
+ boolean isRoot = objectInput.readByte() == 1;
+ if (isRoot)
+ {
+ // Root object: [rootXML] = length + XML contents
+ int length = objectInput.readInt();
+ byte[] compressedBytes = new byte [length];
+ objectInput.read(compressedBytes, 0, length);
+
+ GZIPInputStream gzipInputStream = new GZIPInputStream(new ByteArrayInputStream(compressedBytes));
+
+ XMLDocument doc = xmlHelper.load(gzipInputStream);
+ gzipInputStream.close();
+
+ return doc.getRootObject();
+ }
+ else
+ {
+ // Non root object: [path] [root]
+ String xpath = objectInput.readUTF();
+ Object object = objectInput.readObject();
+
+ DataObject root = object instanceof DataGraph ? ((DataGraph)object).getRootObject() : (DataObject)object;
+ return xpath.equals("") ? root : root.getDataObject(xpath);
+ }
+ }
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOExtendedMetaDataImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOXSDEcoreBuilder.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/TypeHelperImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLDocumentImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLDocumentImpl.java
new file mode 100644
index 0000000000..b0205b5362
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLDocumentImpl.java
@@ -0,0 +1,533 @@
+/**
+ *
+ * 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 javax.xml.stream.XMLStreamReader;
+
+import org.apache.tuscany.sdo.SimpleAnyTypeDataObject;
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.apache.tuscany.sdo.util.SDOUtil;
+import org.apache.tuscany.sdo.util.resource.SDOXMLResourceImpl;
+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.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.XMLResource;
+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";
+
+ //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"));
+ DataObjectUtil.configureXMLResource(resource, extendedMetaData);
+ }
+
+ 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(XMLStreamReader reader) throws IOException
+ {
+ ((SDOXMLResourceImpl)resource).load(reader, null);
+ initLoadedRoot();
+ }
+
+ protected void load(InputSource inputSource, String locationURI, Object options) throws IOException
+ {
+ if (locationURI != null)
+ {
+ inputSource.setSystemId(locationURI);
+ resource.setURI(URI.createURI(locationURI));
+ }
+ resource.load(inputSource, (Map)options);
+ initLoadedRoot();
+ }
+
+ private void initLoadedRoot()
+ {
+ rootObject = null;
+ rootElement = null;
+ documentRoot = null;
+
+ 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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLHelperImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLStreamHelper.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLStreamHelper.java
new file mode 100644
index 0000000000..03d7936894
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/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.helper;
+
+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 (StAX).
+ *
+ * @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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLStreamHelperImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLStreamHelperImpl.java
new file mode 100644
index 0000000000..788cd99927
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XMLStreamHelperImpl.java
@@ -0,0 +1,126 @@
+/**
+ *
+ * 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.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.sdo.util.resource.DataObjectXMLStreamReader;
+import org.apache.tuscany.sdo.util.resource.XMLDocumentStreamReader;
+import org.apache.tuscany.sdo.util.resource.XMLStreamSerializer;
+import org.eclipse.emf.ecore.resource.Resource;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLDocument;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class XMLStreamHelperImpl implements XMLStreamHelper
+{
+ TypeHelperImpl typeHelper;
+
+ public XMLStreamHelperImpl(TypeHelper typeHelper)
+ {
+ this.typeHelper = (TypeHelperImpl)typeHelper;
+ }
+
+ public XMLDocument load(XMLStreamReader reader) throws XMLStreamException, IllegalStateException
+ {
+ if (reader.getEventType() != XMLStreamConstants.START_DOCUMENT)
+ throw new IllegalStateException();
+
+ return loadDocument(reader);
+ }
+
+ public void save(XMLDocument document, XMLStreamWriter writer) throws XMLStreamException
+ {
+ XMLStreamReader reader = createXMLStreamReader(document);
+ new XMLStreamSerializer().serialize(reader, writer);
+ }
+
+ public XMLStreamReader createXMLStreamReader(XMLDocument document) throws XMLStreamException
+ {
+ XMLStreamReader reader = new DataObjectXMLStreamReader(document.getRootObject(), document.getRootElementURI(), document.getRootElementName(), typeHelper);
+ // Wrap the reader so that its position will be START_ELEMENT
+ return new XMLDocumentStreamReader(reader);
+
+ }
+
+ public DataObject loadObject(XMLStreamReader reader) throws XMLStreamException, IllegalStateException
+ {
+ if (reader.getEventType() != XMLStreamConstants.START_ELEMENT)
+ throw new IllegalStateException();
+
+ // StAX2SAXAdapter won't produce START_DOCUMENT if the reader is posisitioned at START_ELEMENT and the EMF loader will fail
+ // Wrap the reader so it represents a document
+ reader = new XMLDocumentStreamReader(reader);
+
+ return loadDocument(reader).getRootObject();
+ }
+
+ public void saveObject(DataObject sdo, XMLStreamWriter writer) throws XMLStreamException
+ {
+ XMLStreamReader reader = createXMLStreamReader(sdo);
+ new XMLStreamSerializer().serialize(new XMLDocumentStreamReader(reader), writer);
+ }
+
+ public XMLStreamReader createXMLStreamReader(DataObject dataObject)
+ {
+ String rootElementURI;
+ String rootElementName;
+
+ Property property = dataObject.getContainmentProperty();
+ if (property != null)
+ {
+ rootElementName = property.getName();
+ rootElementURI = property.getType().getURI();
+ }
+ else
+ {
+ rootElementName = dataObject.getType().getName();
+ rootElementURI = dataObject.getType().getURI();
+ }
+
+ return new DataObjectXMLStreamReader(dataObject, rootElementURI, rootElementName, typeHelper);
+ }
+
+ protected XMLDocument loadDocument(XMLStreamReader reader) throws XMLStreamException
+ {
+ try {
+ XMLDocumentImpl document = new XMLDocumentImpl(typeHelper.extendedMetaData, null);
+ document.load(reader);
+ return document;
+ }
+ catch (Exception e) {
+ if (e instanceof Resource.IOWrappedException)
+ {
+ Resource.IOWrappedException ioe = (Resource.IOWrappedException)e;
+ if (ioe.getWrappedException() instanceof XMLStreamException)
+ {
+ throw (XMLStreamException)ioe.getWrappedException();
+ }
+ }
+ throw new RuntimeException(e); // ????
+ }
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/AnyTypeDataObjectImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/AttributeImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ChangeSummaryImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ChangeSummarySettingImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ClassImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataGraphImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataGraphImpl.java
new file mode 100644
index 0000000000..ec07a3ae1a
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataGraphImpl.java
@@ -0,0 +1,821 @@
+/**
+ *
+ * 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.List;
+
+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.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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectBase.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectImpl.java
new file mode 100644
index 0000000000..e952e5eea5
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataObjectImpl.java
@@ -0,0 +1,1508 @@
+/**
+ *
+ * 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;
+import commonj.sdo.impl.ExternalizableDelegator;
+
+
+/**
+ * <!-- 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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Object writeReplace() throws ObjectStreamException
+ {
+ return new ExternalizableDelegator(this);
+ }
+
+
+ // Remaining DataObject methods are (will be) implemented as straight delegation to DataObjectUtil
+
+ /**
+ * <!-- 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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DataTypeImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DynamicDataObjectImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/DynamicStoreDataObjectImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/EnumImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/FactoryBase.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/ReferenceImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOFactoryImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOFactoryImpl.java
new file mode 100644
index 0000000000..db60094adc
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOFactoryImpl.java
@@ -0,0 +1,325 @@
+/**
+ *
+ * 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 create(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");
+ }
+ }
+
+ /**
+ * <!-- 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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SDOPackageImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/SimpleAnyTypeDataObjectImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/impl/StoreDataObjectImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/BaseDataGraphType.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ChangeSummaryType.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/DataGraphType.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/DataObject.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelFactory.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelPackage.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/ModelsType.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Property.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/TextType.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Type.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/Types.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/XSDType.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/BaseDataGraphTypeImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ChangeSummaryTypeImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/DataGraphTypeImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/DataObjectImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java
new file mode 100644
index 0000000000..c5ec4ae591
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java
@@ -0,0 +1,1095 @@
+/**
+ *
+ * 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.SDOFactory;
+import org.apache.tuscany.sdo.model.ChangeSummaryType;
+import org.apache.tuscany.sdo.model.DataGraphType;
+import org.apache.tuscany.sdo.model.ModelFactory;
+import org.apache.tuscany.sdo.model.ModelsType;
+import org.apache.tuscany.sdo.model.Property;
+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.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 commonj.sdo.helper.DataHelper;
+
+/**
+ * <!-- 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 createGen(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");
+ }
+ }
+
+ public EObject create(EClass eClass)
+ {
+ if (eClass.getClassifierID() == ModelPackageImpl.DATA_OBJECT) return SDOFactory.eINSTANCE.createAnyTypeDataObject();
+ return createGen(eClass);
+ }
+
+ /**
+ * <!-- 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;
+ return DataHelper.INSTANCE.toDate(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertDateToString(EDataType eDataType, Object instanceValue)
+ {
+ // return XMLTypeFactory.eINSTANCE.convertDate(instanceValue);
+ return DataHelper.INSTANCE.toDateTime((Date)instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createDateTimeFromString(EDataType eDataType, String initialValue)
+ {
+ return initialValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertDateTimeToString(EDataType eDataType, Object instanceValue)
+ {
+ return (String)instanceValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createDayFromString(EDataType eDataType, String initialValue)
+ {
+ return initialValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertDayToString(EDataType eDataType, Object instanceValue)
+ {
+ return (String)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)
+ {
+ return initialValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertDurationToString(EDataType eDataType, Object instanceValue)
+ {
+ return (String)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)
+ {
+ return initialValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertMonthToString(EDataType eDataType, Object instanceValue)
+ {
+ return (String)instanceValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createMonthDayFromString(EDataType eDataType, String initialValue)
+ {
+ return initialValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertMonthDayToString(EDataType eDataType, Object instanceValue)
+ {
+ return (String)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)
+ {
+ return initialValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertTimeToString(EDataType eDataType, Object instanceValue)
+ {
+ return (String)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)
+ {
+ return initialValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertYearToString(EDataType eDataType, Object instanceValue)
+ {
+ return (String)instanceValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createYearMonthFromString(EDataType eDataType, String initialValue)
+ {
+ return initialValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertYearMonthToString(EDataType eDataType, Object instanceValue)
+ {
+ return (String)instanceValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createYearMonthDayFromString(EDataType eDataType, String initialValue)
+ {
+ return initialValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertYearMonthDayToString(EDataType eDataType, Object instanceValue)
+ {
+ return (String)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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelPackageImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelsTypeImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/PropertyImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/PropertyImpl.java
new file mode 100644
index 0000000000..9c71e82474
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TextTypeImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TypeImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/TypesImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/XSDTypeImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/JavaFactory.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/JavaInfo.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaFactoryImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaInfoImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/java/impl/JavaPackageImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/BasicSequence.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataGraphResourceFactoryImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataGraphResourceFactoryImpl.java
new file mode 100644
index 0000000000..a2288ce027
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataGraphResourceFactoryImpl.java
@@ -0,0 +1,691 @@
+/**
+ *
+ * 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.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.helper.TypeHelperImpl;
+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.w3c.dom.Node;
+import org.xml.sax.InputSource;
+import org.xml.sax.helpers.DefaultHandler;
+
+import commonj.sdo.ChangeSummary;
+import commonj.sdo.helper.TypeHelper;
+
+
+public class DataGraphResourceFactoryImpl extends ResourceFactoryImpl
+{
+ /**
+ * Constructor for DataGraphResourceFactoryImpl.
+ */
+ public DataGraphResourceFactoryImpl()
+ {
+ super();
+ }
+
+ public Resource createResource(URI uri)
+ {
+ XMLResourceImpl result = new DataGraphResourceImpl(uri);
+
+ ExtendedMetaData extendedMetaData = ((TypeHelperImpl)TypeHelper.INSTANCE).getExtendedMetaData();
+ DataObjectUtil.configureXMLResource(result, extendedMetaData);
+
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_DEPRECATED_METHODS, Boolean.TRUE);
+ //result.setEncoding("UTF-8");
+ //result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE);
+ //result.getDefaultSaveOptions().put(XMLResource.OPTION_LINE_WIDTH, new Integer(80));
+
+ 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)
+ {
+ String fragment = super.getIDREF(eObject);
+ if (fragment.startsWith("/"))
+ {
+ int index = resources.indexOf(eObject.eResource());
+ if (index != -1)
+ {
+ fragment = ((String)uris.get(index)).substring(1) + fragment.substring(1);
+ }
+ }
+ return fragment;
+ }
+
+ 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", "");
+ doc.addAttribute("logging", String.valueOf(eDataGraph.getEChangeSummary().isLogging()));
+ }
+ else
+ {
+ ((Element)currentNode).setAttributeNS(ExtendedMetaData.XMLNS_URI, ExtendedMetaData.XMLNS_PREFIX, "");
+ ((Element)currentNode).setAttributeNS("", "logging", String.valueOf(eDataGraph.getEChangeSummary().isLogging()));
+ }
+ }
+ }
+
+ protected EObject getSchemaLocationRoot(EObject eObject)
+ {
+ return eDataGraph.getERootObject();
+ }
+ }
+
+ protected XMLSave createXMLSave()
+ {
+ return new SaveImpl(createXMLHelper());
+ }
+
+ public static class LoadImpl extends XMLLoadImpl
+ {
+ protected boolean resumeLogging = false;
+
+ public void load(XMLResource resource, InputSource inputSource, Map options) throws IOException
+ {
+ super.load(resource, inputSource, options);
+ if (resumeLogging) ((ChangeSummaryImpl)((DataGraphImpl)resource.getContents().get(0)).getChangeSummary()).resumeLogging();
+ }
+
+ public void load(XMLResource resource, InputStream inputStream, Map options) throws IOException
+ {
+ super.load(resource, inputStream, options);
+ if (resumeLogging) ((ChangeSummaryImpl)((DataGraphImpl)resource.getContents().get(0)).getChangeSummary()).resumeLogging();
+ }
+
+ public void load(XMLResource resource, Node node, Map options) throws IOException
+ {
+ super.load(resource, node, options);
+ if (resumeLogging) ((ChangeSummaryImpl)((DataGraphImpl)resource.getContents().get(0)).getChangeSummary()).resumeLogging();
+ }
+
+ 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 EObject createDocumentRoot(String prefix, String uri, String name, EFactory eFactory, boolean top)
+ {
+ return null;
+ }
+
+ protected void setAttribValue(EObject object, String name, String value)
+ {
+ if ("logging".equals(name) && object instanceof ChangeSummaryImpl)
+ {
+ resumeLogging = Boolean.valueOf(value).booleanValue();
+ }
+ else
+ {
+ super.setAttribValue(object, name, value);
+ }
+ }
+
+ 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, "ChangeSummary");
+ 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, "DataGraph");
+ }
+ }
+ 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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java
new file mode 100644
index 0000000000..63e21e3bd0
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/DataObjectUtil.java
@@ -0,0 +1,2669 @@
+/**
+ *
+ * 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.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.SDOPackage;
+import org.apache.tuscany.sdo.impl.DataGraphImpl;
+import org.apache.tuscany.sdo.impl.SDOFactoryImpl;
+import org.apache.tuscany.sdo.util.resource.SDOXMLResourceFactoryImpl;
+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.XMLOptions;
+import org.eclipse.emf.ecore.xmi.XMLParserPool;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.ecore.xmi.impl.EMOFResourceFactoryImpl;
+import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMLOptionsImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMLParserPoolImpl;
+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.DataHelper;
+import commonj.sdo.helper.TypeHelper;
+
+
+public final class DataObjectUtil
+{
+ 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 String) {
+ return DataHelper.INSTANCE.toDate((String)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.String")
+ {
+ String typeName = getDateTypeName((EDataType)eType);
+ if ("DateTime".equals(typeName)) {
+ return DataHelper.INSTANCE.toDateTime(value);
+ }
+ else if ("Day".equals(typeName)) {
+ return DataHelper.INSTANCE.toDay(value);
+ }
+ else if ("Duration".equals(typeName)) {
+ return DataHelper.INSTANCE.toDuration(value);
+ }
+ else if ("Month".equals(typeName)) {
+ return DataHelper.INSTANCE.toMonth(value);
+ }
+ else if ("MonthDay".equals(typeName)) {
+ return DataHelper.INSTANCE.toMonthDay(value);
+ }
+ else if ("Time".equals(typeName)) {
+ return DataHelper.INSTANCE.toTime(value);
+ }
+ else if ("Year".equals(typeName)) {
+ return DataHelper.INSTANCE.toYear(value);
+ }
+ else if ("YearMonth".equals(typeName)) {
+ return DataHelper.INSTANCE.toYearMonth(value);
+ }
+ else if ("YearMonthDay".equals(typeName)) {
+ return DataHelper.INSTANCE.toYearMonthDay(value);
+ }
+ else if ("String".equals(typeName))
+ {
+ return DataHelper.INSTANCE.toDateTime(value);
+ }
+
+ // Instead of throwing an IllegalArgumentException we will pass the value to the property
+ return value;
+ }
+
+ //if (name == "java.util.Date")
+ //{
+ //return new XMLCalendar(value, XMLCalendar.DATE);
+ //}
+
+ if (name == "java.lang.Long" || name == "long")
+ {
+ return new Long(value.getTime());
+ }
+
+ // 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)) ||
+ ("Day".equals(name)) ||
+ ("Duration".equals(name)) ||
+ ("Month".equals(name)) ||
+ ("MonthDay".equals(name)) ||
+ ("Time".equals(name)) ||
+ ("Year".equals(name)) ||
+ ("YearMonth".equals(name)) ||
+ ("YearMonthDay".equals(name)) ||
+ ("String".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)) ||
+ ("Day".equals(memberTypeName)) ||
+ ("Duration".equals(memberTypeName)) ||
+ ("Month".equals(memberTypeName)) ||
+ ("MonthDay".equals(memberTypeName)) ||
+ ("Time".equals(memberTypeName)) ||
+ ("Year".equals(memberTypeName)) ||
+ ("YearMonth".equals(memberTypeName)) ||
+ ("YearMonthDay".equals(memberTypeName)) ||
+ ("String".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;
+ }
+
+ /*
+ * calling constraint, this method is not to be used for semantic of setting index to NO_INDEX
+ */
+ protected void setIndex(int index)
+ {
+ if(index < 0) {
+ // The index value should be greater than 0. An index value which is too high will result in
+ // an index out of bounds generated later on accessing the data.
+ throw new IndexOutOfBoundsException("Index value is too low");
+ }
+ 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)
+ {
+ // 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 is null, that means it could be an open feature.
+ if(feature == null){
+ feature = (EStructuralFeature)DataObjectUtil.getOpenFeature(eObject, 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")) instanceof XSDResourceFactoryImpl))
+ {
+ result.put("xsd", new XSDResourceFactoryImpl());
+ }
+
+ if (!(Resource.Factory.Registry.INSTANCE.getFactory(URI.createURI("*.wsdl")) instanceof XSDResourceFactoryImpl))
+ {
+ result.put("wsdl", new XSDResourceFactoryImpl());
+ }
+
+ if (!(Resource.Factory.Registry.INSTANCE.getFactory(URI.createURI("*.*")) instanceof SDOXMLResourceFactoryImpl))
+ {
+ result.put("*", new SDOXMLResourceFactoryImpl());
+ }
+
+ 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();
+ }
+ });
+ }
+
+ protected static StringBuffer getXPath(DataObject dataObject, StringBuffer path)
+ {
+ DataObject container = dataObject.getContainer();
+ if (container == null) return path;
+
+ boolean first = path.length() == 0;
+ Property property = dataObject.getContainmentProperty();
+ if (property.isMany())
+ {
+ List list = container.getList(property);
+ int pos = list.indexOf(dataObject);
+ path.insert(0, property.getName() + "." + pos + (first ? "" : "/"));
+ }
+ else
+ {
+ path.insert(0, property.getName() + (first ? "" : "/"));
+ }
+
+ return getXPath(container, path);
+ }
+
+ public static String getXPath(DataObject dataObject)
+ {
+ StringBuffer path = getXPath(dataObject, new StringBuffer());
+ return path.toString();
+ }
+
+ protected static XMLParserPool globalXMLParserPool = new XMLParserPoolImpl();
+
+ public static void configureXMLResource(XMLResource resource, ExtendedMetaData extendedMetaData)
+ {
+ 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);
+ }
+
+ 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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java
new file mode 100644
index 0000000000..ec9697d8ad
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java
@@ -0,0 +1,595 @@
+/**
+ *
+ * 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.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.XMLStreamHelper;
+import org.apache.tuscany.sdo.helper.XMLStreamHelperImpl;
+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.EObject;
+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.util.FeatureMap;
+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.Sequence;
+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;
+ }
+
+ /**
+ * Gets the Sequence corresponding to the specified substitutable Property of the specified DataObject.
+ * @param dataObject the data object.
+ * @param head a substitution group head property.
+ * @return the Sequence corresponding to the specified substitutable Property of the specified DataObject or
+ * null if the specified Property isn't a substitution head.
+ */
+ public static Sequence getSubstitutionValues(DataObject dataObject, Property head)
+ {
+ final EStructuralFeature group = ExtendedMetaData.INSTANCE.getGroup((EStructuralFeature)head);
+ return null == group
+ ? null
+ : (Sequence)((FeatureMap.Internal)((EObject)dataObject).eGet(group)).getWrapper();
+ }
+
+ /**
+ * 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;
+ }
+
+ /**
+ * Return whether at least one value is required for a valid instance of the specified property.
+ * @param the property in question.
+ * @return true if the property is required.
+ */
+ public static boolean isRequired(Property property)
+ {
+ return ((EStructuralFeature)property).isRequired();
+ }
+
+ /**
+ * Create an empty data graph.
+ * @return the new data graph instance.
+ */
+ public static DataGraph createDataGraph()
+ {
+ return SDOFactory.eINSTANCE.createDataGraph();
+ }
+
+ /**
+ * Set the root object of a data graph.
+ * @param dataGraph the data graph in which to set the root object.
+ * @param rootObject the root object.
+ */
+ public static void setRootObject(DataGraph dataGraph, DataObject rootObject)
+ {
+ ((DataGraphImpl)dataGraph).setERootObject((EObject)rootObject);
+ }
+
+ /**
+ * 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);
+ }
+
+ /**
+ * Create a new XMLStreamHelper, with visibility to types in the specified TypeHelper scope.
+ * @param scope the TypeHelper to use for locating types.
+ * @return the new XMLStreamHelper.
+ */
+ public static XMLStreamHelper createXMLStreamHelper(TypeHelper scope)
+ {
+ return new XMLStreamHelperImpl(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);
+ ((EClass)containingType).getEStructuralFeatures().add(eStructuralFeature);
+
+ //if (containingType.getName() == null)
+ if ("".equals(ExtendedMetaData.INSTANCE.getName((EClass)containingType)))
+ {
+ ExtendedMetaData.INSTANCE.setFeatureKind(eStructuralFeature, ExtendedMetaData.ELEMENT_FEATURE);
+ ExtendedMetaData.INSTANCE.setNamespace(eStructuralFeature, containingType.getURI());
+ }
+
+ 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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/StAX2SAXAdapter.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/StAX2SAXAdapter.java
new file mode 100644
index 0000000000..c4f9701cbc
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/StAX2SAXAdapter.java
@@ -0,0 +1,247 @@
+/**
+ *
+ * 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.
+ * <p/>
+ * Another issue is namespace processing. If the reader is positioned at a sub-node, we cannot capture all the in-scope namespace bindings. Therefore
+ * we cannot re-create a proper SAX event stream from a StAX parser.
+ * <p/>
+ * For example
+ * <p/>
+ * &lt;a:root xmlns:a="foo" xmlns:b="bar"&gt;&lt;b:sub&gt;a:foo&lt;/b:sub&gt;&lt;/a:root&gt;
+ * <p/>
+ * And if you are handed a parser at &lt;b:sub&gt;, then your SAX events should look like:
+ * <p/>
+ * &lt;b:sub xmlns:a="foo" xmlns:b="bar"&gt;a:foo&lt;/b:sub&gt;
+ * <p/>
+ * not:
+ * <p/>
+ * &lt;b:sub&gt;a:foo&lt;/b:sub&gt;
+ * <p/>
+ * <p/>
+ * Proposal: we change the receiver of SAX events (SDOXMLResourceImpl) so that it uses NamespaceContext to resolve prefix (as opposed to record
+ * start/endPrefixMappings and use it for resolution.)
+ *
+ * @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:
+ handler.characters(reader.getTextCharacters(), reader.getTextStart(), reader.getTextLength());
+ 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 == null ? 0 : location.getColumnNumber();
+ }
+
+ public int getLineNumber() {
+ return location == null ? 0 : location.getLineNumber();
+ }
+
+ public String getPublicId() {
+ return location == null ? "" : location.getPublicId();
+ }
+
+ public String getSystemId() {
+ return location == null ? "" : location.getSystemId();
+ }
+ }
+} \ No newline at end of file
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/JavaMetaData.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/MetadataFactory.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/SDOMetaDataGroup.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/TypeMetaData.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/XSDMetaData.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/JavaMetaDataImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/MetadataFactoryImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/MetadataPackageImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/SDOMetaDataGroupImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/TypeMetaDataImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/metadata/impl/XSDMetaDataImpl.java b/sca-java-1.x/branches/java-post-M1/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/branches/java-post-M1/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
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java
new file mode 100644
index 0000000000..595218791f
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/DataObjectXMLStreamReader.java
@@ -0,0 +1,1500 @@
+/**
+ *
+ * Copyright 2006 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.resource;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.tuscany.sdo.impl.AttributeImpl;
+import org.apache.tuscany.sdo.impl.ReferenceImpl;
+import org.apache.tuscany.sdo.util.SDOUtil;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EReference;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XSDHelper;
+
+public class DataObjectXMLStreamReader implements XMLFragmentStreamReader {
+ private DataObject dataObject;
+
+ private String rootElementURI;
+
+ private String rootElementName;
+
+ private TypeHelper typeHelper;
+
+ private XSDHelper xsdHelper;
+
+ private Map.Entry[] properties;
+
+ private Map.Entry[] attributes;
+
+ private QName elementQName;
+
+ // we always create a new namespace context
+ private DelegatingNamespaceContext namespaceContext = new DelegatingNamespaceContext(null);
+
+ private Map declaredNamespaceMap = new HashMap();
+
+ // states for this pullparser - it can only have three states
+ private static final int START_ELEMENT_STATE = 0;
+
+ private static final int END_ELEMENT_STATE = 1;
+
+ private static final int DELEGATED_STATE = 2;
+
+ private static final int TEXT_STATE = 3;
+
+ // integer field that keeps the state of this
+ // parser.
+ private int state = START_ELEMENT_STATE;
+
+ // reference to the child reader
+ private XMLFragmentStreamReader childReader;
+
+ // current property index
+ // initialized at zero
+ private int currentPropertyIndex = 0;
+
+ public DataObjectXMLStreamReader(DataObject dataObject, String rootElmentURI, String rootElementName) {
+ this(dataObject, rootElmentURI, rootElementName, null, null);
+ }
+
+ public DataObjectXMLStreamReader(DataObject dataObject, String rootElmentURI, String rootElementName, TypeHelper typeHelper) {
+ this(dataObject, rootElmentURI, rootElementName, typeHelper, null);
+ }
+
+ public DataObjectXMLStreamReader(DataObject dataObject, String rootElmentURI, String rootElementName, TypeHelper typeHelper, XSDHelper xsdHelper) {
+ this.dataObject = dataObject;
+ this.rootElementURI = rootElmentURI;
+ this.rootElementName = rootElementName;
+ this.typeHelper = typeHelper == null ? TypeHelper.INSTANCE : typeHelper;
+ this.xsdHelper = (xsdHelper != null) ? xsdHelper : ((typeHelper == null) ? XSDHelper.INSTANCE : SDOUtil.createXSDHelper(typeHelper));
+ populateProperties();
+ }
+
+ public DataObjectXMLStreamReader(XMLDocument document, TypeHelper typeHelper) {
+ this.dataObject = document.getRootObject();
+ this.rootElementName = document.getRootElementName();
+ this.rootElementURI = document.getRootElementURI();
+ this.typeHelper = typeHelper;
+ this.xsdHelper = typeHelper == null ? XSDHelper.INSTANCE : SDOUtil.createXSDHelper(typeHelper);
+ populateProperties();
+ }
+
+ /*
+ * we need to pass in a namespace context since when delegated, we've no idea of the current namespace context. So it needs to be passed on here!
+ */
+ protected DataObjectXMLStreamReader(QName elementQName, Map.Entry[] properties, Map.Entry[] attributes) {
+ // validate the lengths, since both the arrays are supposed
+ // to have
+ this.properties = properties;
+ this.elementQName = elementQName;
+ this.attributes = attributes;
+
+ }
+
+ private void addProperty(List propertyList, Property property, Object value) {
+ if (isTransient(property))
+ return;
+ if (property.isMany() && property.getContainingType().isOpen() && value instanceof Sequence) {
+ addSequenceValue(propertyList, (Sequence) value);
+ } else if ((property.isMany() || isGlobal(property)) && value instanceof List) {
+ // HACK: The isGlobal() test is a HACK for JIRA 115. Properties for global XSD elements should return
+ // true for isMany()
+ addListValue(propertyList, property, (List) value);
+ } else {
+ // Complex Type
+ addSingleValue(propertyList, property, value);
+ }
+ }
+
+ private void addSequenceValue(List elements, Sequence seq) {
+ if (seq != null && seq.size() > 0) {
+ for (int j = 0; j < seq.size(); j++) {
+ Object o = seq.getValue(j);
+ Property p = seq.getProperty(j);
+ addSingleValue(elements, p, o);
+ }
+ }
+ }
+
+ private boolean isTransient(Property property) {
+ // HACK: We need some SDOUtil extension to understand a property is derived
+ if (property instanceof ReferenceImpl) {
+ ReferenceImpl r = (ReferenceImpl) property;
+ if (r.isTransient())
+ return true;
+ EReference opposite = r.getEOpposite();
+ if (opposite != null && opposite.isContainment()) {
+ return true;
+ }
+ } else if (property instanceof AttributeImpl) {
+ AttributeImpl a = (AttributeImpl) property;
+ if (a.isTransient())
+ return true;
+ EDataType d = (EDataType) a.getEType();
+ if (!d.isSerializable()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean isGlobal(Property property) {
+ String ns = xsdHelper.getNamespaceURI(property);
+ String name = xsdHelper.getLocalName(property);
+ return property == xsdHelper.getGlobalProperty(ns, name, true);
+ }
+
+ private void addListValue(List propertyList, Property property, List objList) {
+ if (objList != null) {
+ for (int j = 0; j < objList.size(); j++) {
+ Object object = objList.get(j);
+ addSingleValue(propertyList, property, object);
+ }
+ }
+ }
+
+ private void addSingleValue(List propertyList, Property property, Object value) {
+ String uri = xsdHelper.getNamespaceURI(property);
+ String name = xsdHelper.getLocalName(property);
+ QName qname = namespaceContext.createQName(uri, name);
+ Type propertyType = property.getType();
+
+ if (property.getName().equals("value") && uri == null && name.equals(":0")) {
+ // "value" is special property containing the value of simpleContent
+ Map.Entry entry = new NameValuePair(ELEMENT_TEXT, value);
+ propertyList.add(entry);
+ } else
+
+ // FIXME: We need to deal with non-containment properties
+ if (value == null) {
+ // Creating xsi:nil="true" for elements
+ Map.Entry entry = new NameValuePair(qname, null);
+ propertyList.add(entry);
+ } else if (propertyType.isDataType()) {
+ Map.Entry entry = new NameValuePair(qname, SDOUtil.convertToString(propertyType, value));
+ propertyList.add(entry);
+ } else {
+ DataObjectXMLStreamReader childReader = new DataObjectXMLStreamReader((DataObject) value, uri, name, typeHelper, xsdHelper);
+ Map.Entry entry = new NameValuePair(qname, childReader);
+ propertyList.add(entry);
+ }
+ }
+
+ public void populateProperties() {
+ if (properties != null)
+ return;
+ if (elementQName == null)
+ elementQName = namespaceContext.createQName(this.rootElementURI, this.rootElementName);
+ else
+ elementQName = namespaceContext.createQName(elementQName.getNamespaceURI(), elementQName.getLocalPart());
+
+ List elementList = new ArrayList();
+ List attributeList = new ArrayList();
+ Type type = dataObject.getType();
+ if (type.isSequenced()) {
+ Sequence sequence = dataObject.getSequence();
+ for (int i = 0; i < sequence.size(); i++) {
+ Property property = sequence.getProperty(i);
+ Object value = sequence.getValue(i);
+ if (property == null) {
+ // property == null for text in mixed content
+ elementList.add(new NameValuePair(ELEMENT_TEXT, value));
+ } else {
+ addProperty(elementList, property, value);
+ }
+ }
+ // Attributes are not in the sequence
+ List properties = dataObject.getInstanceProperties();
+ for (Iterator i = properties.iterator(); i.hasNext();) {
+ Property property = (Property) i.next();
+ if (xsdHelper.isAttribute(property)) {
+ // FIXME: How to handle nilable=true?
+ if (!dataObject.isSet(property))
+ continue;
+ Object value = dataObject.get(property);
+ addProperty(attributeList, property, value);
+ }
+ }
+ } else {
+ List properties = dataObject.getInstanceProperties();
+ for (Iterator i = properties.iterator(); i.hasNext();) {
+ Property property = (Property) i.next();
+ // FIXME: How to handle nilable=true?
+ if (!dataObject.isSet(property))
+ continue;
+ Object value = dataObject.get(property);
+ if (xsdHelper.isAttribute(property))
+ addProperty(attributeList, property, value);
+ else
+ addProperty(elementList, property, value);
+ }
+ }
+ properties = (Map.Entry[]) elementList.toArray(new Map.Entry[0]);
+ attributes = (Map.Entry[]) attributeList.toArray(new Map.Entry[0]);
+ }
+
+ public DataObject getDataObject() {
+ return dataObject;
+ }
+
+ /**
+ * add the namespace context
+ */
+
+ public void setParentNamespaceContext(NamespaceContext nsContext) {
+ // register the namespace context passed in to this
+ this.namespaceContext.setParent(nsContext);
+
+ }
+
+ /**
+ * we need to split out the calling to the populate namespaces seperately since this needs to be done *after* setting the parent namespace
+ * context. We cannot assume it will happen at construction!
+ */
+ public void init() {
+ // here we have an extra issue to attend to. we need to look at the
+ // prefixes and uris (the combination) and populate a hashmap of
+ // namespaces. The hashmap of namespaces will be used to serve the
+ // namespace context
+
+ populateNamespaceContext();
+ }
+
+ /**
+ *
+ * @param key
+ * @return
+ * @throws IllegalArgumentException
+ */
+ public Object getProperty(String key) throws IllegalArgumentException {
+ if (state == START_ELEMENT_STATE || state == END_ELEMENT_STATE) {
+ return null;
+ } else if (state == TEXT_STATE) {
+ return null;
+ } else if (state == DELEGATED_STATE) {
+ return childReader.getProperty(key);
+ } else {
+ return null;
+ }
+
+ }
+
+ public int next() throws XMLStreamException {
+ return updateStatus();
+ }
+
+ public void require(int i, String string, String string1) throws XMLStreamException {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * todo implement the right contract for this
+ *
+ * @return
+ * @throws XMLStreamException
+ */
+ public String getElementText() throws XMLStreamException {
+ if (state == DELEGATED_STATE) {
+ return childReader.getElementText();
+ } else {
+ return null;
+ }
+
+ }
+
+ /**
+ * todo implement this
+ *
+ * @return
+ * @throws XMLStreamException
+ */
+ public int nextTag() throws XMLStreamException {
+ return 0;
+ }
+
+ /**
+ * @return
+ * @throws XMLStreamException
+ */
+ public boolean hasNext() throws XMLStreamException {
+ if (state == DELEGATED_STATE) {
+ if (childReader.isEndOfFragment()) {
+ // the child reader is done. We shouldn't be getting the
+ // hasnext result from the child pullparser then
+ return true;
+ } else {
+ return childReader.hasNext();
+ }
+ } else {
+ return (state == START_ELEMENT_STATE || state == TEXT_STATE);
+
+ }
+ }
+
+ public void close() throws XMLStreamException {
+ // do nothing here - we have no resources to free
+ }
+
+ public String getNamespaceURI(String prefix) {
+ return namespaceContext.getNamespaceURI(prefix);
+ }
+
+ public boolean isStartElement() {
+ if (state == START_ELEMENT_STATE) {
+ return true;
+ } else if (state == END_ELEMENT_STATE) {
+ return false;
+ }
+ return childReader.isStartElement();
+ }
+
+ public boolean isEndElement() {
+ if (state == START_ELEMENT_STATE) {
+ return false;
+ } else if (state == END_ELEMENT_STATE) {
+ return true;
+ }
+ return childReader.isEndElement();
+ }
+
+ public boolean isCharacters() {
+ if (state == START_ELEMENT_STATE || state == END_ELEMENT_STATE) {
+ return false;
+ }
+ return childReader.isCharacters();
+ }
+
+ public boolean isWhiteSpace() {
+ if (state == START_ELEMENT_STATE || state == END_ELEMENT_STATE) {
+ return false;
+ }
+ return childReader.isWhiteSpace();
+ }
+
+ // /////////////////////////////////////////////////////////////////////////
+ // / attribute handling
+ // /////////////////////////////////////////////////////////////////////////
+
+ public String getAttributeValue(String nsUri, String localName) {
+
+ int attribCount = getAttributeCount();
+ String returnValue = null;
+ QName attribQualifiedName;
+ for (int i = 0; i < attribCount; i++) {
+ attribQualifiedName = getAttributeName(i);
+ if (nsUri == null) {
+ if (localName.equals(attribQualifiedName.getLocalPart())) {
+ returnValue = getAttributeValue(i);
+ break;
+ }
+ } else {
+ if (localName.equals(attribQualifiedName.getLocalPart()) && nsUri.equals(attribQualifiedName.getNamespaceURI())) {
+ returnValue = getAttributeValue(i);
+ break;
+ }
+ }
+
+ }
+
+ return returnValue;
+ }
+
+ public int getAttributeCount() {
+ return (state == DELEGATED_STATE) ? childReader.getAttributeCount()
+ : ((attributes != null) && (state == START_ELEMENT_STATE) ? attributes.length : 0);
+ }
+
+ /**
+ * @param i
+ * @return
+ */
+ public QName getAttributeName(int i) {
+ if (state == DELEGATED_STATE) {
+ return childReader.getAttributeName(i);
+ } else if (state == START_ELEMENT_STATE) {
+ if (attributes == null) {
+ return null;
+ } else {
+ if ((i >= (attributes.length)) || i < 0) { // out of range
+ return null;
+ } else {
+ // get the attribute pointer
+ Object attribPointer = attributes[i].getKey();
+ // case one - attrib name is null
+ // this should be the pointer to the OMAttribute then
+ if (attribPointer instanceof String) {
+ return new QName((String) attribPointer);
+ } else if (attribPointer instanceof QName) {
+ return (QName) attribPointer;
+ } else {
+ return null;
+ }
+ }
+ }
+ } else {
+ throw new IllegalStateException();// as per the api contract
+ }
+
+ }
+
+ public String getAttributeNamespace(int i) {
+ if (state == DELEGATED_STATE) {
+ return childReader.getAttributeNamespace(i);
+ } else if (state == START_ELEMENT_STATE) {
+ QName name = getAttributeName(i);
+ if (name == null) {
+ return null;
+ } else {
+ return name.getNamespaceURI();
+ }
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getAttributeLocalName(int i) {
+ if (state == DELEGATED_STATE) {
+ return childReader.getAttributeLocalName(i);
+ } else if (state == START_ELEMENT_STATE) {
+ QName name = getAttributeName(i);
+ if (name == null) {
+ return null;
+ } else {
+ return name.getLocalPart();
+ }
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getAttributePrefix(int i) {
+ if (state == DELEGATED_STATE) {
+ return childReader.getAttributePrefix(i);
+ } else if (state == START_ELEMENT_STATE) {
+ QName name = getAttributeName(i);
+ if (name == null) {
+ return null;
+ } else {
+ return name.getPrefix();
+ }
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getAttributeType(int i) {
+ return null; // not supported
+ }
+
+ public String getAttributeValue(int i) {
+ if (state == DELEGATED_STATE) {
+ return childReader.getAttributeValue(i);
+ } else if (state == START_ELEMENT_STATE) {
+ if (attributes == null) {
+ return null;
+ } else {
+ if ((i >= (attributes.length)) || i < 0) { // out of range
+ return null;
+ } else {
+ // get the attribute pointer
+ Object attribPointer = attributes[i].getKey();
+ Object omAttribObj = attributes[i].getValue();
+ // case one - attrib name is null
+ // this should be the pointer to the OMAttribute then
+ if (attribPointer instanceof String) {
+ return (String) omAttribObj;
+ } else if (attribPointer instanceof QName) {
+ return (String) omAttribObj;
+ } else {
+ return null;
+ }
+ }
+ }
+ } else {
+ throw new IllegalStateException();
+ }
+
+ }
+
+ public boolean isAttributeSpecified(int i) {
+ return false; // not supported
+ }
+
+ // /////////////////////////////////////////////////////////////////////////
+ // //////////// end of attribute handling
+ // /////////////////////////////////////////////////////////////////////////
+
+ // //////////////////////////////////////////////////////////////////////////
+ // //////////// namespace handling
+ // //////////////////////////////////////////////////////////////////////////
+
+ public int getNamespaceCount() {
+ if (state == DELEGATED_STATE) {
+ return childReader.getNamespaceCount();
+ } else {
+ return declaredNamespaceMap.size();
+ }
+ }
+
+ /**
+ * @param i
+ * @return
+ */
+ public String getNamespacePrefix(int i) {
+ if (state == DELEGATED_STATE) {
+ return childReader.getNamespacePrefix(i);
+ } else if (state != TEXT_STATE) {
+ // order the prefixes
+ String[] prefixes = makePrefixArray();
+ if ((i >= prefixes.length) || (i < 0)) {
+ return null;
+ } else {
+ return prefixes[i];
+ }
+
+ } else {
+ throw new IllegalStateException();
+ }
+
+ }
+
+ /**
+ * Get the prefix list from the hastable and take that into an array
+ *
+ * @return
+ */
+ private String[] makePrefixArray() {
+ String[] prefixes = (String[]) declaredNamespaceMap.keySet().toArray(new String[declaredNamespaceMap.size()]);
+ Arrays.sort(prefixes);
+ return prefixes;
+ }
+
+ public String getNamespaceURI(int i) {
+ if (state == DELEGATED_STATE) {
+ return childReader.getNamespaceURI(i);
+ } else if (state != TEXT_STATE) {
+ String namespacePrefix = getNamespacePrefix(i);
+ return namespacePrefix == null ? null : (String) declaredNamespaceMap.get(namespacePrefix);
+ } else {
+ throw new IllegalStateException();
+ }
+
+ }
+
+ public NamespaceContext getNamespaceContext() {
+ if (state == DELEGATED_STATE) {
+ return childReader.getNamespaceContext();
+ } else {
+ return namespaceContext;
+ }
+
+ }
+
+ // /////////////////////////////////////////////////////////////////////////
+ // /////// end of namespace handling
+ // /////////////////////////////////////////////////////////////////////////
+
+ public int getEventType() {
+ if (state == START_ELEMENT_STATE) {
+ return START_ELEMENT;
+ } else if (state == END_ELEMENT_STATE) {
+ return END_ELEMENT;
+ } else { // this is the delegated state
+ return childReader.getEventType();
+ }
+
+ }
+
+ public String getText() {
+ if (state == DELEGATED_STATE) {
+ return childReader.getText();
+ } else if (state == TEXT_STATE) {
+ return (String) properties[currentPropertyIndex - 1].getValue();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public char[] getTextCharacters() {
+ if (state == DELEGATED_STATE) {
+ return childReader.getTextCharacters();
+ } else if (state == TEXT_STATE) {
+ return properties[currentPropertyIndex - 1].getValue() == null ? new char[0] : ((String) properties[currentPropertyIndex - 1].getValue())
+ .toCharArray();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public int getTextCharacters(int i, char[] chars, int i1, int i2) throws XMLStreamException {
+ if (state == DELEGATED_STATE) {
+ return childReader.getTextCharacters(i, chars, i1, i2);
+ } else if (state == TEXT_STATE) {
+ // todo - implement this
+ return 0;
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public int getTextStart() {
+ if (state == DELEGATED_STATE) {
+ return childReader.getTextStart();
+ } else if (state == TEXT_STATE) {
+ return 0;// assume text always starts at 0
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public int getTextLength() {
+ if (state == DELEGATED_STATE) {
+ return childReader.getTextLength();
+ } else if (state == TEXT_STATE) {
+ return 0;// assume text always starts at 0
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getEncoding() {
+ if (state == DELEGATED_STATE) {
+ return childReader.getEncoding();
+ } else {
+ // we've no idea what the encoding is going to be in this case
+ // perhaps we ought to return some constant here, which the user might
+ // have access to change!
+ return null;
+ }
+ }
+
+ /**
+ * check the validity of this implementation
+ *
+ * @return
+ */
+ public boolean hasText() {
+ if (state == DELEGATED_STATE) {
+ return childReader.hasText();
+ } else if (state == TEXT_STATE) {
+ return true;
+ } else {
+ return false;
+ }
+
+ }
+
+ /**
+ * @return
+ */
+ public Location getLocation() {
+ // return a default location
+ return new Location() {
+ public int getLineNumber() {
+ return 0;
+ }
+
+ public int getColumnNumber() {
+ return 0;
+ }
+
+ public int getCharacterOffset() {
+ return 0;
+ }
+
+ public String getPublicId() {
+ return null;
+ }
+
+ public String getSystemId() {
+ return null;
+ }
+ };
+ }
+
+ public QName getName() {
+ if (state == DELEGATED_STATE) {
+ return childReader.getName();
+ } else if (state != TEXT_STATE) {
+ return elementQName;
+ } else {
+ throw new IllegalStateException();
+ }
+
+ }
+
+ public String getLocalName() {
+ if (state == DELEGATED_STATE) {
+ return childReader.getLocalName();
+ } else if (state != TEXT_STATE) {
+ return elementQName.getLocalPart();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public boolean hasName() {
+ // since this parser always has a name, the hasname
+ // has to return true if we are still navigating this element
+ // if not we should ask the child reader for it.
+ if (state == DELEGATED_STATE) {
+ return childReader.hasName();
+ } else if (state != TEXT_STATE) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public String getNamespaceURI() {
+ if (state == DELEGATED_STATE) {
+ return childReader.getNamespaceURI();
+ } else if (state == TEXT_STATE) {
+ return null;
+ } else {
+ return elementQName.getNamespaceURI();
+ }
+ }
+
+ public String getPrefix() {
+ if (state == DELEGATED_STATE) {
+ return childReader.getPrefix();
+ } else if (state == TEXT_STATE) {
+ return null;
+ } else {
+ return elementQName.getPrefix();
+ }
+ }
+
+ public String getVersion() {
+ return null;
+ }
+
+ public boolean isStandalone() {
+ return true;
+ }
+
+ public boolean standaloneSet() {
+ return true;
+ }
+
+ public String getCharacterEncodingScheme() {
+ return null; // todo - should we return something for this ?
+ }
+
+ public String getPITarget() {
+ throw new UnsupportedOperationException("Yet to be implemented !!");
+ }
+
+ public String getPIData() {
+ throw new UnsupportedOperationException("Yet to be implemented !!");
+ }
+
+ // /////////////////////////////////////////////////////////////////////////
+ // / Other utility methods
+ // ////////////////////////////////////////////////////////////////////////
+
+ /**
+ * Populates a namespace context
+ */
+ private void populateNamespaceContext() {
+
+ // first add the current element namespace to the namespace context
+ // declare it if not found
+ registerNamespace(elementQName.getPrefix(), elementQName.getNamespaceURI());
+
+ // traverse through the attributes and populate the namespace context
+ // the attrib list can be of many combinations
+ // the valid combinations are
+ // String - String
+ // QName - QName
+ // null - OMAttribute
+
+ if (attributes != null) {
+ for (int i = 0; i < attributes.length; i++) { // jump in two
+ Object attribName = attributes[i].getKey();
+ if (attribName instanceof String) {
+ // ignore this case - Nothing to do
+ } else if (attribName instanceof QName) {
+ QName attribQName = ((QName) attribName);
+ registerNamespace(attribQName.getPrefix(), attribQName.getNamespaceURI());
+
+ }
+ }
+ }
+
+ }
+
+ /**
+ * @param prefix
+ * @param uri
+ */
+ private void registerNamespace(String prefix, String uri) {
+ if (!uri.equals(namespaceContext.getNamespaceURI(prefix))) {
+ namespaceContext.registerMapping(prefix, uri);
+ declaredNamespaceMap.put(prefix, uri);
+ }
+ }
+
+ /**
+ * By far this should be the most important method in this class this method changes the state of the parser according to the change in the
+ */
+ private int updateStatus() throws XMLStreamException {
+ int returnEvent = -1; // invalid state is the default state
+ switch (state) {
+ case START_ELEMENT_STATE:
+ // current element is start element. We should be looking at the
+ // property list and making a pullparser for the property value
+ if (properties == null || properties.length == 0) {
+ // no properties - move to the end element state straightaway
+ state = END_ELEMENT_STATE;
+ returnEvent = END_ELEMENT;
+ } else {
+ // there are properties. now we should delegate this task to a
+ // child reader depending on the property type
+ returnEvent = processProperties();
+
+ }
+ break;
+ case END_ELEMENT_STATE:
+ // we've reached the end element already. If the user tries to push
+ // further ahead then it is an exception
+ throw new XMLStreamException("Trying to go beyond the end of the pullparser");
+
+ case DELEGATED_STATE:
+ if (childReader.isEndOfFragment()) {
+ // we've reached the end!
+ if (currentPropertyIndex > (properties.length - 1)) {
+ state = END_ELEMENT_STATE;
+ returnEvent = END_ELEMENT;
+ } else {
+ returnEvent = processProperties();
+ }
+ } else {
+ returnEvent = childReader.next();
+ }
+ break;
+
+ case TEXT_STATE:
+ // if there are any more event we should be delegating to
+ // processProperties. if not we just return an end element
+ if (currentPropertyIndex > (properties.length - 1)) {
+ state = END_ELEMENT_STATE;
+ returnEvent = END_ELEMENT;
+ } else {
+ returnEvent = processProperties();
+ }
+ break;
+ }
+ return returnEvent;
+ }
+
+ /**
+ * A convenient method to reuse the properties
+ *
+ * @return event to be thrown
+ * @throws XMLStreamException
+ */
+ private int processProperties() throws XMLStreamException {
+ // move to the next property depending on the current property
+ // index
+ Object propPointer = properties[currentPropertyIndex].getKey();
+ QName propertyQName = null;
+ boolean textFound = false;
+ if (propPointer == null) {
+ throw new XMLStreamException("property key cannot be null!");
+ } else if (propPointer instanceof String) {
+ // propPointer being a String has a special case
+ // that is it can be a the special constant ELEMENT_TEXT that
+ // says this text event
+ if (ELEMENT_TEXT.equals(propPointer)) {
+ textFound = true;
+ } else {
+ propertyQName = new QName((String) propPointer);
+ }
+ } else if (propPointer instanceof QName) {
+ propertyQName = (QName) propPointer;
+ } else {
+ // oops - we've no idea what kind of key this is
+ throw new XMLStreamException("unidentified property key!!!" + propPointer);
+ }
+
+ // ok! we got the key. Now look at the value
+ Object propertyValue = properties[currentPropertyIndex].getValue();
+ // cater for the special case now
+ if (textFound) {
+ // no delegation here - make the parser null and immediately
+ // return with the event characters
+ childReader = null;
+ state = TEXT_STATE;
+ currentPropertyIndex++;
+ return CHARACTERS;
+ } else if (propertyValue == null || propertyValue instanceof String) {
+ // strings are handled by the NameValuePairStreamReader
+ childReader = new SimpleElementStreamReader(propertyQName, (String) propertyValue);
+ childReader.setParentNamespaceContext(this.namespaceContext);
+ childReader.init();
+ } else if (propertyValue instanceof DataObjectXMLStreamReader) {
+ // ADBbean has it's own method to get a reader
+ XMLFragmentStreamReader reader = (DataObjectXMLStreamReader) propertyValue;
+ // we know for sure that this is an ADB XMLStreamreader.
+ // However we need to make sure that it is compatible
+ childReader = reader;
+ childReader.setParentNamespaceContext(this.namespaceContext);
+ childReader.init();
+ } else {
+ // all special possiblilities has been tried! Let's treat
+ // the thing as a bean and try generating events from it
+ throw new UnsupportedOperationException("Not supported");
+ // childReader = new WrappingXMLStreamReader(BeanUtil.getPullParser(propertyValue, propertyQName));
+ // we cannot register the namespace context here
+ }
+
+ // set the state here
+ state = DELEGATED_STATE;
+ // we are done with the delegation
+ // increment the property index
+ currentPropertyIndex++;
+ return childReader.getEventType();
+ }
+
+ /**
+ * are we done ?
+ *
+ * @return
+ */
+ public boolean isEndOfFragment() {
+ return (state == END_ELEMENT_STATE);
+ }
+
+ protected static class NameValuePair implements Map.Entry {
+ private Object key;
+
+ private Object value;
+
+ public NameValuePair(Object key, Object value) {
+ this.key = key;
+ this.value = value;
+ }
+
+ public Object getKey() {
+ return key;
+ }
+
+ public Object getValue() {
+ return value;
+ }
+
+ public Object setValue(Object value) {
+ Object v = this.value;
+ this.value = value;
+ return v;
+ }
+
+ }
+
+ protected static class SimpleElementStreamReader implements XMLFragmentStreamReader {
+
+ private static final int START_ELEMENT_STATE = 0;
+
+ private static final int TEXT_STATE = 1;
+
+ private static final int END_ELEMENT_STATE = 2;
+
+ private static final int START_ELEMENT_STATE_WITH_NULL = 3;
+
+ private static final QName XSI_NIL_QNAME = new QName("http://www.w3.org/2001/XMLSchema-instance", "nil", "xsi");
+
+ private DelegatingNamespaceContext namespaceContext = new DelegatingNamespaceContext(null);
+
+ private QName name;
+
+ private String value;
+
+ private int state = START_ELEMENT_STATE;
+
+ public SimpleElementStreamReader(QName name, String value) {
+ this.name = name;
+ this.value = value;
+ if (value == null)
+ state = START_ELEMENT_STATE_WITH_NULL;
+ }
+
+ public Object getProperty(String key) throws IllegalArgumentException {
+ return null;
+ }
+
+ public int next() throws XMLStreamException {
+ switch (state) {
+ case START_ELEMENT_STATE:
+ state = TEXT_STATE;
+ return CHARACTERS;
+ case START_ELEMENT_STATE_WITH_NULL:
+ state = END_ELEMENT_STATE;
+ return END_ELEMENT;
+ case END_ELEMENT_STATE:
+ // oops, not supposed to happen!
+ throw new XMLStreamException("end already reached!");
+ case TEXT_STATE:
+ state = END_ELEMENT_STATE;
+ return END_ELEMENT;
+ default:
+ throw new XMLStreamException("unknown event type!");
+ }
+ }
+
+ public void require(int i, String string, String string1) throws XMLStreamException {
+ // not implemented
+ }
+
+ public String getElementText() throws XMLStreamException {
+ if (state == START_ELEMENT) {
+ // move to the end state and return the value
+ state = END_ELEMENT_STATE;
+ return value;
+ } else {
+ throw new XMLStreamException();
+ }
+
+ }
+
+ public int nextTag() throws XMLStreamException {
+ return 0;// todo
+ }
+
+ public boolean hasNext() throws XMLStreamException {
+ return (state != END_ELEMENT_STATE);
+ }
+
+ public void close() throws XMLStreamException {
+ // Do nothing - we've nothing to free here
+ }
+
+ public String getNamespaceURI(String prefix) {
+ return namespaceContext.getNamespaceURI(prefix);
+ }
+
+ public boolean isStartElement() {
+ return (state == START_ELEMENT_STATE || state == START_ELEMENT_STATE_WITH_NULL);
+ }
+
+ public boolean isEndElement() {
+ return (state == END_ELEMENT_STATE);
+ }
+
+ public boolean isCharacters() {
+ return (state == TEXT_STATE);
+ }
+
+ public boolean isWhiteSpace() {
+ return false; // no whitespaces here
+ }
+
+ public boolean isAttributeSpecified(int i) {
+ return false; // no attribs here
+ }
+
+ public NamespaceContext getNamespaceContext() {
+ return this.namespaceContext;
+ }
+
+ public int getEventType() {
+ switch (state) {
+ case START_ELEMENT_STATE:
+ case START_ELEMENT_STATE_WITH_NULL:
+ return START_ELEMENT;
+ case END_ELEMENT_STATE:
+ return END_ELEMENT;
+ case TEXT_STATE:
+ return CHARACTERS;
+ default:
+ throw new UnsupportedOperationException();
+ // we've no idea what this is!!!!!
+ }
+
+ }
+
+ public String getText() {
+ if (state == TEXT_STATE) {
+ return value;
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public char[] getTextCharacters() {
+ if (state == TEXT_STATE) {
+ return value.toCharArray();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public int getTextCharacters(int i, char[] chars, int i1, int i2) throws XMLStreamException {
+ // not implemented
+ throw new UnsupportedOperationException();
+ }
+
+ public int getTextStart() {
+ if (state == TEXT_STATE) {
+ return 0;
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public int getTextLength() {
+ if (state == TEXT_STATE) {
+ return value.length();
+ } else {
+ throw new IllegalStateException();
+ }
+
+ }
+
+ public String getEncoding() {
+ return "UTF-8";
+ }
+
+ public boolean hasText() {
+ return (state == TEXT_STATE);
+ }
+
+ public Location getLocation() {
+ return new Location() {
+ public int getLineNumber() {
+ return 0;
+ }
+
+ public int getColumnNumber() {
+ return 0;
+ }
+
+ public int getCharacterOffset() {
+ return 0;
+ }
+
+ public String getPublicId() {
+ return null;
+ }
+
+ public String getSystemId() {
+ return null;
+ }
+ };
+ }
+
+ public QName getName() {
+ if (state != TEXT_STATE) {
+ return name;
+ } else {
+ return null;
+ }
+ }
+
+ public String getLocalName() {
+ if (state != TEXT_STATE) {
+ return name.getLocalPart();
+ } else {
+ return null;
+ }
+ }
+
+ public boolean hasName() {
+ return (state != TEXT_STATE);
+
+ }
+
+ public String getNamespaceURI() {
+ if (state != TEXT_STATE) {
+ return name.getNamespaceURI();
+ } else {
+ return null;
+ }
+
+ }
+
+ public String getPrefix() {
+ if (state != TEXT_STATE) {
+ return name.getPrefix();
+ } else {
+ return null;
+ }
+ }
+
+ public String getVersion() {
+ return null; // todo 1.0 ?
+ }
+
+ public boolean isStandalone() {
+ return false;
+ }
+
+ public boolean standaloneSet() {
+ return false;
+ }
+
+ public String getCharacterEncodingScheme() {
+ return null;
+ }
+
+ public String getPITarget() {
+ return null;
+ }
+
+ public String getPIData() {
+ return null;
+ }
+
+ public boolean isEndOfFragment() {
+ return (state == END_ELEMENT_STATE);
+ }
+
+ public void setParentNamespaceContext(NamespaceContext nsContext) {
+ this.namespaceContext.setParent(nsContext);
+ }
+
+ public void init() {
+ // just add the current elements namespace and prefix to the this
+ // elements nscontext
+ registerNamespace(name.getPrefix(), name.getNamespaceURI());
+
+ }
+
+ /**
+ * @param prefix
+ * @param uri
+ */
+ private void registerNamespace(String prefix, String uri) {
+ // todo - need to fix this up to cater for cases where
+ // namespaces are having no prefixes
+ if (!uri.equals(namespaceContext.getNamespaceURI(prefix))) {
+ // this namespace is not there. Need to declare it
+ namespaceContext.registerMapping(prefix, uri);
+ }
+ }
+
+ public int getAttributeCount() {
+ if (state == START_ELEMENT_STATE_WITH_NULL)
+ return 1;
+ if (state == START_ELEMENT_STATE) {
+ return 0;
+ } else {
+ throw new IllegalStateException();
+ }
+
+ }
+
+ public String getAttributeLocalName(int i) {
+ if (state == START_ELEMENT_STATE_WITH_NULL && i == 0)
+ return XSI_NIL_QNAME.getLocalPart();
+ if (state == START_ELEMENT_STATE) {
+ return null;
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public QName getAttributeName(int i) {
+ if (state == START_ELEMENT_STATE_WITH_NULL && i == 0)
+ return XSI_NIL_QNAME;
+ if (state == START_ELEMENT_STATE) {
+ return null;
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getAttributeNamespace(int i) {
+ if (state == START_ELEMENT_STATE_WITH_NULL && i == 0)
+ return XSI_NIL_QNAME.getNamespaceURI();
+ if (state == START_ELEMENT_STATE) {
+ return null;
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getAttributePrefix(int i) {
+ if (state == START_ELEMENT_STATE_WITH_NULL && i == 0)
+ return XSI_NIL_QNAME.getPrefix();
+ if (state == START_ELEMENT_STATE) {
+ return null;
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getAttributeType(int i) {
+ return null; // not implemented
+ }
+
+ public String getAttributeValue(int i) {
+ if (state == START_ELEMENT_STATE_WITH_NULL && i == 0)
+ return "true";
+ if (state == START_ELEMENT_STATE) {
+ return null;
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getAttributeValue(String string, String string1) {
+ if (state == TEXT_STATE) {
+ // todo something
+ return null;
+ } else {
+ return null;
+ }
+
+ }
+
+ public int getNamespaceCount() {
+ if (state == START_ELEMENT_STATE_WITH_NULL && isXsiNamespacePresent())
+ return 1;
+ else
+ return 0;
+
+ }
+
+ public String getNamespacePrefix(int i) {
+ if (state == START_ELEMENT_STATE_WITH_NULL && isXsiNamespacePresent() && i == 0)
+ return XSI_NIL_QNAME.getPrefix();
+ else
+ return null;
+ }
+
+ public String getNamespaceURI(int i) {
+ if (state == START_ELEMENT_STATE_WITH_NULL && isXsiNamespacePresent() && i == 0)
+ return XSI_NIL_QNAME.getNamespaceURI();
+ else
+ return null;
+ }
+
+ /**
+ * Test whether the xsi namespace is present
+ *
+ * @return
+ */
+ private boolean isXsiNamespacePresent() {
+ return (namespaceContext.getNamespaceURI(XSI_NIL_QNAME.getPrefix()) != null);
+ }
+
+ }
+
+ protected static class DelegatingNamespaceContext implements NamespaceContext {
+ private NamespaceContext parent;
+
+ private Map prefixToNamespaceMapping = new HashMap();
+
+ public DelegatingNamespaceContext(NamespaceContext parent) {
+ super();
+ this.parent = parent;
+
+ prefixToNamespaceMapping.put("xml", "http://www.w3.org/XML/1998/namespace");
+ prefixToNamespaceMapping.put("xmlns", "http://www.w3.org/2000/xmlns/");
+ prefixToNamespaceMapping.put("xsi", "http://www.w3.org/2001/XMLSchema-instance");
+ }
+
+ public String getNamespaceURI(String prefix) {
+ if (prefix == null)
+ throw new IllegalArgumentException("Prefix is null");
+
+ String ns = (String) prefixToNamespaceMapping.get(prefix);
+ if (ns != null)
+ return ns;
+ else if (parent != null)
+ return parent.getNamespaceURI(prefix);
+ else
+ return null;
+ }
+
+ public String getPrefix(String nsURI) {
+ if (nsURI == null)
+ throw new IllegalArgumentException("Namespace is null");
+ for (Iterator i = prefixToNamespaceMapping.entrySet().iterator(); i.hasNext();) {
+ Map.Entry entry = (Map.Entry) i.next();
+ if (entry.getValue().equals(nsURI)) {
+ return (String) entry.getKey();
+ }
+ }
+ if (parent != null)
+ return parent.getPrefix(nsURI);
+ else
+ return null;
+ }
+
+ public Iterator getPrefixes(String nsURI) {
+ List prefixList = new ArrayList();
+ for (Iterator i = prefixToNamespaceMapping.entrySet().iterator(); i.hasNext();) {
+ Map.Entry entry = (Map.Entry) i.next();
+ if (entry.getValue().equals(nsURI)) {
+ prefixList.add(entry.getKey());
+ }
+ }
+ if (parent != null) {
+ for (Iterator i = parent.getPrefixes(nsURI); i.hasNext();) {
+ prefixList.add(i.next());
+ }
+ }
+ return prefixList.iterator();
+ }
+
+ public void registerMapping(String prefix, String nsURI) {
+ prefixToNamespaceMapping.put(prefix, nsURI);
+ }
+
+ private int counter = 0;
+
+ public synchronized QName createQName(String nsURI, String name) {
+ String prefix = nsURI != null ? (String) getPrefix(nsURI) : null;
+ if (prefix == null && nsURI != null && !nsURI.equals(""))
+ prefix = "p" + (counter++);
+ if (prefix == null)
+ prefix = "";
+ if (nsURI != null)
+ prefixToNamespaceMapping.put(prefix, nsURI);
+ return new QName(nsURI, name, prefix);
+ }
+
+ public void removeMapping(String prefix) {
+ prefixToNamespaceMapping.remove(prefix);
+ }
+
+ public void setParent(NamespaceContext parent) {
+ this.parent = parent;
+ }
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/SDOXMLResourceFactoryImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/SDOXMLResourceFactoryImpl.java
new file mode 100644
index 0000000000..a4b4455fb5
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/SDOXMLResourceFactoryImpl.java
@@ -0,0 +1,44 @@
+/**
+ *
+ * Copyright 2006 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.resource;
+
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+
+/**
+ * This class creates SDOXMLResourceImpl objects.
+ */
+public class SDOXMLResourceFactoryImpl extends ResourceFactoryImpl
+{
+ /**
+ * Constructor for SDOXMLResourceFactoryImpl.
+ */
+ public SDOXMLResourceFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * Creates an XMLResourceImpl and returns it.
+ */
+ public Resource createResource(URI uri)
+ {
+ return new SDOXMLResourceImpl(uri);
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/SDOXMLResourceImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/SDOXMLResourceImpl.java
new file mode 100644
index 0000000000..fbbe8ef80c
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/SDOXMLResourceImpl.java
@@ -0,0 +1,181 @@
+/**
+ *
+ * Copyright 2006 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.resource;
+
+import java.io.IOException;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.tuscany.sdo.util.StAX2SAXAdapter;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.XMIException;
+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.impl.XMLHelperImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
+public class SDOXMLResourceImpl extends XMLResourceImpl {
+ private XMLStreamReader reader;
+
+ /**
+ * [rfeng] Override the XMLHelperImpl to replace the NamespaceSupport so that it's aware of the NamespaceContext from the XMLStreamReader
+ */
+ public static class SDOXMLHelperImpl extends XMLHelperImpl {
+
+ private static class StreamNamespaceSupport extends XMLHelperImpl.NamespaceSupport {
+ private XMLStreamReader reader;
+
+ public String getPrefix(String uri) {
+ if (reader == null)
+ return super.getPrefix(uri);
+ String prefix = null;
+ try {
+ prefix = uri != null ? reader.getNamespaceContext().getPrefix(uri) : null;
+ } catch (Exception e) {
+ // HACK:
+ // java.lang.UnsupportedOperationException
+ // at org.apache.axiom.om.impl.llom.OMStAXWrapper.getNamespaceContext(OMStAXWrapper.java:984)
+
+ prefix = null;
+ }
+ return prefix != null ? prefix : super.getPrefix(uri);
+ }
+
+ public String getURI(String prefix) {
+ if (reader == null)
+ return super.getURI(prefix);
+ String uri;
+ try {
+ uri = prefix != null ? reader.getNamespaceContext().getNamespaceURI(prefix) : null;
+ } catch (Exception e) {
+ // HACK:
+ // java.lang.UnsupportedOperationException
+ // at org.apache.axiom.om.impl.llom.OMStAXWrapper.getNamespaceContext(OMStAXWrapper.java:984)
+
+ uri = null;
+ }
+ return uri != null && uri.length()!=0 ? uri : super.getURI(prefix);
+ }
+
+ public StreamNamespaceSupport(XMLStreamReader reader) {
+ super();
+ this.reader = reader;
+ }
+
+ }
+
+ public SDOXMLHelperImpl(XMLResource resource, XMLStreamReader reader) {
+ this(reader);
+ setResource(resource);
+ }
+
+ public SDOXMLHelperImpl(XMLStreamReader reader) {
+ super();
+ this.namespaceSupport = new StreamNamespaceSupport(reader);
+ }
+ }
+
+ /**
+ * An EMF XMLLoad that loads a model from a StAX stream
+ */
+ public class SDOXMLLoadImpl extends XMLLoadImpl {
+ public SDOXMLLoadImpl(XMLHelper helper) {
+ super(helper);
+ }
+
+ /**
+ * Start parsing an XMLReader with the default handler.
+ */
+ public void load(XMLResource resource, final XMLStreamReader reader, Map options) throws IOException {
+ this.resource = resource;
+ Map mergedOptions = new HashMap(defaultLoadOptions);
+ if (options != null)
+ mergedOptions.putAll(options);
+
+ this.options = mergedOptions;
+
+ final ContentHandler handler = makeDefaultHandler();
+
+ if (errors != null) {
+ errors.clear();
+ }
+
+ final StAX2SAXAdapter adapter = new StAX2SAXAdapter(true);
+ // Parse the XMLReader and generate SAX events
+ try {
+ AccessController.doPrivileged(new PrivilegedExceptionAction() {
+ public Object run() throws XMLStreamException, SAXException {
+ adapter.parse(reader, handler);
+ return null;
+ }
+ });
+ } catch (PrivilegedActionException e) {
+ throw new Resource.IOWrappedException(e.getException());
+ }
+
+ helper = null;
+ if (!resource.getErrors().isEmpty()) {
+ Exception error = (Exception) resource.getErrors().get(0);
+ if (error instanceof XMIException) {
+ XMIException exception = (XMIException) error;
+ if (exception.getWrappedException() != null) {
+ throw new Resource.IOWrappedException(exception.getWrappedException());
+ }
+ }
+ throw new Resource.IOWrappedException(error);
+ }
+ }
+ }
+
+ public SDOXMLResourceImpl(URI uri) {
+ super(uri);
+ }
+
+ protected XMLHelper createXMLHelper() {
+ return new SDOXMLHelperImpl(this, reader);
+ }
+
+ /**
+ * @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#createXMLLoad()
+ */
+ protected XMLLoad createXMLLoad() {
+ return new SDOXMLLoadImpl(createXMLHelper());
+ }
+
+ /**
+ * Loads the resource from a StAX XMLStreamReader.
+ */
+ public void load(XMLStreamReader reader, Map options) throws IOException {
+ this.reader = reader;
+ SDOXMLLoadImpl xmlLoad = (SDOXMLLoadImpl) createXMLLoad();
+ Map mergedOptions = new HashMap(defaultLoadOptions);
+ if (options != null)
+ mergedOptions.putAll(options);
+ xmlLoad.load(this, reader, mergedOptions);
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/XMLDocumentStreamReader.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/XMLDocumentStreamReader.java
new file mode 100644
index 0000000000..25fcc0bc69
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/XMLDocumentStreamReader.java
@@ -0,0 +1,426 @@
+/**
+ *
+ */
+package org.apache.tuscany.sdo.util.resource;
+
+import java.util.NoSuchElementException;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+/**
+ * This class is derived from Apache Axis2 class <a
+ * href="http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/util/StreamWrapper.java">
+ * org.apache.axis2.util.StreamWrapper</a>. It's used wrap a XMLStreamReader to create a XMLStreamReader representing a document and it will produce
+ * START_DOCUMENT, END_DOCUMENT events.
+ *
+ */
+public class XMLDocumentStreamReader implements XMLStreamReader {
+ private static final int STATE_INIT = 0; // The wrapper will produce START_DOCUMENT
+
+ private static final int STATE_SWITCHED = 1; // The real reader will produce events
+
+ private static final int STATE_COMPLETE_AT_NEXT = 2; // The wrapper will produce END_DOCUMENT
+
+ private static final int STATE_COMPLETED = 3; // Done
+
+ private XMLStreamReader realReader = null;
+
+ private int state = STATE_INIT;
+
+ public XMLDocumentStreamReader(XMLStreamReader realReader) {
+ if (realReader == null) {
+ throw new UnsupportedOperationException("Reader cannot be null");
+ }
+
+ this.realReader = realReader;
+
+ // If the real reader is positioned at START_DOCUMENT, always use the real reader
+ if (realReader.getEventType() == START_DOCUMENT)
+ state = STATE_SWITCHED;
+ }
+
+ public void close() throws XMLStreamException {
+ realReader.close();
+ }
+
+ public int next() throws XMLStreamException {
+ int returnEvent = -1;
+
+ switch (state) {
+ case STATE_SWITCHED:
+ returnEvent = realReader.next();
+ if (returnEvent == END_DOCUMENT) {
+ state = STATE_COMPLETED;
+ } else if (!realReader.hasNext()) {
+ state = STATE_COMPLETE_AT_NEXT;
+ }
+ break;
+ case STATE_INIT:
+ state = STATE_SWITCHED;
+ returnEvent = realReader.getEventType();
+ break;
+ case STATE_COMPLETE_AT_NEXT:
+ state = STATE_COMPLETED;
+ returnEvent = END_DOCUMENT;
+ break;
+ case STATE_COMPLETED:
+ // oops - no way we can go beyond this
+ throw new NoSuchElementException("End of stream has reached.");
+ default:
+ throw new UnsupportedOperationException();
+ }
+
+ return returnEvent;
+ }
+
+ private boolean isDelegating() {
+ return state == STATE_SWITCHED || state == STATE_COMPLETE_AT_NEXT;
+ }
+
+ public int nextTag() throws XMLStreamException {
+ if (isDelegating()) {
+ return realReader.nextTag();
+ } else {
+ throw new XMLStreamException();
+ }
+ }
+
+ public void require(int i, String s, String s1) throws XMLStreamException {
+ if (isDelegating()) {
+ realReader.require(i, s, s1);
+ }
+ }
+
+ public boolean standaloneSet() {
+ if (isDelegating()) {
+ return realReader.standaloneSet();
+ } else {
+ return false;
+ }
+ }
+
+ public int getAttributeCount() {
+ if (isDelegating()) {
+ return realReader.getAttributeCount();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getAttributeLocalName(int i) {
+ if (isDelegating()) {
+ return realReader.getAttributeLocalName(i);
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public QName getAttributeName(int i) {
+ if (isDelegating()) {
+ return realReader.getAttributeName(i);
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getAttributeNamespace(int i) {
+ if (isDelegating()) {
+ return realReader.getAttributeNamespace(i);
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getAttributePrefix(int i) {
+ if (isDelegating()) {
+ return realReader.getAttributePrefix(i);
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getAttributeType(int i) {
+ if (isDelegating()) {
+ return realReader.getAttributeType(i);
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getAttributeValue(int i) {
+ if (isDelegating()) {
+ return realReader.getAttributeValue(i);
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getAttributeValue(String s, String s1) {
+ if (isDelegating()) {
+ return realReader.getAttributeValue(s, s1);
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getCharacterEncodingScheme() {
+ return realReader.getCharacterEncodingScheme();
+ }
+
+ public String getElementText() throws XMLStreamException {
+ if (isDelegating()) {
+ return realReader.getElementText();
+ } else {
+ throw new XMLStreamException();
+ }
+ }
+
+ public String getEncoding() {
+ return realReader.getEncoding();
+ }
+
+ public int getEventType() {
+ int event = -1;
+ switch (state) {
+ case STATE_SWITCHED:
+ case STATE_COMPLETE_AT_NEXT:
+ event = realReader.getEventType();
+ break;
+ case STATE_INIT:
+ event = START_DOCUMENT;
+ break;
+ case STATE_COMPLETED:
+ event = END_DOCUMENT;
+ break;
+ }
+ return event;
+ }
+
+ public Location getLocation() {
+ if (isDelegating()) {
+ return realReader.getLocation();
+ } else {
+ return null;
+ }
+ }
+
+ public QName getName() {
+ if (isDelegating()) {
+ return realReader.getName();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getLocalName() {
+ if (isDelegating()) {
+ return realReader.getLocalName();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public NamespaceContext getNamespaceContext() {
+ return realReader.getNamespaceContext();
+ }
+
+ public int getNamespaceCount() {
+ if (isDelegating()) {
+ return realReader.getNamespaceCount();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getNamespacePrefix(int i) {
+ if (isDelegating()) {
+ return realReader.getNamespacePrefix(i);
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getNamespaceURI() {
+ if (isDelegating()) {
+ return realReader.getNamespaceURI();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getNamespaceURI(int i) {
+ if (isDelegating()) {
+ return realReader.getNamespaceURI(i);
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getNamespaceURI(String s) {
+ if (isDelegating()) {
+ return realReader.getNamespaceURI(s);
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getPIData() {
+ if (isDelegating()) {
+ return realReader.getPIData();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getPITarget() {
+ if (isDelegating()) {
+ return realReader.getPITarget();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getPrefix() {
+ if (isDelegating()) {
+ return realReader.getPrefix();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public Object getProperty(String s) throws IllegalArgumentException {
+ if (isDelegating()) {
+ return realReader.getProperty(s);
+ } else {
+ throw new IllegalArgumentException();
+ }
+ }
+
+ public String getText() {
+ if (isDelegating()) {
+ return realReader.getText();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public char[] getTextCharacters() {
+ if (isDelegating()) {
+ return realReader.getTextCharacters();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public int getTextCharacters(int i, char[] chars, int i1, int i2) throws XMLStreamException {
+ if (isDelegating()) {
+ return realReader.getTextCharacters(i, chars, i1, i2);
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public int getTextLength() {
+ if (isDelegating()) {
+ return realReader.getTextLength();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public int getTextStart() {
+ if (isDelegating()) {
+ return realReader.getTextStart();
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ public String getVersion() {
+ if (isDelegating()) {
+ return realReader.getVersion();
+ } else {
+ return null;
+ }
+ }
+
+ public boolean hasName() {
+ if (isDelegating()) {
+ return realReader.hasName();
+ } else {
+ return false;
+ }
+ }
+
+ public boolean hasNext() throws XMLStreamException {
+ if (state == STATE_COMPLETE_AT_NEXT) {
+ return true;
+ } else if (state == STATE_COMPLETED) {
+ return false;
+ } else if (state == STATE_SWITCHED) {
+ return realReader.hasNext();
+ } else {
+ return true;
+ }
+ }
+
+ public boolean hasText() {
+ if (isDelegating()) {
+ return realReader.hasText();
+ } else {
+ return false;
+ }
+ }
+
+ public boolean isAttributeSpecified(int i) {
+ if (isDelegating()) {
+ return realReader.isAttributeSpecified(i);
+ } else {
+ return false;
+ }
+ }
+
+ public boolean isCharacters() {
+ if (isDelegating()) {
+ return realReader.isCharacters();
+ } else {
+ return false;
+ }
+ }
+
+ public boolean isEndElement() {
+ if (isDelegating()) {
+ return realReader.isEndElement();
+ } else {
+ return false;
+ }
+ }
+
+ public boolean isStandalone() {
+ if (isDelegating()) {
+ return realReader.isStandalone();
+ } else {
+ return false;
+ }
+ }
+
+ public boolean isStartElement() {
+ if (isDelegating()) {
+ return realReader.isStartElement();
+ } else {
+ return false;
+ }
+ }
+
+ public boolean isWhiteSpace() {
+ if (isDelegating()) {
+ return realReader.isWhiteSpace();
+ } else {
+ return false;
+ }
+ }
+} \ No newline at end of file
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/XMLFragmentStreamReader.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/XMLFragmentStreamReader.java
new file mode 100644
index 0000000000..3a5b3e9eb1
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/XMLFragmentStreamReader.java
@@ -0,0 +1,34 @@
+/**
+ *
+ */
+package org.apache.tuscany.sdo.util.resource;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.stream.XMLStreamReader;
+
+interface XMLFragmentStreamReader extends XMLStreamReader {
+
+ // this will help to handle Text within the current element.
+ // user should pass the element text to the property list as this
+ // ELEMENT_TEXT as the key. This key deliberately has a space in it
+ // so that it is not a valid XML name
+ static final String ELEMENT_TEXT = "Element Text";
+
+ /**
+ * Extra method to query the state of the pullparser
+ * @return
+ */
+ boolean isEndOfFragment();
+
+ /**
+ * add the parent namespace context to this parser
+ */
+ void setParentNamespaceContext(NamespaceContext nsContext);
+
+ /**
+ * Initiate the parser - this will do whatever the needed
+ * tasks to initiate the parser and must be called before
+ * attempting any specific parsing using this parser
+ */
+ void init();
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/XMLStreamSerializer.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/XMLStreamSerializer.java
new file mode 100644
index 0000000000..b891dfcadb
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/java/org/apache/tuscany/sdo/util/resource/XMLStreamSerializer.java
@@ -0,0 +1,258 @@
+/*
+ * Copyright 2004,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.util.resource;
+
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+/**
+ * The XMLStreamSerializer pulls events from the XMLStreamReader and dumps into the XMLStreamWriter
+ */
+public class XMLStreamSerializer implements XMLStreamConstants {
+
+ private static int namespaceSuffix = 0;
+
+ public static final String NAMESPACE_PREFIX = "ns";
+
+ /*
+ * The behavior of the serializer is such that it returns when it encounters the starting element for the second time. The depth variable tracks
+ * the depth of the serilizer and tells it when to return. Note that it is assumed that this serialization starts on an Element.
+ */
+
+ /**
+ * Field depth
+ */
+ private int depth = 0;
+
+ /**
+ * Method serialize.
+ *
+ * @param node
+ * @param writer
+ * @throws XMLStreamException
+ */
+ public void serialize(XMLStreamReader node, XMLStreamWriter writer) throws XMLStreamException {
+ serializeNode(node, writer);
+ }
+
+ /**
+ * Method serializeNode.
+ *
+ * @param reader
+ * @param writer
+ * @throws XMLStreamException
+ */
+ protected void serializeNode(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
+ // TODO We get the StAXWriter at this point and uses it hereafter assuming that this is the only entry point to this class.
+ // If there can be other classes calling methodes of this we might need to change methode signatures to OMOutputer
+ while (reader.hasNext()) {
+ int event = reader.next();
+ if (event == START_ELEMENT) {
+ serializeElement(reader, writer);
+ depth++;
+ } else if (event == ATTRIBUTE) {
+ serializeAttributes(reader, writer);
+ } else if (event == CHARACTERS) {
+ serializeText(reader, writer);
+ } else if (event == COMMENT) {
+ serializeComment(reader, writer);
+ } else if (event == CDATA) {
+ serializeCData(reader, writer);
+ } else if (event == END_ELEMENT) {
+ serializeEndElement(writer);
+ depth--;
+ } else if (event == START_DOCUMENT) {
+ depth++; // if a start document is found then increment the depth
+ } else if (event == END_DOCUMENT) {
+ if (depth != 0)
+ depth--; // for the end document - reduce the depth
+ try {
+ serializeEndElement(writer);
+ } catch (Exception e) {
+ // TODO: log exceptions
+ }
+ }
+ if (depth == 0) {
+ break;
+ }
+ }
+ }
+
+ /**
+ * @param reader
+ * @param writer
+ * @throws XMLStreamException
+ */
+ protected void serializeElement(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
+ String prefix = reader.getPrefix();
+ String nameSpaceName = reader.getNamespaceURI();
+ if (nameSpaceName != null) {
+ String writer_prefix = writer.getPrefix(nameSpaceName);
+ if (writer_prefix != null) {
+ writer.writeStartElement(nameSpaceName, reader.getLocalName());
+ } else {
+ if (prefix != null) {
+ writer.writeStartElement(prefix, reader.getLocalName(), nameSpaceName);
+ writer.writeNamespace(prefix, nameSpaceName);
+ writer.setPrefix(prefix, nameSpaceName);
+ } else {
+ writer.writeStartElement(nameSpaceName, reader.getLocalName());
+ writer.writeDefaultNamespace(nameSpaceName);
+ writer.setDefaultNamespace(nameSpaceName);
+ }
+ }
+ } else {
+ writer.writeStartElement(reader.getLocalName());
+ }
+
+ // add the namespaces
+ int count = reader.getNamespaceCount();
+ String namespacePrefix;
+ for (int i = 0; i < count; i++) {
+ namespacePrefix = reader.getNamespacePrefix(i);
+ if (namespacePrefix != null && namespacePrefix.length() == 0)
+ continue;
+
+ serializeNamespace(namespacePrefix, reader.getNamespaceURI(i), writer);
+ }
+
+ // add attributes
+ serializeAttributes(reader, writer);
+
+ }
+
+ /**
+ * Method serializeEndElement.
+ *
+ * @param writer
+ * @throws XMLStreamException
+ */
+ protected void serializeEndElement(XMLStreamWriter writer) throws XMLStreamException {
+ writer.writeEndElement();
+ }
+
+ /**
+ * @param reader
+ * @param writer
+ * @throws XMLStreamException
+ */
+ protected void serializeText(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
+ writer.writeCharacters(reader.getText());
+ }
+
+ /**
+ * Method serializeCData.
+ *
+ * @param reader
+ * @param writer
+ * @throws XMLStreamException
+ */
+ protected void serializeCData(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
+ writer.writeCData(reader.getText());
+ }
+
+ /**
+ * Method serializeComment.
+ *
+ * @param reader
+ * @param writer
+ * @throws XMLStreamException
+ */
+ protected void serializeComment(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
+ writer.writeComment(reader.getText());
+ }
+
+ /**
+ * @param reader
+ * @param writer
+ * @throws XMLStreamException
+ */
+ protected void serializeAttributes(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
+ int count = reader.getAttributeCount();
+ String prefix = null;
+ String namespaceName = null;
+ String writerPrefix = null;
+ for (int i = 0; i < count; i++) {
+ prefix = reader.getAttributePrefix(i);
+ namespaceName = reader.getAttributeNamespace(i);
+ if (namespaceName != null)
+ writerPrefix = writer.getNamespaceContext().getPrefix(namespaceName);
+
+ if (!"".equals(namespaceName)) {
+ // prefix has already being declared but this particular attrib has a
+ // no prefix attached. So use the prefix provided by the writer
+ if (writerPrefix != null && (prefix == null || prefix.equals(""))) {
+ writer.writeAttribute(writerPrefix, namespaceName, reader.getAttributeLocalName(i), reader.getAttributeValue(i));
+
+ // writer prefix is available but different from the current
+ // prefix of the attrib. We should be decalring the new prefix
+ // as a namespace declaration
+ } else if (prefix != null && !"".equals(prefix) && !prefix.equals(writerPrefix)) {
+ writer.writeNamespace(prefix, namespaceName);
+ writer.writeAttribute(prefix, namespaceName, reader.getAttributeLocalName(i), reader.getAttributeValue(i));
+
+ // prefix is null (or empty), but the namespace name is valid! it has not
+ // being written previously also. So we need to generate a prefix
+ // here
+ } else {
+ prefix = generateUniquePrefix(writer.getNamespaceContext());
+ writer.writeNamespace(prefix, namespaceName);
+ writer.writeAttribute(prefix, namespaceName, reader.getAttributeLocalName(i), reader.getAttributeValue(i));
+ }
+ } else {
+ // empty namespace is equal to no namespace!
+ writer.writeAttribute(reader.getAttributeLocalName(i), reader.getAttributeValue(i));
+ }
+
+ }
+ }
+
+ /**
+ * Generates a unique namespace prefix that is not in the scope of the NamespaceContext
+ *
+ * @param nsCtxt
+ * @return string
+ */
+ private String generateUniquePrefix(NamespaceContext nsCtxt) {
+ String prefix = NAMESPACE_PREFIX + namespaceSuffix++;
+ // null should be returned if the prefix is not bound!
+ while (nsCtxt.getNamespaceURI(prefix) != null) {
+ prefix = NAMESPACE_PREFIX + namespaceSuffix++;
+ }
+
+ return prefix;
+ }
+
+ /**
+ * Method serializeNamespace.
+ *
+ * @param prefix
+ * @param URI
+ * @param writer
+ * @throws XMLStreamException
+ */
+ private void serializeNamespace(String prefix, String URI, XMLStreamWriter writer) throws XMLStreamException {
+ String prefix1 = writer.getPrefix(URI);
+ if (prefix1 == null) {
+ writer.writeNamespace(prefix, URI);
+ writer.setPrefix(prefix, URI);
+ }
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/LICENSE.txt b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/LICENSE.txt
new file mode 100644
index 0000000000..25d78feeac
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/LICENSE.txt
@@ -0,0 +1,1277 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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.
+
+
+APACHE TUSCANY SUBCOMPONENTS:
+
+The Apache Tuscany distribution includes a number of subcomponents with
+separate copyright notices and license terms. Your use of the source
+code for the these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+===============================================================================
+
+For the Eclipse Modeling Framework component and the Celtix binding:
+
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF
+THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and
+documentation distributed under this Agreement, and
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and
+are distributed by that particular Contributor. A Contribution
+'originates' from a Contributor if it was added to the Program by such
+Contributor itself or anyone acting on such Contributor's behalf.
+Contributions do not include additions to the Program which: (i) are
+separate modules of software distributed in conjunction with the
+Program under their own license agreement, and (ii) are not derivative
+works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor
+which are necessarily infringed by the use or sale of its Contribution
+alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this
+Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby
+grants Recipient a non-exclusive, worldwide, royalty-free copyright
+license to reproduce, prepare derivative works of, publicly display,
+publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and
+object code form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby
+grants Recipient a non-exclusive, worldwide, royalty-free patent
+license under Licensed Patents to make, use, sell, offer to sell,
+import and otherwise transfer the Contribution of such Contributor, if
+any, in source code and object code form. This patent license shall
+apply to the combination of the Contribution and the Program if, at
+the time the Contribution is added by the Contributor, such addition
+of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the
+licenses to its Contributions set forth herein, no assurances are
+provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow
+Recipient to distribute the Program, it is Recipient's responsibility
+to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright
+license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form
+under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties
+and conditions, express and implied, including warranties or
+conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability
+for damages, including direct, indirect, special, incidental and
+consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are
+offered by that Contributor alone and not by any other party; and
+
+iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable
+manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the
+Program.
+
+Contributors may not remove or alter any copyright notices contained
+within the Program.
+
+Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a
+commercial product offering should do so in a manner which does not
+create potential liability for other Contributors. Therefore, if a
+Contributor includes the Program in a commercial product offering,
+such Contributor ("Commercial Contributor") hereby agrees to defend
+and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising
+from claims, lawsuits and other legal actions brought by a third party
+against the Indemnified Contributor to the extent caused by the acts
+or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement.
+In order to qualify, an Indemnified Contributor must: a) promptly
+notify the Commercial Contributor in writing of such claim, and b)
+allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement
+negotiations. The Indemnified Contributor may participate in any such
+claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
+WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable
+laws, damage to or loss of data, programs or equipment, and
+unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
+ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further
+action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+the Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of
+the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of
+time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use
+and distribution of the Program as soon as reasonably practicable.
+However, Recipient's obligations under this Agreement and any licenses
+granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement,
+but in order to avoid inconsistency the Agreement is copyrighted and
+may only be modified in the following manner. The Agreement Steward
+reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement
+Steward has the right to modify this Agreement. The Eclipse Foundation
+is the initial Agreement Steward. The Eclipse Foundation may assign
+the responsibility to serve as the Agreement Steward to a suitable
+separate entity. Each new version of the Agreement will be given a
+distinguishing version number. The Program (including Contributions)
+may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the
+Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives
+no rights or licenses to the intellectual property of any Contributor
+under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No
+party to this Agreement will bring a legal action under this Agreement
+more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.
+
+===============================================================================
+
+For the Rhino JavaScript container component:
+
+Mozilla Public License 1.1 (MPL 1.1)
+
+1. Definitions.
+
+ 1.0.1. "Commercial Use" means distribution or otherwise making the
+Covered Code available to a third party.
+
+ 1.1. "Contributor" means each entity that creates or contributes to
+the creation of Modifications.
+
+ 1.2. "Contributor Version" means the combination of the Original Code,
+prior Modifications used by a Contributor, and the Modifications made by that
+particular Contributor.
+
+ 1.3. "Covered Code" means the Original Code or Modifications or the
+combination of the Original Code and Modifications, in each case including
+portions thereof.
+
+ 1.4. "Electronic Distribution Mechanism" means a mechanism generally
+accepted in the software development community for the electronic transfer of
+data.
+
+ 1.5. "Executable" means Covered Code in any form other than Source
+Code.
+
+ 1.6. "Initial Developer" means the individual or entity identified as
+the Initial Developer in the Source Code notice required by Exhibit A.
+
+ 1.7. "Larger Work" means a work which combines Covered Code or
+portions thereof with code not governed by the terms of this License.
+
+ 1.8. "License" means this document.
+
+ 1.8.1. "Licensable" means having the right to grant, to the maximum
+extent possible, whether at the time of the initial grant or subsequently
+acquired, any and all of the rights conveyed herein.
+
+ 1.9. "Modifications" means any addition to or deletion from the
+substance or structure of either the Original Code or any previous
+Modifications. When Covered Code is released as a series of files, a
+Modification is:
+ A. Any addition to or deletion from the contents of a file
+containing Original Code or previous Modifications.
+
+ B. Any new file that contains any part of the Original Code or
+previous Modifications.
+
+ 1.10. "Original Code" means Source Code of computer software code
+which is described in the Source Code notice required by Exhibit A as Original
+Code, and which, at the time of its release under this License is not already
+Covered Code governed by this License.
+
+ 1.10.1. "Patent Claims" means any patent claim(s), now owned or
+hereafter acquired, including without limitation, method, process, and
+apparatus claims, in any patent Licensable by grantor.
+
+ 1.11. "Source Code" means the preferred form of the Covered Code for
+making modifications to it, including all modules it contains, plus any
+associated interface definition files, scripts used to control compilation and
+installation of an Executable, or source code differential comparisons against
+either the Original Code or another well known, available Covered Code of the
+Contributor's choice. The Source Code can be in a compressed or archival form,
+provided the appropriate decompression or de-archiving software is widely
+available for no charge.
+
+ 1.12. "You" (or "Your") means an individual or a legal entity
+exercising rights under, and complying with all of the terms of, this License
+or a future version of this License issued under Section 6.1. For legal
+entities, "You" includes any entity which controls, is controlled by, or is
+under common control with You. For purposes of this definition, "control"
+means (a) the power, direct or indirect, to cause the direction or management
+of such entity, whether by contract or otherwise, or (b) ownership of more
+than fifty percent (50%) of the outstanding shares or beneficial ownership of
+such entity.
+
+2. Source Code License.
+
+ 2.1. The Initial Developer Grant.
+ The Initial Developer hereby grants You a world-wide, royalty-free,
+non-exclusive license, subject to third party intellectual property claims:
+ (a) under intellectual property rights (other than patent or
+trademark) Licensable by Initial Developer to use, reproduce, modify, display,
+perform, sublicense and distribute the Original Code (or portions thereof)
+with or without Modifications, and/or as part of a Larger Work; and
+
+ (b) under Patents Claims infringed by the making, using or selling
+of Original Code, to make, have made, use, practice, sell, and offer for sale,
+and/or otherwise dispose of the Original Code (or portions thereof).
+ (c) the licenses granted in this Section 2.1(a) and
+(b) are effective on the date Initial Developer first distributes Original
+Code under the terms of this License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent license is
+granted: 1) for code that You delete from the Original Code; 2) separate from
+the Original Code; or 3) for infringements caused by: i) the modification of
+the Original Code or ii) the combination of the Original Code with other
+software or devices.
+
+ 2.2. Contributor Grant.
+ Subject to third party intellectual property claims, each Contributor
+hereby grants You a world-wide, royalty-free, non-exclusive license
+
+ (a) under intellectual property rights (other than patent or
+trademark) Licensable by Contributor, to use, reproduce, modify, display,
+perform, sublicense and distribute the Modifications created by such
+Contributor (or portions thereof) either on an unmodified basis, with other
+Modifications, as Covered Code and/or as part of a Larger Work; and
+
+ (b) under Patent Claims infringed by the making, using, or selling
+of Modifications made by that Contributor either alone and/or in combination
+with its Contributor Version (or portions of such combination), to make, use,
+sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications
+made by that Contributor (or portions thereof); and 2) the combination of
+Modifications made by that Contributor with its Contributor Version (or
+portions of such combination).
+
+ (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+effective on the date Contributor first makes Commercial Use of the Covered
+Code.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent license is
+granted: 1) for any code that Contributor has deleted from the Contributor
+Version; 2) separate from the Contributor Version; 3) for infringements
+caused by: i) third party modifications of Contributor Version or ii) the
+combination of Modifications made by that Contributor with other software
+(except as part of the Contributor Version) or other devices; or 4) under
+Patent Claims infringed by Covered Code in the absence of Modifications made
+by that Contributor.
+
+
+3. Distribution Obligations.
+
+ 3.1. Application of License.
+ The Modifications which You create or to which You contribute are
+governed by the terms of this License, including without limitation Section
+2.2. The Source Code version of Covered Code may be distributed only under the
+terms of this License or a future version of this License released under
+Section 6.1, and You must include a copy of this License with every copy of
+the Source Code You distribute. You may not offer or impose any terms on any
+Source Code version that alters or restricts the applicable version of this
+License or the recipients' rights hereunder. However, You may include an
+additional document offering the additional rights described in Section 3.5.
+
+ 3.2. Availability of Source Code.
+ Any Modification which You create or to which You contribute must be
+made available in Source Code form under the terms of this License either on
+the same media as an Executable version or via an accepted Electronic
+Distribution Mechanism to anyone to whom you made an Executable version
+available; and if made available via Electronic Distribution Mechanism, must
+remain available for at least twelve (12) months after the date it initially
+became available, or at least six (6) months after a subsequent version of
+that particular Modification has been made available to such recipients. You
+are responsible for ensuring that the Source Code version remains available
+even if the Electronic Distribution Mechanism is maintained by a third party.
+
+ 3.3. Description of Modifications.
+ You must cause all Covered Code to which You contribute to contain a
+file documenting the changes You made to create that Covered Code and the date
+of any change. You must include a prominent statement that the Modification is
+derived, directly or indirectly, from Original Code provided by the Initial
+Developer and including the name of the Initial Developer in (a) the Source
+Code, and (b) in any notice in an Executable version or related documentation
+in which You describe the origin or ownership of the Covered Code.
+
+ 3.4. Intellectual Property Matters
+ (a) Third Party Claims.
+ If Contributor has knowledge that a license under a third party's
+intellectual property rights is required to exercise the rights granted by
+such Contributor under Sections 2.1 or 2.2, Contributor must include a text
+file with the Source Code distribution titled "LEGAL" which describes the
+claim and the party making the claim in sufficient detail that a recipient
+will know whom to contact. If Contributor obtains such knowledge after the
+Modification is made available as described in Section 3.2, Contributor shall
+promptly modify the LEGAL file in all copies Contributor makes available
+thereafter and shall take other steps (such as notifying appropriate mailing
+lists or newsgroups) reasonably calculated to inform those who received the
+Covered Code that new knowledge has been obtained.
+
+ (b) Contributor APIs.
+ If Contributor's Modifications include an application programming
+interface and Contributor has knowledge of patent licenses which are
+reasonably necessary to implement that API, Contributor must also include this
+information in the LEGAL file.
+
+ (c) Representations.
+ Contributor represents that, except as disclosed pursuant to
+Section 3.4(a) above, Contributor believes that Contributor's Modifications
+are Contributor's original creation(s) and/or Contributor has sufficient
+rights to grant the rights conveyed by this License.
+
+
+ 3.5. Required Notices.
+ You must duplicate the notice in Exhibit A in each file of the Source
+Code. If it is not possible to put such notice in a particular Source Code
+file due to its structure, then You must include such notice in a location
+(such as a relevant directory) where a user would be likely to look for such a
+notice. If You created one or more Modification(s) You may add your name as a
+Contributor to the notice described in Exhibit A. You must also duplicate
+this License in any documentation for the Source Code where You describe
+recipients' rights or ownership rights relating to Covered Code. You may
+choose to offer, and to charge a fee for, warranty, support, indemnity or
+liability obligations to one or more recipients of Covered Code. However, You
+may do so only on Your own behalf, and not on behalf of the Initial Developer
+or any Contributor. You must make it absolutely clear than any such warranty,
+support, indemnity or liability obligation is offered by You alone, and You
+hereby agree to indemnify the Initial Developer and every Contributor for any
+liability incurred by the Initial Developer or such Contributor as a result of
+warranty, support, indemnity or liability terms You offer.
+
+ 3.6. Distribution of Executable Versions.
+ You may distribute Covered Code in Executable form only if the
+requirements of Section 3.1-3.5 have been met for that Covered Code, and if
+You include a notice stating that the Source Code version of the Covered Code
+is available under the terms of this License, including a description of how
+and where You have fulfilled the obligations of Section 3.2. The notice must
+be conspicuously included in any notice in an Executable version, related
+documentation or collateral in which You describe recipients' rights relating
+to the Covered Code. You may distribute the Executable version of Covered Code
+or ownership rights under a license of Your choice, which may contain terms
+different from this License, provided that You are in compliance with the
+terms of this License and that the license for the Executable version does not
+attempt to limit or alter the recipient's rights in the Source Code version
+from the rights set forth in this License. If You distribute the Executable
+version under a different license You must make it absolutely clear that any
+terms which differ from this License are offered by You alone, not by the
+Initial Developer or any Contributor. You hereby agree to indemnify the
+Initial Developer and every Contributor for any liability incurred by the
+Initial Developer or such Contributor as a result of any such terms You offer.
+
+ 3.7. Larger Works.
+ You may create a Larger Work by combining Covered Code with other code
+not governed by the terms of this License and distribute the Larger Work as a
+single product. In such a case, You must make sure the requirements of this
+License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+ If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Code due to statute,
+judicial order, or regulation then You must: (a) comply with the terms of this
+License to the maximum extent possible; and (b) describe the limitations and
+the code they affect. Such description must be included in the LEGAL file
+described in Section 3.4 and must be included with all distributions of the
+Source Code. Except to the extent prohibited by statute or regulation, such
+description must be sufficiently detailed for a recipient of ordinary skill to
+be able to understand it.
+
+5. Application of this License.
+
+ This License applies to code to which the Initial Developer has attached
+the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+ 6.1. New Versions.
+ Netscape Communications Corporation ("Netscape") may publish revised
+and/or new versions of the License from time to time. Each version will be
+given a distinguishing version number.
+
+ 6.2. Effect of New Versions.
+ Once Covered Code has been published under a particular version of the
+License, You may always continue to use it under the terms of that version.
+You may also choose to use such Covered Code under the terms of any subsequent
+version of the License published by Netscape. No one other than Netscape has
+the right to modify the terms applicable to Covered Code created under this
+License.
+
+ 6.3. Derivative Works.
+ If You create or use a modified version of this License (which you may
+only do in order to apply it to code which is not already Covered Code
+governed by this License), You must (a) rename Your license so that the
+phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "MPL", "NPL" or
+any confusingly similar phrase do not appear in your license (except to note
+that your license differs from this License) and (b) otherwise make it clear
+that Your version of the license contains terms which differ from the Mozilla
+Public License and Netscape Public License. (Filling in the name of the
+Initial Developer, Original Code or Contributor in the notice described in
+Exhibit A shall not of themselves be deemed to be modifications of this
+License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+ COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE,
+FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE
+QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED
+CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY
+OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR
+CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
+LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+DISCLAIMER.
+
+8. TERMINATION.
+
+ 8.1. This License and the rights granted hereunder will terminate
+automatically if You fail to comply with terms herein and fail to cure such
+breach within 30 days of becoming aware of the breach. All sublicenses to the
+Covered Code which are properly granted shall survive any termination of this
+License. Provisions which, by their nature, must remain in effect beyond the
+termination of this License shall survive.
+
+ 8.2. If You initiate litigation by asserting a patent infringement
+claim (excluding declatory judgment actions) against Initial Developer or a
+Contributor (the Initial Developer or Contributor against whom You file such
+action is referred to as "Participant") alleging that:
+
+ (a) such Participant's Contributor Version directly or indirectly
+infringes any patent, then any and all rights granted by such Participant to
+You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice
+from Participant terminate prospectively, unless if within 60 days after
+receipt of notice You either: (i) agree in writing to pay Participant a
+mutually agreeable reasonable royalty for Your past and future use of
+Modifications made by such Participant, or (ii) withdraw Your litigation claim
+with respect to the Contributor Version against such Participant. If within
+60 days of notice, a reasonable royalty and payment arrangement are not
+mutually agreed upon in writing by the parties or the litigation claim is not
+withdrawn, the rights granted by Participant to You under Sections 2.1 and/or
+2.2 automatically terminate at the expiration of the 60 day notice period
+specified above.
+
+ (b) any software, hardware, or device, other than such Participant's
+Contributor Version, directly or indirectly infringes any patent, then any
+rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are
+revoked effective as of the date You first made, used, sold, distributed, or
+had made, Modifications made by that Participant.
+
+ 8.3. If You assert a patent infringement claim against Participant
+alleging that such Participant's Contributor Version directly or indirectly
+infringes any patent where such claim is resolved (such as by license or
+settlement) prior to the initiation of patent infringement litigation, then
+the reasonable value of the licenses granted by such Participant under
+Sections 2.1 or 2.2 shall be taken into account in determining the amount or
+value of any payment or license.
+
+ 8.4. In the event of termination under Sections 8.1 or 8.2 above, all
+end user license agreements (excluding distributors and resellers) which have
+been validly granted by You or any distributor hereunder prior to termination
+shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY
+SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT,
+SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING,
+WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER
+FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES,
+EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH
+DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH
+OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
+APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
+EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+ The Covered Code is a "commercial item," as that term is defined in 48
+C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and
+"commercial computer software documentation," as such terms are used in 48
+C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R.
+227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users
+acquire Covered Code with only those rights set forth herein.
+
+11. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject matter
+hereof. If any provision of this License is held to be unenforceable, such
+provision shall be reformed only to the extent necessary to make it
+enforceable. This License shall be governed by California law provisions
+(except to the extent applicable law, if any, provides otherwise), excluding
+its conflict-of-law provisions. With respect to disputes in which at least one
+party is a citizen of, or an entity chartered or registered to do business in
+the United States of America, any litigation relating to this License shall be
+subject to the jurisdiction of the Federal Courts of the Northern District of
+California, with venue lying in Santa Clara County, California, with the
+losing party responsible for costs, including without limitation, court costs
+and reasonable attorneys' fees and expenses. The application of the United
+Nations Convention on Contracts for the International Sale of Goods is
+expressly excluded. Any law or regulation which provides that the language of
+a contract shall be construed against the drafter shall not apply to this
+License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is
+responsible for claims and damages arising, directly or indirectly, out of its
+utilization of rights under this License and You agree to work with Initial
+Developer and Contributors to distribute such responsibility on an equitable
+basis. Nothing herein is intended or shall be deemed to constitute any
+admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+ Initial Developer may designate portions of the Covered Code as
+Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits
+you to utilize portions of the Covered Code under Your choice of the MPL or
+the alternative licenses, if any, specified by the Initial Developer in the
+file described in Exhibit A.
+
+
+EXHIBIT A -Mozilla Public License.
+
+ ``The contents of this file are subject to the Mozilla Public License
+Version 1.1 (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.mozilla.org/MPL/
+
+ Software distributed under the License is distributed on an "AS IS"
+basis, WITHOUT WARRANTY OF
+ ANY KIND, either express or implied. See the License for the specific
+language governing rights and
+ limitations under the License.
+
+ The Original Code is ______________________________________.
+
+ The Initial Developer of the Original Code is ________________________.
+Portions created by
+ ______________________ are Copyright (C) ______
+_______________________. All Rights
+ Reserved.
+
+ Contributor(s): ______________________________________.
+
+ Alternatively, the contents of this file may be used under the terms of
+the _____ license (the [___] License), in which case the provisions of
+[______] License are applicable instead of those above. If you wish to allow
+use of your version of this file only under the terms of the [____] License
+and not to allow others to use your version of this file under the MPL,
+indicate your decision by deleting the provisions above and replace them
+with the notice and other provisions required by the [___] License. If you do
+not delete the provisions above, a recipient may use your version of this file
+under either the MPL or the [___] License."
+
+ [NOTE: The text of this Exhibit A may differ slightly from the text of
+the notices in the Source Code files of the Original Code. You should use the
+text of this Exhibit A rather than the text found in the Original Code Source
+Code for Your Modifications.]
+
+
+===============================================================================
+
+For the JAX-WS Reference Implementation component:
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+
+
+ 1. Definitions.
+
+ 1.1. "Contributor" means each individual or entity that
+ creates or contributes to the creation of Modifications.
+
+ 1.2. "Contributor Version" means the combination of the
+ Original Software, prior Modifications used by a
+ Contributor (if any), and the Modifications made by that
+ particular Contributor.
+
+ 1.3. "Covered Software" means (a) the Original Software, or
+ (b) Modifications, or (c) the combination of files
+ containing Original Software with files containing
+ Modifications, in each case including portions thereof.
+
+ 1.4. "Executable" means the Covered Software in any form
+ other than Source Code.
+
+ 1.5. "Initial Developer" means the individual or entity
+ that first makes Original Software available under this
+ License.
+
+ 1.6. "Larger Work" means a work which combines Covered
+ Software or portions thereof with code not governed by the
+ terms of this License.
+
+ 1.7. "License" means this document.
+
+ 1.8. "Licensable" means having the right to grant, to the
+ maximum extent possible, whether at the time of the initial
+ grant or subsequently acquired, any and all of the rights
+ conveyed herein.
+
+ 1.9. "Modifications" means the Source Code and Executable
+ form of any of the following:
+
+ A. Any file that results from an addition to,
+ deletion from or modification of the contents of a
+ file containing Original Software or previous
+ Modifications;
+
+ B. Any new file that contains any part of the
+ Original Software or previous Modification; or
+
+ C. Any new file that is contributed or otherwise made
+ available under the terms of this License.
+
+ 1.10. "Original Software" means the Source Code and
+ Executable form of computer software code that is
+ originally released under this License.
+
+ 1.11. "Patent Claims" means any patent claim(s), now owned
+ or hereafter acquired, including without limitation,
+ method, process, and apparatus claims, in any patent
+ Licensable by grantor.
+
+ 1.12. "Source Code" means (a) the common form of computer
+ software code in which modifications are made and (b)
+ associated documentation included in or with such code.
+
+ 1.13. "You" (or "Your") means an individual or a legal
+ entity exercising rights under, and complying with all of
+ the terms of, this License. For legal entities, "You"
+ includes any entity which controls, is controlled by, or is
+ under common control with You. For purposes of this
+ definition, "control" means (a) the power, direct or
+ indirect, to cause the direction or management of such
+ entity, whether by contract or otherwise, or (b) ownership
+ of more than fifty percent (50%) of the outstanding shares
+ or beneficial ownership of such entity.
+
+ 2. License Grants.
+
+ 2.1. The Initial Developer Grant.
+
+ Conditioned upon Your compliance with Section 3.1 below and
+ subject to third party intellectual property claims, the
+ Initial Developer hereby grants You a world-wide,
+ royalty-free, non-exclusive license:
+
+ (a) under intellectual property rights (other than
+ patent or trademark) Licensable by Initial Developer,
+ to use, reproduce, modify, display, perform,
+ sublicense and distribute the Original Software (or
+ portions thereof), with or without Modifications,
+ and/or as part of a Larger Work; and
+
+ (b) under Patent Claims infringed by the making,
+ using or selling of Original Software, to make, have
+ made, use, practice, sell, and offer for sale, and/or
+ otherwise dispose of the Original Software (or
+ portions thereof).
+
+ (c) The licenses granted in Sections 2.1(a) and (b)
+ are effective on the date Initial Developer first
+ distributes or otherwise makes the Original Software
+ available to a third party under the terms of this
+ License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent
+ license is granted: (1) for code that You delete from
+ the Original Software, or (2) for infringements
+ caused by: (i) the modification of the Original
+ Software, or (ii) the combination of the Original
+ Software with other software or devices.
+
+ 2.2. Contributor Grant.
+
+ Conditioned upon Your compliance with Section 3.1 below and
+ subject to third party intellectual property claims, each
+ Contributor hereby grants You a world-wide, royalty-free,
+ non-exclusive license:
+
+ (a) under intellectual property rights (other than
+ patent or trademark) Licensable by Contributor to
+ use, reproduce, modify, display, perform, sublicense
+ and distribute the Modifications created by such
+ Contributor (or portions thereof), either on an
+ unmodified basis, with other Modifications, as
+ Covered Software and/or as part of a Larger Work; and
+
+
+ (b) under Patent Claims infringed by the making,
+ using, or selling of Modifications made by that
+ Contributor either alone and/or in combination with
+ its Contributor Version (or portions of such
+ combination), to make, use, sell, offer for sale,
+ have made, and/or otherwise dispose of: (1)
+ Modifications made by that Contributor (or portions
+ thereof); and (2) the combination of Modifications
+ made by that Contributor with its Contributor Version
+ (or portions of such combination).
+
+ (c) The licenses granted in Sections 2.2(a) and
+ 2.2(b) are effective on the date Contributor first
+ distributes or otherwise makes the Modifications
+ available to a third party.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent
+ license is granted: (1) for any code that Contributor
+ has deleted from the Contributor Version; (2) for
+ infringements caused by: (i) third party
+ modifications of Contributor Version, or (ii) the
+ combination of Modifications made by that Contributor
+ with other software (except as part of the
+ Contributor Version) or other devices; or (3) under
+ Patent Claims infringed by Covered Software in the
+ absence of Modifications made by that Contributor.
+
+ 3. Distribution Obligations.
+
+ 3.1. Availability of Source Code.
+
+ Any Covered Software that You distribute or otherwise make
+ available in Executable form must also be made available in
+ Source Code form and that Source Code form must be
+ distributed only under the terms of this License. You must
+ include a copy of this License with every copy of the
+ Source Code form of the Covered Software You distribute or
+ otherwise make available. You must inform recipients of any
+ such Covered Software in Executable form as to how they can
+ obtain such Covered Software in Source Code form in a
+ reasonable manner on or through a medium customarily used
+ for software exchange.
+
+ 3.2. Modifications.
+
+ The Modifications that You create or to which You
+ contribute are governed by the terms of this License. You
+ represent that You believe Your Modifications are Your
+ original creation(s) and/or You have sufficient rights to
+ grant the rights conveyed by this License.
+
+ 3.3. Required Notices.
+
+ You must include a notice in each of Your Modifications
+ that identifies You as the Contributor of the Modification.
+ You may not remove or alter any copyright, patent or
+ trademark notices contained within the Covered Software, or
+ any notices of licensing or any descriptive text giving
+ attribution to any Contributor or the Initial Developer.
+
+ 3.4. Application of Additional Terms.
+
+ You may not offer or impose any terms on any Covered
+ Software in Source Code form that alters or restricts the
+ applicable version of this License or the recipients'
+ rights hereunder. You may choose to offer, and to charge a
+ fee for, warranty, support, indemnity or liability
+ obligations to one or more recipients of Covered Software.
+ However, you may do so only on Your own behalf, and not on
+ behalf of the Initial Developer or any Contributor. You
+ must make it absolutely clear that any such warranty,
+ support, indemnity or liability obligation is offered by
+ You alone, and You hereby agree to indemnify the Initial
+ Developer and every Contributor for any liability incurred
+ by the Initial Developer or such Contributor as a result of
+ warranty, support, indemnity or liability terms You offer.
+
+
+ 3.5. Distribution of Executable Versions.
+
+ You may distribute the Executable form of the Covered
+ Software under the terms of this License or under the terms
+ of a license of Your choice, which may contain terms
+ different from this License, provided that You are in
+ compliance with the terms of this License and that the
+ license for the Executable form does not attempt to limit
+ or alter the recipient's rights in the Source Code form
+ from the rights set forth in this License. If You
+ distribute the Covered Software in Executable form under a
+ different license, You must make it absolutely clear that
+ any terms which differ from this License are offered by You
+ alone, not by the Initial Developer or Contributor. You
+ hereby agree to indemnify the Initial Developer and every
+ Contributor for any liability incurred by the Initial
+ Developer or such Contributor as a result of any such terms
+ You offer.
+
+ 3.6. Larger Works.
+
+ You may create a Larger Work by combining Covered Software
+ with other code not governed by the terms of this License
+ and distribute the Larger Work as a single product. In such
+ a case, You must make sure the requirements of this License
+ are fulfilled for the Covered Software.
+
+ 4. Versions of the License.
+
+ 4.1. New Versions.
+
+ Sun Microsystems, Inc. is the initial license steward and
+ may publish revised and/or new versions of this License
+ from time to time. Each version will be given a
+ distinguishing version number. Except as provided in
+ Section 4.3, no one other than the license steward has the
+ right to modify this License.
+
+ 4.2. Effect of New Versions.
+
+ You may always continue to use, distribute or otherwise
+ make the Covered Software available under the terms of the
+ version of the License under which You originally received
+ the Covered Software. If the Initial Developer includes a
+ notice in the Original Software prohibiting it from being
+ distributed or otherwise made available under any
+ subsequent version of the License, You must distribute and
+ make the Covered Software available under the terms of the
+ version of the License under which You originally received
+ the Covered Software. Otherwise, You may also choose to
+ use, distribute or otherwise make the Covered Software
+ available under the terms of any subsequent version of the
+ License published by the license steward.
+
+ 4.3. Modified Versions.
+
+ When You are an Initial Developer and You want to create a
+ new license for Your Original Software, You may create and
+ use a modified version of this License if You: (a) rename
+ the license and remove any references to the name of the
+ license steward (except to note that the license differs
+ from this License); and (b) otherwise make it clear that
+ the license contains terms which differ from this License.
+
+
+ 5. DISCLAIMER OF WARRANTY.
+
+ COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
+ BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+ INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
+ SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
+ PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
+ PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
+ COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
+ INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF
+ ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
+ WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+ ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+ DISCLAIMER.
+
+ 6. TERMINATION.
+
+ 6.1. This License and the rights granted hereunder will
+ terminate automatically if You fail to comply with terms
+ herein and fail to cure such breach within 30 days of
+ becoming aware of the breach. Provisions which, by their
+ nature, must remain in effect beyond the termination of
+ this License shall survive.
+
+ 6.2. If You assert a patent infringement claim (excluding
+ declaratory judgment actions) against Initial Developer or
+ a Contributor (the Initial Developer or Contributor against
+ whom You assert such claim is referred to as "Participant")
+ alleging that the Participant Software (meaning the
+ Contributor Version where the Participant is a Contributor
+ or the Original Software where the Participant is the
+ Initial Developer) directly or indirectly infringes any
+ patent, then any and all rights granted directly or
+ indirectly to You by such Participant, the Initial
+ Developer (if the Initial Developer is not the Participant)
+ and all Contributors under Sections 2.1 and/or 2.2 of this
+ License shall, upon 60 days notice from Participant
+ terminate prospectively and automatically at the expiration
+ of such 60 day notice period, unless if within such 60 day
+ period You withdraw Your claim with respect to the
+ Participant Software against such Participant either
+ unilaterally or pursuant to a written agreement with
+ Participant.
+
+ 6.3. In the event of termination under Sections 6.1 or 6.2
+ above, all end user licenses that have been validly granted
+ by You or any distributor hereunder prior to termination
+ (excluding licenses granted to You by any distributor)
+ shall survive termination.
+
+ 7. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+ (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
+ INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
+ COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
+ LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
+ CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+ LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
+ STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+ COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+ INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+ LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
+ INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
+ APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
+ NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
+ CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
+ APPLY TO YOU.
+
+ 8. U.S. GOVERNMENT END USERS.
+
+ The Covered Software is a "commercial item," as that term is
+ defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
+ computer software" (as that term is defined at 48 C.F.R.
+ 252.227-7014(a)(1)) and "commercial computer software
+ documentation" as such terms are used in 48 C.F.R. 12.212 (Sept.
+ 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
+ through 227.7202-4 (June 1995), all U.S. Government End Users
+ acquire Covered Software with only those rights set forth herein.
+ This U.S. Government Rights clause is in lieu of, and supersedes,
+ any other FAR, DFAR, or other clause or provision that addresses
+ Government rights in computer software under this License.
+
+ 9. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject
+ matter hereof. If any provision of this License is held to be
+ unenforceable, such provision shall be reformed only to the
+ extent necessary to make it enforceable. This License shall be
+ governed by the law of the jurisdiction specified in a notice
+ contained within the Original Software (except to the extent
+ applicable law, if any, provides otherwise), excluding such
+ jurisdiction's conflict-of-law provisions. Any litigation
+ relating to this License shall be subject to the jurisdiction of
+ the courts located in the jurisdiction and venue specified in a
+ notice contained within the Original Software, with the losing
+ party responsible for costs, including, without limitation, court
+ costs and reasonable attorneys' fees and expenses. The
+ application of the United Nations Convention on Contracts for the
+ International Sale of Goods is expressly excluded. Any law or
+ regulation which provides that the language of a contract shall
+ be construed against the drafter shall not apply to this License.
+ You agree that You alone are responsible for compliance with the
+ United States export administration regulations (and the export
+ control laws and regulation of any other countries) when You use,
+ distribute or otherwise make available any Covered Software.
+
+ 10. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is
+ responsible for claims and damages arising, directly or
+ indirectly, out of its utilization of rights under this License
+ and You agree to work with Initial Developer and Contributors to
+ distribute such responsibility on an equitable basis. Nothing
+ herein is intended or shall be deemed to constitute any admission
+ of liability.
+
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/MANIFEST.MF b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..6abece6be5
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Extension-Name: tuscany-sdo-impl
+Specification-Title: Tuscany SDO Implementation
+Specification-Vendor: Apache Software Foundation
+Implementation-Vendor: Apache Software Foundation
+Implementation-Vendor-Id: org.apache
+Implementation-Title: tuscany-sdo-impl
+Implementation-Version: incubating-M1
+Bundle-ManifestVersion: 2
+Bundle-Name: Tuscany SDO Implementation
+Bundle-SymbolicName: org.apache.tuscany.sdo.impl
+Bundle-Version: 1.0.0
+Bundle-Vendor: Apache Software Foundation
+Require-Bundle: org.eclipse.emf.common,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.change,
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.xsd,
+ org.apache.tuscany.sdo.spec;visibility:=reexport
+Export-Package: commonj.sdo.impl,
+ org.apache.tuscany.sdo,
+ org.apache.tuscany.sdo.helper,
+ org.apache.tuscany.sdo.impl,
+ org.apache.tuscany.sdo.test,
+ org.apache.tuscany.sdo.util
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/NOTICE b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000000..d48810c0ec
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,18 @@
+=========================================================================
+== NOTICE file corresponding to the section 4 d of ==
+== the Apache License, Version 2.0, ==
+== in this case for the Apache Tuscany distribution. ==
+=========================================================================
+
+This product includes software developed by the Apache Software Foundation
+(http://www.apache.org/).
+
+This product also includes software developed by:
+- the Eclipse Modeling Framework project (http://www.eclipse.org/emf/)
+- the Celtix project (http://celtix.objectweb.org/)
+- the Mozilla Rhino project (http://www.mozilla.org/rhino/)
+- the GlassFish JAX-WS project (https://jax-ws.dev.java.net/)
+
+Please read the LICENSE.txt file present in the root directory of this
+distribution.
+
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/README.txt b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/README.txt
new file mode 100644
index 0000000000..9b26d1690a
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/README.txt
@@ -0,0 +1,35 @@
+Apache Tuscany M1 build (May, 2006)
+===================================
+
+http://incubator.apache.org/tuscany/
+
+Tuscany is an effort undergoing incubation at the Apache Software Foundation
+(ASF), sponsored by the Web Services PMC.
+
+Incubation is required of all newly accepted projects until a further review
+indicates that the infrastructure, communications, and decision making process
+have stabilized in a manner consistent with other successful ASF projects.
+
+While incubation status is not necessarily a reflection of the completeness or
+stability of the code, it does indicate that the project has yet to be fully
+endorsed by the ASF.
+
+
+Support
+-------
+
+Any problem with this release can be reported to the Tuscany mailing list
+or in the JIRA issue tracker.
+
+Mailing list subscription:
+ tuscany-dev-subscribe@ws.apache.org
+
+Jira:
+ http://issues.apache.org/jira/browse/Tuscany
+
+
+Thank you for using Tuscany!
+
+
+The Tuscany Team.
+
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/services/commonj.sdo.impl.HelperProvider b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/services/commonj.sdo.impl.HelperProvider
new file mode 100644
index 0000000000..73693d6556
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/META-INF/services/commonj.sdo.impl.HelperProvider
@@ -0,0 +1 @@
+org.apache.tuscany.sdo.helper.HelperProviderImpl \ No newline at end of file
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/sdo-metadata.xsd b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/sdo-metadata.xsd
new file mode 100644
index 0000000000..b3daf2b894
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/main/resources/sdo-metadata.xsd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 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.
+ -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="org.apache.tuscany.sdo/metadata" xmlns:metadata="org.apache.tuscany.sdo/metadata">
+
+ <element name="sdoMetaDataGroup" type="metadata:SDOMetaDataGroup"/>
+
+ <complexType name="SDOMetaDataGroup">
+ <sequence>
+ <element name="javaMetaData" type="metadata:JavaMetaData" maxOccurs="unbounded" minOccurs="0"/>
+ <element name="xsdMetaData" type="metadata:XSDMetaData" maxOccurs="unbounded" minOccurs="0"/>
+ <element name="typeMetaData" type="metadata:TypeMetaData" maxOccurs="unbounded" minOccurs="0"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="JavaMetaData">
+ <attribute name="factoryInterface" type="string" use="optional"/>
+ <attribute name="typeInterface" type="string" use="optional"/>
+ </complexType>
+
+ <complexType name="XSDMetaData">
+ <attribute name="location" type="string" use="required"/>
+ </complexType>
+
+ <complexType name="TypeMetaData">
+ <attribute name="location" type="string" use="required"/>
+ </complexType>
+
+</schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Bar1.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Bar1.java
new file mode 100644
index 0000000000..f862837715
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Bar1.java
@@ -0,0 +1,23 @@
+/**
+ *
+ * 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;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public interface Bar1 {
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Bar2.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Bar2.java
new file mode 100644
index 0000000000..35a878015f
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Bar2.java
@@ -0,0 +1,23 @@
+/**
+ *
+ * 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;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public interface Bar2 {
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/BytecodeInterfaceGeneratorTestCase.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/BytecodeInterfaceGeneratorTestCase.java
new file mode 100644
index 0000000000..7c64a42ab3
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/BytecodeInterfaceGeneratorTestCase.java
@@ -0,0 +1,164 @@
+/**
+ *
+ * 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.lang.reflect.Method;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class BytecodeInterfaceGeneratorTestCase extends TestCase {
+ private MockType foo;
+ private BytecodeInterfaceGenerator gen;
+ private TestClassLoader cl;
+
+ public void testHeaderNoBaseClass() {
+ gen.visitType(foo);
+ gen.visitEnd();
+ Class c = cl.addClass(gen.getClassData());
+ assertEquals("Foo", c.getName());
+ assertTrue(c.isInterface());
+ assertEquals(0, c.getInterfaces().length);
+ assertEquals(0, c.getMethods().length);
+ }
+
+ public void testHeaderWithPackage() {
+ gen.visitType(new MockType("org.apache.Foo", null));
+ gen.visitEnd();
+ Class c = cl.addClass(gen.getClassData());
+ assertEquals("org.apache.Foo", c.getName());
+ assertEquals(0, c.getInterfaces().length);
+ assertEquals(0, c.getMethods().length);
+ }
+
+ public void testHeaderOneBaseClass() throws NoJavaImplementationException {
+ foo.addBaseType(new MockType("bar1", Bar1.class));
+ gen.visitType(foo);
+ gen.visitEnd();
+ Class c = cl.addClass(gen.getClassData());
+ assertEquals("Foo", c.getName());
+ assertEquals(1, c.getInterfaces().length);
+ assertEquals(Bar1.class, c.getInterfaces()[0]);
+ assertEquals(0, c.getMethods().length);
+ }
+
+ public void testHeaderMultipleBaseClass() throws NoJavaImplementationException {
+ foo.addBaseType(new MockType("bar1", Bar1.class));
+ foo.addBaseType(new MockType("bar2", Bar2.class));
+ gen.visitType(foo);
+ gen.visitEnd();
+ Class c = cl.addClass(gen.getClassData());
+ assertEquals("Foo", c.getName());
+ assertEquals(2, c.getInterfaces().length);
+ assertEquals(Bar1.class, c.getInterfaces()[0]);
+ assertEquals(Bar2.class, c.getInterfaces()[1]);
+ assertEquals(0, c.getMethods().length);
+ }
+
+ public void testBooleanProperty() throws NoJavaImplementationException, NoSuchMethodException {
+ gen.visitType(foo);
+ gen.visitProperty(new MockProperty("true", Boolean.TYPE, false, false));
+ gen.visitEnd();
+ Class c = cl.addClass(gen.getClassData());
+ assertEquals(2, c.getMethods().length);
+ Method getter = c.getMethod("isTrue", new Class[0]);
+ assertEquals(boolean.class, getter.getReturnType());
+ Method setter = c.getMethod("setTrue", new Class[] {boolean.class});
+ assertEquals(void.class, setter.getReturnType());
+ }
+
+ public void testByteArrayProperty() throws NoJavaImplementationException, NoSuchMethodException {
+ gen.visitType(foo);
+ gen.visitProperty(new MockProperty("bytes", byte[].class, false, false));
+ gen.visitEnd();
+ Class c = cl.addClass(gen.getClassData());
+ assertEquals(2, c.getMethods().length);
+ Method getter = c.getMethod("getBytes", new Class[0]);
+ assertEquals(byte[].class, getter.getReturnType());
+ Method setter = c.getMethod("setBytes", new Class[] {byte[].class});
+ assertEquals(void.class, setter.getReturnType());
+ }
+
+ public void testObjectProperty() throws NoJavaImplementationException, NoSuchMethodException {
+ gen.visitType(foo);
+ gen.visitProperty(new MockProperty("bar", Bar1.class, false, false));
+ gen.visitEnd();
+ Class c = cl.addClass(gen.getClassData());
+ assertEquals(2, c.getMethods().length);
+ Method getter = c.getMethod("getBar", new Class[0]);
+ assertEquals(Bar1.class, getter.getReturnType());
+ Method setter = c.getMethod("setBar", new Class[] {Bar1.class});
+ assertEquals(void.class, setter.getReturnType());
+ }
+
+ public void testReadOnlyProperty() throws NoJavaImplementationException, NoSuchMethodException {
+ gen.visitType(foo);
+ gen.visitProperty(new MockProperty("int", Integer.TYPE, false, true));
+ gen.visitEnd();
+ Class c = cl.addClass(gen.getClassData());
+ assertEquals(1, c.getMethods().length);
+ Method getter = c.getMethod("getInt", new Class[0]);
+ assertEquals(int.class, getter.getReturnType());
+ }
+
+ public void testManyProperty() throws NoJavaImplementationException, NoSuchMethodException {
+ gen.visitType(foo);
+ gen.visitProperty(new MockProperty("list", Integer.TYPE, true, false));
+ gen.visitEnd();
+ Class c = cl.addClass(gen.getClassData());
+ assertEquals(1, c.getMethods().length);
+ Method getter = c.getMethod("getList", new Class[0]);
+ assertEquals(List.class, getter.getReturnType());
+ }
+
+ public void testTwoProperties() throws NoJavaImplementationException, NoSuchMethodException {
+ gen.visitType(foo);
+ gen.visitProperty(new MockProperty("true", Boolean.TYPE, false, false));
+ gen.visitProperty(new MockProperty("int", Integer.TYPE, false, false));
+ gen.visitEnd();
+ Class c = cl.addClass(gen.getClassData());
+ assertEquals(4, c.getMethods().length);
+ Method getter = c.getMethod("isTrue", new Class[0]);
+ assertEquals(boolean.class, getter.getReturnType());
+ Method setter = c.getMethod("setTrue", new Class[] {boolean.class});
+ assertEquals(void.class, setter.getReturnType());
+ getter = c.getMethod("getInt", new Class[0]);
+ assertEquals(int.class, getter.getReturnType());
+ setter = c.getMethod("setInt", new Class[] {int.class});
+ assertEquals(void.class, setter.getReturnType());
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ foo = new MockType("foo", null);
+ gen = new BytecodeInterfaceGenerator();
+ cl = new TestClassLoader();
+ }
+
+ private class TestClassLoader extends ClassLoader {
+ public TestClassLoader() {
+ super(TestClassLoader.class.getClassLoader());
+ }
+
+ Class addClass(byte[] bytes) {
+ return defineClass(null, bytes, 0, bytes.length);
+ }
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Foo.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Foo.java
new file mode 100644
index 0000000000..6a401d48bb
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/Foo.java
@@ -0,0 +1,23 @@
+/**
+ *
+ * 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;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public interface Foo {
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/JavaInterfaceGeneratorTestCase.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/JavaInterfaceGeneratorTestCase.java
new file mode 100644
index 0000000000..9d67b61317
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/JavaInterfaceGeneratorTestCase.java
@@ -0,0 +1,126 @@
+/**
+ *
+ * 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.io.StringWriter;
+
+import junit.framework.TestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class JavaInterfaceGeneratorTestCase extends TestCase {
+ private static final String SEP = System.getProperty("line.separator");
+
+ private JavaInterfaceGenerator gen;
+ private StringWriter writer;
+ private MockType foo;
+
+ public void testHeaderNoBaseClass() {
+ gen.visitType(foo);
+ gen.visitEnd();
+ assertEquals(localize("public interface Foo {\n}\n"), writer.toString());
+ }
+
+ public void testHeaderWithPackage() {
+ gen.visitType(new MockType("org.apache.Foo", null));
+ gen.visitEnd();
+ assertEquals(localize("package org.apache;\n\npublic interface Foo {\n}\n"), writer.toString());
+ }
+
+ public void testHeaderOneBaseClass() throws NoJavaImplementationException {
+ foo.addBaseType(new MockType("bar1", Bar1.class));
+ gen.visitType(foo);
+ gen.visitEnd();
+ assertEquals(localize("public interface Foo extends org.apache.tuscany.sdo.codegen.Bar1 {\n}\n"), writer.toString());
+ }
+
+ public void testHeaderMultipleBaseClass() throws NoJavaImplementationException {
+ foo.addBaseType(new MockType("bar1", Bar1.class));
+ foo.addBaseType(new MockType("bar2", Bar2.class));
+ gen.visitType(foo);
+ gen.visitEnd();
+ assertEquals(localize("public interface Foo extends org.apache.tuscany.sdo.codegen.Bar1, org.apache.tuscany.sdo.codegen.Bar2 {\n}\n"), writer.toString());
+ }
+
+ public void testBooleanProperty() throws NoJavaImplementationException {
+ gen.visitType(foo);
+ gen.visitProperty(new MockProperty("true", Boolean.TYPE, false, false));
+ gen.visitEnd();
+ assertEquals(localize("public interface Foo {\n\tboolean isTrue();\n\tvoid setTrue(boolean value);\n}\n"), writer.toString());
+ }
+
+ public void testByteArrayProperty() throws NoJavaImplementationException {
+ gen.visitType(foo);
+ gen.visitProperty(new MockProperty("bytes", byte[].class, false, false));
+ gen.visitEnd();
+ assertEquals(localize("public interface Foo {\n\tbyte[] getBytes();\n\tvoid setBytes(byte[] value);\n}\n"), writer.toString());
+ }
+
+ public void testObjectProperty() throws NoJavaImplementationException {
+ gen.visitType(foo);
+ gen.visitProperty(new MockProperty("bar", Bar1.class, false, false));
+ gen.visitEnd();
+ assertEquals(localize("public interface Foo {\n\torg.apache.tuscany.sdo.codegen.Bar1 getBar();\n\tvoid setBar(org.apache.tuscany.sdo.codegen.Bar1 value);\n}\n"), writer.toString());
+ }
+
+ public void testReadOnlyProperty() throws NoJavaImplementationException {
+ gen.visitType(foo);
+ gen.visitProperty(new MockProperty("int", Integer.TYPE, false, true));
+ gen.visitEnd();
+ assertEquals(localize("public interface Foo {\n\tint getInt();\n}\n"), writer.toString());
+ }
+
+ public void testManyProperty() throws NoJavaImplementationException {
+ gen.visitType(foo);
+ gen.visitProperty(new MockProperty("list", Integer.TYPE, true, false));
+ gen.visitEnd();
+ assertEquals(localize("public interface Foo {\n\tjava.util.List getList();\n}\n"), writer.toString());
+ }
+
+ public void testTwoProperties() throws NoJavaImplementationException {
+ gen.visitType(foo);
+ gen.visitProperty(new MockProperty("true", Boolean.TYPE, false, false));
+ gen.visitProperty(new MockProperty("int", Integer.TYPE, false, false));
+ gen.visitEnd();
+ assertEquals(localize("public interface Foo {\n\tboolean isTrue();\n\tvoid setTrue(boolean value);\n\tint getInt();\n\tvoid setInt(int value);\n}\n"), writer.toString());
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ writer = new StringWriter();
+ gen = new JavaInterfaceGenerator(new PrintWriter(writer));
+ foo = new MockType("foo", null);
+ }
+
+ private String localize(String s) {
+ StringBuffer b = new StringBuffer(s.length() + s.length()/10);
+ for (int i = 0; i < s.length(); i++) {
+ char ch = s.charAt(i);
+ if (ch == '\t') {
+ b.append(" ");
+ } else if (ch == '\n') {
+ b.append(SEP);
+ } else {
+ b.append(ch);
+ }
+ }
+ return b.toString();
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/MockProperty.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/MockProperty.java
new file mode 100644
index 0000000000..5cee856217
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/MockProperty.java
@@ -0,0 +1,75 @@
+/**
+ *
+ * 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;
+
+/**
+ * @version $Rev$ $Date$
+ */
+class MockProperty implements Property {
+ private final String name;
+ private final Type type;
+ private final boolean many;
+ private final boolean readOnly;
+
+ public MockProperty(String name, Class type, boolean many, boolean readOnly) {
+ this.name = name;
+ this.type = new MockType(null, type);
+ this.many = many;
+ this.readOnly = readOnly;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public boolean isMany() {
+ return many;
+ }
+
+ public boolean isContainment() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Type getContainingType() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Object getDefault() {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isReadOnly() {
+ return readOnly;
+ }
+
+ public Property getOpposite() {
+ throw new UnsupportedOperationException();
+ }
+
+ public List /*String*/ getAliasNames() {
+ throw new UnsupportedOperationException();
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/MockType.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/MockType.java
new file mode 100644
index 0000000000..209d7021c0
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/codegen/MockType.java
@@ -0,0 +1,93 @@
+/**
+ *
+ * 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 java.util.ArrayList;
+
+import commonj.sdo.Type;
+import commonj.sdo.Property;
+
+/**
+ * @version $Rev$ $Date$
+ */
+class MockType implements Type {
+ private final String name;
+ private final Class javaClass;
+ private final List baseTypes = new ArrayList();
+
+ public MockType(String name, Class javaClass) {
+ this.javaClass = javaClass;
+ this.name = name;
+ }
+
+ public void addBaseType(Type baseType) {
+ baseTypes.add(baseType);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getURI() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Class getInstanceClass() {
+ return javaClass;
+ }
+
+ public boolean isInstance(Object object) {
+ throw new UnsupportedOperationException();
+ }
+
+ public List /*Property*/ getProperties() {
+ throw new UnsupportedOperationException();
+ }
+
+ public Property getProperty(String propertyName) {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isDataType() {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isOpen() {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isSequenced() {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isAbstract() {
+ throw new UnsupportedOperationException();
+ }
+
+ public List /*Type*/ getBaseTypes() {
+ return baseTypes;
+ }
+
+ public List /*Property*/ getDeclaredProperties() {
+ throw new UnsupportedOperationException();
+ }
+
+ public List /*String*/ getAliasNames() {
+ throw new UnsupportedOperationException();
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/ChangeSummaryTestCase.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/ChangeSummaryTestCase.java
new file mode 100644
index 0000000000..4cc8c5e842
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/ChangeSummaryTestCase.java
@@ -0,0 +1,89 @@
+/**
+ *
+ * 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.test;
+
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.net.URL;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import commonj.sdo.ChangeSummary;
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.XSDHelper;
+
+
+public class ChangeSummaryTestCase extends TestCase {
+ private final String TEST_MODEL = "/simple.xsd";
+ private final String TEST_DATA = "/simplechangesummary.xml";
+
+ /**
+ * Simple ChangeSummary test.
+ */
+ public void testChangeSummary() throws IOException {
+ // Create an empty data graph and add a root object, an instance of type Quote
+ //
+
+ DataGraph dataGraph = SDOUtil.createDataGraph();
+ DataObject quote = dataGraph.createRootObject("http://www.example.com/simple", "Quote");
+
+ // Begin logging changes
+ //
+ ChangeSummary changeSummary = dataGraph.getChangeSummary();
+ changeSummary.beginLogging();
+
+ // Modify the data graph in various fun and interesting ways
+ //
+ quote.setString("symbol", "fbnt");
+ quote.setString("companyName", "FlyByNightTechnology");
+ quote.setBigDecimal("price", new BigDecimal("1000.0"));
+ quote.setBigDecimal("open1", new BigDecimal("1000.0"));
+ quote.setBigDecimal("high", new BigDecimal("1000.0"));
+ quote.setBigDecimal("low", new BigDecimal("1000.0"));
+ quote.setDouble("volume", 1000);
+ quote.setDouble("change1", 1000);
+
+ DataObject child = quote.createDataObject("quotes");
+ child.setBigDecimal("price", new BigDecimal("2000.0"));
+
+ // Stop logging changes and print the resulting data graph to stdout
+ //
+ changeSummary.endLogging();
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ SDOUtil.saveDataGraph(dataGraph, baos, null);
+
+ assertTrue(TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(TEST_DATA)));
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ // Populate the meta data for the test (Stock Quote) model
+ URL url = getClass().getResource(TEST_MODEL);
+ InputStream inputStream = url.openStream();
+ XSDHelper.INSTANCE.define(inputStream, url.toString());
+ inputStream.close();
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/DataTypeBaseTypeTestCase.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/DataTypeBaseTypeTestCase.java
new file mode 100644
index 0000000000..faa8782a77
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/DataTypeBaseTypeTestCase.java
@@ -0,0 +1,65 @@
+/**
+ *
+ * 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.test;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import commonj.sdo.Type;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XSDHelper;
+
+
+public class DataTypeBaseTypeTestCase extends TestCase {
+ private final String TEST_MODEL = "/datatype.xsd";
+ private final String TEST_NAMESPACE = "http://www.example.com/datatype";
+
+ public void testSimpleSDOType() throws IOException
+ {
+ Type type = TypeHelper.INSTANCE.getType(TEST_NAMESPACE, "SimpleSDOType");
+ List baseTypes = type.getBaseTypes();
+ assertTrue(baseTypes.size() == 1);
+ }
+
+ public void testSimpleSDOTypeInstanceClass() throws IOException
+ {
+ Type type = TypeHelper.INSTANCE.getType(TEST_NAMESPACE, "SimpleSDOTypeInstanceClass");
+ List baseTypes = type.getBaseTypes();
+ assertTrue(baseTypes.size() == 0);
+ }
+
+ public void testSimpleSDOTypeExtendedInstanceClass() throws IOException
+ {
+ Type type = TypeHelper.INSTANCE.getType(TEST_NAMESPACE, "SimpleSDOTypeExtendedInstanceClass");
+ List baseTypes = type.getBaseTypes();
+ assertTrue(baseTypes.size() == 1);
+ }
+
+ public void setUp() throws Exception
+ {
+ URL url = getClass().getResource(TEST_MODEL);
+ InputStream inputStream = url.openStream();
+ XSDHelper.INSTANCE.define(inputStream, url.toString());
+ inputStream.close();
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/DefineTypeTestCase.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/DefineTypeTestCase.java
new file mode 100644
index 0000000000..b77b534be6
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/DefineTypeTestCase.java
@@ -0,0 +1,632 @@
+/**
+ *
+ * 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.test;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.math.BigDecimal;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+import commonj.sdo.helper.DataFactory;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
+
+public class DefineTypeTestCase extends TestCase
+{
+ private static final String CUSTOMER1_XML = "/customer1.xml";
+ private static final String CUSTOMER2_XML = "/customer2.xml";
+ private static final String OPEN_XML = "/open2.xml";
+ private static final String MIXED_XML = "/mixed2.xml";
+ private static final String MIXEDOPEN_XML = "/mixedopen.xml";
+
+ public void testDefineTypeRoundTrip() throws Exception {
+ TypeHelper types = SDOUtil.createTypeHelper();
+ DataFactory factory = SDOUtil.createDataFactory(types);
+ XMLHelper xmlHelper = SDOUtil.createXMLHelper(types);
+
+ Type intType = types.getType("commonj.sdo", "Int");
+ Type stringType = types.getType("commonj.sdo", "String");
+
+ // create a new Type for Customers
+ DataObject customerType = factory.create("commonj.sdo",
+ "Type");
+ customerType.set("uri", "http://example.com/customer");
+ customerType.set("name", "Customer");
+
+ // create a customer number property
+ DataObject custNumProperty = customerType.createDataObject("property");
+ custNumProperty.set("name", "custNum");
+ custNumProperty.set("type", intType);
+
+ // create a first name property
+ DataObject firstNameProperty =
+ customerType.createDataObject("property");
+ firstNameProperty.set("name", "firstName");
+ firstNameProperty.set("type", stringType);
+
+ // create a last name property
+ DataObject lastNameProperty = customerType.createDataObject("property");
+ lastNameProperty.set("name", "lastName");
+ lastNameProperty.set("type", stringType);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ xmlHelper.save(customerType, "commonj.sdo", "type", baos);
+
+ ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+ XMLDocument xdoc = xmlHelper.load(bais);
+
+ customerType = xdoc.getRootObject();
+
+ // now define the Customer type so that customers can be made
+ types.define(customerType);
+
+ DataObject customer1 = factory.create("http://example.com/customer",
+ "Customer");
+
+ customer1.setInt("custNum", 1);
+ customer1.set("firstName", "John");
+ customer1.set("lastName", "Adams");
+ DataObject customer2 = factory.create("http://example.com/customer",
+ "Customer");
+ customer2.setInt("custNum", 2);
+ customer2.set("firstName", "Jeremy");
+ customer2.set("lastName", "Pavick");
+
+ assertNotNull(customer1);
+ Type type = customer1.getType();
+ assertNotNull(type.getProperty("custNum"));
+ assertNotNull(type.getProperty("firstName"));
+ assertNotNull(type.getProperty("lastName"));
+ assertEquals(type.getProperty("custNum").getType(), intType);
+ assertEquals(type.getProperty("firstName").getType(), stringType);
+ assertEquals(type.getProperty("lastName").getType(), stringType);
+
+ assertNotNull(customer2);
+ type = customer2.getType();
+ assertNotNull(type.getProperty("custNum"));
+ assertNotNull(type.getProperty("firstName"));
+ assertNotNull(type.getProperty("lastName"));
+ assertEquals(type.getProperty("custNum").getType(), intType);
+ assertEquals(type.getProperty("firstName").getType(), stringType);
+ assertEquals(type.getProperty("lastName").getType(), stringType);
+
+ baos = new ByteArrayOutputStream();
+ xmlHelper.save(
+ customer1,
+ "http://example.com/customer",
+ "Customer", baos);
+ assertTrue(
+ TestUtil.equalXmlFiles(
+ new ByteArrayInputStream(baos.toByteArray()),
+ getClass().getResource(CUSTOMER1_XML)));
+
+ baos = new ByteArrayOutputStream();
+ xmlHelper.save(
+ customer2,
+ "http://example.com/customer",
+ "Customer", baos);
+ assertTrue(
+ TestUtil.equalXmlFiles(
+ new ByteArrayInputStream(baos.toByteArray()),
+ getClass().getResource(CUSTOMER2_XML)));
+ }
+
+ public void testDefineType() throws Exception
+ {
+ TypeHelper types = SDOUtil.createTypeHelper();
+ DataFactory factory = SDOUtil.createDataFactory(types);
+ XMLHelper xmlHelper = SDOUtil.createXMLHelper(types);
+
+ Type intType = types.getType("commonj.sdo", "Int");
+ Type stringType = types.getType("commonj.sdo", "String");
+
+ // create a new Type for Customers
+ DataObject customerType = factory.create("commonj.sdo",
+ "Type");
+ customerType.set("uri", "http://example.com/customer");
+ customerType.set("name", "Customer");
+
+ // create a customer number property
+ DataObject custNumProperty = customerType.createDataObject("property");
+ custNumProperty.set("name", "custNum");
+ custNumProperty.set("type", intType);
+
+ // create a first name property
+ DataObject firstNameProperty =
+ customerType.createDataObject("property");
+ firstNameProperty.set("name", "firstName");
+ firstNameProperty.set("type", stringType);
+
+ // create a last name property
+ DataObject lastNameProperty = customerType.createDataObject("property");
+ lastNameProperty.set("name", "lastName");
+ lastNameProperty.set("type", stringType);
+
+ // now define the Customer type so that customers can be made
+ types.define(customerType);
+
+ DataObject customer1 = factory.create("http://example.com/customer",
+ "Customer");
+ customer1.setInt("custNum", 1);
+ customer1.set("firstName", "John");
+ customer1.set("lastName", "Adams");
+ DataObject customer2 = factory.create("http://example.com/customer",
+ "Customer");
+ customer2.setInt("custNum", 2);
+ customer2.set("firstName", "Jeremy");
+ customer2.set("lastName", "Pavick");
+
+ assertNotNull(customer1);
+ Type type = customer1.getType();
+ assertNotNull(type.getProperty("custNum"));
+ assertNotNull(type.getProperty("firstName"));
+ assertNotNull(type.getProperty("lastName"));
+ assertEquals(type.getProperty("custNum").getType(), intType);
+ assertEquals(type.getProperty("firstName").getType(), stringType);
+ assertEquals(type.getProperty("lastName").getType(), stringType);
+
+ assertNotNull(customer2);
+ type = customer2.getType();
+ assertNotNull(type.getProperty("custNum"));
+ assertNotNull(type.getProperty("firstName"));
+ assertNotNull(type.getProperty("lastName"));
+ assertEquals(type.getProperty("custNum").getType(), intType);
+ assertEquals(type.getProperty("firstName").getType(), stringType);
+ assertEquals(type.getProperty("lastName").getType(), stringType);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ xmlHelper.save(
+ customer1,
+ "http://example.com/customer",
+ "Customer", baos);
+ assertTrue(
+ TestUtil.equalXmlFiles(
+ new ByteArrayInputStream(baos.toByteArray()),
+ getClass().getResource(CUSTOMER1_XML)));
+
+ baos = new ByteArrayOutputStream();
+ xmlHelper.save(
+ customer2,
+ "http://example.com/customer",
+ "Customer", baos);
+ assertTrue(
+ TestUtil.equalXmlFiles(
+ new ByteArrayInputStream(baos.toByteArray()),
+ getClass().getResource(CUSTOMER2_XML)));
+ }
+
+ public void testDefineDataType() throws Exception
+ {
+ TypeHelper types = SDOUtil.createTypeHelper();
+ DataFactory factory = SDOUtil.createDataFactory(types);
+ XSDHelper xsdHelper = SDOUtil.createXSDHelper(types);
+ XMLHelper xmlHelper = SDOUtil.createXMLHelper(types);
+
+ Property javaClassProperty = xsdHelper.getGlobalProperty("commonj.sdo/java", "javaClass", false);
+
+ // create a data types
+ DataObject intType = factory.create("commonj.sdo", "Type");
+ intType.set("uri", "http://example.com/customer");
+ intType.set("name", "MyIntType");
+ intType.setBoolean("dataType", true);
+ intType.set(javaClassProperty, "int");
+
+ DataObject stringType = factory.create("commonj.sdo", "Type");
+ stringType.set("uri", "http://example.com/customer");
+ stringType.set("name", "MyStringType");
+ stringType.setBoolean("dataType", true);
+ stringType.set(javaClassProperty, "java.lang.String");
+
+ // create a new Type for Customers
+ DataObject customerType = factory.create("commonj.sdo",
+ "Type");
+ customerType.set("uri", "http://example.com/customer");
+ customerType.set("name", "Customer");
+
+ // create a customer number property
+ DataObject custNumProperty = customerType.createDataObject("property");
+ custNumProperty.set("name", "custNum");
+ custNumProperty.set("type", intType);
+
+ // create a first name property
+ DataObject firstNameProperty =
+ customerType.createDataObject("property");
+ firstNameProperty.set("name", "firstName");
+ firstNameProperty.set("type", stringType);
+
+ // create a last name property
+ DataObject lastNameProperty = customerType.createDataObject("property");
+ lastNameProperty.set("name", "lastName");
+ lastNameProperty.set("type", stringType);
+
+ // now define the Customer type so that customers can be made
+ types.define(customerType);
+
+ DataObject customer1 = factory.create("http://example.com/customer",
+ "Customer");
+
+ customer1.setInt("custNum", 1);
+ customer1.set("firstName", "John");
+ customer1.set("lastName", "Adams");
+ DataObject customer2 = factory.create("http://example.com/customer",
+ "Customer");
+ customer2.setInt("custNum", 2);
+ customer2.set("firstName", "Jeremy");
+ customer2.set("lastName", "Pavick");
+
+ assertNotNull(customer1);
+ Type type = customer1.getType();
+ assertNotNull(type.getProperty("custNum"));
+ assertNotNull(type.getProperty("firstName"));
+ assertNotNull(type.getProperty("lastName"));
+ assertNotNull(type.getProperty("custNum"));
+ assertNotNull(type.getProperty("firstName"));
+ assertNotNull(type.getProperty("lastName"));
+
+ type = type.getProperty("custNum").getType();
+ assertEquals(type.getURI(), "http://example.com/customer");
+ assertEquals(type.getName(), "MyIntType");
+ assertTrue(type.isDataType());
+
+ assertNotNull(customer2);
+ type = customer2.getType();
+ assertNotNull(type.getProperty("custNum"));
+ assertNotNull(type.getProperty("firstName"));
+ assertNotNull(type.getProperty("lastName"));
+ assertNotNull(type.getProperty("custNum"));
+ assertNotNull(type.getProperty("firstName"));
+ assertNotNull(type.getProperty("lastName"));
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ xmlHelper.save(
+ customer1,
+ "http://example.com/customer",
+ "Customer", baos);
+ assertTrue(
+ TestUtil.equalXmlFiles(
+ new ByteArrayInputStream(baos.toByteArray()),
+ getClass().getResource(CUSTOMER1_XML)));
+
+ baos = new ByteArrayOutputStream();
+ xmlHelper.save(
+ customer2,
+ "http://example.com/customer",
+ "Customer", baos);
+ assertTrue(
+ TestUtil.equalXmlFiles(
+ new ByteArrayInputStream(baos.toByteArray()),
+ getClass().getResource(CUSTOMER2_XML)));
+ }
+
+ public void testFastDefineType() throws Exception
+ {
+ TypeHelper types = SDOUtil.createTypeHelper();
+ DataFactory factory = SDOUtil.createDataFactory(types);
+ XMLHelper xmlHelper = SDOUtil.createXMLHelper(types);
+
+ Type intType = types.getType("commonj.sdo", "Int");
+ Type stringType = types.getType("commonj.sdo", "String");
+
+ // create a new Type for Customers
+ Type customerType = SDOUtil.createType(types, "http://example.com/customer", "Customer", false);
+
+ // create a customer number property
+ SDOUtil.createProperty(customerType, "custNum", intType);
+
+ // create a first name property
+ SDOUtil.createProperty(customerType, "firstName", stringType);
+
+ // create a last name property
+ SDOUtil.createProperty(customerType, "lastName", stringType);
+
+ DataObject customer1 = factory.create("http://example.com/customer",
+ "Customer");
+ customer1.setInt("custNum", 1);
+ customer1.set("firstName", "John");
+ customer1.set("lastName", "Adams");
+ DataObject customer2 = factory.create("http://example.com/customer",
+ "Customer");
+ customer2.setInt("custNum", 2);
+ customer2.set("firstName", "Jeremy");
+ customer2.set("lastName", "Pavick");
+
+ assertNotNull(customer1);
+ Type type = customer1.getType();
+ assertNotNull(type.getProperty("custNum"));
+ assertNotNull(type.getProperty("firstName"));
+ assertNotNull(type.getProperty("lastName"));
+ assertEquals(type.getProperty("custNum").getType(), intType);
+ assertEquals(type.getProperty("firstName").getType(), stringType);
+ assertEquals(type.getProperty("lastName").getType(), stringType);
+
+ assertNotNull(customer2);
+ type = customer2.getType();
+ assertNotNull(type.getProperty("custNum"));
+ assertNotNull(type.getProperty("firstName"));
+ assertNotNull(type.getProperty("lastName"));
+ assertEquals(type.getProperty("custNum").getType(), intType);
+ assertEquals(type.getProperty("firstName").getType(), stringType);
+ assertEquals(type.getProperty("lastName").getType(), stringType);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ xmlHelper.save(
+ customer1,
+ "http://example.com/customer",
+ "Customer", baos);
+ assertTrue(
+ TestUtil.equalXmlFiles(
+ new ByteArrayInputStream(baos.toByteArray()),
+ getClass().getResource(CUSTOMER1_XML)));
+
+ baos = new ByteArrayOutputStream();
+ xmlHelper.save(
+ customer2,
+ "http://example.com/customer",
+ "Customer", baos);
+ assertTrue(
+ TestUtil.equalXmlFiles(
+ new ByteArrayInputStream(baos.toByteArray()),
+ getClass().getResource(CUSTOMER2_XML)));
+ }
+
+ public void testDefineSequencedType() throws Exception
+ {
+
+ TypeHelper types = SDOUtil.createTypeHelper();
+ DataFactory factory = SDOUtil.createDataFactory(types);
+ XMLHelper xmlHelper = SDOUtil.createXMLHelper(types);
+
+ Type stringType = types.getType("commonj.sdo", "String");
+ Type decimalType = types.getType("commonj.sdo", "Decimal");
+
+ // Define a new mixed type - MixedQuote
+ DataObject mixedQuoteType = factory.create("commonj.sdo", "Type");
+ mixedQuoteType.set("uri", "http://www.example.com/mixed");
+ mixedQuoteType.set("name", "MixedQuote");
+ mixedQuoteType.set("sequenced", Boolean.TRUE);
+
+ DataObject symbolProperty = mixedQuoteType.createDataObject("property");
+ symbolProperty.set("name", "symbol");
+ symbolProperty.set("type", stringType);
+
+ DataObject companyNameProperty = mixedQuoteType.createDataObject("property");
+ companyNameProperty.set("name", "companyName");
+ companyNameProperty.set("type", stringType);
+
+ DataObject priceProperty = mixedQuoteType.createDataObject("property");
+ priceProperty.set("name", "price");
+ priceProperty.set("type", decimalType);
+
+ DataObject quotesProperty = mixedQuoteType.createDataObject("property");
+ quotesProperty.set("name", "quotes");
+ quotesProperty.set("type", mixedQuoteType);
+ quotesProperty.set("many", Boolean.TRUE);
+ quotesProperty.set("containment", Boolean.TRUE);
+
+ types.define(mixedQuoteType);
+
+ DataObject quote = factory.create("http://www.example.com/mixed", "MixedQuote");
+
+ assertTrue(quote.getType().isSequenced());
+
+ Sequence sequence = quote.getSequence();
+
+ sequence.add("\n ");
+
+ quote.setString("symbol", "fbnt");
+
+ sequence.add("\n ");
+
+ quote.setString("companyName", "FlyByNightTechnology");
+
+ sequence.add("\n some text\n ");
+
+ DataObject child = quote.createDataObject("quotes");
+ child.setBigDecimal("price", new BigDecimal("2000.0"));
+
+ sequence.add("\n more text\n ");
+
+ // quote.setBigDecimal("price", new BigDecimal("1000.0"));
+ sequence.add("price", new BigDecimal("1000.0"));
+
+ sequence.add("\n");
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ xmlHelper.save(quote, "http://www.example.com/mixed", "mixedStockQuote", baos);
+ assertTrue(TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(MIXED_XML)));
+ }
+
+ public void testDefineSequencedOpenType() throws Exception
+ {
+
+ TypeHelper types = SDOUtil.createTypeHelper();
+ DataFactory factory = SDOUtil.createDataFactory(types);
+ XMLHelper xmlHelper = SDOUtil.createXMLHelper(types);
+
+ Type stringType = types.getType("commonj.sdo", "String");
+ Type decimalType = types.getType("commonj.sdo", "Decimal");
+
+ // Define a new mixed type - MixedQuote
+ DataObject mixedQuoteType = factory.create("commonj.sdo", "Type");
+ mixedQuoteType.set("uri", "http://www.example.com/mixed");
+ mixedQuoteType.set("name", "MixedOpenQuote");
+ mixedQuoteType.set("sequenced", Boolean.TRUE);
+ mixedQuoteType.set("open", Boolean.TRUE);
+
+// DataObject symbolProperty = mixedQuoteType.createDataObject("property");
+// symbolProperty.set("name", "symbol");
+// symbolProperty.set("type", stringType);
+
+ DataObject companyNameProperty = mixedQuoteType.createDataObject("property");
+ companyNameProperty.set("name", "companyName");
+ companyNameProperty.set("type", stringType);
+
+ DataObject priceProperty = mixedQuoteType.createDataObject("property");
+ priceProperty.set("name", "price");
+ priceProperty.set("type", decimalType);
+
+ DataObject quotesProperty = mixedQuoteType.createDataObject("property");
+ quotesProperty.set("name", "quotes");
+ quotesProperty.set("type", mixedQuoteType);
+ quotesProperty.set("many", Boolean.TRUE);
+ quotesProperty.set("containment", Boolean.TRUE);
+
+ types.define(mixedQuoteType);
+
+ // Define a global type
+ DataObject globalType = factory.create("commonj.sdo", "Type");
+ globalType.set("uri", "http://www.example.com/open");
+ // Don't set the type's name - null is used for types containing global properties.
+
+ DataObject symbolProperty = globalType.createDataObject("property");
+ symbolProperty.set("name", "symbol");
+ symbolProperty.set("type", stringType);
+ symbolProperty.set("containment", Boolean.TRUE);
+
+ types.define(globalType);
+
+ DataObject quote = factory.create("http://www.example.com/mixed", "MixedOpenQuote");
+
+ assertTrue(quote.getType().isSequenced());
+
+ Sequence sequence = quote.getSequence();
+
+ sequence.add("\n ");
+
+ Type definedGlobalType = types.getType("http://www.example.com/open", null);
+
+ Property definedSymbolProperty = definedGlobalType.getProperty("symbol");
+ quote.setString(definedSymbolProperty, "fbnt");
+
+ sequence.add("\n ");
+
+ quote.setString("companyName", "FlyByNightTechnology");
+
+ sequence.add("\n some text\n ");
+
+ DataObject child = quote.createDataObject("quotes");
+ child.setBigDecimal("price", new BigDecimal("2000.0"));
+
+ sequence.add("\n more text\n ");
+
+ // quote.setBigDecimal("price", new BigDecimal("1000.0"));
+ sequence.add("price", new BigDecimal("1000.0"));
+
+ sequence.add("\n");
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ xmlHelper.save(quote, "http://www.example.com/mixed", "mixedOpenStockQuote", baos);
+ assertTrue(TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(MIXEDOPEN_XML)));
+ }
+
+
+ public void testDefineOpenType() throws Exception
+ {
+ TypeHelper types = SDOUtil.createTypeHelper();
+ DataFactory factory = SDOUtil.createDataFactory(types);
+ XMLHelper xmlHelper = SDOUtil.createXMLHelper(types);
+
+ Type stringType = types.getType("commonj.sdo", "String");
+ Type decimalType = types.getType("commonj.sdo", "Decimal");
+
+ // Define a new open type - OpenQuote
+ DataObject openQuoteType = factory.create("commonj.sdo", "Type");
+ openQuoteType.set("uri", "http://www.example.com/open");
+ openQuoteType.set("name", "OpenQuote");
+ openQuoteType.set("open", Boolean.TRUE);
+ openQuoteType.setBoolean("open", true);
+
+ types.define(openQuoteType);
+
+ // Define new type - CompanyType
+ DataObject companyType = factory.create("commonj.sdo", "Type");
+ companyType.set("uri", "http://www.example.com/open");
+ companyType.set("name", "CompanyType");
+
+ // Create CompanyType property - "name"
+ DataObject nameProperty = companyType.createDataObject("property");
+ nameProperty.set("name", "name");
+ nameProperty.set("type", stringType);
+ nameProperty.set("containment", Boolean.TRUE);
+
+ types.define(companyType);
+
+ // Define a global type
+ DataObject globalType = factory.create("commonj.sdo", "Type");
+ globalType.set("uri", "http://www.example.com/open");
+ // Don't set the type's name - null is used for types containing global properties.
+
+ DataObject symbolProperty = globalType.createDataObject("property");
+ symbolProperty.set("name", "symbol");
+ symbolProperty.set("type", stringType);
+ symbolProperty.set("containment", Boolean.TRUE);
+
+ // Define a global property - company
+ DataObject companyProperty = globalType.createDataObject("property");
+ companyProperty.set("name", "company");
+ companyProperty.set("type", companyType);
+ companyProperty.set("containment", Boolean.TRUE);
+
+ // Define a global property - price
+ DataObject priceProperty = globalType.createDataObject("property");
+ priceProperty.set("name", "price");
+ priceProperty.set("type", decimalType);
+
+ types.define(globalType);
+
+ // Create DataObject instances
+ DataObject openQuote = factory.create("http://www.example.com/open", "OpenQuote");
+
+ assertTrue(openQuote.getType().isOpen());
+
+ // Get global type
+ Type definedGlobalType = types.getType("http://www.example.com/open", null);
+
+ Property definedSymbolProperty = definedGlobalType.getProperty("symbol");
+ openQuote.set(definedSymbolProperty, "s1");
+
+ Property definedCompanyProperty = definedGlobalType.getProperty("company");
+
+ DataObject company = openQuote.createDataObject(definedCompanyProperty);
+ company.setString("name", "FlyByNightTechnology");
+
+ Property definedPriceProperty = definedGlobalType.getProperty("price");
+ openQuote.setBigDecimal(definedPriceProperty, new BigDecimal("1000.0"));
+
+ assertEquals(definedPriceProperty.getType(), decimalType);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ xmlHelper.save(
+ openQuote,
+ "http://www.example.com/open",
+ "openStockQuote", baos);
+ assertTrue(
+ TestUtil.equalXmlFiles(
+ new ByteArrayInputStream(baos.toByteArray()),
+ getClass().getResource(OPEN_XML)));
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/MixedTypeTestCase.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/MixedTypeTestCase.java
new file mode 100644
index 0000000000..e46f9858e2
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/MixedTypeTestCase.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.test;
+
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.net.URL;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+import commonj.sdo.helper.DataFactory;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
+import junit.framework.TestCase;
+
+
+public class MixedTypeTestCase extends TestCase {
+ private final String TEST_MODEL = "/mixed.xsd";
+ private final String TEST_NAMESPACE = "http://www.example.com/mixed";
+ private final String TEST_DATA = "/mixed.xml";
+
+ /**
+ * Sequenced type SDO 2 test.
+ */
+ public void testSequencedType() throws IOException {
+ Type quoteType = TypeHelper.INSTANCE.getType(TEST_NAMESPACE, "MixedQuote");
+ DataObject quote = DataFactory.INSTANCE.create(quoteType);
+
+ Sequence sequence = quote.getSequence();
+
+ sequence.add("\n ");
+
+ quote.setString("symbol", "fbnt");
+
+ sequence.add("\n ");
+
+ quote.setString("companyName", "FlyByNightTechnology");
+
+ sequence.add("\n some text\n ");
+
+ DataObject child = quote.createDataObject("quotes");
+ child.setBigDecimal("price", new BigDecimal("2000.0"));
+
+ sequence.add("\n more text\n ");
+
+ // quote.setBigDecimal("price", new BigDecimal("1000.0"));
+ sequence.add("price", new BigDecimal("1000.0"));
+
+ sequence.add("\n");
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ XMLHelper.INSTANCE.save(quote, TEST_NAMESPACE, "mixedStockQuote", baos);
+
+ assertTrue(TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(TEST_DATA)));
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ // Populate the meta data for the test (Stock Quote) model
+ URL url = getClass().getResource(TEST_MODEL);
+ InputStream inputStream = url.openStream();
+ XSDHelper.INSTANCE.define(inputStream, url.toString());
+ inputStream.close();
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/OpenTypeTestCase.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/OpenTypeTestCase.java
new file mode 100644
index 0000000000..7e743e296a
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/OpenTypeTestCase.java
@@ -0,0 +1,82 @@
+/**
+ *
+ * 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.test;
+
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.net.URL;
+import java.util.Iterator;
+
+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;
+import junit.framework.TestCase;
+
+
+public class OpenTypeTestCase extends TestCase {
+ private final String TEST_MODEL = "/open.xsd";
+ private final String TEST_NAMESPACE = "http://www.example.com/open";
+ private final String TEST_DATA = "/open.xml";
+
+ /**
+ * Open content SDO 2 test.
+ */
+ public void testOpenType() throws IOException {
+ Type quoteType = TypeHelper.INSTANCE.getType(TEST_NAMESPACE, "OpenQuote");
+ DataObject quote = DataFactory.INSTANCE.create(quoteType);
+
+ quote.setString("symbol", "s1");
+
+ for (Iterator iter = quote.getInstanceProperties().iterator(); iter.hasNext();) {
+ Property property = (Property) iter.next();
+ }
+
+ Property companyProperty = XSDHelper.INSTANCE.getGlobalProperty(TEST_NAMESPACE, "company", true);
+ DataObject company = quote.createDataObject(companyProperty);
+ company.setString("name", "FlyByNightTechnology");
+
+ Property priceProperty = XSDHelper.INSTANCE.getGlobalProperty(TEST_NAMESPACE, "price", true);
+ quote.getList(priceProperty).add(new BigDecimal("1000.0"));
+
+ for (Iterator iter = quote.getInstanceProperties().iterator(); iter.hasNext();) {
+ Property property = (Property) iter.next();
+ }
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ XMLHelper.INSTANCE.save(quote, TEST_NAMESPACE, "openStockQuote", baos);
+
+ assertTrue(TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(TEST_DATA)));
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ // Populate the meta data for the test (Stock Quote) model
+ URL url = getClass().getResource(TEST_MODEL);
+ InputStream inputStream = url.openStream();
+ XSDHelper.INSTANCE.define(inputStream, url.toString());
+ inputStream.close();
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleCopyTestCase.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleCopyTestCase.java
new file mode 100644
index 0000000000..2e91a1a66f
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleCopyTestCase.java
@@ -0,0 +1,68 @@
+/**
+ *
+ * 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.test;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.CopyHelper;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
+import junit.framework.TestCase;
+
+public class SimpleCopyTestCase extends TestCase {
+
+ private final String TEST_MODEL = "/simple.xsd";
+ private final String TEST_NAMESPACE = "http://www.example.com/simple";
+ private final String QUOTE_XML = "/quote.xml";
+ private final String SHALLOW_QUOTE_XML = "/shallowquote.xml";
+
+ public void testSimpleCopy() throws IOException {
+ XMLDocument doc = XMLHelper.INSTANCE.load(getClass().getResourceAsStream(QUOTE_XML));
+ DataObject sdo = doc.getRootObject();
+
+ DataObject copiedSdo = CopyHelper.INSTANCE.copyShallow(sdo);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ XMLHelper.INSTANCE.save(copiedSdo, TEST_NAMESPACE, "stockQuote", baos);
+ assertTrue(TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(SHALLOW_QUOTE_XML)));
+ assertFalse(TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(QUOTE_XML)));
+
+ copiedSdo = CopyHelper.INSTANCE.copy(sdo);
+
+ baos.reset();
+ XMLHelper.INSTANCE.save(copiedSdo, TEST_NAMESPACE, "stockQuote", baos);
+ assertFalse(TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(SHALLOW_QUOTE_XML)));
+ assertTrue(TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(QUOTE_XML)));
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ // Populate the meta data for the test (Stock Quote) model
+ URL url = getClass().getResource(TEST_MODEL);
+ InputStream inputStream = url.openStream();
+ XSDHelper.INSTANCE.define(inputStream, url.toString());
+ inputStream.close();
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleDynamicTestCase.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleDynamicTestCase.java
new file mode 100644
index 0000000000..d86b793087
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleDynamicTestCase.java
@@ -0,0 +1,78 @@
+/**
+ *
+ * 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.test;
+
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.net.URL;
+
+import junit.framework.TestCase;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Type;
+import commonj.sdo.helper.DataFactory;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
+
+
+public class SimpleDynamicTestCase extends TestCase {
+ private final String TEST_MODEL = "/simple.xsd";
+ private final String TEST_NAMESPACE = "http://www.example.com/simple";
+ private final String QUOTE_XML = "/quote.xml";
+
+ /**
+ * Simple Dynamic SDO 2 test.
+ */
+ public void testDynamic() throws IOException {
+ Type quoteType = TypeHelper.INSTANCE.getType(TEST_NAMESPACE, "Quote");
+ DataObject quote = DataFactory.INSTANCE.create(quoteType);
+
+ quote.setString("symbol", "fbnt");
+ quote.setString("companyName", "FlyByNightTechnology");
+ quote.setBigDecimal("price", new BigDecimal("1000.0"));
+ quote.setBigDecimal("open1", new BigDecimal("1000.0"));
+ quote.setBigDecimal("high", new BigDecimal("1000.0"));
+ quote.setBigDecimal("low", new BigDecimal("1000.0"));
+ quote.setDouble("volume", 1000);
+ quote.setDouble("change1", 1000);
+
+ DataObject child = quote.createDataObject("quotes");
+ child.setBigDecimal("price", new BigDecimal("2000.0"));
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ XMLHelper.INSTANCE.save(quote, TEST_NAMESPACE, "stockQuote", baos);
+
+ assertTrue(TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(QUOTE_XML)));
+ }
+
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ // Populate the meta data for the test (Stock Quote) model
+ URL url = getClass().getResource(TEST_MODEL);
+ InputStream inputStream = url.openStream();
+ XSDHelper.INSTANCE.define(inputStream, url.toString());
+ inputStream.close();
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleEqualityTestCase.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleEqualityTestCase.java
new file mode 100644
index 0000000000..ac05b362d9
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SimpleEqualityTestCase.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.test;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.EqualityHelper;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
+import junit.framework.TestCase;
+
+public class SimpleEqualityTestCase extends TestCase {
+ private static final String TEST_MODEL = "/simple.xsd";
+ private static final String QUOTE_XML = "/quote.xml";
+ private static final String SHALLOW_QUOTE_XML = "/shallowquote.xml";
+
+ public void testEquality() throws IOException {
+
+ XMLDocument doc = XMLHelper.INSTANCE.load(getClass().getResourceAsStream(QUOTE_XML));
+ DataObject sdo = doc.getRootObject();
+
+ doc = XMLHelper.INSTANCE.load(getClass().getResourceAsStream(SHALLOW_QUOTE_XML));
+ DataObject shallowSdo = doc.getRootObject();
+
+ boolean result = EqualityHelper.INSTANCE.equalShallow(sdo, shallowSdo);
+ assertTrue(result);
+
+ result = EqualityHelper.INSTANCE.equal(sdo, shallowSdo);
+ assertFalse(result);
+ }
+
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ // Populate the meta data for the test (Stock Quote) model
+ URL url = getClass().getResource(TEST_MODEL);
+ InputStream inputStream = url.openStream();
+ XSDHelper.INSTANCE.define(inputStream, url.toString());
+ inputStream.close();
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SubstitutionValues.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SubstitutionValues.java
new file mode 100644
index 0000000000..acc08c1056
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/SubstitutionValues.java
@@ -0,0 +1,24 @@
+package org.apache.tuscany.sdo.test;
+
+import java.net.URL;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Type;
+import commonj.sdo.helper.XSDHelper;
+import commonj.sdo.helper.DataFactory;
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+public final class SubstitutionValues extends junit.framework.TestCase
+{
+ public void test() throws java.io.IOException
+ {
+ URL url = getClass().getResource("/SubstitutionValues.xsd");
+ XSDHelper.INSTANCE.define(url.openStream(), url.toString());
+
+ final DataObject object = DataFactory.INSTANCE.create("http://www.apache.org/tuscany/SubstitutionValues", "TestObject");
+ final Type type = object.getType();
+
+ assertNotNull( SDOUtil.getSubstitutionValues(object, type.getProperty("groupHead")));
+ assertNull( SDOUtil.getSubstitutionValues(object, type.getProperty("nonGroupHead")));
+ }
+} \ No newline at end of file
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TestUtil.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TestUtil.java
new file mode 100644
index 0000000000..d2ac035e02
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TestUtil.java
@@ -0,0 +1,282 @@
+/**
+ *
+ * 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.test;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.FactoryConfigurationError;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.DocumentType;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+public class TestUtil
+{
+ private static void getAllNodes(NodeList nodeList, List nodes)
+ {
+ int length = nodeList.getLength();
+ if (length == 0)
+ {
+ return;
+ }
+
+ for (int i=0; i<length; i++)
+ {
+ Node node = nodeList.item(i);
+ nodes.add(node);
+ getAllNodes(node.getChildNodes(), nodes);
+ } // for
+ }
+
+ private static boolean equalNamedNodeMap(NamedNodeMap mapA, NamedNodeMap mapB) {
+ if (mapA == null) {
+ if (mapB == null) {
+ return true;
+ }
+ return false;
+ }
+ if (mapA.getLength() != mapB.getLength()) {
+ return false;
+ }
+ for (int i = 0; i < mapA.getLength(); i++) {
+ Node trialNode = mapA.item(i);
+ if (trialNode == null) {
+ return false;
+ }
+ Node checkNode = mapB.getNamedItem(trialNode.getNodeName());
+ if (checkNode == null) {
+ return false;
+ }
+ if (!equalNode(trialNode, checkNode)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private static boolean equalNode(Node nodeA, Node nodeB) {
+ if (nodeA == null) {
+ if (nodeB == null) {
+ return true;
+ }
+ return false;
+ }
+ // following is intended to provide same function as 1.5 isEqualNode()
+ if (nodeA.getNodeType() != nodeB.getNodeType()) {
+ return false;
+ }
+ if (!equalString(nodeA.getNodeName(), nodeB.getNodeName())) {
+ return false;
+ }
+ if (!equalString(nodeA.getLocalName(), nodeB.getLocalName())) {
+ return false;
+ }
+ if (!equalString(nodeA.getNamespaceURI(), nodeB.getNamespaceURI())) {
+ return false;
+ }
+ if (!equalString(nodeA.getNamespaceURI(), nodeB.getNamespaceURI())) {
+ return false;
+ }
+ if (!equalString(nodeA.getPrefix(), nodeB.getPrefix())) {
+ return false;
+ }
+ if (!equalString(nodeA.getNodeValue(), nodeB.getNodeValue())) {
+ return false;
+ }
+ if (!equalNamedNodeMap(nodeA.getAttributes(), nodeB.getAttributes())) {
+ return false;
+ }
+ if (!equalNodeList(nodeA.getChildNodes(), nodeB.getChildNodes())) {
+ return false;
+ }
+ if (nodeA.getNodeType() == Node.DOCUMENT_TYPE_NODE) {
+ DocumentType documentTypeA = (DocumentType) nodeA;
+ DocumentType documentTypeB = (DocumentType) nodeB;
+ if (!equalString(documentTypeA.getPublicId(), documentTypeB.getPublicId())) {
+ return false;
+ }
+ if (!equalString(documentTypeA.getSystemId(), documentTypeB.getSystemId())) {
+ return false;
+ }
+ if (!equalString(documentTypeA.getInternalSubset(), documentTypeB.getInternalSubset())) {
+ return false;
+ }
+ if (!equalNamedNodeMap(documentTypeA.getEntities(), documentTypeB.getEntities())) {
+ return false;
+ }
+ if (!equalNamedNodeMap(documentTypeA.getNotations(), documentTypeB.getNotations())) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private static boolean equalNodeList(NodeList nodeListA, NodeList nodeListB) {
+ if (nodeListA == null) {
+ if (nodeListB == null) {
+ return true;
+ }
+ return false;
+ }
+ return equalNodes(nodeListA, nodeListB);
+ }
+
+ private static boolean equalString(String stringA, String stringB) {
+ if (stringA == null) {
+ if (stringB == null) {
+ return true;
+ }
+ return false;
+ }
+ return stringA.equals(stringB);
+ }
+
+ private static boolean equalNodes(NodeList sourceNodeList, NodeList targetNodeList)
+ {
+ ArrayList sourceNodes = new ArrayList();
+ ArrayList targetNodes = new ArrayList();
+
+ getAllNodes(sourceNodeList, sourceNodes);
+ getAllNodes(targetNodeList, targetNodes);
+
+ int sourceLength = sourceNodes.size();
+ int targetLength = targetNodes.size();
+
+ if (sourceLength != targetLength)
+ {
+ return false;
+ }
+
+ for (int i=0; i<sourceLength; i++)
+ {
+ Node sourceNode = (Node)sourceNodes.get(i);
+ Node targetNode = (Node)targetNodes.get(i);
+
+ /* remove comment when migrated to Java 1.5
+ if (!sourceNode.isEqualNode(targetNode))
+ {
+ return false;
+ }
+ */
+ // following is intended as 1.4 equivalent of isEqualNode()
+ if (!equalNode(sourceNode, targetNode))
+ {
+ return false;
+ }
+ } // for
+
+ return true;
+ }
+
+ public static boolean equalXmlFiles(URL source, URL target)
+ {
+ try {
+ return equalXmlFiles(source.openStream(), target.openStream());
+ }
+ catch (IOException e)
+ {
+ return false;
+ }
+ }
+
+ public static boolean equalXmlFiles(InputStream sourceStream, URL target)
+ {
+ try {
+ return equalXmlFiles(sourceStream, target.openStream());
+ }
+ catch (IOException e)
+ {
+ return false;
+ }
+ }
+
+ public static boolean equalXmlFiles(URL source, InputStream targetStream)
+ {
+ try {
+ return equalXmlFiles(source.openStream(), targetStream);
+ }
+ catch (IOException e)
+ {
+ return false;
+ }
+ }
+
+ public static boolean equalXmlFiles(InputStream sourceStream, InputStream targetStream)
+ {
+ DocumentBuilder builder;
+ Document sourceDocument;
+ Document targetDocument;
+
+ try {
+ builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ sourceDocument = builder.parse(sourceStream);
+ targetDocument = builder.parse(targetStream);
+ }
+ catch (FactoryConfigurationError fce) {
+ return false;
+ }
+ catch (ParserConfigurationException ce) {
+ return false;
+ }
+ catch (SAXException se)
+ {
+ return false;
+ }
+ catch (IOException ie)
+ {
+ return false;
+ }
+
+ sourceDocument.normalize();
+ targetDocument.normalize();
+
+ /* remove comment when migrated to Java 1.5
+ if (!sourceDocument.getXmlVersion().equals(targetDocument.getXmlVersion()))
+ {
+ return false;
+ }
+
+ String sourceXmlEncoding = sourceDocument.getXmlEncoding();
+ String targetXmlEncoding = targetDocument.getXmlEncoding();
+
+ if (sourceXmlEncoding != null && targetXmlEncoding != null &&
+ sourceXmlEncoding.equalsIgnoreCase(targetXmlEncoding))
+ {
+ // continue
+ }
+ else
+ {
+ return false;
+ }
+ */
+
+ NodeList sourceNodes = sourceDocument.getChildNodes();
+ NodeList targetNodes = targetDocument.getChildNodes();
+
+ return equalNodes(sourceNodes, targetNodes);
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TypeRoundTripTest.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TypeRoundTripTest.java
new file mode 100644
index 0000000000..b14ae165dc
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TypeRoundTripTest.java
@@ -0,0 +1,161 @@
+/**
+ *
+ * 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.test;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+
+import commonj.sdo.Type;
+import commonj.sdo.helper.TypeHelper;
+
+public class TypeRoundTripTest extends TestCase {
+
+ private static class Test {
+ Type type;
+ String value;
+ Object obj;
+ Comparator comp;
+
+ Test(Type type, String value, Object obj) {
+ this.type = type;
+ this.value = value;
+ this.obj = obj;
+ }
+
+ Test(Type type, String value, Object obj, Comparator comp) {
+ this.type = type;
+ this.value = value;
+ this.obj = obj;
+ this.comp = comp;
+ }
+ }
+
+ private static class ListComparator implements Comparator {
+ public int compare(Object list1, Object list2) {
+ int answer = 1;
+ if (list1 instanceof List && list2 instanceof List) {
+ List l1 = (List) list1;
+ List l2 = (List) list2;
+ if (l1.size() == l2.size()) {
+ for (int n = 0; n < l1.size(); n++) {
+ if (!l1.get(n).equals(l2.get(n))) {
+ answer = 0;
+ break;
+ }
+ }
+ } else {
+ answer = 0;
+ }
+ } else {
+ answer = 0;
+ }
+ return answer;
+ }
+ }
+
+ private static class BytesComparator implements Comparator {
+ public int compare(Object o1, Object o2) {
+ o2 = new String((byte[])o2);
+ if (o1.equals(o2)) return 1;
+ else return 0;
+ }
+ }
+
+ private static class DateComparator implements Comparator {
+ public int compare(Object o1, Object o2) {
+ int answer = 1;
+ try {
+ if (o1 instanceof String && o2 instanceof Date) {
+ SimpleDateFormat sdf =
+ new SimpleDateFormat("yyyy-MM-dd'Z'");
+ o1 = sdf.parse((String)o1);
+ if (!o1.equals(o2)) answer = 0;
+ } else {
+ answer = 0;
+ }
+ } catch (Exception e) {}
+ return answer;
+ }
+ }
+
+ public void testTypeRoundTrips() throws Exception {
+ String URI = "commonj.sdo";
+ TypeHelper types = TypeHelper.INSTANCE;
+ List list = new ArrayList();
+ list.add("foo");
+ list.add("bar");
+ list.add("test");
+ Test[] tests = {
+ new Test(types.getType(URI, "Boolean"), "true", new Boolean(true)),
+ new Test(types.getType(URI, "Byte"), "49", new Byte((byte)49)),
+ new Test(types.getType(URI, "Bytes"), "Zm9v", "foo", new BytesComparator()),
+ new Test(types.getType(URI, "Character"), "a", new Character('a')),
+ new Test(types.getType(URI, "Date"), "2005-12-12Z", "2005-12-12Z", new DateComparator()),
+ new Test(types.getType(URI, "DateTime"), "2005-12-12T12:12:12Z", "2005-12-12T12:12:12Z"),
+ new Test(types.getType(URI, "Day"), "---12", "---12"),
+ new Test(types.getType(URI, "Decimal"), "12.12", new BigDecimal("12.12")),
+ new Test(types.getType(URI, "Double"), "12.12", new Double(12.12)),
+ new Test(types.getType(URI, "Duration"), "P5Y2M10D", "P5Y2M10D"),
+ new Test(types.getType(URI, "Float"), "12.12", new Float(12.12f)),
+ new Test(types.getType(URI, "Int"), "12", new Integer(12)),
+ new Test(types.getType(URI, "Integer"), "12", new BigInteger("12")),
+ new Test(types.getType(URI, "Long"), "12", new Long(12l)),
+ new Test(types.getType(URI, "Month"), "--12", "--12"),
+ new Test(types.getType(URI, "MonthDay"), "--12-12", "--12-12"),
+ new Test(types.getType(URI, "Object"), "test", "test"),
+ new Test(types.getType(URI, "Short"), "12", new Short((short)12)),
+ new Test(types.getType(URI, "String"), "test", "test"),
+ new Test(types.getType(URI, "Strings"), "foo bar test", list, new ListComparator()),
+ new Test(types.getType(URI, "Time"), "12:12:12.12", "12:12:12.12"),
+ new Test(types.getType(URI, "URI"), "http://example.org", "http://example.org"),
+ new Test(types.getType(URI, "Year"), "2005", "2005"),
+ new Test(types.getType(URI, "YearMonth"), "2005-12", "2005-12"),
+ new Test(types.getType(URI, "YearMonthDay"), "2005-12-12", "2005-12-12")
+ };
+
+ for (int n = 0; n < tests.length; n++) {
+ assertEquals(
+ SDOUtil.convertToString(tests[n].type, SDOUtil.createFromString(tests[n].type, tests[n].value)),
+ tests[n].value
+ );
+
+ //System.out.print(".");
+
+ if (tests[n].comp == null) {
+ assertEquals(
+ SDOUtil.createFromString(tests[n].type, SDOUtil.convertToString(tests[n].type, tests[n].obj)),
+ tests[n].obj
+ );
+ } else {
+ String o1 = SDOUtil.convertToString(tests[n].type, tests[n].obj);
+ Object o2 = SDOUtil.createFromString(tests[n].type, o1);
+ assertEquals(tests[n].comp.compare(tests[n].obj, o2), 1);
+ }
+ }
+
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XMLDocumentTestCase.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XMLDocumentTestCase.java
new file mode 100644
index 0000000000..c4f2cc4586
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XMLDocumentTestCase.java
@@ -0,0 +1,107 @@
+/**
+ *
+ * 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.test;
+
+
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+
+
+public class XMLDocumentTestCase extends TestCase
+{
+ private final String TEST_XML_DOCUMENT = "/XMLDocumentTestCase.xml";
+
+ // remember that NS1... and NS2... items are expected in sorted order by name
+ private final String NS1_SCHEMA_NAME = "http://www.example.com/open";
+
+ private final String NS1_SCHEMA_LOCATION = "/open.xsd";
+
+ private final String NS2_SCHEMA_NAME = "http://www.example.com/xmlDocumentSchemaLocation";
+
+ private final String NS2_SCHEMA_LOCATION = "/XMLDocumentSchemaLocation.xsd";
+
+ private final String NS_SET_NAME_LOCATION = "namespace schemaLocation";
+
+ //private final String NNS_SCHEMA_LOCATION = "http://www.example.com/XMLDocumentNoNamespaceSchemaLocation.xsd";
+ private final String NNS_SCHEMA_LOCATION = "/XMLDocumentNoNamespaceSchemaLocation.xsd";
+
+ private final String NNS_SET_LOCATION = "noNamespaceSchemaLocation";
+
+ /**
+ * This method will load an xml document consisting of a xsi:schemaLocation and
+ * xsi:noNamespaceSchemaLocation defined. It will then use the XMLDocument API to get and
+ * set the schemaLocation property.
+ *
+ * @throws IOException
+ */
+ public void testSchemaLocation() throws IOException
+ {
+ // load the xml document which has xsi:noNamespaceSchemaLocation and xsi:schemaLocation defined
+ XMLDocument doc = XMLHelper.INSTANCE.load(getClass().getResourceAsStream(TEST_XML_DOCUMENT));
+
+ // get the schemaLocation
+ assertEquals(NS1_SCHEMA_NAME + " " + NS1_SCHEMA_LOCATION + " " + NS2_SCHEMA_NAME + " " + NS2_SCHEMA_LOCATION, doc.getSchemaLocation());
+
+ // set the schemaLocation to another value and test to see if the value was set
+ doc.setSchemaLocation(NS_SET_NAME_LOCATION);
+ assertEquals(NS_SET_NAME_LOCATION, doc.getSchemaLocation());
+
+ // remove the schemaLocation and ensure it returns null
+ doc.setSchemaLocation(null);
+ assertNull(doc.getSchemaLocation());
+
+ // ensure changes to schemaLocation have not changed noNamespaceSchemaLocation
+ assertEquals(NNS_SCHEMA_LOCATION, doc.getNoNamespaceSchemaLocation());
+ }
+
+ /**
+ * This method will load an xml document consisting of a xsi:schemaLocation and
+ * xsi:noNamespaceSchemaLocation defined. It will then use the XMLDocument API to get and
+ * set the noNamespaceSchemaLocation property.
+ *
+ * @throws IOException
+ */
+ public void testNoNamespaceSchemaLocation() throws IOException
+ {
+ // load the xml document which has xsi:noNamespaceSchemaLocation and xsi:schemaLocation defined
+ XMLDocument doc = XMLHelper.INSTANCE.load(getClass().getResourceAsStream(TEST_XML_DOCUMENT));
+
+ // get the noNamespaceSchemaLocation
+ assertEquals(NNS_SCHEMA_LOCATION, doc.getNoNamespaceSchemaLocation());
+
+ // set the noNameSpaceSchemaLocation to another value and test to see if the value was set
+ doc.setNoNamespaceSchemaLocation(NNS_SET_LOCATION);
+ assertEquals(NNS_SET_LOCATION, doc.getNoNamespaceSchemaLocation());
+
+ // remove the noNameSpaceSchemaLocation and ensure it returns null
+ doc.setNoNamespaceSchemaLocation(null);
+ assertNull(doc.getNoNamespaceSchemaLocation());
+
+ // ensure changes to noNameSpaceSchemaLocation have not changed schemaLocation
+ assertEquals(NS1_SCHEMA_NAME + " " + NS1_SCHEMA_LOCATION + " " + NS2_SCHEMA_NAME + " " + NS2_SCHEMA_LOCATION, doc.getSchemaLocation());
+ }
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XMLStreamHelperTestCase.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XMLStreamHelperTestCase.java
new file mode 100644
index 0000000000..d318f4ba73
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XMLStreamHelperTestCase.java
@@ -0,0 +1,125 @@
+package org.apache.tuscany.sdo.test;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.net.URL;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sdo.helper.XMLStreamHelper;
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
+
+public class XMLStreamHelperTestCase extends TestCase {
+
+ private XSDHelper xsdHelper = XSDHelper.INSTANCE;
+
+ private TypeHelper typeHelper = TypeHelper.INSTANCE;
+
+ private XMLStreamHelper streamHelper;
+
+ private XMLInputFactory inputFactory;
+
+ private XMLOutputFactory outputFactory;
+
+ private QName module = new QName("http://foo", "module");
+
+ private QName name = new QName("http://bar", "implementation.mock");
+
+ private String testName = "foo-ext";
+ // private String testName = "complex";
+
+ private String xml;
+
+ // = "<module name=\"m\" xmlns=\"http://foo\" xmlns:bar=\"http://bar\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
+ // xsi:schemaLocation=\"http://bar foo-ext.xsd http://foo foo.xsd \"><component name=\"c\"><bar:implementation.mock
+ // myAttr=\"helloworld.HelloWorldImpl\" listAttr=\"1 2\">1<bar:myElement>Dummy</bar:myElement>2</bar:implementation.mock></component></module>";
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ streamHelper = SDOUtil.createXMLStreamHelper(typeHelper);
+ URL url = getClass().getClassLoader().getResource(testName + ".xsd");
+ xsdHelper.define(url.openStream(), url.toExternalForm());
+ inputFactory = XMLInputFactory.newInstance();
+ outputFactory = XMLOutputFactory.newInstance();
+ url = getClass().getClassLoader().getResource(testName + ".xml");
+ InputStreamReader reader = new InputStreamReader(url.openStream());
+ StringBuffer stringBuffer = new StringBuffer();
+ char buf[] = new char[1024];
+ int size;
+ while ((size = reader.read(buf)) != -1)
+ stringBuffer.append(buf, 0, size);
+ xml = stringBuffer.toString();
+ reader.close();
+ }
+
+ public void testLoadObject() throws Exception {
+ XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(xml));
+ int event = reader.getEventType();
+ while (!(event == XMLStreamConstants.START_ELEMENT && reader.getName().equals(name)) && reader.hasNext()) {
+ event = reader.next();
+ }
+ DataObject dataObject = streamHelper.loadObject(reader);
+ Assert.assertNotNull(dataObject);
+ Assert.assertTrue(dataObject.getString("myAttr").equals("helloworld.HelloWorldImpl"));
+ }
+
+ public void testLoad() throws Exception {
+ XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(xml));
+ XMLDocument document = streamHelper.load(reader);
+ Assert.assertNotNull(document);
+ Assert.assertEquals(document.getRootElementURI(), module.getNamespaceURI());
+ Assert.assertEquals(document.getRootElementName(), module.getLocalPart());
+ DataObject moduleObject = document.getRootObject();
+ List components = moduleObject.getList("component");
+ DataObject componentObject = (DataObject) components.get(0);
+ // componentObject.getDataObject("implementation.mock");
+ DataObject implObject = (DataObject) componentObject.getSequence(0).getValue(0);
+ Assert.assertTrue(implObject.getString("myAttr").equals("helloworld.HelloWorldImpl"));
+ }
+
+ public void testSave() throws XMLStreamException {
+ XMLDocument document = XMLHelper.INSTANCE.load(xml);
+ StringWriter writer = new StringWriter();
+ XMLStreamWriter streamWriter = outputFactory.createXMLStreamWriter(writer);
+ streamHelper.save(document, streamWriter);
+ streamWriter.flush();
+ String xmlStr = writer.toString();
+ // System.out.println(xmlStr);
+ Assert.assertTrue(xmlStr.contains("myAttr=\"helloworld.HelloWorldImpl\""));
+ }
+
+ public void testSaveObject() throws XMLStreamException {
+ XMLDocument document = XMLHelper.INSTANCE.load(xml);
+ DataObject moduleObject = document.getRootObject();
+ List components = moduleObject.getList("component");
+ DataObject componentObject = (DataObject) components.get(0);
+ StringWriter writer = new StringWriter();
+ XMLStreamWriter streamWriter = outputFactory.createXMLStreamWriter(writer);
+ streamHelper.saveObject(componentObject, streamWriter);
+ streamWriter.flush();
+ Assert.assertTrue(writer.toString().contains("myAttr=\"helloworld.HelloWorldImpl\""));
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XPathTestCase.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XPathTestCase.java
new file mode 100644
index 0000000000..7940663290
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XPathTestCase.java
@@ -0,0 +1,125 @@
+/**
+ *
+ * Copyright 2006 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.test;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import junit.framework.TestCase;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
+
+public class XPathTestCase extends TestCase {
+
+ private final String TEST_MODEL = "/xpath.xsd";
+ private final String XPATH_XML = "/xpath.xml";
+
+ /**
+ * The presence or absence of the @ sign in a path has no meaning.
+ * Properties are always matched by name independent of their XML representation.
+ * @throws IOException
+ */
+ public void testAtSignProperty() throws IOException {
+ TypeHelper typeHelper = SDOUtil.createTypeHelper();
+ XSDHelper xsdHelper = SDOUtil.createXSDHelper(typeHelper);
+ XMLHelper xmlHelper = SDOUtil.createXMLHelper(typeHelper);
+
+ URL url = getClass().getResource(TEST_MODEL);
+ InputStream inputStream = url.openStream();
+ xsdHelper.define(inputStream, url.toString());
+
+ inputStream.close();
+
+ XMLDocument doc = xmlHelper.load(getClass().getResourceAsStream(XPATH_XML));
+
+ DataObject drive = doc.getRootObject();
+ DataObject folder1 = (DataObject) drive.get("Folder.1");
+ String value = folder1.getString("@creation_date");
+
+ assertEquals(value, "2000-03-23");
+ }
+
+ public void testListIndexing() throws Exception {
+ TypeHelper typeHelper = SDOUtil.createTypeHelper();
+ XSDHelper xsdHelper = SDOUtil.createXSDHelper(typeHelper);
+ XMLHelper xmlHelper = SDOUtil.createXMLHelper(typeHelper);
+
+ URL url = getClass().getResource(TEST_MODEL);
+ InputStream inputStream = url.openStream();
+ xsdHelper.define(inputStream, url.toString());
+
+ inputStream.close();
+
+ XMLDocument doc = xmlHelper.load(getClass().getResourceAsStream(XPATH_XML));
+
+ DataObject root = doc.getRootObject();
+ DataObject folder1 = root.getDataObject("Folder[1]");
+ assertNotNull(folder1);
+ DataObject folder1a = root.getDataObject("Folder.0");
+ assertEquals(folder1, folder1a);
+ folder1a = root.getDataObject("Folder[FolderName=Folder00000000000]");
+ assertEquals(folder1, folder1a);
+
+ DataObject noFolder = null;
+
+ try {
+ noFolder = root.getDataObject("Folder[3]");
+ assertFalse("bad indexing passed", true);
+ } catch (IndexOutOfBoundsException iobe) {
+ // as expected
+ } catch (Exception e) {
+ assertFalse("bad indexing generated wrong exception" + e, true);
+ }
+
+ try {
+ noFolder = root.getDataObject("Folder[0]");
+ assertFalse("bad indexing passed", true);
+ } catch (IndexOutOfBoundsException iobe) {
+ // as expected
+ } catch (Exception e) {
+ assertFalse("bad indexing generated wrong exception" + e, true);
+ }
+
+ try {
+ noFolder = root.getDataObject("Folder.2");
+ assertFalse("bad indexing passed", true);
+ } catch (IndexOutOfBoundsException iobe) {
+ // as expected
+ } catch (Exception e) {
+ assertFalse("bad indexing generated wrong exception" + e, true);
+ }
+
+ try {
+ noFolder = root.getDataObject("Folder.-1");
+ assertFalse("bad indexing passed", true);
+ } catch (IndexOutOfBoundsException iobe) {
+ // as expected
+ } catch (Exception e) {
+ assertFalse("bad indexing generated wrong exception" + e, true);
+ }
+
+ noFolder = root.getDataObject("Folder[FolderName=foo]");
+ assertNull(noFolder);
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XSDHelperTestCase.java b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XSDHelperTestCase.java
new file mode 100644
index 0000000000..16a2cbd195
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/XSDHelperTestCase.java
@@ -0,0 +1,61 @@
+/**
+ *
+ * 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.test;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.List;
+
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import junit.framework.TestCase;
+
+import commonj.sdo.helper.XSDHelper;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class XSDHelperTestCase extends TestCase {
+ private static final String TEST_MODEL = "/simple.xsd";
+ private URL modelURL;
+
+ public void testDefineWithLocation() throws IOException {
+ XSDHelper xsdHelper = SDOUtil.createXSDHelper(SDOUtil.createTypeHelper());
+ List types = xsdHelper.define(modelURL.openStream(), modelURL.toString());
+ assertEquals(2, types.size());
+ }
+
+ public void testDefineWithNoLocation() {
+ XSDHelper xsdHelper = SDOUtil.createXSDHelper(SDOUtil.createTypeHelper());
+ List types = xsdHelper.define(getClass().getResourceAsStream(TEST_MODEL), null);
+ assertEquals(2, types.size());
+ }
+
+ public void testDuplicateDefineWithLocation() throws IOException {
+ XSDHelper xsdHelper = SDOUtil.createXSDHelper(SDOUtil.createTypeHelper());
+ List types = xsdHelper.define(modelURL.openStream(), modelURL.toString());
+ assertEquals(2, types.size());
+
+ List types2 = xsdHelper.define(modelURL.openStream(), modelURL.toString());
+ assertEquals(0, types2.size());
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ modelURL = getClass().getResource(TEST_MODEL);
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/SubstitutionValues.xsd b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/SubstitutionValues.xsd
new file mode 100644
index 0000000000..ec4a25740f
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/SubstitutionValues.xsd
@@ -0,0 +1,12 @@
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.apache.org/tuscany/SubstitutionValues"
+ xmlns:sv="http://www.apache.org/tuscany/SubstitutionValues">
+ <element name="groupHead" type="string"/>
+ <complexType name="TestObject">
+ <sequence>
+ <element ref="sv:groupHead"/>
+ <element name="nonGroupHead" type="string"/>
+ </sequence>
+ </complexType>
+ <element name="groupMember" type="string" substitutionGroup="sv:groupHead"/>
+</schema> \ No newline at end of file
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/XMLDocumentNoNamespaceSchemaLocation.xsd b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/XMLDocumentNoNamespaceSchemaLocation.xsd
new file mode 100644
index 0000000000..42f9555d44
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/XMLDocumentNoNamespaceSchemaLocation.xsd
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 2005-2006 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.
+ -->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:element name="aNoNamespaceSchemaLocationElement">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="anElement" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="date" type="xsd:date"/>
+ </xsd:complexType>
+ </xsd:element>
+
+</xsd:schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/XMLDocumentSchemaLocation.xsd b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/XMLDocumentSchemaLocation.xsd
new file mode 100644
index 0000000000..268ea375f0
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/XMLDocumentSchemaLocation.xsd
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 2005-2006 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.
+ -->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.example.com/xmlDocumentSchemaLocation"
+ xmlns:sl="http://www.example.com/xmlDocumentSchemaLocation">
+
+ <xsd:element name="schemaLocationElement" type="xsd:string" />
+
+ <xsd:element name="purchaseReport">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:any minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="periodEnding" type="xsd:date"/>
+ </xsd:complexType>
+ </xsd:element>
+
+</xsd:schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/XMLDocumentTestCase.xml b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/XMLDocumentTestCase.xml
new file mode 100644
index 0000000000..34e1648429
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/XMLDocumentTestCase.xml
@@ -0,0 +1,14 @@
+<sl:purchaseReport
+ xmlns:sl="http://www.example.com/xmlDocumentSchemaLocation"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.example.com/xmlDocumentSchemaLocation
+ /XMLDocumentSchemaLocation.xsd
+ http://www.example.com/open
+ /open.xsd"
+ xsi:noNamespaceSchemaLocation="/XMLDocumentNoNamespaceSchemaLocation.xsd"
+ periodEnding="2007-12-31">
+ <sl:schemaLocationElement>some string</sl:schemaLocationElement>
+ <aNoNamespaceSchemaLocationElement date="2006-04-01">
+ <anElement>another string</anElement>
+ </aNoNamespaceSchemaLocationElement>
+</sl:purchaseReport>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/customer1.xml b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/customer1.xml
new file mode 100644
index 0000000000..0c18fa47fa
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/customer1.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ASCII"?>
+<customer:Customer
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:customer="http://example.com/customer"
+ xsi:type="customer:Customer"
+ custNum="1"
+ firstName="John"
+ lastName="Adams"/> \ No newline at end of file
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/customer2.xml b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/customer2.xml
new file mode 100644
index 0000000000..5b74c06c73
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/customer2.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ASCII"?>
+<customer:Customer
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:customer="http://example.com/customer"
+ xsi:type="customer:Customer"
+ custNum="2"
+ firstName="Jeremy"
+ lastName="Pavick"/> \ No newline at end of file
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/datatype.xsd b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/datatype.xsd
new file mode 100644
index 0000000000..032f026137
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/datatype.xsd
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 2005-2006 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.
+ -->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:datatype="http://www.example.com/datatype" xmlns:sdoJava="commonj.sdo/java" targetNamespace="http://www.example.com/datatype">
+
+ <xsd:simpleType name="SimpleSDOType">
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="SimpleSDOTypeInstanceClass" sdoJava:instanceClass="java.lang.Integer">
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="SimpleSDOTypeExtendedInstanceClass" sdoJava:extendedInstanceClass="java.lang.String">
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+
+</xsd:schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/foo-ext.xml b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/foo-ext.xml
new file mode 100644
index 0000000000..000909a52e
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/foo-ext.xml
@@ -0,0 +1,9 @@
+<module name="m" xmlns="http://foo" xmlns:bar="http://bar"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://bar foo-ext.xsd http://foo foo.xsd ">
+ <component name="c">
+ <bar:implementation.mock myAttr="helloworld.HelloWorldImpl"
+ listAttr="1 2">1<bar:myElement>Dummy</bar:myElement>2
+ </bar:implementation.mock>
+ </component>
+</module> \ No newline at end of file
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/foo-ext.xsd b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/foo-ext.xsd
new file mode 100644
index 0000000000..cb74df8fa3
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/foo-ext.xsd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 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.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://bar"
+ elementFormDefault="qualified"
+ xmlns:foo="http://foo" xmlns:bar="http://bar">
+
+ <import namespace="http://foo"
+ schemaLocation="foo.xsd" />
+
+ <element name="implementation.mock" type="bar:MockImplementation"
+ substitutionGroup="foo:implementation" />
+ <complexType name="MockImplementation" mixed="true">
+ <complexContent>
+ <extension base="foo:Implementation">
+ <sequence>
+ <element name="myElement" type="string"/>
+ <any namespace="##other" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded" />
+ </sequence>
+ <attribute name="myAttr" type="NCName" use="required" />
+ <attribute name="listAttr" type="NMTOKENS" use="optional" />
+ <anyAttribute namespace="##any" processContents="lax" />
+ </extension>
+ </complexContent>
+ </complexType>
+</schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/foo.xsd b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/foo.xsd
new file mode 100644
index 0000000000..fec090de71
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/foo.xsd
@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 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.
+ -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://foo"
+ elementFormDefault="qualified" xmlns:foo="http://foo">
+
+ <element name="componentType" type="foo:ComponentType"/>
+ <complexType name="ComponentType">
+ <sequence>
+ <element minOccurs="0" maxOccurs="unbounded" name="service" type="foo:Service"/>
+ <element minOccurs="0" maxOccurs="unbounded" name="reference" type="foo:Reference"/>
+ <element minOccurs="0" maxOccurs="unbounded" name="property" type="foo:Property"/>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <complexType name="Service">
+ <sequence>
+ <element minOccurs="1" maxOccurs="1" ref="foo:interface"/>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <element name="interface" type="foo:Interface"/>
+ <complexType name="Interface"/>
+
+ <complexType name="Reference">
+ <sequence>
+ <element minOccurs="1" maxOccurs="1" ref="foo:interface"/>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="multiplicity" type="foo:Multiplicity" use="optional" default="1..1"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <complexType name="Property">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="type" type="QName" use="required"/>
+ <attribute name="many" type="boolean" default="false" use="optional"/>
+ <attribute name="required" type="boolean" default="false" use="optional"/>
+ <attribute name="default" type="string" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+
+ <element name="moduleFragment" type="foo:ModuleFragment"/>
+ <complexType name="ModuleFragment">
+ <sequence>
+ <element minOccurs="0" maxOccurs="unbounded" name="entryPoint" type="foo:EntryPoint"/>
+ <element minOccurs="0" maxOccurs="unbounded" name="component" type="foo:Component"/>
+ <element minOccurs="0" maxOccurs="unbounded" name="externalService" type="foo:ExternalService"/>
+ <element minOccurs="0" maxOccurs="unbounded" name="wire" type="foo:ModuleWire"/>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <element name="module" type="foo:Module"/>
+ <complexType name="Module">
+ <complexContent>
+ <extension base="foo:ModuleFragment"/>
+ </complexContent>
+ </complexType>
+
+ <complexType name="EntryPoint">
+ <sequence>
+ <element minOccurs="0" maxOccurs="1" ref="foo:interface"/>
+ <element minOccurs="1" maxOccurs="unbounded" ref="foo:binding"/>
+ <element minOccurs="1" maxOccurs="unbounded" name="reference" type="anyURI"/>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="multiplicity" type="foo:Multiplicity" use="optional" default="1..1"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+ <!-- a multiplicity 1..1 or 0..n sample
+ <reference>StockQuoteComponent</reference> - type must be URI
+ a multiplicity 1..n or 0..n sample
+ <reference>StockQuoteComponent1</reference> - type must be URI
+ <reference>StockQuoteComponent2</reference>
+ -->
+
+ <element name="binding" type="foo:Binding"/>
+ <complexType name="Binding">
+ <attribute name="uri" type="anyURI" use="optional"/>
+ </complexType>
+
+ <complexType name="Component">
+ <sequence>
+ <element minOccurs="1" maxOccurs="1" ref="foo:implementation"/>
+ <element minOccurs="0" maxOccurs="1" name="properties" type="foo:PropertyValues"/>
+ <element minOccurs="0" maxOccurs="1" name="references" type="foo:ReferenceValues"/>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+ <!-- a multiplicity 1..1 or 0..1 sample
+ <references>
+ <v:stockQuote>StockQuoteComponent</v:stockquote> - type must be URI
+ </references>
+ a multiplicity 1..n or 0..n sample
+ <references>
+ <v:stockQuote>StockQuoteComponent1</v:stockQuote> - type must be URI
+ <v:stockQuote>StockQuoteComponent2</v:stockQuote>
+ </references>
+ -->
+
+ <element name="implementation" type="foo:Implementation"/>
+ <complexType name="Implementation"/>
+
+ <complexType name="PropertyValues">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <complexType name="ReferenceValues">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+
+ <complexType name="ExternalService">
+ <sequence>
+ <element minOccurs="1" maxOccurs="1" ref="foo:interface"/>
+ <element minOccurs="0" maxOccurs="unbounded" ref="foo:binding"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="overridable" type="foo:OverrideOptions" default="may" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+
+ <complexType name="ModuleWire">
+ <sequence>
+ <element minOccurs="1" maxOccurs="1" ref="foo:source.uri"/>
+ <element minOccurs="1" maxOccurs="1" ref="foo:target.uri"/>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <element name="source"/>
+ <element name="target"/>
+
+ <element name="source.uri" type="anyURI" substitutionGroup="foo:source"/>
+ <element name="target.uri" type="anyURI" substitutionGroup="foo:target"/>
+
+ <element name="subsystem" type="foo:Subsystem"/>
+ <complexType name="Subsystem">
+ <sequence>
+ <element minOccurs="0" maxOccurs="unbounded" name="entryPoint" type="foo:EntryPoint"/>
+ <element minOccurs="0" maxOccurs="unbounded" name="moduleComponent" type="foo:ModuleComponent"/>
+ <element minOccurs="0" maxOccurs="unbounded" name="externalService" type="foo:ExternalService"/>
+ <element minOccurs="0" maxOccurs="unbounded" name="wire" type="foo:SystemWire"/>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="uri" type="anyURI" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <complexType name="ModuleComponent">
+ <sequence>
+ <element minOccurs="0" maxOccurs="1" name="properties" type="foo:PropertyValues"/>
+ <element minOccurs="0" maxOccurs="1" name="references" type="foo:ReferenceValues"/>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="module" type="NCName" use="required"/>
+ <attribute name="uri" type="anyURI" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <complexType name="SystemWire">
+ <sequence>
+ <element minOccurs="1" maxOccurs="1" ref="foo:source"/>
+ <element minOccurs="1" maxOccurs="1" ref="foo:target"/>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+ <element name="source.epr" substitutionGroup="foo:source"/>
+ <element name="target.epr" substitutionGroup="foo:target"/>
+
+ <simpleType name="Multiplicity">
+ <restriction base="string">
+ <enumeration value="0..1"/>
+ <enumeration value="1..1"/>
+ <enumeration value="0..n"/>
+ <enumeration value="1..n"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="OverrideOptions">
+ <restriction base="string">
+ <enumeration value="no"/>
+ <enumeration value="may"/>
+ <enumeration value="must"/>
+ </restriction>
+ </simpleType>
+
+</schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixed.xml b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixed.xml
new file mode 100644
index 0000000000..42ff3a3a5b
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixed.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ASCII"?>
+<mixed:mixedStockQuote xmlns:mixed="http://www.example.com/mixed">
+ <symbol>fbnt</symbol>
+ <companyName>FlyByNightTechnology</companyName>
+ some text
+ <quotes><price>2000.0</price></quotes>
+ more text
+ <price>1000.0</price>
+</mixed:mixedStockQuote> \ No newline at end of file
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixed.xsd b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixed.xsd
new file mode 100644
index 0000000000..c45fc87de2
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixed.xsd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 2005-2006 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.
+ -->
+<xsd:schema
+ targetNamespace="http://www.example.com/mixed"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:simple="http://www.example.com/mixed">
+
+ <xsd:element name="mixedStockQuote" type="simple:MixedQuote"/>
+
+ <xsd:complexType name="MixedQuote" mixed="true">
+ <xsd:sequence>
+ <xsd:element name="symbol" type="xsd:string"/>
+ <xsd:element name="companyName" type="xsd:string"/>
+ <xsd:element name="price" type="xsd:decimal"/>
+ <xsd:element name="open1" type="xsd:decimal"/>
+ <xsd:element name="high" type="xsd:decimal"/>
+ <xsd:element name="low" type="xsd:decimal"/>
+ <xsd:element name="volume" type="xsd:double"/>
+ <xsd:element name="change1" type="xsd:double"/>
+ <xsd:element name="quotes" type="simple:MixedQuote" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixed2.xml b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixed2.xml
new file mode 100644
index 0000000000..723d7bb891
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixed2.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="ASCII"?>
+<mixed:mixedStockQuote
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:mixed="http://www.example.com/mixed"
+ xsi:type="mixed:MixedQuote">
+ <symbol>fbnt</symbol>
+ <companyName>FlyByNightTechnology</companyName>
+ some text
+ <quotes><price>2000.0</price></quotes>
+ more text
+ <price>1000.0</price>
+</mixed:mixedStockQuote> \ No newline at end of file
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixedopen.xml b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixedopen.xml
new file mode 100644
index 0000000000..2409ce85a6
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/mixedopen.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ASCII"?>
+<mixed:mixedOpenStockQuote
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:mixed="http://www.example.com/mixed"
+ xmlns:open="http://www.example.com/open"
+ xsi:type="mixed:MixedOpenQuote">
+ <open:symbol>fbnt</open:symbol>
+ <companyName>FlyByNightTechnology</companyName>
+ some text
+ <quotes><price>2000.0</price></quotes>
+ more text
+ <price>1000.0</price>
+</mixed:mixedOpenStockQuote>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/names.xsd b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/names.xsd
new file mode 100644
index 0000000000..601ecc5f6a
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/names.xsd
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 2005-2006 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.
+ -->
+<xsd:schema
+ targetNamespace="http://www.example.com/names"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:names="http://www.example.com/names">
+
+ <xsd:element name="class" type="names:class"/>
+ <xsd:element name="test.element" type="names:test.element" />
+ <xsd:element name="void" type="names:void" />
+
+ <xsd:complexType name="class" />
+ <xsd:complexType name="test.element" />
+ <xsd:complexType name="void" />
+
+</xsd:schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/open.xml b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/open.xml
new file mode 100644
index 0000000000..d4a5b92e0c
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/open.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ASCII"?>
+<open:openStockQuote xmlns:open="http://www.example.com/open">
+ <symbol>s1</symbol>
+ <open:company>
+ <name>FlyByNightTechnology</name>
+ </open:company>
+ <open:price>1000.0</open:price>
+</open:openStockQuote> \ No newline at end of file
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/open.xsd b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/open.xsd
new file mode 100644
index 0000000000..06881e3f05
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/open.xsd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 2005-2006 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.
+ -->
+<xsd:schema
+ xmlns:simple="http://www.example.com/open"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.example.com/open">
+
+ <xsd:element name="openStockQuote" type="simple:OpenQuote"/>
+
+ <xsd:element name="price" type="xsd:decimal"/>
+
+ <xsd:element name="company">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="OpenQuote">
+ <xsd:sequence>
+ <xsd:element name="symbol" type="xsd:string"/>
+ <xsd:any maxOccurs="unbounded" namespace="##any"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/open2.xml b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/open2.xml
new file mode 100644
index 0000000000..5bd70af711
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/open2.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ASCII"?>
+<open:openStockQuote
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:open="http://www.example.com/open"
+ xsi:type="open:OpenQuote">
+ <open:symbol>s1</open:symbol>
+ <open:company name="FlyByNightTechnology"/>
+ <open:price>1000.0</open:price>
+</open:openStockQuote>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/quote.xml b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/quote.xml
new file mode 100644
index 0000000000..d7b5969e23
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/quote.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="ASCII"?>
+<simple:stockQuote xmlns:simple="http://www.example.com/simple">
+ <symbol>fbnt</symbol>
+ <companyName>FlyByNightTechnology</companyName>
+ <price>1000.0</price>
+ <open1>1000.0</open1>
+ <high>1000.0</high>
+ <low>1000.0</low>
+ <volume>1000.0</volume>
+ <change1>1000.0</change1>
+ <quotes>
+ <price>2000.0</price>
+ </quotes>
+</simple:stockQuote> \ No newline at end of file
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/sdoannotations.xsd b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/sdoannotations.xsd
new file mode 100644
index 0000000000..355e9e2ba3
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/sdoannotations.xsd
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 2005-2006 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.
+ -->
+<xsd:schema
+ targetNamespace="http://www.example.com/sdoannotations"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:sdoa="http://www.example.com/sdoannotations"
+ xmlns:sdo="commonj.sdo/xml"
+ xmlns:sdoj="commonj.sdo/java">
+
+ <!-- simple element with no annotations -->
+ <xsd:element name="foo0" type="xsd:string" />
+
+ <!-- simple element with sdo:name -->
+ <xsd:element name="foo1" type="xsd:string" sdo:name="foo2" />
+
+ <!-- simple element with sdo:type -->
+ <xsd:element
+ name="foo3" type="xsd:int"
+ sdo:dataType="xsd:string"
+ sdo:aliasName="foo4"
+ sdo:readOnly="true" />
+
+ <xsd:element
+ name="foo5" type="sdoa:foo6" />
+
+ <!-- complex type with no annotations -->
+ <xsd:complexType name="foo6">
+ <xsd:sequence>
+ <xsd:element name="bar1" type="xsd:int" />
+ </xsd:sequence>
+ <xsd:attribute name="bar2" type="xsd:int" />
+ </xsd:complexType>
+
+ <xsd:element
+ name="foo7" type="sdoa:foo8" />
+
+ <xsd:complexType name="foo8" sdo:name="foo9" sdoj:instanceClass="org.apache.tuscany.sdo.test.XSDHelperTestCase">
+ <xsd:sequence>
+ <xsd:element name="bar3" type="xsd:int" sdo:string="true" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/sdotypes.xsd b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/sdotypes.xsd
new file mode 100644
index 0000000000..aa0def2be6
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/sdotypes.xsd
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 2005-2006 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.
+ -->
+<xsd:schema
+ targetNamespace="http://www.example.com/sdotypes"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:sdot="http://www.example.com/sdotypes">
+
+ <xsd:element name="foo0" type="xsd:anySimpleType"/>
+ <xsd:element name="foo2" type="xsd:anyURI"/>
+ <xsd:element name="foo3" type="xsd:base64Binary"/>
+ <xsd:element name="foo4" type="xsd:boolean"/>
+ <xsd:element name="foo5" type="xsd:byte"/>
+ <xsd:element name="foo6" type="xsd:date"/>
+ <xsd:element name="foo7" type="xsd:dateTime"/>
+ <xsd:element name="foo8" type="xsd:decimal"/>
+ <xsd:element name="foo9" type="xsd:double"/>
+ <xsd:element name="foo10" type="xsd:duration"/>
+ <xsd:element name="foo11" type="xsd:ENTITIES"/>
+ <xsd:element name="foo12" type="xsd:ENTITY"/>
+ <xsd:element name="foo13" type="xsd:float"/>
+ <xsd:element name="foo14" type="xsd:gDay"/>
+ <xsd:element name="foo15" type="xsd:gMonth"/>
+ <xsd:element name="foo16" type="xsd:gMonthDay"/>
+ <xsd:element name="foo17" type="xsd:gYear"/>
+ <xsd:element name="foo18" type="xsd:gYearMonth"/>
+ <xsd:element name="foo19" type="xsd:hexBinary"/>
+ <xsd:element name="foo20" type="xsd:ID"/>
+ <xsd:element name="foo21" type="xsd:IDREF"/>
+ <xsd:element name="foo22" type="xsd:IDREFS"/>
+ <xsd:element name="foo23" type="xsd:int"/>
+ <xsd:element name="foo24" type="xsd:integer"/>
+ <xsd:element name="foo25" type="xsd:language"/>
+ <xsd:element name="foo26" type="xsd:long"/>
+ <xsd:element name="foo27" type="xsd:Name"/>
+ <xsd:element name="foo28" type="xsd:NCName"/>
+ <xsd:element name="foo29" type="xsd:negativeInteger"/>
+ <xsd:element name="foo30" type="xsd:NMTOKEN"/>
+ <xsd:element name="foo31" type="xsd:NMTOKENS"/>
+ <xsd:element name="foo32" type="xsd:nonNegativeInteger"/>
+ <xsd:element name="foo33" type="xsd:nonPositiveInteger"/>
+ <xsd:element name="foo34" type="xsd:normalizedString"/>
+ <xsd:element name="foo35" type="xsd:NOTATION"/>
+ <xsd:element name="foo36" type="xsd:positiveInteger"/>
+ <xsd:element name="foo37" type="xsd:QName"/>
+ <xsd:element name="foo38" type="xsd:short"/>
+ <xsd:element name="foo39" type="xsd:string"/>
+ <xsd:element name="foo40" type="xsd:time"/>
+ <xsd:element name="foo41" type="xsd:token"/>
+ <xsd:element name="foo42" type="xsd:unsignedByte"/>
+ <xsd:element name="foo43" type="xsd:unsignedInt"/>
+ <xsd:element name="foo44" type="xsd:unsignedLong"/>
+ <xsd:element name="foo45" type="xsd:unsignedShort"/>
+
+</xsd:schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/shallowquote.xml b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/shallowquote.xml
new file mode 100644
index 0000000000..a56f2fe2b7
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/shallowquote.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="ASCII"?>
+<simple:stockQuote xmlns:simple="http://www.example.com/simple">
+ <symbol>fbnt</symbol>
+ <companyName>FlyByNightTechnology</companyName>
+ <price>1000.0</price>
+ <open1>1000.0</open1>
+ <high>1000.0</high>
+ <low>1000.0</low>
+ <volume>1000.0</volume>
+ <change1>1000.0</change1>
+</simple:stockQuote> \ No newline at end of file
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/simple.xsd b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/simple.xsd
new file mode 100644
index 0000000000..5310f7e1f3
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/simple.xsd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 2005-2006 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.
+ -->
+<xsd:schema
+ targetNamespace="http://www.example.com/simple"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:simple="http://www.example.com/simple">
+
+ <xsd:element name="stockQuote" type="simple:Quote"/>
+
+ <xsd:complexType name="Quote">
+ <xsd:sequence>
+ <xsd:element name="symbol" type="xsd:string"/>
+ <xsd:element name="companyName" type="xsd:string"/>
+ <xsd:element name="price" type="xsd:decimal"/>
+ <xsd:element name="open1" type="xsd:decimal"/>
+ <xsd:element name="high" type="xsd:decimal"/>
+ <xsd:element name="low" type="xsd:decimal"/>
+ <xsd:element name="volume" type="xsd:double"/>
+ <xsd:element name="change1" type="xsd:double"/>
+ <xsd:element name="quotes" type="simple:Quote" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/simplechangesummary.xml b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/simplechangesummary.xml
new file mode 100644
index 0000000000..1a34e0bf80
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/simplechangesummary.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ASCII"?>
+<sdo:datagraph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sdo="commonj.sdo"
+ xmlns:sdo_1="http://www.apache.org/tuscany/2005/SDO" xmlns:simple="http://www.example.com/simple">
+ <changeSummary xmlns=""
+ logging="false">
+ <objectChanges key="#//@eRootObject">
+ <value xsi:type="sdo_1:ChangeSummarySetting" featureName="symbol" set="false"/>
+ <value xsi:type="sdo_1:ChangeSummarySetting" featureName="companyName" set="false"/>
+ <value xsi:type="sdo_1:ChangeSummarySetting" featureName="price" set="false"/>
+ <value xsi:type="sdo_1:ChangeSummarySetting" featureName="open1" set="false"/>
+ <value xsi:type="sdo_1:ChangeSummarySetting" featureName="high" set="false"/>
+ <value xsi:type="sdo_1:ChangeSummarySetting" featureName="low" set="false"/>
+ <value xsi:type="sdo_1:ChangeSummarySetting" featureName="volume" dataValue="0.0"
+ set="false"/>
+ <value xsi:type="sdo_1:ChangeSummarySetting" featureName="change1" dataValue="0.0"
+ set="false"/>
+ <value xsi:type="sdo_1:ChangeSummarySetting" featureName="quotes" set="false"/>
+ </objectChanges>
+ <objectChanges key="#//@eRootObject/@quotes.0">
+ <value xsi:type="sdo_1:ChangeSummarySetting" featureName="price" set="false"/>
+ </objectChanges>
+ </changeSummary>
+ <simple:Quote>
+ <symbol>fbnt</symbol>
+ <companyName>FlyByNightTechnology</companyName>
+ <price>1000.0</price>
+ <open1>1000.0</open1>
+ <high>1000.0</high>
+ <low>1000.0</low>
+ <volume>1000.0</volume>
+ <change1>1000.0</change1>
+ <quotes>
+ <price>2000.0</price>
+ </quotes>
+ </simple:Quote>
+</sdo:datagraph>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/xpath.xml b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/xpath.xml
new file mode 100644
index 0000000000..b1972b7260
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/xpath.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xpath:drive xmlns:xpath="http://www.example.com/xpath" id="0">
+ <Folder creation_date="1999-10-20" creator="Hasan" type="FolderType">
+ <FolderName>Folder00000000000</FolderName>
+ <description>marries inflamed apprehended beseeming bustle</description>
+ <SecurityObject name="secure1">
+ <Allows>
+ <Allow>
+ <User>Brian</User>
+ <Permissions>rw</Permissions>
+ </Allow>
+ <Allow>
+ <User>Fuhwei</User>
+ <Permissions>r</Permissions>
+ </Allow>
+ </Allows>
+ <Denies>
+ <Deny>
+ <User>Hasan</User>
+ </Deny>
+ <Deny>
+ <User>Frank</User>
+ </Deny>
+ </Denies>
+ </SecurityObject>
+ </Folder>
+ <Folder creation_date="2000-03-23" creator="Kapil" type="FileType">
+ <FolderName>Folder00000000011</FolderName>
+ <description>Mumbling Jumblin Pink Panther goofs it up</description>
+ <SecurityObject name="secure2">
+ <Allows>
+ <Allow>
+ <User>Imad</User>
+ <Permissions>x</Permissions>
+ </Allow>
+ <Allow>
+ <User>Robbie</User>
+ <Permissions>rwx</Permissions>
+ </Allow>
+ </Allows>
+ <Denies>
+ <Deny>
+ <User>Yang</User>
+ </Deny>
+ <Deny>
+ <User>Art</User>
+ </Deny>
+ </Denies>
+ </SecurityObject>
+ </Folder>
+</xpath:drive> \ No newline at end of file
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/xpath.xsd b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/xpath.xsd
new file mode 100644
index 0000000000..258d1b40e6
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/impl/src/test/resources/xpath.xsd
@@ -0,0 +1,58 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.example.com/xpath" targetNamespace="http://www.example.com/xpath">
+
+ <xsd:element name="drive" type="DriveType"/>
+
+ <xsd:complexType name="DriveType">
+ <xsd:sequence>
+ <xsd:element name="Folder" type="FolderType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:int"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="FolderType">
+ <xsd:sequence>
+ <xsd:element name="FolderName" type="xsd:string"/>
+ <xsd:element name="description" type="xsd:string"/>
+ <xsd:element name="SecurityObject" type="SecurityObjectType"/>
+ </xsd:sequence>
+ <xsd:attribute name="creation_date" type="xsd:date" minOccurs="0"/>
+ <xsd:attribute name="creator" type="xsd:string" minOccurs="0"/>
+ <xsd:attribute name="type" type="xsd:string" minOccurs="0"/>
+
+ </xsd:complexType>
+
+ <xsd:complexType name="AllowsObjectType">
+ <xsd:sequence>
+ <xsd:element name="Allow" minOccurs="0" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="User" type="xsd:string"/>
+ <xsd:element name="Permissions" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="DeniesObjectType">
+ <xsd:sequence>
+ <xsd:element name="Deny" minOccurs="0" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="User" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="SecurityObjectType">
+ <xsd:sequence>
+ <xsd:element name="Allows" type="AllowsObjectType"/>
+ <xsd:element name="Denies" type="DeniesObjectType"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/plugin/pom.xml b/sca-java-1.x/branches/java-post-M1/sdo/plugin/pom.xml
new file mode 100644
index 0000000000..e4641f9617
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/plugin/pom.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 2005-2006 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.
+ -->
+<project>
+ <parent>
+ <groupId>org.apache.tuscany</groupId>
+ <artifactId>tuscany-sdo</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>tuscany-sdo-plugin</artifactId>
+ <packaging>maven-plugin</packaging>
+ <name>Tuscany SDO Maven Plugin</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tuscany</groupId>
+ <artifactId>tuscany-sdo-tools</artifactId>
+ <version>${pom.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/java/org/apache/tuscany/sdo/plugin/GeneratorMojo.java b/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/java/org/apache/tuscany/sdo/plugin/GeneratorMojo.java
new file mode 100644
index 0000000000..88a7b93b6e
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/java/org/apache/tuscany/sdo/plugin/GeneratorMojo.java
@@ -0,0 +1,264 @@
+/**
+ *
+ * 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.plugin;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+import java.util.List;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+
+import org.apache.tuscany.sdo.generate.JavaGenerator;
+import org.apache.tuscany.sdo.generate.XSD2JavaGenerator;
+
+/**
+ * @version $Rev$ $Date$
+ * @goal generate
+ * @phase generate-sources
+ * @description Generate SDO interface classes from an XML Schema
+ */
+public class GeneratorMojo extends AbstractMojo {
+ /**
+ * The directory containing schema files; defaults to ${basedir}/src/main/xsd
+ *
+ * @parameter expression="${basedir}/src/main/xsd"
+ */
+ private String schemaDir;
+
+ /**
+ * Name of the schema file; if omitted all files in the directory are processed
+ *
+ * @parameter
+ */
+ private File schemaFile;
+
+ /**
+ * The Java package to generate into. By default the value is derived from the schema URI.
+ *
+ * @parameter
+ */
+ private String javaPackage;
+
+ /**
+ * The directory to generate into; defaults to ${project.build.directory}/sdo-source
+ *
+ * @parameter expression="${project.build.directory}/sdo-source"
+ */
+ private String targetDirectory;
+
+ /**
+ * Specifies the prefix string to use for naming the generated factory.
+ *
+ * @parameter
+ */
+ private String prefix;
+
+ /**
+ * This option can be used to eliminate the generated interface and to generate only an implementation class.
+ *
+ * @parameter
+ */
+ private Boolean noInterfaces;
+
+ /**
+ * Turns off container management for containment properties.
+ *
+ * @parameter
+ */
+ private Boolean noContainment;
+
+ /**
+ * This option eliminates all change notification overhead in the generated classes.
+ *
+ * @parameter
+ */
+ private Boolean noNotification;
+
+ /**
+ * With this option, all generated properties will not record their unset state.
+ *
+ * @parameter
+ */
+ private Boolean noUnsettable;
+
+ /**
+ * Generate a fast XML parser/loader for instances of the model.
+ *
+ * @parameter
+ */
+ private Boolean generateLoader;
+
+ /**
+ * Generate a Switch class for the model.
+ *
+ * @parameter
+ */
+ private Boolean generateSwitch;
+
+ /**
+ * @parameter expression="${project.compileSourceRoots}"
+ * @readonly
+ */
+ private List compilerSourceRoots;
+
+ /**
+ * With this option, generated code will not have EMF references.
+ *
+ * @parameter
+ */
+ private Boolean noEMF;
+
+ /**
+ * Support for generating multiple schema files.
+ *
+ * @parameter
+ */
+ private SchemaFileOption[] schemaFiles;
+
+ public void execute() throws MojoExecutionException {
+
+ // check for schemaFiles parameter first, if properties are not set, use global property
+ if (null != schemaFiles) {
+ for (int i = 0; i < schemaFiles.length; ++i) {
+ SchemaFileOption sf = schemaFiles[i];
+
+ if (null == sf.getTargetDirectory()) {
+ sf.setTargetDirectory(targetDirectory);
+ }
+ if (null == sf.getJavaPackage()) {
+ sf.setJavaPackage(javaPackage);
+ }
+ if (null == sf.isNoInterfaces()) {
+ sf.setNoInterfaces(noInterfaces);
+ }
+ if (null == sf.isNoContainment()) {
+ sf.setNoContainment(noContainment);
+ }
+ if (null == sf.isNoNotification()) {
+ sf.setNoNotification(noNotification);
+ }
+ if (null == sf.isNoUnsettable()) {
+ sf.setNoUnsettable(noUnsettable);
+ }
+ if (null == sf.isGenerateLoader()) {
+ sf.setGenerateLoader(generateLoader);
+ }
+ if (null == sf.isGenerateSwitch()) {
+ sf.setGenerateSwitch(generateSwitch);
+ }
+ if (null == sf.getCompilerSourceRoots()) {
+ sf.setCompilerSourceRoots(compilerSourceRoots);
+ }
+ if (null == sf.isNoEMF()) {
+ sf.setNoEMF(noEMF);
+ }
+ if (sf.getFileName() == null || sf.getFileName().length() == 0) {
+ throw new MojoExecutionException("no fileName specfied for schema.");
+ }
+ if (!sf.getFileName().canRead() || !sf.getFileName().isFile()) {
+
+ throw new MojoExecutionException("file can not be read:" + sf.getFileName());
+ }
+ }
+ } else {
+
+ if (schemaFile == null) {
+ File[] files = new File(schemaDir).listFiles(FILTER);
+ schemaFiles = new SchemaFileOption[files.length];
+ for (int i = files.length - 1; i > -1; --i) {
+ schemaFiles[i] = new SchemaFileOption();
+ schemaFiles[i].setFileName(files[i]);
+ schemaFiles[i].setJavaPackage(javaPackage);
+ schemaFiles[i].setCompilerSourceRoots(compilerSourceRoots);
+ schemaFiles[i].setGenerateLoader(generateLoader);
+ schemaFiles[i].setGenerateSwitch(generateSwitch);
+ schemaFiles[i].setNoContainment(noContainment);
+ schemaFiles[i].setNoEMF(noEMF);
+ schemaFiles[i].setNoInterfaces(noInterfaces);
+ schemaFiles[i].setNoNotification(noNotification);
+ schemaFiles[i].setNoUnsettable(noUnsettable);
+ schemaFiles[i].setPrefix(prefix);
+ schemaFiles[i].setTargetDirectory(targetDirectory);
+ }
+ } else {
+ schemaFiles = new SchemaFileOption[] { new SchemaFileOption() };
+ schemaFiles[0].setFileName(schemaFile);
+ schemaFiles[0].setJavaPackage(javaPackage);
+ schemaFiles[0].setCompilerSourceRoots(compilerSourceRoots);
+ schemaFiles[0].setGenerateLoader(generateLoader);
+ schemaFiles[0].setGenerateSwitch(generateSwitch);
+ schemaFiles[0].setNoContainment(noContainment);
+ schemaFiles[0].setNoEMF(noEMF);
+ schemaFiles[0].setNoInterfaces(noInterfaces);
+ schemaFiles[0].setNoNotification(noNotification);
+ schemaFiles[0].setNoUnsettable(noUnsettable);
+ schemaFiles[0].setPrefix(prefix);
+ schemaFiles[0].setTargetDirectory(targetDirectory);
+ }
+ }
+
+ for (int i = 0; i < schemaFiles.length; i++) {
+ File file = schemaFiles[i].getFileName();
+ File marker = new File(targetDirectory, ".gen#" + file.getName());
+ if (file.lastModified() > marker.lastModified()) {
+ getLog().info("Generating SDO interfaces from " + file);
+
+ int genOptions = 0;
+
+ if (schemaFiles[i].isNoInterfaces() != null && schemaFiles[i].isNoInterfaces().booleanValue()) {
+ genOptions |= JavaGenerator.OPTION_NO_INTERFACES;
+ }
+ if (schemaFiles[i].isNoContainment() != null && schemaFiles[i].isNoContainment().booleanValue()) {
+ genOptions |= JavaGenerator.OPTION_NO_CONTAINMENT;
+ }
+ if (schemaFiles[i].isNoNotification() != null && schemaFiles[i].isNoNotification().booleanValue()) {
+ genOptions |= JavaGenerator.OPTION_NO_NOTIFICATION;
+ }
+ if (schemaFiles[i].isGenerateLoader() != null && schemaFiles[i].isGenerateLoader().booleanValue()) {
+ genOptions |= JavaGenerator.OPTION_GENERATE_LOADER;
+ }
+ if (schemaFiles[i].isNoUnsettable() != null && schemaFiles[i].isNoUnsettable().booleanValue()) {
+ genOptions |= JavaGenerator.OPTION_NO_UNSETTABLE;
+ }
+ if (schemaFiles[i].isGenerateSwitch() != null && schemaFiles[i].isGenerateSwitch().booleanValue()) {
+ genOptions |= JavaGenerator.OPTION_GENERATE_SWITCH;
+ }
+ if (schemaFiles[i].isNoEMF() != null && schemaFiles[i].isNoEMF().booleanValue()) {
+ genOptions |= JavaGenerator.OPTION_NO_EMF;
+ }
+
+ XSD2JavaGenerator.generateFromXMLSchema(file.toString(), targetDirectory, javaPackage, prefix, genOptions);
+ }
+ try {
+ marker.createNewFile();
+ } catch (IOException e) {
+ throw new MojoExecutionException(e.getMessage() + "'" + marker.getAbsolutePath() + "'", e);
+ }
+ marker.setLastModified(System.currentTimeMillis());
+ }
+
+ compilerSourceRoots.add(targetDirectory);
+ }
+
+ private static final FileFilter FILTER = new FileFilter() {
+ public boolean accept(File pathname) {
+ return (pathname.isFile() || !pathname.isHidden());
+ }
+ };
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/java/org/apache/tuscany/sdo/plugin/SchemaFileOption.java b/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/java/org/apache/tuscany/sdo/plugin/SchemaFileOption.java
new file mode 100644
index 0000000000..ec10a59f68
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/java/org/apache/tuscany/sdo/plugin/SchemaFileOption.java
@@ -0,0 +1,189 @@
+package org.apache.tuscany.sdo.plugin;
+
+import java.io.File;
+import java.util.List;
+
+public class SchemaFileOption {
+
+ /**
+ * Name of the schema file
+ *
+ */
+ private File fileName;
+
+ /**
+ * The Java package to generate into. By default the value is derived from the schema URI.
+ *
+ * @parameter
+ */
+ private String javaPackage;
+
+ /**
+ * The directory to generate into; defaults to ${project.build.directory}/sdo-source
+ *
+ * @parameter expression="${project.build.directory}/sdo-source"
+ */
+ private String targetDirectory;
+
+ /**
+ * Specifies the prefix string to use for naming the generated factory.
+ *
+ * @parameter
+ */
+ private String prefix;
+
+ /**
+ * This option can be used to eliminate the generated interface and to generate only an implementation class.
+ *
+ * @parameter
+ */
+ private Boolean noInterfaces;
+
+ /**
+ * Turns off container management for containment properties.
+ *
+ * @parameter
+ */
+ private Boolean noContainment;
+
+ /**
+ * This option eliminates all change notification overhead in the generated classes.
+ *
+ * @parameter
+ */
+ private Boolean noNotification;
+
+ /**
+ * With this option, all generated properties will not record their unset state.
+ *
+ * @parameter
+ */
+ private Boolean noUnsettable;
+
+ /**
+ * Generate a fast XML parser/loader for instances of the model.
+ *
+ * @parameter
+ */
+ private Boolean generateLoader;
+
+ /**
+ * Generate a Switch class for the model.
+ *
+ * @parameter
+ */
+ private Boolean generateSwitch;
+
+ /**
+ * @parameter expression="${project.compileSourceRoots}"
+ * @readonly
+ */
+ private List compilerSourceRoots;
+
+ /**
+ * With this option, generated code will not have EMF references.
+ *
+ * @parameter
+ */
+ private Boolean noEMF;
+
+ public SchemaFileOption() {
+ }
+
+ public List getCompilerSourceRoots() {
+ return compilerSourceRoots;
+ }
+
+ public void setCompilerSourceRoots(List compilerSourceRoots) {
+ this.compilerSourceRoots = compilerSourceRoots;
+ }
+
+ public Boolean isGenerateLoader() {
+ return generateLoader;
+ }
+
+ public void setGenerateLoader(Boolean generateLoader) {
+ this.generateLoader = generateLoader;
+ }
+
+ public Boolean isGenerateSwitch() {
+ return generateSwitch;
+ }
+
+ public void setGenerateSwitch(Boolean generateSwitch) {
+ this.generateSwitch = generateSwitch;
+ }
+
+ public String getJavaPackage() {
+ return javaPackage;
+ }
+
+ public void setJavaPackage(String javaPackage) {
+ this.javaPackage = javaPackage;
+ }
+
+ public Boolean isNoContainment() {
+ return noContainment;
+ }
+
+ public void setNoContainment(Boolean noContainment) {
+ this.noContainment = noContainment;
+ }
+
+ public Boolean isNoEMF() {
+ return noEMF;
+ }
+
+ public void setNoEMF(Boolean noEMF) {
+ this.noEMF = noEMF;
+ }
+
+ public Boolean isNoInterfaces() {
+ return noInterfaces;
+ }
+
+ public void setNoInterfaces(Boolean noInterfaces) {
+ this.noInterfaces = noInterfaces;
+ }
+
+ public Boolean isNoNotification() {
+ return noNotification;
+ }
+
+ public void setNoNotification(Boolean noNotification) {
+ this.noNotification = noNotification;
+ }
+
+ public Boolean isNoUnsettable() {
+ return noUnsettable;
+ }
+
+ public void setNoUnsettable(Boolean noUnsettable) {
+ this.noUnsettable = noUnsettable;
+ }
+
+ public String getPrefix() {
+ return prefix;
+ }
+
+ public void setPrefix(String prefix) {
+ this.prefix = prefix;
+ }
+
+ public String getTargetDirectory() {
+ return targetDirectory;
+ }
+
+ public void setTargetDirectory(String targetDirectory) {
+ this.targetDirectory = targetDirectory;
+ }
+
+ public File getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(File fileName) {
+ this.fileName = fileName;
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/resources/META-INF/LICENSE.txt b/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/resources/META-INF/LICENSE.txt
new file mode 100644
index 0000000000..25d78feeac
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/resources/META-INF/LICENSE.txt
@@ -0,0 +1,1277 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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.
+
+
+APACHE TUSCANY SUBCOMPONENTS:
+
+The Apache Tuscany distribution includes a number of subcomponents with
+separate copyright notices and license terms. Your use of the source
+code for the these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+===============================================================================
+
+For the Eclipse Modeling Framework component and the Celtix binding:
+
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF
+THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and
+documentation distributed under this Agreement, and
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and
+are distributed by that particular Contributor. A Contribution
+'originates' from a Contributor if it was added to the Program by such
+Contributor itself or anyone acting on such Contributor's behalf.
+Contributions do not include additions to the Program which: (i) are
+separate modules of software distributed in conjunction with the
+Program under their own license agreement, and (ii) are not derivative
+works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor
+which are necessarily infringed by the use or sale of its Contribution
+alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this
+Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby
+grants Recipient a non-exclusive, worldwide, royalty-free copyright
+license to reproduce, prepare derivative works of, publicly display,
+publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and
+object code form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby
+grants Recipient a non-exclusive, worldwide, royalty-free patent
+license under Licensed Patents to make, use, sell, offer to sell,
+import and otherwise transfer the Contribution of such Contributor, if
+any, in source code and object code form. This patent license shall
+apply to the combination of the Contribution and the Program if, at
+the time the Contribution is added by the Contributor, such addition
+of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the
+licenses to its Contributions set forth herein, no assurances are
+provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow
+Recipient to distribute the Program, it is Recipient's responsibility
+to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright
+license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form
+under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties
+and conditions, express and implied, including warranties or
+conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability
+for damages, including direct, indirect, special, incidental and
+consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are
+offered by that Contributor alone and not by any other party; and
+
+iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable
+manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the
+Program.
+
+Contributors may not remove or alter any copyright notices contained
+within the Program.
+
+Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a
+commercial product offering should do so in a manner which does not
+create potential liability for other Contributors. Therefore, if a
+Contributor includes the Program in a commercial product offering,
+such Contributor ("Commercial Contributor") hereby agrees to defend
+and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising
+from claims, lawsuits and other legal actions brought by a third party
+against the Indemnified Contributor to the extent caused by the acts
+or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement.
+In order to qualify, an Indemnified Contributor must: a) promptly
+notify the Commercial Contributor in writing of such claim, and b)
+allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement
+negotiations. The Indemnified Contributor may participate in any such
+claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
+WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable
+laws, damage to or loss of data, programs or equipment, and
+unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
+ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further
+action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+the Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of
+the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of
+time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use
+and distribution of the Program as soon as reasonably practicable.
+However, Recipient's obligations under this Agreement and any licenses
+granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement,
+but in order to avoid inconsistency the Agreement is copyrighted and
+may only be modified in the following manner. The Agreement Steward
+reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement
+Steward has the right to modify this Agreement. The Eclipse Foundation
+is the initial Agreement Steward. The Eclipse Foundation may assign
+the responsibility to serve as the Agreement Steward to a suitable
+separate entity. Each new version of the Agreement will be given a
+distinguishing version number. The Program (including Contributions)
+may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the
+Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives
+no rights or licenses to the intellectual property of any Contributor
+under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No
+party to this Agreement will bring a legal action under this Agreement
+more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.
+
+===============================================================================
+
+For the Rhino JavaScript container component:
+
+Mozilla Public License 1.1 (MPL 1.1)
+
+1. Definitions.
+
+ 1.0.1. "Commercial Use" means distribution or otherwise making the
+Covered Code available to a third party.
+
+ 1.1. "Contributor" means each entity that creates or contributes to
+the creation of Modifications.
+
+ 1.2. "Contributor Version" means the combination of the Original Code,
+prior Modifications used by a Contributor, and the Modifications made by that
+particular Contributor.
+
+ 1.3. "Covered Code" means the Original Code or Modifications or the
+combination of the Original Code and Modifications, in each case including
+portions thereof.
+
+ 1.4. "Electronic Distribution Mechanism" means a mechanism generally
+accepted in the software development community for the electronic transfer of
+data.
+
+ 1.5. "Executable" means Covered Code in any form other than Source
+Code.
+
+ 1.6. "Initial Developer" means the individual or entity identified as
+the Initial Developer in the Source Code notice required by Exhibit A.
+
+ 1.7. "Larger Work" means a work which combines Covered Code or
+portions thereof with code not governed by the terms of this License.
+
+ 1.8. "License" means this document.
+
+ 1.8.1. "Licensable" means having the right to grant, to the maximum
+extent possible, whether at the time of the initial grant or subsequently
+acquired, any and all of the rights conveyed herein.
+
+ 1.9. "Modifications" means any addition to or deletion from the
+substance or structure of either the Original Code or any previous
+Modifications. When Covered Code is released as a series of files, a
+Modification is:
+ A. Any addition to or deletion from the contents of a file
+containing Original Code or previous Modifications.
+
+ B. Any new file that contains any part of the Original Code or
+previous Modifications.
+
+ 1.10. "Original Code" means Source Code of computer software code
+which is described in the Source Code notice required by Exhibit A as Original
+Code, and which, at the time of its release under this License is not already
+Covered Code governed by this License.
+
+ 1.10.1. "Patent Claims" means any patent claim(s), now owned or
+hereafter acquired, including without limitation, method, process, and
+apparatus claims, in any patent Licensable by grantor.
+
+ 1.11. "Source Code" means the preferred form of the Covered Code for
+making modifications to it, including all modules it contains, plus any
+associated interface definition files, scripts used to control compilation and
+installation of an Executable, or source code differential comparisons against
+either the Original Code or another well known, available Covered Code of the
+Contributor's choice. The Source Code can be in a compressed or archival form,
+provided the appropriate decompression or de-archiving software is widely
+available for no charge.
+
+ 1.12. "You" (or "Your") means an individual or a legal entity
+exercising rights under, and complying with all of the terms of, this License
+or a future version of this License issued under Section 6.1. For legal
+entities, "You" includes any entity which controls, is controlled by, or is
+under common control with You. For purposes of this definition, "control"
+means (a) the power, direct or indirect, to cause the direction or management
+of such entity, whether by contract or otherwise, or (b) ownership of more
+than fifty percent (50%) of the outstanding shares or beneficial ownership of
+such entity.
+
+2. Source Code License.
+
+ 2.1. The Initial Developer Grant.
+ The Initial Developer hereby grants You a world-wide, royalty-free,
+non-exclusive license, subject to third party intellectual property claims:
+ (a) under intellectual property rights (other than patent or
+trademark) Licensable by Initial Developer to use, reproduce, modify, display,
+perform, sublicense and distribute the Original Code (or portions thereof)
+with or without Modifications, and/or as part of a Larger Work; and
+
+ (b) under Patents Claims infringed by the making, using or selling
+of Original Code, to make, have made, use, practice, sell, and offer for sale,
+and/or otherwise dispose of the Original Code (or portions thereof).
+ (c) the licenses granted in this Section 2.1(a) and
+(b) are effective on the date Initial Developer first distributes Original
+Code under the terms of this License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent license is
+granted: 1) for code that You delete from the Original Code; 2) separate from
+the Original Code; or 3) for infringements caused by: i) the modification of
+the Original Code or ii) the combination of the Original Code with other
+software or devices.
+
+ 2.2. Contributor Grant.
+ Subject to third party intellectual property claims, each Contributor
+hereby grants You a world-wide, royalty-free, non-exclusive license
+
+ (a) under intellectual property rights (other than patent or
+trademark) Licensable by Contributor, to use, reproduce, modify, display,
+perform, sublicense and distribute the Modifications created by such
+Contributor (or portions thereof) either on an unmodified basis, with other
+Modifications, as Covered Code and/or as part of a Larger Work; and
+
+ (b) under Patent Claims infringed by the making, using, or selling
+of Modifications made by that Contributor either alone and/or in combination
+with its Contributor Version (or portions of such combination), to make, use,
+sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications
+made by that Contributor (or portions thereof); and 2) the combination of
+Modifications made by that Contributor with its Contributor Version (or
+portions of such combination).
+
+ (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+effective on the date Contributor first makes Commercial Use of the Covered
+Code.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent license is
+granted: 1) for any code that Contributor has deleted from the Contributor
+Version; 2) separate from the Contributor Version; 3) for infringements
+caused by: i) third party modifications of Contributor Version or ii) the
+combination of Modifications made by that Contributor with other software
+(except as part of the Contributor Version) or other devices; or 4) under
+Patent Claims infringed by Covered Code in the absence of Modifications made
+by that Contributor.
+
+
+3. Distribution Obligations.
+
+ 3.1. Application of License.
+ The Modifications which You create or to which You contribute are
+governed by the terms of this License, including without limitation Section
+2.2. The Source Code version of Covered Code may be distributed only under the
+terms of this License or a future version of this License released under
+Section 6.1, and You must include a copy of this License with every copy of
+the Source Code You distribute. You may not offer or impose any terms on any
+Source Code version that alters or restricts the applicable version of this
+License or the recipients' rights hereunder. However, You may include an
+additional document offering the additional rights described in Section 3.5.
+
+ 3.2. Availability of Source Code.
+ Any Modification which You create or to which You contribute must be
+made available in Source Code form under the terms of this License either on
+the same media as an Executable version or via an accepted Electronic
+Distribution Mechanism to anyone to whom you made an Executable version
+available; and if made available via Electronic Distribution Mechanism, must
+remain available for at least twelve (12) months after the date it initially
+became available, or at least six (6) months after a subsequent version of
+that particular Modification has been made available to such recipients. You
+are responsible for ensuring that the Source Code version remains available
+even if the Electronic Distribution Mechanism is maintained by a third party.
+
+ 3.3. Description of Modifications.
+ You must cause all Covered Code to which You contribute to contain a
+file documenting the changes You made to create that Covered Code and the date
+of any change. You must include a prominent statement that the Modification is
+derived, directly or indirectly, from Original Code provided by the Initial
+Developer and including the name of the Initial Developer in (a) the Source
+Code, and (b) in any notice in an Executable version or related documentation
+in which You describe the origin or ownership of the Covered Code.
+
+ 3.4. Intellectual Property Matters
+ (a) Third Party Claims.
+ If Contributor has knowledge that a license under a third party's
+intellectual property rights is required to exercise the rights granted by
+such Contributor under Sections 2.1 or 2.2, Contributor must include a text
+file with the Source Code distribution titled "LEGAL" which describes the
+claim and the party making the claim in sufficient detail that a recipient
+will know whom to contact. If Contributor obtains such knowledge after the
+Modification is made available as described in Section 3.2, Contributor shall
+promptly modify the LEGAL file in all copies Contributor makes available
+thereafter and shall take other steps (such as notifying appropriate mailing
+lists or newsgroups) reasonably calculated to inform those who received the
+Covered Code that new knowledge has been obtained.
+
+ (b) Contributor APIs.
+ If Contributor's Modifications include an application programming
+interface and Contributor has knowledge of patent licenses which are
+reasonably necessary to implement that API, Contributor must also include this
+information in the LEGAL file.
+
+ (c) Representations.
+ Contributor represents that, except as disclosed pursuant to
+Section 3.4(a) above, Contributor believes that Contributor's Modifications
+are Contributor's original creation(s) and/or Contributor has sufficient
+rights to grant the rights conveyed by this License.
+
+
+ 3.5. Required Notices.
+ You must duplicate the notice in Exhibit A in each file of the Source
+Code. If it is not possible to put such notice in a particular Source Code
+file due to its structure, then You must include such notice in a location
+(such as a relevant directory) where a user would be likely to look for such a
+notice. If You created one or more Modification(s) You may add your name as a
+Contributor to the notice described in Exhibit A. You must also duplicate
+this License in any documentation for the Source Code where You describe
+recipients' rights or ownership rights relating to Covered Code. You may
+choose to offer, and to charge a fee for, warranty, support, indemnity or
+liability obligations to one or more recipients of Covered Code. However, You
+may do so only on Your own behalf, and not on behalf of the Initial Developer
+or any Contributor. You must make it absolutely clear than any such warranty,
+support, indemnity or liability obligation is offered by You alone, and You
+hereby agree to indemnify the Initial Developer and every Contributor for any
+liability incurred by the Initial Developer or such Contributor as a result of
+warranty, support, indemnity or liability terms You offer.
+
+ 3.6. Distribution of Executable Versions.
+ You may distribute Covered Code in Executable form only if the
+requirements of Section 3.1-3.5 have been met for that Covered Code, and if
+You include a notice stating that the Source Code version of the Covered Code
+is available under the terms of this License, including a description of how
+and where You have fulfilled the obligations of Section 3.2. The notice must
+be conspicuously included in any notice in an Executable version, related
+documentation or collateral in which You describe recipients' rights relating
+to the Covered Code. You may distribute the Executable version of Covered Code
+or ownership rights under a license of Your choice, which may contain terms
+different from this License, provided that You are in compliance with the
+terms of this License and that the license for the Executable version does not
+attempt to limit or alter the recipient's rights in the Source Code version
+from the rights set forth in this License. If You distribute the Executable
+version under a different license You must make it absolutely clear that any
+terms which differ from this License are offered by You alone, not by the
+Initial Developer or any Contributor. You hereby agree to indemnify the
+Initial Developer and every Contributor for any liability incurred by the
+Initial Developer or such Contributor as a result of any such terms You offer.
+
+ 3.7. Larger Works.
+ You may create a Larger Work by combining Covered Code with other code
+not governed by the terms of this License and distribute the Larger Work as a
+single product. In such a case, You must make sure the requirements of this
+License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+ If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Code due to statute,
+judicial order, or regulation then You must: (a) comply with the terms of this
+License to the maximum extent possible; and (b) describe the limitations and
+the code they affect. Such description must be included in the LEGAL file
+described in Section 3.4 and must be included with all distributions of the
+Source Code. Except to the extent prohibited by statute or regulation, such
+description must be sufficiently detailed for a recipient of ordinary skill to
+be able to understand it.
+
+5. Application of this License.
+
+ This License applies to code to which the Initial Developer has attached
+the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+ 6.1. New Versions.
+ Netscape Communications Corporation ("Netscape") may publish revised
+and/or new versions of the License from time to time. Each version will be
+given a distinguishing version number.
+
+ 6.2. Effect of New Versions.
+ Once Covered Code has been published under a particular version of the
+License, You may always continue to use it under the terms of that version.
+You may also choose to use such Covered Code under the terms of any subsequent
+version of the License published by Netscape. No one other than Netscape has
+the right to modify the terms applicable to Covered Code created under this
+License.
+
+ 6.3. Derivative Works.
+ If You create or use a modified version of this License (which you may
+only do in order to apply it to code which is not already Covered Code
+governed by this License), You must (a) rename Your license so that the
+phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "MPL", "NPL" or
+any confusingly similar phrase do not appear in your license (except to note
+that your license differs from this License) and (b) otherwise make it clear
+that Your version of the license contains terms which differ from the Mozilla
+Public License and Netscape Public License. (Filling in the name of the
+Initial Developer, Original Code or Contributor in the notice described in
+Exhibit A shall not of themselves be deemed to be modifications of this
+License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+ COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE,
+FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE
+QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED
+CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY
+OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR
+CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
+LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+DISCLAIMER.
+
+8. TERMINATION.
+
+ 8.1. This License and the rights granted hereunder will terminate
+automatically if You fail to comply with terms herein and fail to cure such
+breach within 30 days of becoming aware of the breach. All sublicenses to the
+Covered Code which are properly granted shall survive any termination of this
+License. Provisions which, by their nature, must remain in effect beyond the
+termination of this License shall survive.
+
+ 8.2. If You initiate litigation by asserting a patent infringement
+claim (excluding declatory judgment actions) against Initial Developer or a
+Contributor (the Initial Developer or Contributor against whom You file such
+action is referred to as "Participant") alleging that:
+
+ (a) such Participant's Contributor Version directly or indirectly
+infringes any patent, then any and all rights granted by such Participant to
+You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice
+from Participant terminate prospectively, unless if within 60 days after
+receipt of notice You either: (i) agree in writing to pay Participant a
+mutually agreeable reasonable royalty for Your past and future use of
+Modifications made by such Participant, or (ii) withdraw Your litigation claim
+with respect to the Contributor Version against such Participant. If within
+60 days of notice, a reasonable royalty and payment arrangement are not
+mutually agreed upon in writing by the parties or the litigation claim is not
+withdrawn, the rights granted by Participant to You under Sections 2.1 and/or
+2.2 automatically terminate at the expiration of the 60 day notice period
+specified above.
+
+ (b) any software, hardware, or device, other than such Participant's
+Contributor Version, directly or indirectly infringes any patent, then any
+rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are
+revoked effective as of the date You first made, used, sold, distributed, or
+had made, Modifications made by that Participant.
+
+ 8.3. If You assert a patent infringement claim against Participant
+alleging that such Participant's Contributor Version directly or indirectly
+infringes any patent where such claim is resolved (such as by license or
+settlement) prior to the initiation of patent infringement litigation, then
+the reasonable value of the licenses granted by such Participant under
+Sections 2.1 or 2.2 shall be taken into account in determining the amount or
+value of any payment or license.
+
+ 8.4. In the event of termination under Sections 8.1 or 8.2 above, all
+end user license agreements (excluding distributors and resellers) which have
+been validly granted by You or any distributor hereunder prior to termination
+shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY
+SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT,
+SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING,
+WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER
+FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES,
+EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH
+DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH
+OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
+APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
+EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+ The Covered Code is a "commercial item," as that term is defined in 48
+C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and
+"commercial computer software documentation," as such terms are used in 48
+C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R.
+227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users
+acquire Covered Code with only those rights set forth herein.
+
+11. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject matter
+hereof. If any provision of this License is held to be unenforceable, such
+provision shall be reformed only to the extent necessary to make it
+enforceable. This License shall be governed by California law provisions
+(except to the extent applicable law, if any, provides otherwise), excluding
+its conflict-of-law provisions. With respect to disputes in which at least one
+party is a citizen of, or an entity chartered or registered to do business in
+the United States of America, any litigation relating to this License shall be
+subject to the jurisdiction of the Federal Courts of the Northern District of
+California, with venue lying in Santa Clara County, California, with the
+losing party responsible for costs, including without limitation, court costs
+and reasonable attorneys' fees and expenses. The application of the United
+Nations Convention on Contracts for the International Sale of Goods is
+expressly excluded. Any law or regulation which provides that the language of
+a contract shall be construed against the drafter shall not apply to this
+License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is
+responsible for claims and damages arising, directly or indirectly, out of its
+utilization of rights under this License and You agree to work with Initial
+Developer and Contributors to distribute such responsibility on an equitable
+basis. Nothing herein is intended or shall be deemed to constitute any
+admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+ Initial Developer may designate portions of the Covered Code as
+Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits
+you to utilize portions of the Covered Code under Your choice of the MPL or
+the alternative licenses, if any, specified by the Initial Developer in the
+file described in Exhibit A.
+
+
+EXHIBIT A -Mozilla Public License.
+
+ ``The contents of this file are subject to the Mozilla Public License
+Version 1.1 (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.mozilla.org/MPL/
+
+ Software distributed under the License is distributed on an "AS IS"
+basis, WITHOUT WARRANTY OF
+ ANY KIND, either express or implied. See the License for the specific
+language governing rights and
+ limitations under the License.
+
+ The Original Code is ______________________________________.
+
+ The Initial Developer of the Original Code is ________________________.
+Portions created by
+ ______________________ are Copyright (C) ______
+_______________________. All Rights
+ Reserved.
+
+ Contributor(s): ______________________________________.
+
+ Alternatively, the contents of this file may be used under the terms of
+the _____ license (the [___] License), in which case the provisions of
+[______] License are applicable instead of those above. If you wish to allow
+use of your version of this file only under the terms of the [____] License
+and not to allow others to use your version of this file under the MPL,
+indicate your decision by deleting the provisions above and replace them
+with the notice and other provisions required by the [___] License. If you do
+not delete the provisions above, a recipient may use your version of this file
+under either the MPL or the [___] License."
+
+ [NOTE: The text of this Exhibit A may differ slightly from the text of
+the notices in the Source Code files of the Original Code. You should use the
+text of this Exhibit A rather than the text found in the Original Code Source
+Code for Your Modifications.]
+
+
+===============================================================================
+
+For the JAX-WS Reference Implementation component:
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+
+
+ 1. Definitions.
+
+ 1.1. "Contributor" means each individual or entity that
+ creates or contributes to the creation of Modifications.
+
+ 1.2. "Contributor Version" means the combination of the
+ Original Software, prior Modifications used by a
+ Contributor (if any), and the Modifications made by that
+ particular Contributor.
+
+ 1.3. "Covered Software" means (a) the Original Software, or
+ (b) Modifications, or (c) the combination of files
+ containing Original Software with files containing
+ Modifications, in each case including portions thereof.
+
+ 1.4. "Executable" means the Covered Software in any form
+ other than Source Code.
+
+ 1.5. "Initial Developer" means the individual or entity
+ that first makes Original Software available under this
+ License.
+
+ 1.6. "Larger Work" means a work which combines Covered
+ Software or portions thereof with code not governed by the
+ terms of this License.
+
+ 1.7. "License" means this document.
+
+ 1.8. "Licensable" means having the right to grant, to the
+ maximum extent possible, whether at the time of the initial
+ grant or subsequently acquired, any and all of the rights
+ conveyed herein.
+
+ 1.9. "Modifications" means the Source Code and Executable
+ form of any of the following:
+
+ A. Any file that results from an addition to,
+ deletion from or modification of the contents of a
+ file containing Original Software or previous
+ Modifications;
+
+ B. Any new file that contains any part of the
+ Original Software or previous Modification; or
+
+ C. Any new file that is contributed or otherwise made
+ available under the terms of this License.
+
+ 1.10. "Original Software" means the Source Code and
+ Executable form of computer software code that is
+ originally released under this License.
+
+ 1.11. "Patent Claims" means any patent claim(s), now owned
+ or hereafter acquired, including without limitation,
+ method, process, and apparatus claims, in any patent
+ Licensable by grantor.
+
+ 1.12. "Source Code" means (a) the common form of computer
+ software code in which modifications are made and (b)
+ associated documentation included in or with such code.
+
+ 1.13. "You" (or "Your") means an individual or a legal
+ entity exercising rights under, and complying with all of
+ the terms of, this License. For legal entities, "You"
+ includes any entity which controls, is controlled by, or is
+ under common control with You. For purposes of this
+ definition, "control" means (a) the power, direct or
+ indirect, to cause the direction or management of such
+ entity, whether by contract or otherwise, or (b) ownership
+ of more than fifty percent (50%) of the outstanding shares
+ or beneficial ownership of such entity.
+
+ 2. License Grants.
+
+ 2.1. The Initial Developer Grant.
+
+ Conditioned upon Your compliance with Section 3.1 below and
+ subject to third party intellectual property claims, the
+ Initial Developer hereby grants You a world-wide,
+ royalty-free, non-exclusive license:
+
+ (a) under intellectual property rights (other than
+ patent or trademark) Licensable by Initial Developer,
+ to use, reproduce, modify, display, perform,
+ sublicense and distribute the Original Software (or
+ portions thereof), with or without Modifications,
+ and/or as part of a Larger Work; and
+
+ (b) under Patent Claims infringed by the making,
+ using or selling of Original Software, to make, have
+ made, use, practice, sell, and offer for sale, and/or
+ otherwise dispose of the Original Software (or
+ portions thereof).
+
+ (c) The licenses granted in Sections 2.1(a) and (b)
+ are effective on the date Initial Developer first
+ distributes or otherwise makes the Original Software
+ available to a third party under the terms of this
+ License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent
+ license is granted: (1) for code that You delete from
+ the Original Software, or (2) for infringements
+ caused by: (i) the modification of the Original
+ Software, or (ii) the combination of the Original
+ Software with other software or devices.
+
+ 2.2. Contributor Grant.
+
+ Conditioned upon Your compliance with Section 3.1 below and
+ subject to third party intellectual property claims, each
+ Contributor hereby grants You a world-wide, royalty-free,
+ non-exclusive license:
+
+ (a) under intellectual property rights (other than
+ patent or trademark) Licensable by Contributor to
+ use, reproduce, modify, display, perform, sublicense
+ and distribute the Modifications created by such
+ Contributor (or portions thereof), either on an
+ unmodified basis, with other Modifications, as
+ Covered Software and/or as part of a Larger Work; and
+
+
+ (b) under Patent Claims infringed by the making,
+ using, or selling of Modifications made by that
+ Contributor either alone and/or in combination with
+ its Contributor Version (or portions of such
+ combination), to make, use, sell, offer for sale,
+ have made, and/or otherwise dispose of: (1)
+ Modifications made by that Contributor (or portions
+ thereof); and (2) the combination of Modifications
+ made by that Contributor with its Contributor Version
+ (or portions of such combination).
+
+ (c) The licenses granted in Sections 2.2(a) and
+ 2.2(b) are effective on the date Contributor first
+ distributes or otherwise makes the Modifications
+ available to a third party.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent
+ license is granted: (1) for any code that Contributor
+ has deleted from the Contributor Version; (2) for
+ infringements caused by: (i) third party
+ modifications of Contributor Version, or (ii) the
+ combination of Modifications made by that Contributor
+ with other software (except as part of the
+ Contributor Version) or other devices; or (3) under
+ Patent Claims infringed by Covered Software in the
+ absence of Modifications made by that Contributor.
+
+ 3. Distribution Obligations.
+
+ 3.1. Availability of Source Code.
+
+ Any Covered Software that You distribute or otherwise make
+ available in Executable form must also be made available in
+ Source Code form and that Source Code form must be
+ distributed only under the terms of this License. You must
+ include a copy of this License with every copy of the
+ Source Code form of the Covered Software You distribute or
+ otherwise make available. You must inform recipients of any
+ such Covered Software in Executable form as to how they can
+ obtain such Covered Software in Source Code form in a
+ reasonable manner on or through a medium customarily used
+ for software exchange.
+
+ 3.2. Modifications.
+
+ The Modifications that You create or to which You
+ contribute are governed by the terms of this License. You
+ represent that You believe Your Modifications are Your
+ original creation(s) and/or You have sufficient rights to
+ grant the rights conveyed by this License.
+
+ 3.3. Required Notices.
+
+ You must include a notice in each of Your Modifications
+ that identifies You as the Contributor of the Modification.
+ You may not remove or alter any copyright, patent or
+ trademark notices contained within the Covered Software, or
+ any notices of licensing or any descriptive text giving
+ attribution to any Contributor or the Initial Developer.
+
+ 3.4. Application of Additional Terms.
+
+ You may not offer or impose any terms on any Covered
+ Software in Source Code form that alters or restricts the
+ applicable version of this License or the recipients'
+ rights hereunder. You may choose to offer, and to charge a
+ fee for, warranty, support, indemnity or liability
+ obligations to one or more recipients of Covered Software.
+ However, you may do so only on Your own behalf, and not on
+ behalf of the Initial Developer or any Contributor. You
+ must make it absolutely clear that any such warranty,
+ support, indemnity or liability obligation is offered by
+ You alone, and You hereby agree to indemnify the Initial
+ Developer and every Contributor for any liability incurred
+ by the Initial Developer or such Contributor as a result of
+ warranty, support, indemnity or liability terms You offer.
+
+
+ 3.5. Distribution of Executable Versions.
+
+ You may distribute the Executable form of the Covered
+ Software under the terms of this License or under the terms
+ of a license of Your choice, which may contain terms
+ different from this License, provided that You are in
+ compliance with the terms of this License and that the
+ license for the Executable form does not attempt to limit
+ or alter the recipient's rights in the Source Code form
+ from the rights set forth in this License. If You
+ distribute the Covered Software in Executable form under a
+ different license, You must make it absolutely clear that
+ any terms which differ from this License are offered by You
+ alone, not by the Initial Developer or Contributor. You
+ hereby agree to indemnify the Initial Developer and every
+ Contributor for any liability incurred by the Initial
+ Developer or such Contributor as a result of any such terms
+ You offer.
+
+ 3.6. Larger Works.
+
+ You may create a Larger Work by combining Covered Software
+ with other code not governed by the terms of this License
+ and distribute the Larger Work as a single product. In such
+ a case, You must make sure the requirements of this License
+ are fulfilled for the Covered Software.
+
+ 4. Versions of the License.
+
+ 4.1. New Versions.
+
+ Sun Microsystems, Inc. is the initial license steward and
+ may publish revised and/or new versions of this License
+ from time to time. Each version will be given a
+ distinguishing version number. Except as provided in
+ Section 4.3, no one other than the license steward has the
+ right to modify this License.
+
+ 4.2. Effect of New Versions.
+
+ You may always continue to use, distribute or otherwise
+ make the Covered Software available under the terms of the
+ version of the License under which You originally received
+ the Covered Software. If the Initial Developer includes a
+ notice in the Original Software prohibiting it from being
+ distributed or otherwise made available under any
+ subsequent version of the License, You must distribute and
+ make the Covered Software available under the terms of the
+ version of the License under which You originally received
+ the Covered Software. Otherwise, You may also choose to
+ use, distribute or otherwise make the Covered Software
+ available under the terms of any subsequent version of the
+ License published by the license steward.
+
+ 4.3. Modified Versions.
+
+ When You are an Initial Developer and You want to create a
+ new license for Your Original Software, You may create and
+ use a modified version of this License if You: (a) rename
+ the license and remove any references to the name of the
+ license steward (except to note that the license differs
+ from this License); and (b) otherwise make it clear that
+ the license contains terms which differ from this License.
+
+
+ 5. DISCLAIMER OF WARRANTY.
+
+ COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
+ BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+ INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
+ SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
+ PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
+ PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
+ COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
+ INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF
+ ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
+ WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+ ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+ DISCLAIMER.
+
+ 6. TERMINATION.
+
+ 6.1. This License and the rights granted hereunder will
+ terminate automatically if You fail to comply with terms
+ herein and fail to cure such breach within 30 days of
+ becoming aware of the breach. Provisions which, by their
+ nature, must remain in effect beyond the termination of
+ this License shall survive.
+
+ 6.2. If You assert a patent infringement claim (excluding
+ declaratory judgment actions) against Initial Developer or
+ a Contributor (the Initial Developer or Contributor against
+ whom You assert such claim is referred to as "Participant")
+ alleging that the Participant Software (meaning the
+ Contributor Version where the Participant is a Contributor
+ or the Original Software where the Participant is the
+ Initial Developer) directly or indirectly infringes any
+ patent, then any and all rights granted directly or
+ indirectly to You by such Participant, the Initial
+ Developer (if the Initial Developer is not the Participant)
+ and all Contributors under Sections 2.1 and/or 2.2 of this
+ License shall, upon 60 days notice from Participant
+ terminate prospectively and automatically at the expiration
+ of such 60 day notice period, unless if within such 60 day
+ period You withdraw Your claim with respect to the
+ Participant Software against such Participant either
+ unilaterally or pursuant to a written agreement with
+ Participant.
+
+ 6.3. In the event of termination under Sections 6.1 or 6.2
+ above, all end user licenses that have been validly granted
+ by You or any distributor hereunder prior to termination
+ (excluding licenses granted to You by any distributor)
+ shall survive termination.
+
+ 7. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+ (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
+ INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
+ COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
+ LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
+ CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+ LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
+ STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+ COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+ INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+ LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
+ INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
+ APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
+ NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
+ CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
+ APPLY TO YOU.
+
+ 8. U.S. GOVERNMENT END USERS.
+
+ The Covered Software is a "commercial item," as that term is
+ defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
+ computer software" (as that term is defined at 48 C.F.R.
+ 252.227-7014(a)(1)) and "commercial computer software
+ documentation" as such terms are used in 48 C.F.R. 12.212 (Sept.
+ 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
+ through 227.7202-4 (June 1995), all U.S. Government End Users
+ acquire Covered Software with only those rights set forth herein.
+ This U.S. Government Rights clause is in lieu of, and supersedes,
+ any other FAR, DFAR, or other clause or provision that addresses
+ Government rights in computer software under this License.
+
+ 9. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject
+ matter hereof. If any provision of this License is held to be
+ unenforceable, such provision shall be reformed only to the
+ extent necessary to make it enforceable. This License shall be
+ governed by the law of the jurisdiction specified in a notice
+ contained within the Original Software (except to the extent
+ applicable law, if any, provides otherwise), excluding such
+ jurisdiction's conflict-of-law provisions. Any litigation
+ relating to this License shall be subject to the jurisdiction of
+ the courts located in the jurisdiction and venue specified in a
+ notice contained within the Original Software, with the losing
+ party responsible for costs, including, without limitation, court
+ costs and reasonable attorneys' fees and expenses. The
+ application of the United Nations Convention on Contracts for the
+ International Sale of Goods is expressly excluded. Any law or
+ regulation which provides that the language of a contract shall
+ be construed against the drafter shall not apply to this License.
+ You agree that You alone are responsible for compliance with the
+ United States export administration regulations (and the export
+ control laws and regulation of any other countries) when You use,
+ distribute or otherwise make available any Covered Software.
+
+ 10. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is
+ responsible for claims and damages arising, directly or
+ indirectly, out of its utilization of rights under this License
+ and You agree to work with Initial Developer and Contributors to
+ distribute such responsibility on an equitable basis. Nothing
+ herein is intended or shall be deemed to constitute any admission
+ of liability.
+
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/resources/META-INF/NOTICE b/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000000..d48810c0ec
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,18 @@
+=========================================================================
+== NOTICE file corresponding to the section 4 d of ==
+== the Apache License, Version 2.0, ==
+== in this case for the Apache Tuscany distribution. ==
+=========================================================================
+
+This product includes software developed by the Apache Software Foundation
+(http://www.apache.org/).
+
+This product also includes software developed by:
+- the Eclipse Modeling Framework project (http://www.eclipse.org/emf/)
+- the Celtix project (http://celtix.objectweb.org/)
+- the Mozilla Rhino project (http://www.mozilla.org/rhino/)
+- the GlassFish JAX-WS project (https://jax-ws.dev.java.net/)
+
+Please read the LICENSE.txt file present in the root directory of this
+distribution.
+
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/resources/META-INF/README.txt b/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/resources/META-INF/README.txt
new file mode 100644
index 0000000000..9b26d1690a
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/plugin/src/main/resources/META-INF/README.txt
@@ -0,0 +1,35 @@
+Apache Tuscany M1 build (May, 2006)
+===================================
+
+http://incubator.apache.org/tuscany/
+
+Tuscany is an effort undergoing incubation at the Apache Software Foundation
+(ASF), sponsored by the Web Services PMC.
+
+Incubation is required of all newly accepted projects until a further review
+indicates that the infrastructure, communications, and decision making process
+have stabilized in a manner consistent with other successful ASF projects.
+
+While incubation status is not necessarily a reflection of the completeness or
+stability of the code, it does indicate that the project has yet to be fully
+endorsed by the ASF.
+
+
+Support
+-------
+
+Any problem with this release can be reported to the Tuscany mailing list
+or in the JIRA issue tracker.
+
+Mailing list subscription:
+ tuscany-dev-subscribe@ws.apache.org
+
+Jira:
+ http://issues.apache.org/jira/browse/Tuscany
+
+
+Thank you for using Tuscany!
+
+
+The Tuscany Team.
+
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/pom.xml b/sca-java-1.x/branches/java-post-M1/sdo/pom.xml
new file mode 100644
index 0000000000..6f50e10e36
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/pom.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 2005-2006 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.
+ -->
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.tuscany</groupId>
+ <artifactId>tuscany-sdo</artifactId>
+ <packaging>pom</packaging>
+ <name>Tuscany SDO Implementation Project</name>
+ <version>1.0-SNAPSHOT</version>
+
+ <repositories>
+ <repository>
+ <id>eclipse.emf</id>
+ <url>http://download.eclipse.org/tools/emf/maven2</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
+ <repository>
+ <id>jsdelfino</id>
+ <url>http://people.apache.org/~jsdelfino/maven2</url>
+ </repository>
+ </repositories>
+
+ <properties>
+ <emfVersion>2.2.0</emfVersion>
+ </properties>
+
+ <modules>
+ <module>impl</module>
+ <module>tools</module>
+ <module>plugin</module>
+ </modules>
+
+ <build>
+ <defaultGoal>install</defaultGoal>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.4</source>
+ <target>1.4</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>**/*TestCase.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+</project>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/pom.xml b/sca-java-1.x/branches/java-post-M1/sdo/tools/pom.xml
new file mode 100644
index 0000000000..ad7eacf2c4
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/pom.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright (c) 2005-2006 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.
+ -->
+<project>
+ <parent>
+ <groupId>org.apache.tuscany</groupId>
+ <artifactId>tuscany-sdo</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>tuscany-sdo-tools</artifactId>
+ <name>Tuscany SDO Tools</name>
+ <description>SDO Tools.</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany</groupId>
+ <artifactId>tuscany-sdo-impl</artifactId>
+ <version>${pom.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>codegen</artifactId>
+ <version>${emfVersion}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.eclipse.emf</groupId>
+ <artifactId>codegen-ecore</artifactId>
+ <version>${emfVersion}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/readme.htm b/sca-java-1.x/branches/java-post-M1/sdo/tools/readme.htm
new file mode 100644
index 0000000000..1d96e24387
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/readme.htm
@@ -0,0 +1,29 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><!-- Copyright (c) 2006 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. -->
+
+<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
+<meta content="text/css" http-equiv="Content-Style-Type"><title>Tuscany SDO Tools</title>
+
+<style type="text/css" media="all">
+@import url("../../css/maven-base.css");
+@import url("../../css/maven-theme.css");
+@import url("../../css/site.css");
+</style>
+<link rel="stylesheet" href="./css/print.css" type="text/css" media="print"></head>
+
+<body>
+<h2>Tuscany SDO Tools</h2>
+<h3>Building SDO Tools</h3>
+
+To build the Tuscany SDO Java Generator tools, perform the following steps
+<ul>
+<li> Ensure that the environment variable JAVA_HOME is set to point to an installation of Java 5 (Java 1.5.0_6 works) </li>
+<li> Run the command "mvn" </li>
+</ul>
+<b>Note:</b> only the Interface2JavaGenerator class requires Java 5. You can build the XSD2JavaGenerator tool using a Java 1.4 JDK by removing the Interface2JavaGenerator.java file before running the "mvn" command.
+
+</body></html>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/Interface2JavaGenerator.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/Interface2JavaGenerator.java
new file mode 100644
index 0000000000..5bf5eba837
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/Interface2JavaGenerator.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.generate;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+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.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.EcoreFactory;
+import org.eclipse.emf.ecore.impl.EPackageRegistryImpl;
+
+import commonj.sdo.helper.TypeHelper;
+
+public class Interface2JavaGenerator extends JavaGenerator
+{
+ /**
+ * Generate static SDOs from Java interfaces
+ *
+ * Usage arguments: see JavaGenerator
+ *
+ * [ -targetDirectory <target-root-directory> ]
+ * [ -javaPackage <java-package-name> ]
+ * [ -namespace <xsd-namespace> ]
+ * [ other options ... ]
+ * interface-names
+ *
+ * Options:
+ *
+ * -namespace
+ * Set the namespaceURI of the generated SDO Types to the specified value.
+ *
+ * NOTE: see the base class JavaGenerator for other options.
+ *
+ * Example:
+ *
+ * generate somepackage.InterfaceA somepackage.InterfaceB
+ *
+ */
+ public static void main(String args[])
+ {
+ try
+ {
+ JavaGenerator generator = new Interface2JavaGenerator();
+ generator.processArguments(args);
+ generator.run(args);
+ }
+ catch (IllegalArgumentException e)
+ {
+ printUsage();
+ }
+ }
+
+ protected String namespace = null;
+
+ protected int handleArgument(String args[], int index)
+ {
+ if (args[index].equalsIgnoreCase("-namespace"))
+ {
+ namespace = args[++index];
+ }
+ else
+ {
+ return super.handleArgument(args, index);
+ }
+
+ return index + 1;
+ }
+
+ protected void run(String args[])
+ {
+ List javaInterfaces=new ArrayList();
+
+ for (int index = inputIndex; index < args.length; ++index)
+ {
+ javaInterfaces.add(args[index]);
+ }
+
+ ClassLoader classLoader=JavaGenerator.class.getClassLoader();
+ generateFromJavaInterfaces(classLoader, javaInterfaces, namespace, targetDirectory, javaPackage, prefix, genOptions);
+ }
+
+ public static void generateFromJavaInterfaces(ClassLoader classLoader, List javaInterfaces, String packageURI, String targetDirectory, String javaPackage, String prefix, int genOptions)
+ {
+ try
+ {
+ // Initialize the SDO runtime
+ DataObjectUtil.initRuntime();
+ EPackage.Registry packageRegistry = new EPackageRegistryImpl(EPackage.Registry.INSTANCE);
+
+ // Create an EPackage for the generated SDO
+ if (packageURI == null)
+ packageURI = "http://" + javaPackage;
+ EPackage implEPackage = EcoreFactory.eINSTANCE.createEPackage();
+ implEPackage.setNsURI(packageURI);
+ String shortName = shortName(packageURI);
+ implEPackage.setName(shortName);
+ implEPackage.setNsPrefix(shortName.toLowerCase());
+ packageRegistry.put(packageURI, implEPackage);
+
+ // Create EClasses for all the given Java interfaces
+ Map eClasses = new HashMap();
+ for (Iterator iter = javaInterfaces.iterator(); iter.hasNext();)
+ {
+ String interfaceName = (String)iter.next();
+ Class instanceClass = Class.forName(interfaceName, true, classLoader);
+
+ EClass implEClass = EcoreFactory.eINSTANCE.createEClass();
+ String className = shortName(instanceClass.getName());
+ implEClass.setName(className);
+ implEClass.setInstanceClass(instanceClass);
+
+ eClasses.put(instanceClass, implEClass);
+ implEPackage.getEClassifiers().add(implEClass);
+ }
+
+ // Populate the EClasses with EAttributes and EReferences for their properties
+ for (Iterator iter = implEPackage.getEClassifiers().iterator(); iter.hasNext();)
+ {
+ EClass implEClass = (EClass)iter.next();
+ Class instanceClass = implEClass.getInstanceClass();
+ Method[] methods = instanceClass.getMethods();
+ for (int m = 0; m < methods.length; m++)
+ {
+ Method method = methods[m];
+ String propertyName = null;
+ if (method.getName().startsWith("get"))
+ propertyName = method.getName().substring(3);
+ else if (method.getName().startsWith("is"))
+ propertyName = method.getName().substring(2);
+
+ if (propertyName != null)
+ {
+ if (propertyName.length() > 1)
+ propertyName = propertyName.substring(0, 1).toLowerCase() + propertyName.substring(1);
+
+ Class propertyClass = method.getReturnType();
+ EClass propertyEClass = (EClass)eClasses.get(propertyClass);
+
+ if (propertyEClass != null)
+ {
+ // The property is another SDO, create an EReference to represent the property
+ EReference reference = EcoreFactory.eINSTANCE.createEReference();
+ reference.setName(propertyName);
+ reference.setContainment(true);
+ reference.setEType(propertyEClass);
+ implEClass.getEStructuralFeatures().add(reference);
+
+ }
+ else
+ {
+ // The property is a List<T> and T is an SDO, created a 0..many EReference to represent the property
+ if (propertyClass == List.class)
+ {
+ Type genericType = method.getGenericReturnType();
+ if (genericType instanceof ParameterizedType)
+ {
+ ParameterizedType parameterizedType = (ParameterizedType)genericType;
+ Type[] targs = parameterizedType.getActualTypeArguments();
+ if (targs.length != 0 && eClasses.containsKey(targs[0]))
+ {
+ propertyEClass = (EClass)eClasses.get(targs[0]);
+ if (propertyEClass != null)
+ {
+ EReference reference = EcoreFactory.eINSTANCE.createEReference();
+ reference.setName(propertyName);
+ reference.setContainment(true);
+ reference.setEType(propertyEClass);
+ reference.setUpperBound(-1);
+ implEClass.getEStructuralFeatures().add(reference);
+ }
+ }
+ }
+ continue;
+ }
+
+ // The property is a regular Java type / not an SDO, create an EAttribute to represent it
+ EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
+ attribute.setName(propertyName);
+ EDataType dataType = (EDataType)TypeHelper.INSTANCE.getType(propertyClass);
+ attribute.setEType(dataType);
+ implEClass.getEStructuralFeatures().add(attribute);
+ }
+ }
+ }
+ }
+
+ generatePackages(packageRegistry.values(), packageURI, shortName, targetDirectory, javaPackage, prefix, genOptions);
+ }
+ catch (ClassNotFoundException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ protected static void printUsage()
+ {
+ System.out.println("Usage arguments:");
+ System.out.println(" [ -targetDirectory <target-root-directory> ]");
+ System.out.println(" [ -javaPackage <java-package-name> ]");
+ System.out.println(" [ -namespace <xsd-namespace> ]");
+ System.out.println(" [ -prefix <prefix-string> ]");
+ System.out.println(" [ -sparsePattern | -storePattern ]");
+ System.out.println(" [ -noInterfaces ]");
+ System.out.println(" [ -noContainment ]");
+ System.out.println(" [ -noNotification ]");
+ System.out.println(" [ -arrayAccessors ]");
+ System.out.println(" [ -generateLoader ]");
+ System.out.println(" [ -noUnsettable ]");
+ System.out.println(" [ -noEMF ]");
+ System.out.println(" interface-names");
+ System.out.println("");
+ System.out.println("For example:");
+ System.out.println("");
+ System.out.println(" generate somepackage.InterfaceA somepackage.InterfaceB");
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/JavaGenerator.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/JavaGenerator.java
new file mode 100644
index 0000000000..f12a2667ee
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/JavaGenerator.java
@@ -0,0 +1,616 @@
+/**
+ *
+ * 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.generate;
+
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.apache.tuscany.sdo.generate.adapter.SDOGenModelGeneratorAdapterFactory;
+import org.apache.tuscany.sdo.helper.XSDHelperImpl;
+import org.apache.tuscany.sdo.impl.SDOPackageImpl;
+import org.apache.tuscany.sdo.model.impl.ModelPackageImpl;
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.eclipse.emf.codegen.ecore.generator.Generator;
+import org.eclipse.emf.codegen.ecore.generator.GeneratorAdapterFactory;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.codegen.ecore.genmodel.GenDelegationKind;
+import org.eclipse.emf.codegen.ecore.genmodel.GenModel;
+import org.eclipse.emf.codegen.ecore.genmodel.GenModelFactory;
+import org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage;
+import org.eclipse.emf.codegen.ecore.genmodel.GenPackage;
+import org.eclipse.emf.codegen.ecore.genmodel.GenResourceKind;
+import org.eclipse.emf.codegen.ecore.genmodel.generator.GenBaseGeneratorAdapter;
+import org.eclipse.emf.codegen.ecore.genmodel.generator.GenModelGeneratorAdapterFactory;
+import org.eclipse.emf.codegen.util.CodeGenUtil;
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+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.BasicExtendedMetaData;
+import org.eclipse.emf.ecore.util.Diagnostician;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.xsd.XSDSchema;
+
+import commonj.sdo.helper.XSDHelper;
+
+/**
+ * Abstract base class for static SDO code generators. See XSD2JavaGenerator and Interface2JavaGenerator for
+ * concrete generator commands.
+ *
+ * Supports the following command line options:
+ *
+ * [ -targetDirectory <target-root-directory> ]
+ * [ -javaPackage <java-package-name> ]
+ * [ -prefix <prefix-string> ]
+ * [ -sparsePattern | -storePattern ]
+ * [ -noInterfaces ]
+ * [ -noContainment ]
+ * [ -noNotification ]
+ * [ -arrayAccessors ]
+ * [ -generateLoader ]
+ * [ -noUnsettable ]
+ * [ -noEMF ]
+ *
+ * Basic options:
+ *
+ * -targetDirectory
+ * Generates the Java source code in the specified directory. By default, the code is generated
+ * in the same directory as the input xsd or wsdl file.
+ * -javaPackage
+ * Overrides the Java package for the generated classes. By default the package name is derived
+ * from the targetNamespace of the XML schema being generated. For example, if the targetNamespace is
+ * "http://www.example.com/simple", the default package will be "com.example.simple".
+ * -prefix
+ * Specifies the prefix string to use for naming the generated factory. For example "-prefix Foo" will
+ * result in a factory interface with the name "FooFactory".
+ * -sparsePattern
+ * For SDO metamodels that have classes with many properties of which only a few are typically set at
+ * runtime, this option can be used to produce a space-optimized implementation (at the expense of speed).
+ * -storePattern
+ * This option can be used to generate static classes that work with a Store-based DataObject
+ * implementation. It changes the generator pattern to generate accessors which delegate to the
+ * reflective methods (as opposed to the other way around) and changes the DataObject base class
+ * to org.apache.tuscany.sdo.impl.StoreDataObjectImpl. Note that this option generates classes that
+ * require a Store implementation to be provided before they can be run.
+ * -noEMF
+ * This option is used to generate static classes that have no references to EMF classes. This
+ * feature is currently being implemented and is in a preliminary state.
+ *
+ * The following options can be used to increase performance, but with some loss of SDO functionality:
+ *
+ * -noInterfaces
+ * By default, each DataObject generates both a Java interface and a corresponding implementation
+ * class. If an SDO metamodel does not use multiple inheritance (which is always the case for
+ * XML Schema derived models), then this option can be used to eliminate the interface and to generate
+ * only an implementation class.
+ *
+ * Following are planned but not supported yet:
+ *
+ * -noNotification
+ * This option eliminates all change notification overhead in the generated classes. Changes to
+ * DataObjects generated using this option cannot be recorded, and consequently the classes cannot
+ * be used with an SDO ChangeSummary or DataGraph.
+ * -noContainment
+ * Turns off container management for containment properties. DataObject.getContainer() will always
+ * return null for data objects generated with this option, even if a containment reference is set.
+ * Setting a containment reference will also not automatically remove the target object from its
+ * previous container, if it had one, so it will need to be explicitly removed by the client. Use
+ * of this option is only recommended for scenarios where this kind of container movement/management
+ * is not necessary.
+ * -arrayAccessors
+ * Generates Java array getters/setters for multiplicity-many properties. With this option,
+ * the set of "standard" JavaBean array accessor methods (e.g., Foo[] getFoo(), Foo getFoo(int),
+ * int getFooLength(), setFoo(Foo[]), and void setFoo(int, Foo)) are generated. The normal
+ * List-returning accessor is renamed with the suffix "List" (e.g., List getFooList()). The array
+ * returned by the generated method is not a copy, but instead a pointer to the underlying storage
+ * array, so directly modifying it can have undesirable consequences and should be avoided.
+ * -generateLoader
+ * Generate a fast XML parser/loader for instances of the model. The details of this option are
+ * subject to change, but currently it generates two additional classes in a "util" package:
+ * <prefix>ResourceImpl and <prefix>ResourceFactoryImpl. To use the generated loader at runtime,
+ * you need to pass an option to the XMLHelper.load() method like this:
+ * Map options = new HashMap();
+ * options.put("GENERATED_LOADER", <prefix>ResourceFactoryImpl.class);
+ * XMLDocument doc = XMLHelper.INSTANCE.load(new FileInputStream("somefile.xml"), null, options);
+ * Note: this option currently only works for simple schemas without substitution groups or wildcards.
+ * -noUnsettable
+ * By default, some XML constructs result in SDO property implementations that maintain additional
+ * state information to record when the property has been set to the "default value", as opposed to
+ * being truly unset (see DataObject.isSet() and DataObject.unset()). The SDO specification allows an
+ * implementation to choose to provide this behavior or not. With this option, all generated properties
+ * will not record their unset state. The generated isSet() methods simply returns whether the current
+ * value is equal to the property's "default value".
+ *
+ */
+public abstract class JavaGenerator
+{
+ public static int OPTION_NO_INTERFACES=0x1;
+ public static int OPTION_SPARSE_PATTERN=0x2;
+ public static int OPTION_STORE_PATTERN=0x4;
+ public static int OPTION_NO_CONTAINMENT=0x8;
+ public static int OPTION_NO_NOTIFICATION=0x10;
+ public static int OPTION_ARRAY_ACCESSORS=0x20;
+ public static int OPTION_GENERATE_LOADER=0x40;
+ public static int OPTION_NO_UNSETTABLE=0x80;
+ //FIXME Temporary, I need this option for now to get Switch classes generated for the SCDL models
+ public static int OPTION_GENERATE_SWITCH=0x100;
+ public static int OPTION_NO_EMF=0x200;
+
+ static
+ {
+ System.setProperty("EMF_NO_CONSTRAINTS", "true"); // never generate a validator class
+ }
+
+ /**
+ * @deprecated replaced by XSD2JavaGenerator
+ */
+ public static void main(String args[])
+ {
+ try
+ {
+ JavaGenerator generator = new XSD2JavaGenerator();
+ generator.processArguments(args);
+ generator.run(args);
+ }
+ catch (IllegalArgumentException e)
+ {
+ printUsage();
+ }
+ }
+
+ protected void processArguments(String args[])
+ {
+ if (args.length == 0)
+ {
+ throw new IllegalArgumentException();
+ }
+
+ int index = 0;
+ while (args[index].startsWith("-"))
+ {
+ int newIndex = handleArgument(args, index);
+ if (newIndex == index)
+ {
+ throw new IllegalArgumentException();
+ }
+ index = newIndex;
+ if (index == args.length)
+ {
+ throw new IllegalArgumentException();
+ }
+ }
+
+ inputIndex = index;
+ }
+
+ protected String targetDirectory = null;
+ protected String javaPackage = null;
+ protected String prefix = null;
+ protected int genOptions = 0;
+ protected String xsdFileName;
+ protected int inputIndex;
+
+ protected int handleArgument(String args[], int index)
+ {
+ if (args[index].equalsIgnoreCase("-targetDirectory"))
+ {
+ targetDirectory = args[++index];
+ }
+ else if (args[index].equalsIgnoreCase("-javaPackage"))
+ {
+ javaPackage = args[++index];
+ }
+ else if (args[index].equalsIgnoreCase("-prefix"))
+ {
+ prefix = args[++index];
+ }
+ else if (args[index].equalsIgnoreCase("-noInterfaces"))
+ {
+ genOptions |= OPTION_NO_INTERFACES;
+ }
+ else if (args[index].equalsIgnoreCase("-sparsePattern"))
+ {
+ genOptions |= OPTION_SPARSE_PATTERN;
+ }
+ else if (args[index].equalsIgnoreCase("-storePattern"))
+ {
+ genOptions |= OPTION_STORE_PATTERN;
+ }
+ else if (args[index].equalsIgnoreCase("-noContainment"))
+ {
+ genOptions |= OPTION_NO_CONTAINMENT;
+ }
+ else if (args[index].equalsIgnoreCase("-noNotification"))
+ {
+ genOptions |= OPTION_NO_NOTIFICATION;
+ }
+ else if (args[index].equalsIgnoreCase("-arrayAccessors"))
+ {
+ genOptions |= OPTION_ARRAY_ACCESSORS;
+ }
+ else if (args[index].equalsIgnoreCase("-generateLoader"))
+ {
+ genOptions |= OPTION_GENERATE_LOADER;
+ }
+ else if (args[index].equalsIgnoreCase("-noUnsettable"))
+ {
+ genOptions |= OPTION_NO_UNSETTABLE;
+ }
+ else if (args[index].equalsIgnoreCase("-noEMF"))
+ {
+ genOptions |= OPTION_NO_EMF;
+ }
+ //else if (...)
+ else
+ {
+ return index;
+ }
+
+ return index + 1;
+ }
+
+ protected abstract void run(String args[]);
+
+ /**
+ * @deprecated moved to XSD2JavaGenerator
+ */
+ public static void generateFromXMLSchema(String xsdFileName, String targetDirectory, String javaPackage, String prefix, int genOptions)
+ {
+ DataObjectUtil.initRuntime();
+ EPackage.Registry packageRegistry = new EPackageRegistryImpl(EPackage.Registry.INSTANCE);
+ ExtendedMetaData extendedMetaData = new BasicExtendedMetaData(packageRegistry);
+ XSDHelper xsdHelper = new XSDHelperImpl(extendedMetaData);
+
+ try
+ {
+ File inputFile = new File(xsdFileName).getAbsoluteFile();
+ InputStream inputStream = new FileInputStream(inputFile);
+ xsdHelper.define(inputStream, inputFile.toURI().toString());
+
+ if (targetDirectory == null)
+ {
+ targetDirectory = new File(xsdFileName).getCanonicalFile().getParent();
+ }
+ else
+ {
+ targetDirectory = new File(targetDirectory).getCanonicalPath();
+ }
+
+ if (!packageRegistry.values().isEmpty())
+ {
+ String packageURI = getSchemaNamespace(xsdFileName);
+ generatePackages(packageRegistry.values(), packageURI, null, targetDirectory, javaPackage, prefix, genOptions);
+ }
+
+ /*
+ for (Iterator iter = packageRegistry.values().iterator(); iter.hasNext();)
+ {
+ EPackage ePackage = (EPackage)iter.next();
+ String basePackage = extractBasePackageName(ePackage, javaPackage);
+ if (prefix == null)
+ {
+ prefix = CodeGenUtil.capName(ePackage.getName());
+ }
+ generateFromEPackage(ePackage, targetDirectory, basePackage, prefix, genOptions);
+ }
+ */
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ public static void generatePackages(Collection packageList, String packageURI, String shortName, String targetDirectory, String javaPackage, String prefix, int genOptions)
+ {
+ ResourceSet resourceSet = DataObjectUtil.createResourceSet();
+ List usedGenPackages = new ArrayList();
+ GenModel genModel = null;
+ for (Iterator iter = packageList.iterator(); iter.hasNext();)
+ {
+ EPackage currentEPackage = (EPackage)iter.next();
+ String currentBasePackage = extractBasePackageName(currentEPackage, javaPackage);
+ String currentPrefix = prefix == null ? CodeGenUtil.capName(shortName != null ? shortName : currentEPackage.getName()) : prefix;
+ GenPackage currentGenPackage = createGenPackage(currentEPackage, currentBasePackage, currentPrefix, genOptions, resourceSet);
+ if (currentEPackage.getNsURI().equals(packageURI))
+ {
+ genModel = currentGenPackage.getGenModel();
+ }
+ else
+ {
+ usedGenPackages.add(currentGenPackage);
+ }
+ }
+
+ if (genModel == null) return; // nothing to generate
+
+ usedGenPackages.add(createGenPackage(SDOPackageImpl.eINSTANCE, "org.apache.tuscany", "SDO", 0, resourceSet));
+ usedGenPackages.add(createGenPackage(ModelPackageImpl.eINSTANCE, "org.apache.tuscany.sdo", "Model", 0, resourceSet));
+ genModel.getUsedGenPackages().addAll(usedGenPackages);
+
+ // Invoke the SDO JavaGenerator to generate the SDO classes
+ try
+ {
+ generateFromGenModel(genModel, new File(targetDirectory).getCanonicalPath(), genOptions);
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @deprecated
+ */
+ public static String getSchemaNamespace(String xsdFileName)
+ {
+ ResourceSet resourceSet = DataObjectUtil.createResourceSet();
+ File inputFile = new File(xsdFileName).getAbsoluteFile();
+ Resource model = resourceSet.getResource(URI.createURI(inputFile.toURI().toString()), true);
+ XSDSchema schema = (XSDSchema)model.getContents().get(0);
+ return schema.getTargetNamespace();
+ }
+
+ public static GenPackage createGenPackage(EPackage ePackage, String basePackage, String prefix, int genOptions, ResourceSet resourceSet)
+ {
+ GenModel genModel = ecore2GenModel(ePackage, basePackage, prefix, genOptions);
+
+ URI ecoreURI = URI.createURI("file:///" + ePackage.getName() + ".ecore");
+ URI genModelURI = ecoreURI.trimFileExtension().appendFileExtension("genmodel");
+
+ Resource ecoreResource = resourceSet.createResource(ecoreURI);
+ ecoreResource.getContents().add(ePackage);
+
+ Resource genModelResource = resourceSet.createResource(genModelURI);
+ genModelResource.getContents().add(genModel);
+
+ return (GenPackage)genModel.getGenPackages().get(0);
+ }
+
+ public static void generateFromEPackage(EPackage ePackage, String targetDirectory, String basePackage, String prefix, int genOptions)
+ {
+ GenModel genModel = ecore2GenModel(ePackage, basePackage, prefix, genOptions);
+
+ ResourceSet resourceSet = DataObjectUtil.createResourceSet();
+ URI ecoreURI = URI.createURI("file:///temp.ecore");
+ URI genModelURI = ecoreURI.trimFileExtension().appendFileExtension("genmodel");
+
+ Resource ecoreResource = resourceSet.createResource(ecoreURI);
+ ecoreResource.getContents().add(ePackage);
+
+ Resource genModelResource = resourceSet.createResource(genModelURI);
+ genModelResource.getContents().add(genModel);
+
+ generateFromGenModel(genModel, targetDirectory, genOptions);
+ }
+
+ public static void generateFromGenModel(GenModel genModel, String targetDirectory, int genOptions)
+ {
+ Resource resource = genModel.eResource();
+
+ if (targetDirectory != null)
+ {
+ resource.getResourceSet().getURIConverter().getURIMap().put(
+ URI.createURI("platform:/resource/TargetProject/"),
+ URI.createFileURI(targetDirectory + "/"));
+ genModel.setModelDirectory("/TargetProject");
+ }
+
+ //genModel.gen(new BasicMonitor.Printing(System.out));
+ GeneratorAdapterFactory.Descriptor.Registry.INSTANCE.addDescriptor
+ (GenModelPackage.eNS_URI, GenModelGeneratorAdapterFactory.DESCRIPTOR);
+
+ Generator generator = new Generator();
+
+ if ((genOptions & OPTION_NO_EMF) != 0)
+ {
+ generator.getAdapterFactoryDescriptorRegistry().addDescriptor
+ (GenModelPackage.eNS_URI, SDOGenModelGeneratorAdapterFactory.DESCRIPTOR);
+ }
+
+ generator.setInput(genModel);
+ generator.generate(genModel, GenBaseGeneratorAdapter.MODEL_PROJECT_TYPE, new BasicMonitor.Printing(System.out));
+
+
+ for (Iterator j = resource.getContents().iterator(); j.hasNext();)
+ {
+ EObject eObject = (EObject)j.next();
+ Diagnostic diagnostic = Diagnostician.INSTANCE.validate(eObject);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ printDiagnostic(diagnostic, "");
+ }
+ }
+ }
+
+ public static GenModel ecore2GenModel(EPackage ePackage, String basePackage, String prefix, int genOptions)
+ {
+ GenModel genModel = GenModelFactory.eINSTANCE.createGenModel();
+ genModel.initialize(Collections.singleton(ePackage));
+
+ genModel.setRootExtendsInterface("");
+ genModel.setRootImplementsInterface("commonj.sdo.DataObject");
+ genModel.setRootExtendsClass("org.apache.tuscany.sdo.impl.DataObjectImpl");
+ genModel.setFeatureMapWrapperInterface("commonj.sdo.Sequence");
+ genModel.setFeatureMapWrapperInternalInterface("org.apache.tuscany.sdo.util.BasicSequence");
+ genModel.setFeatureMapWrapperClass("org.apache.tuscany.sdo.util.BasicSequence");
+ genModel.setSuppressEMFTypes(true);
+ genModel.setSuppressEMFMetaData(true);
+ genModel.setSuppressEMFModelTags(true);
+ genModel.setCanGenerate(true);
+ //FIXME workaround java.lang.NoClassDefFoundError: org/eclipse/jdt/core/jdom/IDOMNode with 02162006 build
+ genModel.setFacadeHelperClass("Hack");
+ genModel.setForceOverwrite(true);
+
+ if ((genOptions & OPTION_NO_INTERFACES) != 0)
+ {
+ genModel.setSuppressInterfaces(true);
+ }
+
+ if ((genOptions & OPTION_SPARSE_PATTERN) != 0)
+ {
+ genModel.setFeatureDelegation(GenDelegationKind.VIRTUAL_LITERAL);
+ }
+ else if ((genOptions & OPTION_STORE_PATTERN) != 0)
+ {
+ genModel.setFeatureDelegation(GenDelegationKind.REFLECTIVE_LITERAL);
+ genModel.setRootExtendsClass("org.apache.tuscany.sdo.impl.StoreDataObjectImpl");
+ }
+
+ if ((genOptions & OPTION_NO_CONTAINMENT) != 0)
+ {
+ genModel.setSuppressContainment(true);
+ }
+
+ if ((genOptions & OPTION_NO_NOTIFICATION) != 0)
+ {
+ genModel.setSuppressNotification(true);
+ }
+
+ if ((genOptions & OPTION_ARRAY_ACCESSORS) != 0)
+ {
+ genModel.setArrayAccessors(true);
+ }
+
+ if ((genOptions & OPTION_NO_UNSETTABLE) != 0)
+ {
+ genModel.setSuppressUnsettable(true);
+ }
+
+ if ((genOptions & OPTION_NO_EMF) != 0)
+ {
+ genModel.setRootExtendsClass("org.apache.tuscany.sdo.impl.DataObjectBase");
+ }
+
+ GenPackage genPackage = (GenPackage)genModel.getGenPackages().get(0);
+
+ if (basePackage != null)
+ {
+ genPackage.setBasePackage(basePackage);
+ }
+ if (prefix != null)
+ {
+ genPackage.setPrefix(prefix);
+ }
+
+ //FIXME Temporary, I need this option for now to get Switch classes generated for the SCDL models
+ if ((genOptions & OPTION_GENERATE_SWITCH) == 0)
+ {
+ genPackage.setAdapterFactory(false);
+ }
+
+ if ((genOptions & OPTION_GENERATE_LOADER) != 0)
+ {
+ //FIXME workaround compile error with 02162006 build, generated code references non-existent EcoreResourceImpl class
+ genPackage.setResource(GenResourceKind.XML_LITERAL);
+ //genPackage.setDataTypeConverters(true);
+ }
+ else
+ {
+ genPackage.setResource(GenResourceKind.NONE_LITERAL);
+ for (Iterator iter = genPackage.getGenClasses().iterator(); iter.hasNext();)
+ {
+ GenClass genClass = (GenClass)iter.next();
+ if ("DocumentRoot".equals(genClass.getName()))
+ {
+ genClass.setDynamic(true); // Don't generate DocumentRoot class
+ break;
+ }
+ }
+ }
+
+ return genModel;
+ }
+
+ public static String extractBasePackageName(EPackage ePackage, String javaPackage)
+ {
+ String qualifiedName = javaPackage != null ? javaPackage : ePackage.getName();
+ String name = /*CodeGenUtil.*/shortName(qualifiedName);
+ String baseName = qualifiedName.substring(0, qualifiedName.length() - name.length());
+ if (javaPackage != null || !name.equals(qualifiedName))
+ {
+ ePackage.setName(name);
+ }
+ return baseName != null ? /*CodeGenUtil.*/safeQualifiedName(baseName) : null;
+ }
+
+ public static String shortName(String qualifiedName)
+ {
+ int index = qualifiedName.lastIndexOf(".");
+ return index != -1 ? qualifiedName.substring(index + 1) : qualifiedName;
+ }
+
+ public static String safeQualifiedName(String qualifiedName)
+ {
+ StringBuffer safeQualifiedName = new StringBuffer();
+ for (StringTokenizer stringTokenizer = new StringTokenizer(qualifiedName, "."); stringTokenizer.hasMoreTokens();)
+ {
+ String name = stringTokenizer.nextToken();
+ safeQualifiedName.append(CodeGenUtil.safeName(name));
+ if (stringTokenizer.hasMoreTokens())
+ {
+ safeQualifiedName.append('.');
+ }
+ }
+ return safeQualifiedName.toString();
+ }
+
+ protected static void printDiagnostic(Diagnostic diagnostic, String indent)
+ {
+ System.out.print(indent);
+ System.out.println(diagnostic.getMessage());
+ for (Iterator i = diagnostic.getChildren().iterator(); i.hasNext();)
+ {
+ printDiagnostic((Diagnostic)i.next(), indent + " ");
+ }
+ }
+
+ protected static void printUsage()
+ {
+ System.out.println("Usage arguments:");
+ System.out.println(" [ -targetDirectory <target-root-directory> ]");
+ System.out.println(" [ -javaPackage <java-package-name> ]");
+ System.out.println(" [ -prefix <prefix-string> ]");
+ System.out.println(" [ -sparsePattern | -storePattern ]");
+ System.out.println(" [ -noInterfaces ]");
+ System.out.println(" [ -noContainment ]");
+ System.out.println(" [ -noNotification ]");
+ System.out.println(" [ -arrayAccessors ]");
+ System.out.println(" [ -generateLoader ]");
+ System.out.println(" [ -noUnsettable ]");
+ System.out.println(" [ -noEMF ]");
+ System.out.println(" <xsd-file> | <wsdl-file>");
+ System.out.println("");
+ System.out.println("For example:");
+ System.out.println("");
+ System.out.println(" generate somedir/somefile.xsd");
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/XSD2JavaGenerator.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/XSD2JavaGenerator.java
new file mode 100644
index 0000000000..d14604b65c
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/XSD2JavaGenerator.java
@@ -0,0 +1,179 @@
+/**
+ *
+ * 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.generate;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.tuscany.sdo.helper.XSDHelperImpl;
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EPackage;
+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.BasicExtendedMetaData;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.xsd.XSDSchema;
+
+import commonj.sdo.helper.XSDHelper;
+
+public class XSD2JavaGenerator extends JavaGenerator
+{
+ /**
+ * Generate static SDOs from XML Schema
+ *
+ * Usage arguments: see JavaGenerator
+ *
+ * [ -targetDirectory <target-root-directory> ]
+ * [ -javaPackage <java-package-name> ]
+ * [ -schemaNamespace <namespace-uri> ]
+ * [ other options ... ]
+ * <xsd-file> | <wsdl-file>
+ *
+ * Options:
+ *
+ * -schemaNamespace
+ * Generate classes for XSD types in the specified targetNamespace. By default, types in the
+ * targetNamespace of the first schema in the specified xsd or wsdl file are generated.
+ *
+ * NOTE: see the base class JavaGenerator for other options.
+ *
+ * Example:
+ *
+ * generate somedir/somefile.xsd
+ *
+ * See base class JavaGenerator for details and the other options.
+ *
+ */
+ public static void main(String args[])
+ {
+ try
+ {
+ XSD2JavaGenerator generator = new XSD2JavaGenerator();
+ generator.processArguments(args);
+ generator.run(args);
+ }
+ catch (IllegalArgumentException e)
+ {
+ printUsage();
+ }
+ }
+
+ protected String schemaNamespace = null;
+
+ protected int handleArgument(String args[], int index)
+ {
+ if (args[index].equalsIgnoreCase("-schemaNamespace"))
+ {
+ schemaNamespace = args[++index];
+ }
+ else
+ {
+ return super.handleArgument(args, index);
+ }
+
+ return index + 1;
+ }
+
+ protected void run(String args[])
+ {
+ String xsdFileName = args[inputIndex];
+ generateFromXMLSchema(xsdFileName, schemaNamespace, targetDirectory, javaPackage, prefix, genOptions);
+ }
+
+ public static void generateFromXMLSchema(String xsdFileName, String namespace, String targetDirectory, String javaPackage, String prefix, int genOptions)
+ {
+ DataObjectUtil.initRuntime();
+ EPackage.Registry packageRegistry = new EPackageRegistryImpl(EPackage.Registry.INSTANCE);
+ ExtendedMetaData extendedMetaData = new BasicExtendedMetaData(packageRegistry);
+ XSDHelper xsdHelper = new XSDHelperImpl(extendedMetaData);
+
+ try
+ {
+ File inputFile = new File(xsdFileName).getAbsoluteFile();
+ InputStream inputStream = new FileInputStream(inputFile);
+ xsdHelper.define(inputStream, inputFile.toURI().toString());
+
+ if (targetDirectory == null)
+ {
+ targetDirectory = new File(xsdFileName).getCanonicalFile().getParent();
+ }
+ else
+ {
+ targetDirectory = new File(targetDirectory).getCanonicalPath();
+ }
+
+ if (!packageRegistry.values().isEmpty())
+ {
+ String packageURI = namespace != null ? namespace : getSchemaNamespace(xsdFileName);
+ generatePackages(packageRegistry.values(), packageURI, null, targetDirectory, javaPackage, prefix, genOptions);
+ }
+
+ /*
+ for (Iterator iter = packageRegistry.values().iterator(); iter.hasNext();)
+ {
+ EPackage ePackage = (EPackage)iter.next();
+ String basePackage = extractBasePackageName(ePackage, javaPackage);
+ if (prefix == null)
+ {
+ prefix = CodeGenUtil.capName(ePackage.getName());
+ }
+ generateFromEPackage(ePackage, targetDirectory, basePackage, prefix, genOptions);
+ }
+ */
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ public static String getSchemaNamespace(String xsdFileName)
+ {
+ ResourceSet resourceSet = DataObjectUtil.createResourceSet();
+ File inputFile = new File(xsdFileName).getAbsoluteFile();
+ Resource model = resourceSet.getResource(URI.createURI(inputFile.toURI().toString()), true);
+ XSDSchema schema = (XSDSchema)model.getContents().get(0);
+ return schema.getTargetNamespace();
+ }
+
+ protected static void printUsage()
+ {
+ System.out.println("Usage arguments:");
+ System.out.println(" [ -targetDirectory <target-root-directory> ]");
+ System.out.println(" [ -javaPackage <java-package-name> ]");
+ System.out.println(" [ -schemaNamespace <namespace-uri> ]");
+ System.out.println(" [ -prefix <prefix-string> ]");
+ System.out.println(" [ -sparsePattern | -storePattern ]");
+ System.out.println(" [ -noInterfaces ]");
+ System.out.println(" [ -noContainment ]");
+ System.out.println(" [ -noNotification ]");
+ System.out.println(" [ -arrayAccessors ]");
+ System.out.println(" [ -generateLoader ]");
+ System.out.println(" [ -noUnsettable ]");
+ System.out.println(" [ -noEMF ]");
+ System.out.println(" <xsd-file> | <wsdl-file>");
+ System.out.println("");
+ System.out.println("For example:");
+ System.out.println("");
+ System.out.println(" generate somedir/somefile.xsd");
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/adapter/SDOGenClassGeneratorAdapter.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/adapter/SDOGenClassGeneratorAdapter.java
new file mode 100644
index 0000000000..965307eefc
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/adapter/SDOGenClassGeneratorAdapter.java
@@ -0,0 +1,43 @@
+/**
+ *
+ * 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.generate.adapter;
+
+import org.eclipse.emf.codegen.ecore.generator.GeneratorAdapterFactory;
+import org.eclipse.emf.codegen.ecore.genmodel.generator.GenClassGeneratorAdapter;
+
+public class SDOGenClassGeneratorAdapter extends GenClassGeneratorAdapter {
+
+ public SDOGenClassGeneratorAdapter(GeneratorAdapterFactory generatorAdapterFactory)
+ {
+ super(generatorAdapterFactory);
+ }
+
+ private static JETEmitterDescriptor[] jetEmitterDescriptors;
+
+ protected JETEmitterDescriptor[] getJETEmitterDescriptors()
+ {
+ if (jetEmitterDescriptors == null)
+ {
+ JETEmitterDescriptor[] base = super.getJETEmitterDescriptors();
+ jetEmitterDescriptors = new JETEmitterDescriptor[base.length];
+ System.arraycopy(base, 0, jetEmitterDescriptors, 0, base.length);
+ jetEmitterDescriptors[CLASS_ID] = new JETEmitterDescriptor("model/SDOClass.javajet", "org.apache.tuscany.sdo.generate.templates.model.SDOClass");
+ }
+ return jetEmitterDescriptors;
+ }
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/adapter/SDOGenModelGeneratorAdapterFactory.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/adapter/SDOGenModelGeneratorAdapterFactory.java
new file mode 100644
index 0000000000..aa47d612ed
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/adapter/SDOGenModelGeneratorAdapterFactory.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.generate.adapter;
+
+import org.eclipse.emf.codegen.ecore.generator.GeneratorAdapterFactory;
+import org.eclipse.emf.codegen.ecore.genmodel.generator.GenModelGeneratorAdapterFactory;
+import org.eclipse.emf.common.notify.Adapter;
+
+public class SDOGenModelGeneratorAdapterFactory extends
+ GenModelGeneratorAdapterFactory {
+
+ public static final GeneratorAdapterFactory.Descriptor DESCRIPTOR = new GeneratorAdapterFactory.Descriptor()
+ {
+ public GeneratorAdapterFactory createAdapterFactory()
+ {
+ return new SDOGenModelGeneratorAdapterFactory();
+ }
+ };
+
+ public Adapter createGenClassAdapter()
+ {
+ if (genClassGeneratorAdapter == null)
+ {
+ genClassGeneratorAdapter = new SDOGenClassGeneratorAdapter(this);
+ }
+ return genClassGeneratorAdapter;
+ }
+
+ public Adapter createGenPackageAdapter()
+ {
+ if (genPackageGeneratorAdapter == null)
+ {
+ genPackageGeneratorAdapter = new SDOGenPackageGeneratorAdapter(this);
+ }
+ return genPackageGeneratorAdapter;
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/adapter/SDOGenPackageGeneratorAdapter.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/adapter/SDOGenPackageGeneratorAdapter.java
new file mode 100644
index 0000000000..b8e33fefc5
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/adapter/SDOGenPackageGeneratorAdapter.java
@@ -0,0 +1,49 @@
+/**
+ *
+ * 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.generate.adapter;
+
+import org.eclipse.emf.codegen.ecore.generator.GeneratorAdapterFactory;
+import org.eclipse.emf.codegen.ecore.genmodel.GenPackage;
+import org.eclipse.emf.codegen.ecore.genmodel.generator.GenPackageGeneratorAdapter;
+import org.eclipse.emf.common.util.Monitor;
+
+public class SDOGenPackageGeneratorAdapter extends GenPackageGeneratorAdapter
+{
+ public SDOGenPackageGeneratorAdapter(GeneratorAdapterFactory generatorAdapterFactory)
+ {
+ super(generatorAdapterFactory);
+ }
+
+ private static JETEmitterDescriptor[] jetEmitterDescriptors;
+
+ protected JETEmitterDescriptor[] getJETEmitterDescriptors()
+ {
+ if (jetEmitterDescriptors == null)
+ {
+ JETEmitterDescriptor[] base = super.getJETEmitterDescriptors();
+ jetEmitterDescriptors = new JETEmitterDescriptor[base.length];
+ System.arraycopy(base, 0, jetEmitterDescriptors, 0, base.length);
+ jetEmitterDescriptors[FACTORY_CLASS_ID] = new JETEmitterDescriptor("model/SDOFactoryClass.javajet", "org.apache.tuscany.sdo.generate.templates.model.SDOFactoryClass");
+ }
+ return jetEmitterDescriptors;
+ }
+
+ protected void generatePackageClass(GenPackage genPackage, Monitor monitor)
+ {
+ // do nothing
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/templates/model/SDOClass.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/templates/model/SDOClass.java
new file mode 100644
index 0000000000..f1e1db7bbc
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/templates/model/SDOClass.java
@@ -0,0 +1,4165 @@
+/**
+ *
+ * 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.generate.templates.model;
+
+import java.util.*;
+import org.eclipse.emf.codegen.ecore.genmodel.*;
+
+public class SDOClass
+{
+ protected static String nl;
+ public static synchronized SDOClass create(String lineSeparator)
+ {
+ nl = lineSeparator;
+ SDOClass result = new SDOClass();
+ nl = null;
+ return result;
+ }
+
+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl;
+ protected final String TEXT_1 = "";
+ protected final String TEXT_2 = "/**" + NL + " * <copyright>" + NL + " * </copyright>" + NL + " *" + NL + " * ";
+ protected final String TEXT_3 = "Id";
+ protected final String TEXT_4 = NL + " */";
+ protected final String TEXT_5 = NL + "package ";
+ protected final String TEXT_6 = ";";
+ protected final String TEXT_7 = NL + "package ";
+ protected final String TEXT_8 = ";";
+ protected final String TEXT_9 = NL;
+ protected final String TEXT_10 = NL;
+ protected final String TEXT_11 = NL + "/**" + NL + " * <!-- begin-user-doc -->" + NL + " * A representation of the model object '<em><b>";
+ protected final String TEXT_12 = "</b></em>'." + NL + " * <!-- end-user-doc -->";
+ protected final String TEXT_13 = NL + " *" + NL + " * <!-- begin-model-doc -->" + NL + " * ";
+ protected final String TEXT_14 = NL + " * <!-- end-model-doc -->";
+ protected final String TEXT_15 = NL + " *";
+ protected final String TEXT_16 = NL + " * <p>" + NL + " * The following features are supported:" + NL + " * <ul>";
+ protected final String TEXT_17 = NL + " * <li>{@link ";
+ protected final String TEXT_18 = "#";
+ protected final String TEXT_19 = " <em>";
+ protected final String TEXT_20 = "</em>}</li>";
+ protected final String TEXT_21 = NL + " * </ul>" + NL + " * </p>";
+ protected final String TEXT_22 = NL + " *";
+ protected final String TEXT_23 = NL + " * @see ";
+ protected final String TEXT_24 = "#get";
+ protected final String TEXT_25 = "()";
+ protected final String TEXT_26 = NL + " * @model ";
+ protected final String TEXT_27 = NL + " * ";
+ protected final String TEXT_28 = NL + " * @model";
+ protected final String TEXT_29 = NL + " * @extends ";
+ protected final String TEXT_30 = NL + " * @generated" + NL + " */";
+ protected final String TEXT_31 = NL + "/**" + NL + " * <!-- begin-user-doc -->" + NL + " * An implementation of the model object '<em><b>";
+ protected final String TEXT_32 = "</b></em>'." + NL + " * <!-- end-user-doc -->" + NL + " * <p>";
+ protected final String TEXT_33 = NL + " * The following features are implemented:" + NL + " * <ul>";
+ protected final String TEXT_34 = NL + " * <li>{@link ";
+ protected final String TEXT_35 = "#";
+ protected final String TEXT_36 = " <em>";
+ protected final String TEXT_37 = "</em>}</li>";
+ protected final String TEXT_38 = NL + " * </ul>";
+ protected final String TEXT_39 = NL + " * </p>" + NL + " *" + NL + " * @generated" + NL + " */";
+ protected final String TEXT_40 = NL + "public";
+ protected final String TEXT_41 = " abstract";
+ protected final String TEXT_42 = " class ";
+ protected final String TEXT_43 = NL + "public interface ";
+ protected final String TEXT_44 = NL + "{";
+ protected final String TEXT_45 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\t";
+ protected final String TEXT_46 = " copyright = \"";
+ protected final String TEXT_47 = "\";";
+ protected final String TEXT_48 = NL;
+ protected final String TEXT_49 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic static final ";
+ protected final String TEXT_50 = " mofDriverNumber = \"";
+ protected final String TEXT_51 = "\";";
+ protected final String TEXT_52 = NL;
+ protected final String TEXT_53 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprivate static final long serialVersionUID = 1L;" + NL;
+ protected final String TEXT_54 = NL + "\t/**" + NL + "\t * An array of objects representing the values of non-primitive features." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected Object[] ";
+ protected final String TEXT_55 = " = null;" + NL;
+ protected final String TEXT_56 = NL + "\t/**" + NL + "\t * A bit field representing the indices of non-primitive feature values." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected int ";
+ protected final String TEXT_57 = " = 0;" + NL;
+ protected final String TEXT_58 = NL + "\t/**" + NL + "\t * A set of bit flags representing the values of boolean attributes and whether unsettable features have been set." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected int ";
+ protected final String TEXT_59 = " = 0;" + NL;
+ protected final String TEXT_60 = NL + "\t/**" + NL + "\t * The feature id for the '<em><b>";
+ protected final String TEXT_61 = "</b></em>' ";
+ protected final String TEXT_62 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tpublic final static int ";
+ protected final String TEXT_63 = " = ";
+ protected final String TEXT_64 = ";" + NL;
+ protected final String TEXT_65 = NL + "\t/**" + NL + "\t * The cached value of the '{@link #";
+ protected final String TEXT_66 = "() <em>";
+ protected final String TEXT_67 = "</em>}' ";
+ protected final String TEXT_68 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
+ protected final String TEXT_69 = "()" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\t" + NL + "\t// How to get BasicSequence from Sequence?" + NL + "\t";
+ protected final String TEXT_70 = NL + "\tprotected ";
+ protected final String TEXT_71 = " ";
+ protected final String TEXT_72 = " = null;" + NL + "\t";
+ protected final String TEXT_73 = NL + "\tprotected ";
+ protected final String TEXT_74 = " ";
+ protected final String TEXT_75 = " = null;";
+ protected final String TEXT_76 = NL + "\t/**" + NL + "\t * The empty value for the '{@link #";
+ protected final String TEXT_77 = "() <em>";
+ protected final String TEXT_78 = "</em>}' array accessor." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
+ protected final String TEXT_79 = "()" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final ";
+ protected final String TEXT_80 = "[] ";
+ protected final String TEXT_81 = "_EEMPTY_ARRAY = new ";
+ protected final String TEXT_82 = " [0];" + NL;
+ protected final String TEXT_83 = NL + "\t/**" + NL + "\t * The default value of the '{@link #";
+ protected final String TEXT_84 = "() <em>";
+ protected final String TEXT_85 = "</em>}' ";
+ protected final String TEXT_86 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
+ protected final String TEXT_87 = "()" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final ";
+ protected final String TEXT_88 = " ";
+ protected final String TEXT_89 = "_DEFAULT_ = ";
+ protected final String TEXT_90 = ";";
+ protected final String TEXT_91 = NL;
+ protected final String TEXT_92 = NL + "\t/**" + NL + "\t * An additional set of bit flags representing the values of boolean attributes and whether unsettable features have been set." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected int ";
+ protected final String TEXT_93 = " = 0;" + NL;
+ protected final String TEXT_94 = NL + "\t/**" + NL + "\t * The flag representing the value of the '{@link #";
+ protected final String TEXT_95 = "() <em>";
+ protected final String TEXT_96 = "</em>}' ";
+ protected final String TEXT_97 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
+ protected final String TEXT_98 = "()" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final int ";
+ protected final String TEXT_99 = "_EFLAG = 1 ";
+ protected final String TEXT_100 = ";" + NL;
+ protected final String TEXT_101 = NL + "\t/**" + NL + "\t * The cached value of the '{@link #";
+ protected final String TEXT_102 = "() <em>";
+ protected final String TEXT_103 = "</em>}' ";
+ protected final String TEXT_104 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @see #";
+ protected final String TEXT_105 = "()" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected ";
+ protected final String TEXT_106 = " ";
+ protected final String TEXT_107 = " = ";
+ protected final String TEXT_108 = "_DEFAULT_;" + NL;
+ protected final String TEXT_109 = NL + "\t/**" + NL + "\t * An additional set of bit flags representing the values of boolean attributes and whether unsettable features have been set." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected int ";
+ protected final String TEXT_110 = " = 0;" + NL;
+ protected final String TEXT_111 = NL + "\t/**" + NL + "\t * The flag representing whether the ";
+ protected final String TEXT_112 = " ";
+ protected final String TEXT_113 = " has been set." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected static final int ";
+ protected final String TEXT_114 = "_ESETFLAG = 1 ";
+ protected final String TEXT_115 = ";" + NL;
+ protected final String TEXT_116 = NL + "\t/**" + NL + "\t * This is true if the ";
+ protected final String TEXT_117 = " ";
+ protected final String TEXT_118 = " has been set." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t * @ordered" + NL + "\t */" + NL + "\tprotected boolean ";
+ protected final String TEXT_119 = "_set_ = false;" + NL;
+ protected final String TEXT_120 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected ";
+ protected final String TEXT_121 = "()" + NL + "\t{" + NL + "\t\tsuper();";
+ protected final String TEXT_122 = NL + "\t\t";
+ protected final String TEXT_123 = " |= ";
+ protected final String TEXT_124 = "_EFLAG;";
+ protected final String TEXT_125 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+ protected final String TEXT_126 = " getType()" + NL + "\t{" + NL + "\t\treturn ";
+ protected final String TEXT_127 = ".INSTANCE.getType(";
+ protected final String TEXT_128 = ".class); //TBD Generate a more efficient implementation" + NL + "\t}" + NL;
+ protected final String TEXT_129 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_130 = NL + "\t";
+ protected final String TEXT_131 = "[] ";
+ protected final String TEXT_132 = "();" + NL;
+ protected final String TEXT_133 = NL + "\tpublic ";
+ protected final String TEXT_134 = "[] ";
+ protected final String TEXT_135 = "()" + NL + "\t{";
+ protected final String TEXT_136 = NL + "\t\t";
+ protected final String TEXT_137 = " list = (";
+ protected final String TEXT_138 = ")";
+ protected final String TEXT_139 = "();" + NL + "\t\tif (list.isEmpty()) return ";
+ protected final String TEXT_140 = "_EEMPTY_ARRAY;";
+ protected final String TEXT_141 = NL + "\t\tif (";
+ protected final String TEXT_142 = " == null || ";
+ protected final String TEXT_143 = ".isEmpty()) return ";
+ protected final String TEXT_144 = "_EEMPTY_ARRAY;" + NL + "\t\t";
+ protected final String TEXT_145 = " list = (";
+ protected final String TEXT_146 = ")";
+ protected final String TEXT_147 = ";";
+ protected final String TEXT_148 = NL + "\t\tlist.shrink();" + NL + "\t\treturn (";
+ protected final String TEXT_149 = "[])list.data();" + NL + "\t}" + NL;
+ protected final String TEXT_150 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_151 = NL + "\t";
+ protected final String TEXT_152 = " get";
+ protected final String TEXT_153 = "(int index);" + NL;
+ protected final String TEXT_154 = NL + "\tpublic ";
+ protected final String TEXT_155 = " get";
+ protected final String TEXT_156 = "(int index)" + NL + "\t{" + NL + "\t\treturn (";
+ protected final String TEXT_157 = ")";
+ protected final String TEXT_158 = "().get(index);" + NL + "\t}" + NL;
+ protected final String TEXT_159 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_160 = NL + "\tint get";
+ protected final String TEXT_161 = "Length();" + NL;
+ protected final String TEXT_162 = NL + "\tpublic int get";
+ protected final String TEXT_163 = "Length()" + NL + "\t{";
+ protected final String TEXT_164 = NL + "\t\treturn ";
+ protected final String TEXT_165 = "().size();";
+ protected final String TEXT_166 = NL + "\t\treturn ";
+ protected final String TEXT_167 = " == null ? 0 : ";
+ protected final String TEXT_168 = ".size();";
+ protected final String TEXT_169 = NL + "\t}" + NL;
+ protected final String TEXT_170 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_171 = NL + "\tvoid set";
+ protected final String TEXT_172 = "(";
+ protected final String TEXT_173 = "[] new";
+ protected final String TEXT_174 = ");" + NL;
+ protected final String TEXT_175 = NL + "\tpublic void set";
+ protected final String TEXT_176 = "(";
+ protected final String TEXT_177 = "[] new";
+ protected final String TEXT_178 = ")" + NL + "\t{" + NL + "\t\t((";
+ protected final String TEXT_179 = ")";
+ protected final String TEXT_180 = "()).setData(new";
+ protected final String TEXT_181 = ".length, new";
+ protected final String TEXT_182 = ");" + NL + "\t}" + NL;
+ protected final String TEXT_183 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_184 = NL + "\tvoid set";
+ protected final String TEXT_185 = "(int index, ";
+ protected final String TEXT_186 = " element);" + NL;
+ protected final String TEXT_187 = NL + "\tpublic void set";
+ protected final String TEXT_188 = "(int index, ";
+ protected final String TEXT_189 = " element)" + NL + "\t{" + NL + "\t\t";
+ protected final String TEXT_190 = "().set(index, element);" + NL + "\t}" + NL;
+ protected final String TEXT_191 = NL + "\t/**" + NL + "\t * Returns the value of the '<em><b>";
+ protected final String TEXT_192 = "</b></em>' ";
+ protected final String TEXT_193 = ".";
+ protected final String TEXT_194 = NL + "\t * The key is of type ";
+ protected final String TEXT_195 = "list of {@link ";
+ protected final String TEXT_196 = "}";
+ protected final String TEXT_197 = "{@link ";
+ protected final String TEXT_198 = "}";
+ protected final String TEXT_199 = "," + NL + "\t * and the value is of type ";
+ protected final String TEXT_200 = "list of {@link ";
+ protected final String TEXT_201 = "}";
+ protected final String TEXT_202 = "{@link ";
+ protected final String TEXT_203 = "}";
+ protected final String TEXT_204 = ",";
+ protected final String TEXT_205 = NL + "\t * The list contents are of type {@link ";
+ protected final String TEXT_206 = "}.";
+ protected final String TEXT_207 = NL + "\t * The default value is <code>";
+ protected final String TEXT_208 = "</code>.";
+ protected final String TEXT_209 = NL + "\t * The literals are from the enumeration {@link ";
+ protected final String TEXT_210 = "}.";
+ protected final String TEXT_211 = NL + "\t * It is bidirectional and its opposite is '{@link ";
+ protected final String TEXT_212 = "#";
+ protected final String TEXT_213 = " <em>";
+ protected final String TEXT_214 = "</em>}'.";
+ protected final String TEXT_215 = NL + "\t * <!-- begin-user-doc -->";
+ protected final String TEXT_216 = NL + "\t * <p>" + NL + "\t * If the meaning of the '<em>";
+ protected final String TEXT_217 = "</em>' ";
+ protected final String TEXT_218 = " isn't clear," + NL + "\t * there really should be more of a description here..." + NL + "\t * </p>";
+ protected final String TEXT_219 = NL + "\t * <!-- end-user-doc -->";
+ protected final String TEXT_220 = NL + "\t * <!-- begin-model-doc -->" + NL + "\t * ";
+ protected final String TEXT_221 = NL + "\t * <!-- end-model-doc -->";
+ protected final String TEXT_222 = NL + "\t * @return the value of the '<em>";
+ protected final String TEXT_223 = "</em>' ";
+ protected final String TEXT_224 = ".";
+ protected final String TEXT_225 = NL + "\t * @see ";
+ protected final String TEXT_226 = NL + "\t * @see #isSet";
+ protected final String TEXT_227 = "()";
+ protected final String TEXT_228 = NL + "\t * @see #unset";
+ protected final String TEXT_229 = "()";
+ protected final String TEXT_230 = NL + "\t * @see #set";
+ protected final String TEXT_231 = "(";
+ protected final String TEXT_232 = ")";
+ protected final String TEXT_233 = NL + "\t * @see ";
+ protected final String TEXT_234 = "#get";
+ protected final String TEXT_235 = "()";
+ protected final String TEXT_236 = NL + "\t * @see ";
+ protected final String TEXT_237 = "#";
+ protected final String TEXT_238 = NL + "\t * @model ";
+ protected final String TEXT_239 = NL + "\t * ";
+ protected final String TEXT_240 = NL + "\t * @model";
+ protected final String TEXT_241 = NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_242 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_243 = NL + "\t";
+ protected final String TEXT_244 = " ";
+ protected final String TEXT_245 = "();" + NL;
+ protected final String TEXT_246 = NL + "\tpublic ";
+ protected final String TEXT_247 = " ";
+ protected final String TEXT_248 = "()" + NL + "\t{";
+ protected final String TEXT_249 = NL + "\t\treturn ";
+ protected final String TEXT_250 = "(";
+ protected final String TEXT_251 = "(";
+ protected final String TEXT_252 = ")get(";
+ protected final String TEXT_253 = ", true)";
+ protected final String TEXT_254 = ").";
+ protected final String TEXT_255 = "()";
+ protected final String TEXT_256 = ";";
+ protected final String TEXT_257 = NL + "\t\t";
+ protected final String TEXT_258 = " ";
+ protected final String TEXT_259 = " = (";
+ protected final String TEXT_260 = ")eVirtualGet(";
+ protected final String TEXT_261 = ");";
+ protected final String TEXT_262 = NL + "\t\tif (";
+ protected final String TEXT_263 = " == null)" + NL + "\t\t{";
+ protected final String TEXT_264 = NL + "\t\t\teVirtualSet(";
+ protected final String TEXT_265 = ", ";
+ protected final String TEXT_266 = " = new ";
+ protected final String TEXT_267 = ");";
+ protected final String TEXT_268 = NL + " \t\t";
+ protected final String TEXT_269 = " = createSequence(";
+ protected final String TEXT_270 = ");" + NL + " \t";
+ protected final String TEXT_271 = NL + " \t\t\t";
+ protected final String TEXT_272 = " = createPropertyList(ListKind.CONTAINMENT, ";
+ protected final String TEXT_273 = ".class, ";
+ protected final String TEXT_274 = ");" + NL + " \t\t";
+ protected final String TEXT_275 = NL + "\t\t}" + NL + "\t\treturn ";
+ protected final String TEXT_276 = ";";
+ protected final String TEXT_277 = NL + "\t\tif (eContainerFeatureID != ";
+ protected final String TEXT_278 = ") return null;" + NL + "\t\treturn (";
+ protected final String TEXT_279 = ")eContainer();";
+ protected final String TEXT_280 = NL + "\t\t";
+ protected final String TEXT_281 = " ";
+ protected final String TEXT_282 = " = (";
+ protected final String TEXT_283 = ")eVirtualGet(";
+ protected final String TEXT_284 = ", ";
+ protected final String TEXT_285 = "_DEFAULT_";
+ protected final String TEXT_286 = ");";
+ protected final String TEXT_287 = NL + "\t\tif (";
+ protected final String TEXT_288 = " != null && ";
+ protected final String TEXT_289 = ".isProxy())" + NL + "\t\t{" + NL + "\t\t\t";
+ protected final String TEXT_290 = " old";
+ protected final String TEXT_291 = " = (";
+ protected final String TEXT_292 = ")";
+ protected final String TEXT_293 = ";" + NL + "\t\t\t";
+ protected final String TEXT_294 = " = ";
+ protected final String TEXT_295 = "eResolveProxy(old";
+ protected final String TEXT_296 = ");" + NL + "\t\t\tif (";
+ protected final String TEXT_297 = " != old";
+ protected final String TEXT_298 = ")" + NL + "\t\t\t{";
+ protected final String TEXT_299 = NL + "\t\t\t\t";
+ protected final String TEXT_300 = " new";
+ protected final String TEXT_301 = " = (";
+ protected final String TEXT_302 = ")";
+ protected final String TEXT_303 = ";";
+ protected final String TEXT_304 = NL + "\t\t\t\tChangeContext changeContext = old";
+ protected final String TEXT_305 = ".inverseRemove(this, EOPPOSITE_FEATURE_BASE - ";
+ protected final String TEXT_306 = ", null, null);";
+ protected final String TEXT_307 = NL + "\t\t\t\t";
+ protected final String TEXT_308 = " changeContext = old";
+ protected final String TEXT_309 = ".inverseRemove(this, ";
+ protected final String TEXT_310 = ", ";
+ protected final String TEXT_311 = ".class, null);";
+ protected final String TEXT_312 = NL + "\t\t\t\tif (new";
+ protected final String TEXT_313 = ".eInternalContainer() == null)" + NL + "\t\t\t\t{";
+ protected final String TEXT_314 = NL + "\t\t\t\t\tchangeContext = new";
+ protected final String TEXT_315 = ".eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ";
+ protected final String TEXT_316 = ", null, changeContext);";
+ protected final String TEXT_317 = NL + "\t\t\t\t\tchangeContext = new";
+ protected final String TEXT_318 = ".eInverseAdd(this, ";
+ protected final String TEXT_319 = ", ";
+ protected final String TEXT_320 = ".class, changeContext);";
+ protected final String TEXT_321 = NL + "\t\t\t\t}" + NL + "\t\t\t\tif (changeContext != null) changeContext.dispatch();";
+ protected final String TEXT_322 = NL + "\t\t\t\teVirtualSet(";
+ protected final String TEXT_323 = ", ";
+ protected final String TEXT_324 = ");";
+ protected final String TEXT_325 = NL + "\t\t\t\tif (isNotifying())" + NL + "\t\t\t\t\tnotify(ChangeKind.RESOLVE, ";
+ protected final String TEXT_326 = ", old";
+ protected final String TEXT_327 = ", ";
+ protected final String TEXT_328 = ");";
+ protected final String TEXT_329 = NL + "\t\t\t}" + NL + "\t\t}";
+ protected final String TEXT_330 = NL + "\t\treturn (";
+ protected final String TEXT_331 = ")eVirtualGet(";
+ protected final String TEXT_332 = ", ";
+ protected final String TEXT_333 = "_DEFAULT_";
+ protected final String TEXT_334 = ");";
+ protected final String TEXT_335 = NL + "\t\treturn (";
+ protected final String TEXT_336 = " & ";
+ protected final String TEXT_337 = "_EFLAG) != 0;";
+ protected final String TEXT_338 = NL + "\t\treturn ";
+ protected final String TEXT_339 = ";";
+ protected final String TEXT_340 = NL + "\t\t";
+ protected final String TEXT_341 = " ";
+ protected final String TEXT_342 = " = basicGet";
+ protected final String TEXT_343 = "();" + NL + "\t\treturn ";
+ protected final String TEXT_344 = " != null && ";
+ protected final String TEXT_345 = ".isProxy() ? ";
+ protected final String TEXT_346 = "eResolveProxy((";
+ protected final String TEXT_347 = ")";
+ protected final String TEXT_348 = ") : ";
+ protected final String TEXT_349 = ";";
+ protected final String TEXT_350 = NL + "\t\treturn create";
+ protected final String TEXT_351 = "(get";
+ protected final String TEXT_352 = "(), getType(), ";
+ protected final String TEXT_353 = ");";
+ protected final String TEXT_354 = NL + "\t\treturn (";
+ protected final String TEXT_355 = ")((";
+ protected final String TEXT_356 = ")get";
+ protected final String TEXT_357 = "()).list(";
+ protected final String TEXT_358 = ");";
+ protected final String TEXT_359 = NL + " return get";
+ protected final String TEXT_360 = "(get";
+ protected final String TEXT_361 = "(), getType(), ";
+ protected final String TEXT_362 = ");" + NL;
+ protected final String TEXT_363 = NL + "\t\treturn ((";
+ protected final String TEXT_364 = ")get";
+ protected final String TEXT_365 = "()).list(";
+ protected final String TEXT_366 = ");";
+ protected final String TEXT_367 = NL + "\t\treturn ";
+ protected final String TEXT_368 = "(";
+ protected final String TEXT_369 = "(";
+ protected final String TEXT_370 = ")get(get";
+ protected final String TEXT_371 = "(), getType(), ";
+ protected final String TEXT_372 = ")";
+ protected final String TEXT_373 = ").";
+ protected final String TEXT_374 = "()";
+ protected final String TEXT_375 = ";";
+ protected final String TEXT_376 = NL + "\t\treturn ";
+ protected final String TEXT_377 = "(";
+ protected final String TEXT_378 = "(";
+ protected final String TEXT_379 = ")get(get";
+ protected final String TEXT_380 = "(), getType(), ";
+ protected final String TEXT_381 = ");";
+ protected final String TEXT_382 = ").";
+ protected final String TEXT_383 = "()";
+ protected final String TEXT_384 = ";";
+ protected final String TEXT_385 = NL + "\t\t// TODO: implement this method to return the '";
+ protected final String TEXT_386 = "' ";
+ protected final String TEXT_387 = NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+ protected final String TEXT_388 = NL + "\t}" + NL;
+ protected final String TEXT_389 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+ protected final String TEXT_390 = " basicGet";
+ protected final String TEXT_391 = "()" + NL + "\t{";
+ protected final String TEXT_392 = NL + "\t\tif (eContainerFeatureID != ";
+ protected final String TEXT_393 = ") return null;" + NL + "\t\treturn (";
+ protected final String TEXT_394 = ")eInternalContainer();";
+ protected final String TEXT_395 = NL + "\t\treturn (";
+ protected final String TEXT_396 = ")eVirtualGet(";
+ protected final String TEXT_397 = ");";
+ protected final String TEXT_398 = NL + "\t\treturn ";
+ protected final String TEXT_399 = ";";
+ protected final String TEXT_400 = NL + "\t\treturn (";
+ protected final String TEXT_401 = ")get(get";
+ protected final String TEXT_402 = "(), getType(), ";
+ protected final String TEXT_403 = ");";
+ protected final String TEXT_404 = NL + "\t\treturn (";
+ protected final String TEXT_405 = ")get";
+ protected final String TEXT_406 = "().get(";
+ protected final String TEXT_407 = ", false);";
+ protected final String TEXT_408 = NL + "\t\t// TODO: implement this method to return the '";
+ protected final String TEXT_409 = "' ";
+ protected final String TEXT_410 = NL + "\t\t// -> do not perform proxy resolution" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+ protected final String TEXT_411 = NL + "\t}" + NL;
+ protected final String TEXT_412 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ChangeContext basicSet";
+ protected final String TEXT_413 = "(";
+ protected final String TEXT_414 = " new";
+ protected final String TEXT_415 = ", ChangeContext changeContext)" + NL + "\t{";
+ protected final String TEXT_416 = NL + "\t\tObject old";
+ protected final String TEXT_417 = " = eVirtualSet(";
+ protected final String TEXT_418 = ", new";
+ protected final String TEXT_419 = ");";
+ protected final String TEXT_420 = NL + "\t\t";
+ protected final String TEXT_421 = " old";
+ protected final String TEXT_422 = " = ";
+ protected final String TEXT_423 = ";" + NL + "\t\t";
+ protected final String TEXT_424 = " = new";
+ protected final String TEXT_425 = ";";
+ protected final String TEXT_426 = NL + "\t\tboolean isSetChange = old";
+ protected final String TEXT_427 = " == EVIRTUAL_NO_VALUE;";
+ protected final String TEXT_428 = NL + "\t\tboolean old";
+ protected final String TEXT_429 = "_set_ = (";
+ protected final String TEXT_430 = " & ";
+ protected final String TEXT_431 = "_ESETFLAG) != 0;" + NL + "\t\t";
+ protected final String TEXT_432 = " |= ";
+ protected final String TEXT_433 = "_ESETFLAG;";
+ protected final String TEXT_434 = NL + "\t\tboolean old";
+ protected final String TEXT_435 = "_set_ = ";
+ protected final String TEXT_436 = "_set_;" + NL + "\t\t";
+ protected final String TEXT_437 = "_set_ = true;";
+ protected final String TEXT_438 = NL + "\t\tif (isNotifying())" + NL + "\t\t{";
+ protected final String TEXT_439 = NL + "\t\t\t";
+ protected final String TEXT_440 = " notification = new ";
+ protected final String TEXT_441 = "(this, ";
+ protected final String TEXT_442 = ".SET, ";
+ protected final String TEXT_443 = ", ";
+ protected final String TEXT_444 = "isSetChange ? null : old";
+ protected final String TEXT_445 = "old";
+ protected final String TEXT_446 = ", new";
+ protected final String TEXT_447 = ", ";
+ protected final String TEXT_448 = "isSetChange";
+ protected final String TEXT_449 = "!old";
+ protected final String TEXT_450 = "_set_";
+ protected final String TEXT_451 = ");";
+ protected final String TEXT_452 = NL + "\t\t\t";
+ protected final String TEXT_453 = " notification = new ";
+ protected final String TEXT_454 = "(this, ";
+ protected final String TEXT_455 = ".SET, ";
+ protected final String TEXT_456 = ", ";
+ protected final String TEXT_457 = "old";
+ protected final String TEXT_458 = " == EVIRTUAL_NO_VALUE ? null : old";
+ protected final String TEXT_459 = "old";
+ protected final String TEXT_460 = ", new";
+ protected final String TEXT_461 = ");";
+ protected final String TEXT_462 = NL + "\t\t\tif (changeContext == null) changeContext = notification; else changeContext.add(notification);" + NL + "\t\t}";
+ protected final String TEXT_463 = NL + "\t\treturn changeContext;";
+ protected final String TEXT_464 = NL + "\t\treturn ((";
+ protected final String TEXT_465 = ".Internal)((";
+ protected final String TEXT_466 = ".Internal.Wrapper)get";
+ protected final String TEXT_467 = "()).featureMap()).basicAdd(";
+ protected final String TEXT_468 = ", new";
+ protected final String TEXT_469 = ", changeContext);";
+ protected final String TEXT_470 = NL + "\t\treturn ((";
+ protected final String TEXT_471 = ".Internal)get";
+ protected final String TEXT_472 = "()).basicAdd(";
+ protected final String TEXT_473 = ", new";
+ protected final String TEXT_474 = ", changeContext);";
+ protected final String TEXT_475 = NL + "\t\t// TODO: implement this method to set the contained '";
+ protected final String TEXT_476 = "' ";
+ protected final String TEXT_477 = NL + "\t\t// -> this method is automatically invoked to keep the containment relationship in synch" + NL + "\t\t// -> do not modify other features" + NL + "\t\t// -> return changeContext, after adding any generated Notification to it (if it is null, a NotificationChain object must be created first)" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+ protected final String TEXT_478 = NL + "\t}" + NL;
+ protected final String TEXT_479 = NL + "\t/**" + NL + "\t * Sets the value of the '{@link ";
+ protected final String TEXT_480 = "#";
+ protected final String TEXT_481 = " <em>";
+ protected final String TEXT_482 = "</em>}' ";
+ protected final String TEXT_483 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @param value the new value of the '<em>";
+ protected final String TEXT_484 = "</em>' ";
+ protected final String TEXT_485 = ".";
+ protected final String TEXT_486 = NL + "\t * @see ";
+ protected final String TEXT_487 = NL + "\t * @see #isSet";
+ protected final String TEXT_488 = "()";
+ protected final String TEXT_489 = NL + "\t * @see #unset";
+ protected final String TEXT_490 = "()";
+ protected final String TEXT_491 = NL + "\t * @see #";
+ protected final String TEXT_492 = "()" + NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_493 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_494 = NL + "\tvoid set";
+ protected final String TEXT_495 = "(";
+ protected final String TEXT_496 = " value);" + NL;
+ protected final String TEXT_497 = NL + "\tpublic void set";
+ protected final String TEXT_498 = "(";
+ protected final String TEXT_499 = " new";
+ protected final String TEXT_500 = ")" + NL + "\t{";
+ protected final String TEXT_501 = NL + "\t\t_set_(";
+ protected final String TEXT_502 = ", ";
+ protected final String TEXT_503 = "new ";
+ protected final String TEXT_504 = "(";
+ protected final String TEXT_505 = "new";
+ protected final String TEXT_506 = ")";
+ protected final String TEXT_507 = ");";
+ protected final String TEXT_508 = NL + "\t\tif (new";
+ protected final String TEXT_509 = " != eInternalContainer() || (eContainerFeatureID != ";
+ protected final String TEXT_510 = " && new";
+ protected final String TEXT_511 = " != null))" + NL + "\t\t{" + NL + "\t\t\tif (";
+ protected final String TEXT_512 = ".isAncestor(this, ";
+ protected final String TEXT_513 = "new";
+ protected final String TEXT_514 = "))" + NL + "\t\t\t\tthrow new ";
+ protected final String TEXT_515 = "(\"Recursive containment not allowed for \" + toString());";
+ protected final String TEXT_516 = NL + "\t\t\tChangeContext changeContext = null;" + NL + "\t\t\tif (eInternalContainer() != null)" + NL + "\t\t\t\tchangeContext = eBasicRemoveFromContainer(changeContext);" + NL + "\t\t\tif (new";
+ protected final String TEXT_517 = " != null)" + NL + "\t\t\t\tchangeContext = ((";
+ protected final String TEXT_518 = ")new";
+ protected final String TEXT_519 = ").eInverseAdd(this, ";
+ protected final String TEXT_520 = ", ";
+ protected final String TEXT_521 = ".class, changeContext);" + NL + "\t\t\tchangeContext = eBasicSetContainer((";
+ protected final String TEXT_522 = ")new";
+ protected final String TEXT_523 = ", ";
+ protected final String TEXT_524 = ", changeContext);" + NL + "\t\t\tif (changeContext != null) changeContext.dispatch();" + NL + "\t\t}";
+ protected final String TEXT_525 = NL + "\t\telse if (isNotifying())" + NL + "\t\t\tnotify(ChangeKind.SET, ";
+ protected final String TEXT_526 = ", new";
+ protected final String TEXT_527 = ", new";
+ protected final String TEXT_528 = ");";
+ protected final String TEXT_529 = NL + "\t\t";
+ protected final String TEXT_530 = " ";
+ protected final String TEXT_531 = " = (";
+ protected final String TEXT_532 = ")eVirtualGet(";
+ protected final String TEXT_533 = ");";
+ protected final String TEXT_534 = NL + "\t\tif (new";
+ protected final String TEXT_535 = " != ";
+ protected final String TEXT_536 = ")" + NL + "\t\t{" + NL + "\t\t\tChangeContext changeContext = null;" + NL + "\t\t\tif (";
+ protected final String TEXT_537 = " != null)";
+ protected final String TEXT_538 = NL + "\t\t\t\tchangeContext = ((";
+ protected final String TEXT_539 = ")";
+ protected final String TEXT_540 = ").inverseRemove(this, EOPPOSITE_FEATURE_BASE - ";
+ protected final String TEXT_541 = ", null, changeContext);" + NL + "\t\t\tif (new";
+ protected final String TEXT_542 = " != null)" + NL + "\t\t\t\tchangeContext = ((";
+ protected final String TEXT_543 = ")new";
+ protected final String TEXT_544 = ").eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ";
+ protected final String TEXT_545 = ", null, changeContext);";
+ protected final String TEXT_546 = NL + "\t\t\t\tchangeContext = ((";
+ protected final String TEXT_547 = ")";
+ protected final String TEXT_548 = ").inverseRemove(this, ";
+ protected final String TEXT_549 = ", ";
+ protected final String TEXT_550 = ".class, changeContext);" + NL + "\t\t\tif (new";
+ protected final String TEXT_551 = " != null)" + NL + "\t\t\t\tchangeContext = ((";
+ protected final String TEXT_552 = ")new";
+ protected final String TEXT_553 = ").eInverseAdd(this, ";
+ protected final String TEXT_554 = ", ";
+ protected final String TEXT_555 = ".class, changeContext);";
+ protected final String TEXT_556 = NL + "\t\t\tchangeContext = basicSet";
+ protected final String TEXT_557 = "(";
+ protected final String TEXT_558 = "new";
+ protected final String TEXT_559 = ", changeContext);" + NL + "\t\t\tif (changeContext != null) changeContext.dispatch();" + NL + "\t\t}";
+ protected final String TEXT_560 = NL + "\t\telse" + NL + " \t{";
+ protected final String TEXT_561 = NL + "\t\t\tboolean old";
+ protected final String TEXT_562 = "_set_ = eVirtualIsSet(";
+ protected final String TEXT_563 = ");";
+ protected final String TEXT_564 = NL + "\t\t\tboolean old";
+ protected final String TEXT_565 = "_set_ = (";
+ protected final String TEXT_566 = " & ";
+ protected final String TEXT_567 = "_ESETFLAG) != 0;";
+ protected final String TEXT_568 = NL + "\t\t\t";
+ protected final String TEXT_569 = " |= ";
+ protected final String TEXT_570 = "_ESETFLAG;";
+ protected final String TEXT_571 = NL + "\t\t\tboolean old";
+ protected final String TEXT_572 = "_set_ = ";
+ protected final String TEXT_573 = "_set_;";
+ protected final String TEXT_574 = NL + "\t\t\t";
+ protected final String TEXT_575 = "_set_ = true;";
+ protected final String TEXT_576 = NL + "\t\t\tif (isNotifying())" + NL + "\t\t\t\tnotify(ChangeKind.SET, ";
+ protected final String TEXT_577 = ", new";
+ protected final String TEXT_578 = ", new";
+ protected final String TEXT_579 = ", !old";
+ protected final String TEXT_580 = "_set_);";
+ protected final String TEXT_581 = NL + " \t}";
+ protected final String TEXT_582 = NL + "\t\telse if (isNotifying())" + NL + "\t\t\tnotify(ChangeKind.SET, ";
+ protected final String TEXT_583 = ", new";
+ protected final String TEXT_584 = ", new";
+ protected final String TEXT_585 = ");";
+ protected final String TEXT_586 = NL + "\t\t";
+ protected final String TEXT_587 = " old";
+ protected final String TEXT_588 = " = (";
+ protected final String TEXT_589 = " & ";
+ protected final String TEXT_590 = "_EFLAG) != 0;";
+ protected final String TEXT_591 = NL + "\t\tif (new";
+ protected final String TEXT_592 = ") ";
+ protected final String TEXT_593 = " |= ";
+ protected final String TEXT_594 = "_EFLAG; else ";
+ protected final String TEXT_595 = " &= ~";
+ protected final String TEXT_596 = "_EFLAG;";
+ protected final String TEXT_597 = NL + "\t\t";
+ protected final String TEXT_598 = " old";
+ protected final String TEXT_599 = " = ";
+ protected final String TEXT_600 = ";";
+ protected final String TEXT_601 = NL + "\t\t";
+ protected final String TEXT_602 = " ";
+ protected final String TEXT_603 = " = new";
+ protected final String TEXT_604 = " == null ? ";
+ protected final String TEXT_605 = "_DEFAULT_ : new";
+ protected final String TEXT_606 = ";";
+ protected final String TEXT_607 = NL + "\t\t";
+ protected final String TEXT_608 = " = new";
+ protected final String TEXT_609 = " == null ? ";
+ protected final String TEXT_610 = "_DEFAULT_ : new";
+ protected final String TEXT_611 = ";";
+ protected final String TEXT_612 = NL + "\t\t";
+ protected final String TEXT_613 = " ";
+ protected final String TEXT_614 = " = ";
+ protected final String TEXT_615 = "new";
+ protected final String TEXT_616 = ";";
+ protected final String TEXT_617 = NL + "\t\t";
+ protected final String TEXT_618 = " = ";
+ protected final String TEXT_619 = "new";
+ protected final String TEXT_620 = ";";
+ protected final String TEXT_621 = NL + "\t\tObject old";
+ protected final String TEXT_622 = " = eVirtualSet(";
+ protected final String TEXT_623 = ", ";
+ protected final String TEXT_624 = ");";
+ protected final String TEXT_625 = NL + "\t\tboolean isSetChange = old";
+ protected final String TEXT_626 = " == EVIRTUAL_NO_VALUE;";
+ protected final String TEXT_627 = NL + "\t\tboolean old";
+ protected final String TEXT_628 = "_set_ = (";
+ protected final String TEXT_629 = " & ";
+ protected final String TEXT_630 = "_ESETFLAG) != 0;";
+ protected final String TEXT_631 = NL + "\t\t";
+ protected final String TEXT_632 = " |= ";
+ protected final String TEXT_633 = "_ESETFLAG;";
+ protected final String TEXT_634 = NL + "\t\tboolean old";
+ protected final String TEXT_635 = "_set_ = ";
+ protected final String TEXT_636 = "_set_;";
+ protected final String TEXT_637 = NL + "\t\t";
+ protected final String TEXT_638 = "_set_ = true;";
+ protected final String TEXT_639 = NL + "\t\tif (isNotifying())" + NL + "\t\t\tnotify(ChangeKind.SET, ";
+ protected final String TEXT_640 = ", ";
+ protected final String TEXT_641 = "isSetChange ? ";
+ protected final String TEXT_642 = "null";
+ protected final String TEXT_643 = "_DEFAULT_";
+ protected final String TEXT_644 = " : old";
+ protected final String TEXT_645 = "old";
+ protected final String TEXT_646 = ", ";
+ protected final String TEXT_647 = "new";
+ protected final String TEXT_648 = ", ";
+ protected final String TEXT_649 = "isSetChange";
+ protected final String TEXT_650 = "!old";
+ protected final String TEXT_651 = "_set_";
+ protected final String TEXT_652 = ");";
+ protected final String TEXT_653 = NL + "\t\tif (isNotifying())" + NL + "\t\t\tnotify(ChangeKind.SET, ";
+ protected final String TEXT_654 = ", ";
+ protected final String TEXT_655 = "old";
+ protected final String TEXT_656 = " == EVIRTUAL_NO_VALUE ? ";
+ protected final String TEXT_657 = "null";
+ protected final String TEXT_658 = "_DEFAULT_";
+ protected final String TEXT_659 = " : old";
+ protected final String TEXT_660 = "old";
+ protected final String TEXT_661 = ", ";
+ protected final String TEXT_662 = "new";
+ protected final String TEXT_663 = ");";
+ protected final String TEXT_664 = NL + " set(get";
+ protected final String TEXT_665 = "(), getType(), ";
+ protected final String TEXT_666 = ", ";
+ protected final String TEXT_667 = " new ";
+ protected final String TEXT_668 = "(";
+ protected final String TEXT_669 = "new";
+ protected final String TEXT_670 = ")";
+ protected final String TEXT_671 = ");";
+ protected final String TEXT_672 = NL + "\t\t((";
+ protected final String TEXT_673 = ".Internal)get";
+ protected final String TEXT_674 = "()).set(";
+ protected final String TEXT_675 = ", ";
+ protected final String TEXT_676 = "new ";
+ protected final String TEXT_677 = "(";
+ protected final String TEXT_678 = "new";
+ protected final String TEXT_679 = ")";
+ protected final String TEXT_680 = ");";
+ protected final String TEXT_681 = NL + "\t\t// TODO: implement this method to set the '";
+ protected final String TEXT_682 = "' ";
+ protected final String TEXT_683 = NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+ protected final String TEXT_684 = NL + "\t}" + NL;
+ protected final String TEXT_685 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ChangeContext basicUnset";
+ protected final String TEXT_686 = "(ChangeContext changeContext)" + NL + "\t{";
+ protected final String TEXT_687 = NL + "\t\tObject old";
+ protected final String TEXT_688 = " = eVirtualUnset(";
+ protected final String TEXT_689 = ");";
+ protected final String TEXT_690 = NL + "\t\t";
+ protected final String TEXT_691 = " old";
+ protected final String TEXT_692 = " = ";
+ protected final String TEXT_693 = ";" + NL + "\t\t";
+ protected final String TEXT_694 = " = null;";
+ protected final String TEXT_695 = NL + "\t\tboolean isSetChange = old";
+ protected final String TEXT_696 = " != EVIRTUAL_NO_VALUE;";
+ protected final String TEXT_697 = NL + "\t\tboolean old";
+ protected final String TEXT_698 = "_set_ = (";
+ protected final String TEXT_699 = " & ";
+ protected final String TEXT_700 = "_ESETFLAG) != 0;" + NL + "\t\t";
+ protected final String TEXT_701 = " &= ~";
+ protected final String TEXT_702 = "_ESETFLAG;";
+ protected final String TEXT_703 = NL + "\t\tboolean old";
+ protected final String TEXT_704 = "_set_ = ";
+ protected final String TEXT_705 = "_set_;" + NL + "\t\t";
+ protected final String TEXT_706 = "_set_ = false;";
+ protected final String TEXT_707 = NL + "\t\tif (isNotifying())" + NL + "\t\t{" + NL + "\t\t\t";
+ protected final String TEXT_708 = " notification = new ";
+ protected final String TEXT_709 = "(this, ";
+ protected final String TEXT_710 = ".UNSET, ";
+ protected final String TEXT_711 = ", ";
+ protected final String TEXT_712 = "isSetChange ? old";
+ protected final String TEXT_713 = " : null";
+ protected final String TEXT_714 = "old";
+ protected final String TEXT_715 = ", null, ";
+ protected final String TEXT_716 = "isSetChange";
+ protected final String TEXT_717 = "old";
+ protected final String TEXT_718 = "_set_";
+ protected final String TEXT_719 = ");" + NL + "\t\t\tif (changeContext == null) changeContext = notification; else changeContext.add(notification);" + NL + "\t\t}" + NL + "\t\treturn changeContext;";
+ protected final String TEXT_720 = NL + "\t\t// TODO: implement this method to unset the contained '";
+ protected final String TEXT_721 = "' ";
+ protected final String TEXT_722 = NL + "\t\t// -> this method is automatically invoked to keep the containment relationship in synch" + NL + "\t\t// -> do not modify other features" + NL + "\t\t// -> return changeContext, after adding any generated Notification to it (if it is null, a NotificationChain object must be created first)" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+ protected final String TEXT_723 = NL + "\t}" + NL;
+ protected final String TEXT_724 = NL + "\t/**" + NL + "\t * Unsets the value of the '{@link ";
+ protected final String TEXT_725 = "#";
+ protected final String TEXT_726 = " <em>";
+ protected final String TEXT_727 = "</em>}' ";
+ protected final String TEXT_728 = "." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->";
+ protected final String TEXT_729 = NL + "\t * @see #isSet";
+ protected final String TEXT_730 = "()";
+ protected final String TEXT_731 = NL + "\t * @see #";
+ protected final String TEXT_732 = "()";
+ protected final String TEXT_733 = NL + "\t * @see #set";
+ protected final String TEXT_734 = "(";
+ protected final String TEXT_735 = ")";
+ protected final String TEXT_736 = NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_737 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_738 = NL + "\tvoid unset";
+ protected final String TEXT_739 = "();" + NL;
+ protected final String TEXT_740 = NL + "\tpublic void unset";
+ protected final String TEXT_741 = "()" + NL + "\t{";
+ protected final String TEXT_742 = NL + "\t\tunset(";
+ protected final String TEXT_743 = ");";
+ protected final String TEXT_744 = NL + "\t\t((";
+ protected final String TEXT_745 = ".Unsettable)get";
+ protected final String TEXT_746 = "()).unset();";
+ protected final String TEXT_747 = NL + "\t\t";
+ protected final String TEXT_748 = " ";
+ protected final String TEXT_749 = " = (";
+ protected final String TEXT_750 = ")eVirtualGet(";
+ protected final String TEXT_751 = ");";
+ protected final String TEXT_752 = NL + "\t\tif (";
+ protected final String TEXT_753 = " != null)" + NL + "\t\t{" + NL + "\t\t\tChangeContext changeContext = null;";
+ protected final String TEXT_754 = NL + "\t\t\tchangeContext = ((";
+ protected final String TEXT_755 = ")";
+ protected final String TEXT_756 = ").inverseRemove(this, EOPPOSITE_FEATURE_BASE - ";
+ protected final String TEXT_757 = ", null, changeContext);";
+ protected final String TEXT_758 = NL + "\t\t\tchangeContext = ((";
+ protected final String TEXT_759 = ")";
+ protected final String TEXT_760 = ").inverseRemove(this, ";
+ protected final String TEXT_761 = ", ";
+ protected final String TEXT_762 = ".class, changeContext);";
+ protected final String TEXT_763 = NL + "\t\t\tchangeContext = basicUnset";
+ protected final String TEXT_764 = "(changeContext);" + NL + "\t\t\tif (changeContext != null) changeContext.dispatch();" + NL + "\t\t}" + NL + "\t\telse" + NL + " \t{";
+ protected final String TEXT_765 = NL + "\t\t\tboolean old";
+ protected final String TEXT_766 = "_set_ = eVirtualIsSet(";
+ protected final String TEXT_767 = ");";
+ protected final String TEXT_768 = NL + "\t\t\tboolean old";
+ protected final String TEXT_769 = "_set_ = (";
+ protected final String TEXT_770 = " & ";
+ protected final String TEXT_771 = "_ESETFLAG) != 0;";
+ protected final String TEXT_772 = NL + "\t\t\t";
+ protected final String TEXT_773 = " &= ~";
+ protected final String TEXT_774 = "_ESETFLAG;";
+ protected final String TEXT_775 = NL + "\t\t\tboolean old";
+ protected final String TEXT_776 = "_set_ = ";
+ protected final String TEXT_777 = "_set_;";
+ protected final String TEXT_778 = NL + "\t\t\t";
+ protected final String TEXT_779 = "_set_ = false;";
+ protected final String TEXT_780 = NL + "\t\t\tif (isNotifying())" + NL + "\t\t\t\tnotify(ChangeKind.UNSET, ";
+ protected final String TEXT_781 = ", null, null, old";
+ protected final String TEXT_782 = "_set_);";
+ protected final String TEXT_783 = NL + " \t}";
+ protected final String TEXT_784 = NL + "\t\t";
+ protected final String TEXT_785 = " old";
+ protected final String TEXT_786 = " = (";
+ protected final String TEXT_787 = " & ";
+ protected final String TEXT_788 = "_EFLAG) != 0;";
+ protected final String TEXT_789 = NL + "\t\tObject old";
+ protected final String TEXT_790 = " = eVirtualUnset(";
+ protected final String TEXT_791 = ");";
+ protected final String TEXT_792 = NL + "\t\t";
+ protected final String TEXT_793 = " old";
+ protected final String TEXT_794 = " = ";
+ protected final String TEXT_795 = ";";
+ protected final String TEXT_796 = NL + "\t\tboolean isSetChange = old";
+ protected final String TEXT_797 = " != EVIRTUAL_NO_VALUE;";
+ protected final String TEXT_798 = NL + "\t\tboolean old";
+ protected final String TEXT_799 = "_set_ = (";
+ protected final String TEXT_800 = " & ";
+ protected final String TEXT_801 = "_ESETFLAG) != 0;";
+ protected final String TEXT_802 = NL + "\t\tboolean old";
+ protected final String TEXT_803 = "_set_ = ";
+ protected final String TEXT_804 = "_set_;";
+ protected final String TEXT_805 = NL + "\t\t";
+ protected final String TEXT_806 = " = null;";
+ protected final String TEXT_807 = NL + "\t\t";
+ protected final String TEXT_808 = " &= ~";
+ protected final String TEXT_809 = "_ESETFLAG;";
+ protected final String TEXT_810 = NL + "\t\t";
+ protected final String TEXT_811 = "_set_ = false;";
+ protected final String TEXT_812 = NL + "\t\tif (isNotifying())" + NL + "\t\t\tnotify(ChangeKind.UNSET, ";
+ protected final String TEXT_813 = ", ";
+ protected final String TEXT_814 = "isSetChange ? old";
+ protected final String TEXT_815 = " : null";
+ protected final String TEXT_816 = "old";
+ protected final String TEXT_817 = ", null, ";
+ protected final String TEXT_818 = "isSetChange";
+ protected final String TEXT_819 = "old";
+ protected final String TEXT_820 = "_set_";
+ protected final String TEXT_821 = ");";
+ protected final String TEXT_822 = NL + "\t\tif (";
+ protected final String TEXT_823 = "_DEFAULT_) ";
+ protected final String TEXT_824 = " |= ";
+ protected final String TEXT_825 = "_EFLAG; else ";
+ protected final String TEXT_826 = " &= ~";
+ protected final String TEXT_827 = "_EFLAG;";
+ protected final String TEXT_828 = NL + "\t\t";
+ protected final String TEXT_829 = " = ";
+ protected final String TEXT_830 = "_DEFAULT_;";
+ protected final String TEXT_831 = NL + "\t\t";
+ protected final String TEXT_832 = " &= ~";
+ protected final String TEXT_833 = "_ESETFLAG;";
+ protected final String TEXT_834 = NL + "\t\t";
+ protected final String TEXT_835 = "_set_ = false;";
+ protected final String TEXT_836 = NL + "\t\tif (isNotifying())" + NL + "\t\t\tnotify(ChangeKind.UNSET, ";
+ protected final String TEXT_837 = ", ";
+ protected final String TEXT_838 = "isSetChange ? old";
+ protected final String TEXT_839 = " : ";
+ protected final String TEXT_840 = "_DEFAULT_";
+ protected final String TEXT_841 = "old";
+ protected final String TEXT_842 = ", ";
+ protected final String TEXT_843 = "_DEFAULT_, ";
+ protected final String TEXT_844 = "isSetChange";
+ protected final String TEXT_845 = "old";
+ protected final String TEXT_846 = "_set_";
+ protected final String TEXT_847 = ");";
+ protected final String TEXT_848 = NL + " unset(get";
+ protected final String TEXT_849 = "(), getType(), ";
+ protected final String TEXT_850 = ");";
+ protected final String TEXT_851 = NL + " unset";
+ protected final String TEXT_852 = "(get";
+ protected final String TEXT_853 = "());";
+ protected final String TEXT_854 = NL + "\t\t// TODO: implement this method to unset the '";
+ protected final String TEXT_855 = "' ";
+ protected final String TEXT_856 = NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+ protected final String TEXT_857 = NL + "\t}" + NL;
+ protected final String TEXT_858 = NL + "\t/**" + NL + "\t * Returns whether the value of the '{@link ";
+ protected final String TEXT_859 = "#";
+ protected final String TEXT_860 = " <em>";
+ protected final String TEXT_861 = "</em>}' ";
+ protected final String TEXT_862 = " is set." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return whether the value of the '<em>";
+ protected final String TEXT_863 = "</em>' ";
+ protected final String TEXT_864 = " is set.";
+ protected final String TEXT_865 = NL + "\t * @see #unset";
+ protected final String TEXT_866 = "()";
+ protected final String TEXT_867 = NL + "\t * @see #";
+ protected final String TEXT_868 = "()";
+ protected final String TEXT_869 = NL + "\t * @see #set";
+ protected final String TEXT_870 = "(";
+ protected final String TEXT_871 = ")";
+ protected final String TEXT_872 = NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_873 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_874 = NL + "\tboolean isSet";
+ protected final String TEXT_875 = "();" + NL;
+ protected final String TEXT_876 = NL + "\tpublic boolean isSet";
+ protected final String TEXT_877 = "()" + NL + "\t{";
+ protected final String TEXT_878 = NL + "\t\treturn isSet(";
+ protected final String TEXT_879 = ");";
+ protected final String TEXT_880 = NL + "\t\t";
+ protected final String TEXT_881 = " ";
+ protected final String TEXT_882 = " = (";
+ protected final String TEXT_883 = ")eVirtualGet(";
+ protected final String TEXT_884 = ");";
+ protected final String TEXT_885 = NL + "\t\treturn ";
+ protected final String TEXT_886 = " != null && ((";
+ protected final String TEXT_887 = ".Unsettable)";
+ protected final String TEXT_888 = ").isSet();";
+ protected final String TEXT_889 = NL + "\t\treturn eVirtualIsSet(";
+ protected final String TEXT_890 = ");";
+ protected final String TEXT_891 = NL + "\t\treturn (";
+ protected final String TEXT_892 = " & ";
+ protected final String TEXT_893 = "_ESETFLAG) != 0;";
+ protected final String TEXT_894 = NL + "\t\treturn ";
+ protected final String TEXT_895 = "_set_;";
+ protected final String TEXT_896 = NL + " return isSet(get";
+ protected final String TEXT_897 = "(), getType(), ";
+ protected final String TEXT_898 = ");";
+ protected final String TEXT_899 = NL + "\t\treturn !((";
+ protected final String TEXT_900 = ".Internal)get";
+ protected final String TEXT_901 = "()).isEmpty(";
+ protected final String TEXT_902 = ");";
+ protected final String TEXT_903 = NL + "\t\t// TODO: implement this method to return whether the '";
+ protected final String TEXT_904 = "' ";
+ protected final String TEXT_905 = " is set" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+ protected final String TEXT_906 = NL + "\t}" + NL;
+ protected final String TEXT_907 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->";
+ protected final String TEXT_908 = NL + "\t * <!-- begin-model-doc -->" + NL + "\t * ";
+ protected final String TEXT_909 = NL + "\t * <!-- end-model-doc -->";
+ protected final String TEXT_910 = NL + "\t * @model ";
+ protected final String TEXT_911 = NL + "\t * ";
+ protected final String TEXT_912 = NL + "\t * @model";
+ protected final String TEXT_913 = NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_914 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_915 = NL + "\t";
+ protected final String TEXT_916 = " ";
+ protected final String TEXT_917 = "(";
+ protected final String TEXT_918 = ")";
+ protected final String TEXT_919 = ";" + NL;
+ protected final String TEXT_920 = NL + "\tpublic ";
+ protected final String TEXT_921 = " ";
+ protected final String TEXT_922 = "(";
+ protected final String TEXT_923 = ")";
+ protected final String TEXT_924 = NL + "\t{";
+ protected final String TEXT_925 = NL + "\t\t";
+ protected final String TEXT_926 = NL + "\t\t// TODO: implement this method" + NL + "\t\t// -> specify the condition that violates the invariant" + NL + "\t\t// -> verify the details of the diagnostic, including severity and message" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tif (false)" + NL + "\t\t{" + NL + "\t\t\tif (";
+ protected final String TEXT_927 = " != null)" + NL + "\t\t\t{" + NL + "\t\t\t\t";
+ protected final String TEXT_928 = ".add" + NL + "\t\t\t\t\t(new ";
+ protected final String TEXT_929 = NL + "\t\t\t\t\t\t(";
+ protected final String TEXT_930 = ".ERROR," + NL + "\t\t\t\t\t\t ";
+ protected final String TEXT_931 = ".DIAGNOSTIC_SOURCE," + NL + "\t\t\t\t\t\t ";
+ protected final String TEXT_932 = ".";
+ protected final String TEXT_933 = "," + NL + "\t\t\t\t\t\t ";
+ protected final String TEXT_934 = ".INSTANCE.getString(\"_UI_GenericInvariant_diagnostic\", new Object[] { \"";
+ protected final String TEXT_935 = "\", ";
+ protected final String TEXT_936 = ".getObjectLabel(this, ";
+ protected final String TEXT_937 = ") }),";
+ protected final String TEXT_938 = NL + "\t\t\t\t\t\t new Object [] { this }));" + NL + "\t\t\t}" + NL + "\t\t\treturn false;" + NL + "\t\t}" + NL + "\t\treturn true;";
+ protected final String TEXT_939 = NL + "\t\t// TODO: implement this method" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new UnsupportedOperationException();";
+ protected final String TEXT_940 = NL + "\t}" + NL;
+ protected final String TEXT_941 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ChangeContext eInverseAdd(";
+ protected final String TEXT_942 = " otherEnd, int propertyIndex, ChangeContext changeContext)" + NL + "\t{" + NL + "\t\tswitch (propertyIndex)" + NL + "\t\t{";
+ protected final String TEXT_943 = NL + "\t\t\tcase ";
+ protected final String TEXT_944 = ":";
+ protected final String TEXT_945 = NL + "\t\t\t\treturn ((";
+ protected final String TEXT_946 = ")((";
+ protected final String TEXT_947 = ".InternalMapView)";
+ protected final String TEXT_948 = "()).eMap()).basicAdd(otherEnd, changeContext);";
+ protected final String TEXT_949 = NL + "\t\t\t\treturn ((";
+ protected final String TEXT_950 = ")";
+ protected final String TEXT_951 = "()).basicAdd(otherEnd, changeContext);";
+ protected final String TEXT_952 = NL + "\t\t\t\tif (eInternalContainer() != null)" + NL + "\t\t\t\t\tchangeContext = eBasicRemoveFromContainer(changeContext);" + NL + "\t\t\t\treturn eBasicSetContainer(otherEnd, ";
+ protected final String TEXT_953 = ", changeContext);";
+ protected final String TEXT_954 = NL + "\t\t\t\t";
+ protected final String TEXT_955 = " ";
+ protected final String TEXT_956 = " = (";
+ protected final String TEXT_957 = ")eVirtualGet(";
+ protected final String TEXT_958 = ");";
+ protected final String TEXT_959 = NL + "\t\t\t\tif (";
+ protected final String TEXT_960 = " != null)";
+ protected final String TEXT_961 = NL + "\t\t\t\t\tchangeContext = ((";
+ protected final String TEXT_962 = ")";
+ protected final String TEXT_963 = ").inverseRemove(this, EOPPOSITE_FEATURE_BASE - ";
+ protected final String TEXT_964 = ", null, changeContext);";
+ protected final String TEXT_965 = NL + "\t\t\t\t\tchangeContext = ((";
+ protected final String TEXT_966 = ")";
+ protected final String TEXT_967 = ").inverseRemove(this, ";
+ protected final String TEXT_968 = ", ";
+ protected final String TEXT_969 = ".class, changeContext);";
+ protected final String TEXT_970 = NL + "\t\t\t\treturn basicSet";
+ protected final String TEXT_971 = "((";
+ protected final String TEXT_972 = ")otherEnd, changeContext);";
+ protected final String TEXT_973 = NL + "\t\t}";
+ protected final String TEXT_974 = NL + "\t\treturn super.eInverseAdd(otherEnd, propertyIndex, changeContext);";
+ protected final String TEXT_975 = NL + "\t\treturn eDynamicInverseAdd(otherEnd, propertyIndex, changeContext);";
+ protected final String TEXT_976 = NL + "\t}" + NL;
+ protected final String TEXT_977 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ChangeContext inverseRemove(";
+ protected final String TEXT_978 = " otherEnd, int propertyIndex, ChangeContext changeContext)" + NL + "\t{" + NL + "\t\tswitch (propertyIndex)" + NL + "\t\t{";
+ protected final String TEXT_979 = NL + "\t\t\tcase ";
+ protected final String TEXT_980 = ":";
+ protected final String TEXT_981 = NL + "\t\t\t\treturn ((";
+ protected final String TEXT_982 = ")((";
+ protected final String TEXT_983 = ".InternalMapView)";
+ protected final String TEXT_984 = "()).eMap()).basicRemove(otherEnd, changeContext);";
+ protected final String TEXT_985 = NL + " \t\t\treturn removeFrom";
+ protected final String TEXT_986 = "(";
+ protected final String TEXT_987 = "(), otherEnd, changeContext);";
+ protected final String TEXT_988 = NL + "\t\t\t\treturn removeFromList(";
+ protected final String TEXT_989 = "(), otherEnd, changeContext);";
+ protected final String TEXT_990 = NL + "\t\t\t\treturn eBasicSetContainer(null, ";
+ protected final String TEXT_991 = ", changeContext);";
+ protected final String TEXT_992 = NL + "\t\t\t\treturn basicUnset";
+ protected final String TEXT_993 = "(changeContext);";
+ protected final String TEXT_994 = NL + "\t\t\t\treturn basicSet";
+ protected final String TEXT_995 = "(null, changeContext);";
+ protected final String TEXT_996 = NL + "\t\t}";
+ protected final String TEXT_997 = NL + "\t\treturn super.inverseRemove(otherEnd, propertyIndex, changeContext);";
+ protected final String TEXT_998 = NL + "\t\treturn eDynamicInverseRemove(otherEnd, propertyIndex, changeContext);";
+ protected final String TEXT_999 = NL + "\t}" + NL;
+ protected final String TEXT_1000 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ChangeContext eBasicRemoveFromContainerFeature(ChangeContext changeContext)" + NL + "\t{" + NL + "\t\tswitch (eContainerFeatureID)" + NL + "\t\t{";
+ protected final String TEXT_1001 = NL + "\t\t\tcase ";
+ protected final String TEXT_1002 = ":" + NL + "\t\t\t\treturn eInternalContainer().inverseRemove(this, ";
+ protected final String TEXT_1003 = ", ";
+ protected final String TEXT_1004 = ".class, changeContext);";
+ protected final String TEXT_1005 = NL + "\t\t}";
+ protected final String TEXT_1006 = NL + "\t\treturn super.eBasicRemoveFromContainerFeature(changeContext);";
+ protected final String TEXT_1007 = NL + "\t\treturn eDynamicBasicRemoveFromContainer(changeContext);";
+ protected final String TEXT_1008 = NL + "\t}" + NL;
+ protected final String TEXT_1009 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Object get(int propertyIndex, boolean resolve)" + NL + "\t{" + NL + "\t\tswitch (propertyIndex)" + NL + "\t\t{";
+ protected final String TEXT_1010 = NL + "\t\t\tcase ";
+ protected final String TEXT_1011 = ":";
+ protected final String TEXT_1012 = NL + "\t\t\t\treturn ";
+ protected final String TEXT_1013 = "() ? Boolean.TRUE : Boolean.FALSE;";
+ protected final String TEXT_1014 = NL + "\t\t\t\treturn new ";
+ protected final String TEXT_1015 = "(";
+ protected final String TEXT_1016 = "());";
+ protected final String TEXT_1017 = NL + "\t\t\t\tif (resolve) return ";
+ protected final String TEXT_1018 = "();" + NL + "\t\t\t\treturn basicGet";
+ protected final String TEXT_1019 = "();";
+ protected final String TEXT_1020 = NL + "\t\t\t\tif (coreType) return ((";
+ protected final String TEXT_1021 = ".InternalMapView)";
+ protected final String TEXT_1022 = "()).eMap();" + NL + "\t\t\t\telse return ";
+ protected final String TEXT_1023 = "();";
+ protected final String TEXT_1024 = NL + "\t\t\t\tif (coreType) return ";
+ protected final String TEXT_1025 = "();" + NL + "\t\t\t\telse return ";
+ protected final String TEXT_1026 = "().map();";
+ protected final String TEXT_1027 = NL + "\t\t\t\t// XXX query introduce coreType as an argument? -- semantic = if true -- coreType - return the core EMF object if value is a non-EMF wrapper/view" + NL + " \t\t//if (coreType) " + NL + "\t\t\t\treturn ";
+ protected final String TEXT_1028 = "();";
+ protected final String TEXT_1029 = NL + "\t\t\t\tif (coreType) return ";
+ protected final String TEXT_1030 = "();" + NL + "\t\t\t\treturn ((";
+ protected final String TEXT_1031 = ".Internal)";
+ protected final String TEXT_1032 = "()).getWrapper();";
+ protected final String TEXT_1033 = NL + "\t\t\t\treturn ";
+ protected final String TEXT_1034 = "();";
+ protected final String TEXT_1035 = NL + "\t\t}";
+ protected final String TEXT_1036 = NL + "\t\treturn super.get(propertyIndex, resolve);";
+ protected final String TEXT_1037 = NL + "\t\treturn eDynamicGet(propertyIndex, resolve, coreType);";
+ protected final String TEXT_1038 = NL + "\t}" + NL;
+ protected final String TEXT_1039 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void set(int propertyIndex, Object newValue)" + NL + "\t{" + NL + "\t\tswitch (propertyIndex)" + NL + "\t\t{";
+ protected final String TEXT_1040 = NL + "\t\t\tcase ";
+ protected final String TEXT_1041 = ":";
+ protected final String TEXT_1042 = NL + " \tset";
+ protected final String TEXT_1043 = "(";
+ protected final String TEXT_1044 = "(), newValue);";
+ protected final String TEXT_1045 = NL + "\t\t\t\t((";
+ protected final String TEXT_1046 = ".Internal)";
+ protected final String TEXT_1047 = "()).set(newValue);";
+ protected final String TEXT_1048 = NL + "\t\t\t\t((";
+ protected final String TEXT_1049 = ".Setting)((";
+ protected final String TEXT_1050 = ".InternalMapView)";
+ protected final String TEXT_1051 = "()).eMap()).set(newValue);";
+ protected final String TEXT_1052 = NL + "\t\t\t\t((";
+ protected final String TEXT_1053 = ".Setting)";
+ protected final String TEXT_1054 = "()).set(newValue);";
+ protected final String TEXT_1055 = NL + "\t\t\t\t";
+ protected final String TEXT_1056 = "().clear();" + NL + "\t\t\t\t";
+ protected final String TEXT_1057 = "().addAll((";
+ protected final String TEXT_1058 = ")newValue);";
+ protected final String TEXT_1059 = NL + "\t\t\t\tset";
+ protected final String TEXT_1060 = "(((";
+ protected final String TEXT_1061 = ")newValue).";
+ protected final String TEXT_1062 = "());";
+ protected final String TEXT_1063 = NL + "\t\t\t\tset";
+ protected final String TEXT_1064 = "((";
+ protected final String TEXT_1065 = ")newValue);";
+ protected final String TEXT_1066 = NL + "\t\t\t\treturn;";
+ protected final String TEXT_1067 = NL + "\t\t}";
+ protected final String TEXT_1068 = NL + "\t\tsuper.set(propertyIndex, newValue);";
+ protected final String TEXT_1069 = NL + "\t\teDynamicSet(propertyIndex, newValue);";
+ protected final String TEXT_1070 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void unset(int propertyIndex)" + NL + "\t{" + NL + "\t\tswitch (propertyIndex)" + NL + "\t\t{";
+ protected final String TEXT_1071 = NL + "\t\t\tcase ";
+ protected final String TEXT_1072 = ":";
+ protected final String TEXT_1073 = NL + " \t\t\tunset";
+ protected final String TEXT_1074 = "(";
+ protected final String TEXT_1075 = "());";
+ protected final String TEXT_1076 = NL + "\t\t\t\t";
+ protected final String TEXT_1077 = "().clear();";
+ protected final String TEXT_1078 = NL + "\t\t\t\tunset";
+ protected final String TEXT_1079 = "();";
+ protected final String TEXT_1080 = NL + "\t\t\t\tset";
+ protected final String TEXT_1081 = "((";
+ protected final String TEXT_1082 = ")null);";
+ protected final String TEXT_1083 = NL + "\t\t\t\tset";
+ protected final String TEXT_1084 = "(";
+ protected final String TEXT_1085 = "_DEFAULT_);";
+ protected final String TEXT_1086 = NL + "\t\t\t\treturn;";
+ protected final String TEXT_1087 = NL + "\t\t}";
+ protected final String TEXT_1088 = NL + "\t\tsuper.unset(propertyIndex);";
+ protected final String TEXT_1089 = NL + "\t\teDynamicUnset(propertyIndex);";
+ protected final String TEXT_1090 = NL + "\t}" + NL;
+ protected final String TEXT_1091 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic boolean isSet(int propertyIndex)" + NL + "\t{" + NL + "\t\tswitch (propertyIndex)" + NL + "\t\t{";
+ protected final String TEXT_1092 = NL + "\t\t\tcase ";
+ protected final String TEXT_1093 = ":";
+ protected final String TEXT_1094 = NL + " \t\treturn !is";
+ protected final String TEXT_1095 = "Empty(";
+ protected final String TEXT_1096 = "());";
+ protected final String TEXT_1097 = NL + " \t\t// KDK - should this be !isSequenceEmpty?" + NL + "\t\t\t\treturn ";
+ protected final String TEXT_1098 = " != null && !is";
+ protected final String TEXT_1099 = "Empty(";
+ protected final String TEXT_1100 = "());";
+ protected final String TEXT_1101 = NL + "\t\t\t\treturn ";
+ protected final String TEXT_1102 = " != null && !";
+ protected final String TEXT_1103 = ".isEmpty();";
+ protected final String TEXT_1104 = NL + "\t\t\t\t";
+ protected final String TEXT_1105 = " ";
+ protected final String TEXT_1106 = " = (";
+ protected final String TEXT_1107 = ")eVirtualGet(";
+ protected final String TEXT_1108 = ");" + NL + "\t\t\t\treturn ";
+ protected final String TEXT_1109 = " != null && !";
+ protected final String TEXT_1110 = ".isEmpty();";
+ protected final String TEXT_1111 = NL + "\t\t\t\treturn !";
+ protected final String TEXT_1112 = "().isEmpty();";
+ protected final String TEXT_1113 = NL + "\t\t\t\treturn isSet";
+ protected final String TEXT_1114 = "();";
+ protected final String TEXT_1115 = NL + "\t\t\t\treturn ";
+ protected final String TEXT_1116 = " != null;";
+ protected final String TEXT_1117 = NL + "\t\t\t\treturn eVirtualGet(";
+ protected final String TEXT_1118 = ") != null;";
+ protected final String TEXT_1119 = NL + "\t\t\t\treturn basicGet";
+ protected final String TEXT_1120 = "() != null;";
+ protected final String TEXT_1121 = NL + "\t\t\t\treturn ";
+ protected final String TEXT_1122 = " != null;";
+ protected final String TEXT_1123 = NL + "\t\t\t\treturn eVirtualGet(";
+ protected final String TEXT_1124 = ") != null;";
+ protected final String TEXT_1125 = NL + "\t\t\t\treturn ";
+ protected final String TEXT_1126 = "() != null;";
+ protected final String TEXT_1127 = NL + "\t\t\t\treturn ((";
+ protected final String TEXT_1128 = " & ";
+ protected final String TEXT_1129 = "_EFLAG) != 0) != ";
+ protected final String TEXT_1130 = "_DEFAULT_;";
+ protected final String TEXT_1131 = NL + "\t\t\t\treturn ";
+ protected final String TEXT_1132 = " != ";
+ protected final String TEXT_1133 = "_DEFAULT_;";
+ protected final String TEXT_1134 = NL + "\t\t\t\treturn eVirtualGet(";
+ protected final String TEXT_1135 = ", ";
+ protected final String TEXT_1136 = "_DEFAULT_) != ";
+ protected final String TEXT_1137 = "_DEFAULT_;";
+ protected final String TEXT_1138 = NL + "\t\t\t\treturn ";
+ protected final String TEXT_1139 = "() != ";
+ protected final String TEXT_1140 = "_DEFAULT_;";
+ protected final String TEXT_1141 = NL + "\t\t\t\treturn ";
+ protected final String TEXT_1142 = "_DEFAULT_ == null ? ";
+ protected final String TEXT_1143 = " != null : !";
+ protected final String TEXT_1144 = "_DEFAULT_.equals(";
+ protected final String TEXT_1145 = ");";
+ protected final String TEXT_1146 = NL + "\t\t\t\t";
+ protected final String TEXT_1147 = " ";
+ protected final String TEXT_1148 = " = (";
+ protected final String TEXT_1149 = ")eVirtualGet(";
+ protected final String TEXT_1150 = ", ";
+ protected final String TEXT_1151 = "_DEFAULT_);" + NL + "\t\t\t\treturn ";
+ protected final String TEXT_1152 = "_DEFAULT_ == null ? ";
+ protected final String TEXT_1153 = " != null : !";
+ protected final String TEXT_1154 = "_DEFAULT_.equals(";
+ protected final String TEXT_1155 = ");";
+ protected final String TEXT_1156 = NL + "\t\t\t\treturn ";
+ protected final String TEXT_1157 = "_DEFAULT_ == null ? ";
+ protected final String TEXT_1158 = "() != null : !";
+ protected final String TEXT_1159 = "_DEFAULT_.equals(";
+ protected final String TEXT_1160 = "());";
+ protected final String TEXT_1161 = NL + "\t\t}";
+ protected final String TEXT_1162 = NL + "\t\treturn super.isSet(propertyIndex);";
+ protected final String TEXT_1163 = NL + "\t\treturn eDynamicIsSet(propertyIndex);";
+ protected final String TEXT_1164 = NL + "\t}" + NL;
+ protected final String TEXT_1165 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass)" + NL + "\t{";
+ protected final String TEXT_1166 = NL + "\t\tif (baseClass == ";
+ protected final String TEXT_1167 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (derivedFeatureID)" + NL + "\t\t\t{";
+ protected final String TEXT_1168 = NL + "\t\t\t\tcase ";
+ protected final String TEXT_1169 = ": return ";
+ protected final String TEXT_1170 = ";";
+ protected final String TEXT_1171 = NL + "\t\t\t\tdefault: return -1;" + NL + "\t\t\t}" + NL + "\t\t}";
+ protected final String TEXT_1172 = NL + "\t\treturn super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass)" + NL + "\t{";
+ protected final String TEXT_1173 = NL + "\t\tif (baseClass == ";
+ protected final String TEXT_1174 = ".class)" + NL + "\t\t{" + NL + "\t\t\tswitch (baseFeatureID)" + NL + "\t\t\t{";
+ protected final String TEXT_1175 = NL + "\t\t\t\tcase ";
+ protected final String TEXT_1176 = ": return ";
+ protected final String TEXT_1177 = ";";
+ protected final String TEXT_1178 = NL + "\t\t\t\tdefault: return -1;" + NL + "\t\t\t}" + NL + "\t\t}";
+ protected final String TEXT_1179 = NL + "\t\treturn super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);" + NL + "\t}" + NL;
+ protected final String TEXT_1180 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected Object[] eVirtualValues()" + NL + "\t{" + NL + "\t\treturn ";
+ protected final String TEXT_1181 = ";" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void setVirtualValues(Object[] newValues)" + NL + "\t{" + NL + "\t\t";
+ protected final String TEXT_1182 = " = newValues;" + NL + "\t}" + NL;
+ protected final String TEXT_1183 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected int eVirtualIndexBits(int offset)" + NL + "\t{" + NL + "\t\tswitch (offset)" + NL + "\t\t{";
+ protected final String TEXT_1184 = NL + "\t\t\tcase ";
+ protected final String TEXT_1185 = " :" + NL + "\t\t\t\treturn ";
+ protected final String TEXT_1186 = ";";
+ protected final String TEXT_1187 = NL + "\t\t\tdefault :" + NL + "\t\t\t\tthrow new IndexOutOfBoundsException();" + NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected void setVirtualIndexBits(int offset, int newIndexBits)" + NL + "\t{" + NL + "\t\tswitch (offset)" + NL + "\t\t{";
+ protected final String TEXT_1188 = NL + "\t\t\tcase ";
+ protected final String TEXT_1189 = " :" + NL + "\t\t\t\t";
+ protected final String TEXT_1190 = " = newIndexBits;" + NL + "\t\t\t\tbreak;";
+ protected final String TEXT_1191 = NL + "\t\t\tdefault :" + NL + "\t\t\t\tthrow new IndexOutOfBoundsException();" + NL + "\t\t}" + NL + "\t}" + NL;
+ protected final String TEXT_1192 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic String toString()" + NL + "\t{" + NL + "\t\tif (isProxy()) return super.toString();" + NL + "" + NL + "\t\tStringBuffer result = new StringBuffer(super.toString());";
+ protected final String TEXT_1193 = NL + "\t\tresult.append(\" (";
+ protected final String TEXT_1194 = ": \");";
+ protected final String TEXT_1195 = NL + "\t\tresult.append(\", ";
+ protected final String TEXT_1196 = ": \");";
+ protected final String TEXT_1197 = NL + "\t\tif (eVirtualIsSet(";
+ protected final String TEXT_1198 = ")) result.append(eVirtualGet(";
+ protected final String TEXT_1199 = ")); else result.append(\"<unset>\");";
+ protected final String TEXT_1200 = NL + "\t\tif (";
+ protected final String TEXT_1201 = "(";
+ protected final String TEXT_1202 = " & ";
+ protected final String TEXT_1203 = "_ESETFLAG) != 0";
+ protected final String TEXT_1204 = "_set_";
+ protected final String TEXT_1205 = ") result.append((";
+ protected final String TEXT_1206 = " & ";
+ protected final String TEXT_1207 = "_EFLAG) != 0); else result.append(\"<unset>\");";
+ protected final String TEXT_1208 = NL + "\t\tif (";
+ protected final String TEXT_1209 = "(";
+ protected final String TEXT_1210 = " & ";
+ protected final String TEXT_1211 = "_ESETFLAG) != 0";
+ protected final String TEXT_1212 = "_set_";
+ protected final String TEXT_1213 = ") result.append(";
+ protected final String TEXT_1214 = "); else result.append(\"<unset>\");";
+ protected final String TEXT_1215 = NL + "\t\tresult.append(eVirtualGet(";
+ protected final String TEXT_1216 = ", ";
+ protected final String TEXT_1217 = "_DEFAULT_";
+ protected final String TEXT_1218 = "));";
+ protected final String TEXT_1219 = NL + "\t\tresult.append((";
+ protected final String TEXT_1220 = " & ";
+ protected final String TEXT_1221 = "_EFLAG) != 0);";
+ protected final String TEXT_1222 = NL + "\t\tresult.append(";
+ protected final String TEXT_1223 = ");";
+ protected final String TEXT_1224 = NL + "\t\tresult.append(')');" + NL + "\t\treturn result.toString();" + NL + "\t}" + NL;
+ protected final String TEXT_1225 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tprotected int hash = -1;" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + " \t * @generated" + NL + " \t */" + NL + "\tpublic int getHash()" + NL + "\t{" + NL + "\t\tif (hash == -1)" + NL + "\t\t{" + NL + "\t\t\tObject theKey = getKey();" + NL + "\t\t\thash = (theKey == null ? 0 : theKey.hashCode());" + NL + "\t\t}" + NL + "\t\treturn hash;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + " \t * <!-- begin-user-doc -->" + NL + " \t * <!-- end-user-doc -->" + NL + " \t * @generated" + NL + " \t */" + NL + "\tpublic void setHash(int hash)" + NL + "\t{" + NL + "\t\tthis.hash = hash;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + " \t * <!-- begin-user-doc -->" + NL + " \t * <!-- end-user-doc -->" + NL + " \t * @generated" + NL + " \t */" + NL + "\tpublic Object getKey()" + NL + "\t{" + NL + " \t";
+ protected final String TEXT_1226 = NL + "\t\treturn new ";
+ protected final String TEXT_1227 = "(getTypedKey());" + NL + " \t";
+ protected final String TEXT_1228 = NL + "\t\treturn getTypedKey();" + NL + " \t";
+ protected final String TEXT_1229 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic void setKey(Object key)" + NL + "\t{";
+ protected final String TEXT_1230 = NL + "\t\tgetTypedKey().addAll((";
+ protected final String TEXT_1231 = ")key);";
+ protected final String TEXT_1232 = NL + "\t\tsetTypedKey(((";
+ protected final String TEXT_1233 = ")key).";
+ protected final String TEXT_1234 = "());";
+ protected final String TEXT_1235 = NL + "\t\tsetTypedKey((";
+ protected final String TEXT_1236 = ")key);";
+ protected final String TEXT_1237 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Object getValue()" + NL + "\t{" + NL + " \t";
+ protected final String TEXT_1238 = NL + "\t\treturn new ";
+ protected final String TEXT_1239 = "(getTypedValue());" + NL + " \t";
+ protected final String TEXT_1240 = NL + "\t\treturn getTypedValue();" + NL + " \t";
+ protected final String TEXT_1241 = NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Object setValue(Object value)" + NL + "\t{" + NL + "\t\tObject oldValue = getValue();" + NL + " \t";
+ protected final String TEXT_1242 = NL + "\t\tgetTypedValue().clear();" + NL + "\t\tgetTypedValue().addAll((";
+ protected final String TEXT_1243 = ")value);" + NL + " \t";
+ protected final String TEXT_1244 = NL + "\t\tsetTypedValue(((";
+ protected final String TEXT_1245 = ")value).";
+ protected final String TEXT_1246 = "());" + NL + " \t";
+ protected final String TEXT_1247 = NL + "\t\tsetTypedValue((";
+ protected final String TEXT_1248 = ")value);" + NL + " \t";
+ protected final String TEXT_1249 = NL + "\t\treturn oldValue;" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+ protected final String TEXT_1250 = " getEMap()" + NL + "\t{" + NL + "\t\t";
+ protected final String TEXT_1251 = " container = eContainer();" + NL + "\t\treturn container == null ? null : (";
+ protected final String TEXT_1252 = ")container.get(eContainmentFeature());" + NL + "\t}";
+ protected final String TEXT_1253 = NL + "} //";
+ protected final String TEXT_1254 = NL;
+
+ public String generate(Object argument)
+ {
+ final StringBuffer stringBuffer = new StringBuffer();
+
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2002-2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ */
+
+ GenClass genClass = (GenClass)((Object[])argument)[0]; GenPackage genPackage = genClass.getGenPackage(); GenModel genModel=genPackage.getGenModel();
+ boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]);
+ String publicStaticFinalFlag = isImplementation ? "public static final " : "";
+ stringBuffer.append(TEXT_1);
+ stringBuffer.append(TEXT_2);
+ stringBuffer.append("$");
+ stringBuffer.append(TEXT_3);
+ stringBuffer.append("$");
+ stringBuffer.append(TEXT_4);
+ if (isInterface) {
+ stringBuffer.append(TEXT_5);
+ stringBuffer.append(genPackage.getInterfacePackageName());
+ stringBuffer.append(TEXT_6);
+ } else {
+ stringBuffer.append(TEXT_7);
+ stringBuffer.append(genPackage.getClassPackageName());
+ stringBuffer.append(TEXT_8);
+ }
+ stringBuffer.append(TEXT_9);
+ genModel.markImportLocation(stringBuffer, genPackage);
+ stringBuffer.append(TEXT_10);
+ if (isInterface) {
+ stringBuffer.append(TEXT_11);
+ stringBuffer.append(genClass.getFormattedName());
+ stringBuffer.append(TEXT_12);
+ if (genClass.hasDocumentation()) {
+ stringBuffer.append(TEXT_13);
+ stringBuffer.append(genClass.getDocumentation(genModel.getIndentation(stringBuffer)));
+ stringBuffer.append(TEXT_14);
+ }
+ stringBuffer.append(TEXT_15);
+ if (!genClass.getGenFeatures().isEmpty()) {
+ stringBuffer.append(TEXT_16);
+ for (Iterator i=genClass.getGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();
+ if (!genFeature.isSuppressedGetVisibility()) {
+ stringBuffer.append(TEXT_17);
+ stringBuffer.append(genClass.getQualifiedInterfaceName());
+ stringBuffer.append(TEXT_18);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_19);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_20);
+ }
+ }
+ stringBuffer.append(TEXT_21);
+ }
+ stringBuffer.append(TEXT_22);
+ if (!genModel.isSuppressEMFMetaData()) {
+ stringBuffer.append(TEXT_23);
+ stringBuffer.append(genPackage.getQualifiedPackageInterfaceName());
+ stringBuffer.append(TEXT_24);
+ stringBuffer.append(genClass.getClassifierAccessorName());
+ stringBuffer.append(TEXT_25);
+ }
+ if (!genModel.isSuppressEMFModelTags()) { boolean first = true; for (StringTokenizer stringTokenizer = new StringTokenizer(genClass.getModelInfo(), "\n\r"); stringTokenizer.hasMoreTokens(); ) { String modelInfo = stringTokenizer.nextToken(); if (first) { first = false;
+ stringBuffer.append(TEXT_26);
+ stringBuffer.append(modelInfo);
+ } else {
+ stringBuffer.append(TEXT_27);
+ stringBuffer.append(modelInfo);
+ }} if (first) {
+ stringBuffer.append(TEXT_28);
+ }}
+ if (genClass.needsRootExtendsInterfaceExtendsTag()) {
+ stringBuffer.append(TEXT_29);
+ stringBuffer.append(genModel.getImportedName(genModel.getRootExtendsInterface()));
+ }
+ stringBuffer.append(TEXT_30);
+ } else {
+ stringBuffer.append(TEXT_31);
+ stringBuffer.append(genClass.getFormattedName());
+ stringBuffer.append(TEXT_32);
+ if (!genClass.getImplementedGenFeatures().isEmpty()) {
+ stringBuffer.append(TEXT_33);
+ for (Iterator i=genClass.getImplementedGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();
+ stringBuffer.append(TEXT_34);
+ stringBuffer.append(genClass.getQualifiedClassName());
+ stringBuffer.append(TEXT_35);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_36);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_37);
+ }
+ stringBuffer.append(TEXT_38);
+ }
+ stringBuffer.append(TEXT_39);
+ }
+ if (isImplementation) {
+ stringBuffer.append(TEXT_40);
+ if (genClass.isAbstract()) {
+ stringBuffer.append(TEXT_41);
+ }
+ stringBuffer.append(TEXT_42);
+ stringBuffer.append(genClass.getClassName());
+ stringBuffer.append(genClass.getClassExtends());
+ stringBuffer.append(genClass.getClassImplements());
+ } else {
+ stringBuffer.append(TEXT_43);
+ stringBuffer.append(genClass.getInterfaceName());
+ stringBuffer.append(genClass.getInterfaceExtends());
+ }
+ stringBuffer.append(TEXT_44);
+ if (genModel.getCopyrightText() != null) {
+ stringBuffer.append(TEXT_45);
+ stringBuffer.append(publicStaticFinalFlag);
+ stringBuffer.append(genModel.getImportedName("java.lang.String"));
+ stringBuffer.append(TEXT_46);
+ stringBuffer.append(genModel.getCopyrightText());
+ stringBuffer.append(TEXT_47);
+ stringBuffer.append(genModel.getNonNLS());
+ stringBuffer.append(TEXT_48);
+ }
+ if (isImplementation && genModel.getDriverNumber() != null) {
+ stringBuffer.append(TEXT_49);
+ stringBuffer.append(genModel.getImportedName("java.lang.String"));
+ stringBuffer.append(TEXT_50);
+ stringBuffer.append(genModel.getDriverNumber());
+ stringBuffer.append(TEXT_51);
+ stringBuffer.append(genModel.getNonNLS());
+ stringBuffer.append(TEXT_52);
+ }
+ if (isImplementation && genClass.isJavaIOSerializable()) {
+ stringBuffer.append(TEXT_53);
+ }
+ if (isImplementation && genModel.isVirtualDelegation()) { String eVirtualValuesField = genClass.getEVirtualValuesField();
+ if (eVirtualValuesField != null) {
+ stringBuffer.append(TEXT_54);
+ stringBuffer.append(eVirtualValuesField);
+ stringBuffer.append(TEXT_55);
+ }
+ { List eVirtualIndexBitFields = genClass.getEVirtualIndexBitFields(new ArrayList());
+ if (!eVirtualIndexBitFields.isEmpty()) {
+ for (Iterator i = eVirtualIndexBitFields.iterator(); i.hasNext();) { String eVirtualIndexBitField = (String)i.next();
+ stringBuffer.append(TEXT_56);
+ stringBuffer.append(eVirtualIndexBitField);
+ stringBuffer.append(TEXT_57);
+ }
+ }
+ }
+ }
+ if (isImplementation && genClass.isModelRoot() && genModel.isBooleanFlagsEnabled() && genModel.getBooleanFlagsReservedBits() == -1) {
+ stringBuffer.append(TEXT_58);
+ stringBuffer.append(genModel.getBooleanFlagsField());
+ stringBuffer.append(TEXT_59);
+ }
+ if (isImplementation && !genModel.isReflectiveDelegation()) {
+ for (Iterator i=genClass.getDeclaredFieldGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();
+ stringBuffer.append(TEXT_60);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_61);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_62);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_63);
+ stringBuffer.append(genClass.getFeatureValue(genFeature));
+ stringBuffer.append(TEXT_64);
+ if (genFeature.isListType() || genFeature.isReferenceType()) {
+ if (genClass.isField(genFeature)) {
+ stringBuffer.append(TEXT_65);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_66);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_67);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_68);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_69);
+ if (genFeature.getImportedType().equals("Sequence")){
+ stringBuffer.append(TEXT_70);
+ stringBuffer.append(genFeature.getImportedEffectiveFeatureMapWrapperClass());
+ stringBuffer.append(TEXT_71);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_72);
+ }else{
+ stringBuffer.append(TEXT_73);
+ stringBuffer.append(genModel.getImportedName(genFeature.getType()));
+ stringBuffer.append(TEXT_74);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_75);
+ }
+ }
+ if (genModel.isArrayAccessors() && !genFeature.isFeatureMapType() && !genFeature.isMapType()) {
+ stringBuffer.append(TEXT_76);
+ stringBuffer.append(genFeature.getGetArrayAccessor());
+ stringBuffer.append(TEXT_77);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_78);
+ stringBuffer.append(genFeature.getGetArrayAccessor());
+ stringBuffer.append(TEXT_79);
+ stringBuffer.append(genFeature.getListItemType());
+ stringBuffer.append(TEXT_80);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_81);
+ stringBuffer.append(genFeature.getListItemType());
+ stringBuffer.append(TEXT_82);
+ }
+ } else {
+ if (!genFeature.isVolatile() || !genModel.isReflectiveDelegation() && (!genFeature.hasDelegateFeature() || !genFeature.isUnsettable())) {
+ stringBuffer.append(TEXT_83);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_84);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_85);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_86);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_87);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_88);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_89);
+ stringBuffer.append(genFeature.getStaticDefaultValue());
+ stringBuffer.append(TEXT_90);
+ stringBuffer.append(genModel.getNonNLS(genFeature.getStaticDefaultValue()));
+ stringBuffer.append(TEXT_91);
+ }
+ if (genClass.isField(genFeature)) {
+ if (genClass.isFlag(genFeature)) {
+ if (genClass.getFlagIndex(genFeature) > 31 && genClass.getFlagIndex(genFeature) % 32 == 0) {
+ stringBuffer.append(TEXT_92);
+ stringBuffer.append(genClass.getFlagsField(genFeature));
+ stringBuffer.append(TEXT_93);
+ }
+ stringBuffer.append(TEXT_94);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_95);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_96);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_97);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_98);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_99);
+ stringBuffer.append("<< " + genClass.getFlagIndex(genFeature) % 32 );
+ stringBuffer.append(TEXT_100);
+ } else {
+ stringBuffer.append(TEXT_101);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_102);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_103);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_104);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_105);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_106);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_107);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_108);
+ }
+ }
+ }
+ if (genClass.isESetField(genFeature)) {
+ if (genClass.isESetFlag(genFeature)) {
+ if (genClass.getESetFlagIndex(genFeature) > 31 && genClass.getESetFlagIndex(genFeature) % 32 == 0) {
+ stringBuffer.append(TEXT_109);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_110);
+ }
+ stringBuffer.append(TEXT_111);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_112);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_113);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_114);
+ stringBuffer.append("<< " + genClass.getESetFlagIndex(genFeature) % 32 );
+ stringBuffer.append(TEXT_115);
+ } else {
+ stringBuffer.append(TEXT_116);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_117);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_118);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_119);
+ }
+ }
+ }
+ //Class/declaredFieldGenFeature.override.javajetinc
+ }
+ if (isImplementation) {
+ stringBuffer.append(TEXT_120);
+ stringBuffer.append(genClass.getClassName());
+ stringBuffer.append(TEXT_121);
+ for (Iterator i=genClass.getFlagGenFeatures("true").iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();
+ stringBuffer.append(TEXT_122);
+ stringBuffer.append(genClass.getFlagsField(genFeature));
+ stringBuffer.append(TEXT_123);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_124);
+ }
+ stringBuffer.append(TEXT_125);
+ stringBuffer.append(genModel.getImportedName("commonj.sdo.Type"));
+ stringBuffer.append(TEXT_126);
+ stringBuffer.append(genModel.getImportedName("commonj.sdo.helper.TypeHelper"));
+ stringBuffer.append(TEXT_127);
+ stringBuffer.append(genClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_128);
+ }
+ for (Iterator i=(isImplementation ? genClass.getImplementedGenFeatures() : genClass.getDeclaredGenFeatures()).iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();
+ if (genModel.isArrayAccessors() && genFeature.isListType() && !genFeature.isFeatureMapType() && !genFeature.isMapType()) {
+ stringBuffer.append(TEXT_129);
+ if (!isImplementation) {
+ stringBuffer.append(TEXT_130);
+ stringBuffer.append(genFeature.getListItemType());
+ stringBuffer.append(TEXT_131);
+ stringBuffer.append(genFeature.getGetArrayAccessor());
+ stringBuffer.append(TEXT_132);
+ } else {
+ stringBuffer.append(TEXT_133);
+ stringBuffer.append(genFeature.getListItemType());
+ stringBuffer.append(TEXT_134);
+ stringBuffer.append(genFeature.getGetArrayAccessor());
+ stringBuffer.append(TEXT_135);
+ if (genFeature.isVolatile()) {
+ stringBuffer.append(TEXT_136);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicEList"));
+ stringBuffer.append(TEXT_137);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicEList"));
+ stringBuffer.append(TEXT_138);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_139);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_140);
+ } else {
+ stringBuffer.append(TEXT_141);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_142);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_143);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_144);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicEList"));
+ stringBuffer.append(TEXT_145);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicEList"));
+ stringBuffer.append(TEXT_146);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_147);
+ }
+ stringBuffer.append(TEXT_148);
+ stringBuffer.append(genFeature.getListItemType());
+ stringBuffer.append(TEXT_149);
+ }
+ stringBuffer.append(TEXT_150);
+ if (!isImplementation) {
+ stringBuffer.append(TEXT_151);
+ stringBuffer.append(genFeature.getListItemType());
+ stringBuffer.append(TEXT_152);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_153);
+ } else {
+ stringBuffer.append(TEXT_154);
+ stringBuffer.append(genFeature.getListItemType());
+ stringBuffer.append(TEXT_155);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_156);
+ stringBuffer.append(genFeature.getListItemType());
+ stringBuffer.append(TEXT_157);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_158);
+ }
+ stringBuffer.append(TEXT_159);
+ if (!isImplementation) {
+ stringBuffer.append(TEXT_160);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_161);
+ } else {
+ stringBuffer.append(TEXT_162);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_163);
+ if (genFeature.isVolatile()) {
+ stringBuffer.append(TEXT_164);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_165);
+ } else {
+ stringBuffer.append(TEXT_166);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_167);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_168);
+ }
+ stringBuffer.append(TEXT_169);
+ }
+ stringBuffer.append(TEXT_170);
+ if (!isImplementation) {
+ stringBuffer.append(TEXT_171);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_172);
+ stringBuffer.append(genFeature.getListItemType());
+ stringBuffer.append(TEXT_173);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_174);
+ } else {
+ stringBuffer.append(TEXT_175);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_176);
+ stringBuffer.append(genFeature.getListItemType());
+ stringBuffer.append(TEXT_177);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_178);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicEList"));
+ stringBuffer.append(TEXT_179);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_180);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_181);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_182);
+ }
+ stringBuffer.append(TEXT_183);
+ if (!isImplementation) {
+ stringBuffer.append(TEXT_184);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_185);
+ stringBuffer.append(genFeature.getListItemType());
+ stringBuffer.append(TEXT_186);
+ } else {
+ stringBuffer.append(TEXT_187);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_188);
+ stringBuffer.append(genFeature.getListItemType());
+ stringBuffer.append(TEXT_189);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_190);
+ }
+ }
+ if (genFeature.isGet() && (isImplementation || !genFeature.isSuppressedGetVisibility())) {
+ if (isInterface) {
+ stringBuffer.append(TEXT_191);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_192);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_193);
+ if (genFeature.isListType()) {
+ if (genFeature.isMapType()) { GenFeature keyFeature = genFeature.getMapEntryTypeGenClass().getMapEntryKeyFeature(); GenFeature valueFeature = genFeature.getMapEntryTypeGenClass().getMapEntryValueFeature();
+ stringBuffer.append(TEXT_194);
+ if (keyFeature.isListType()) {
+ stringBuffer.append(TEXT_195);
+ stringBuffer.append(keyFeature.getQualifiedListItemType());
+ stringBuffer.append(TEXT_196);
+ } else {
+ stringBuffer.append(TEXT_197);
+ stringBuffer.append(keyFeature.getType());
+ stringBuffer.append(TEXT_198);
+ }
+ stringBuffer.append(TEXT_199);
+ if (valueFeature.isListType()) {
+ stringBuffer.append(TEXT_200);
+ stringBuffer.append(valueFeature.getQualifiedListItemType());
+ stringBuffer.append(TEXT_201);
+ } else {
+ stringBuffer.append(TEXT_202);
+ stringBuffer.append(valueFeature.getType());
+ stringBuffer.append(TEXT_203);
+ }
+ stringBuffer.append(TEXT_204);
+ } else if (!genFeature.isWrappedFeatureMapType() && !(genModel.isSuppressEMFMetaData() && "org.eclipse.emf.ecore.EObject".equals(genFeature.getQualifiedListItemType()))) {
+ stringBuffer.append(TEXT_205);
+ stringBuffer.append(genFeature.getQualifiedListItemType());
+ stringBuffer.append(TEXT_206);
+ }
+ } else if (genFeature.isSetDefaultValue()) {
+ stringBuffer.append(TEXT_207);
+ stringBuffer.append(genFeature.getDefaultValue());
+ stringBuffer.append(TEXT_208);
+ }
+ if (genFeature.getTypeGenEnum() != null) {
+ stringBuffer.append(TEXT_209);
+ stringBuffer.append(genFeature.getTypeGenEnum().getQualifiedName());
+ stringBuffer.append(TEXT_210);
+ }
+ if (genFeature.isBidirectional() && !genFeature.getReverse().getGenClass().isMapEntry()) { GenFeature reverseGenFeature = genFeature.getReverse();
+ if (!reverseGenFeature.isSuppressedGetVisibility()) {
+ stringBuffer.append(TEXT_211);
+ stringBuffer.append(reverseGenFeature.getGenClass().getQualifiedInterfaceName());
+ stringBuffer.append(TEXT_212);
+ stringBuffer.append(reverseGenFeature.getGetAccessor());
+ stringBuffer.append(TEXT_213);
+ stringBuffer.append(reverseGenFeature.getFormattedName());
+ stringBuffer.append(TEXT_214);
+ }
+ }
+ stringBuffer.append(TEXT_215);
+ if (!genFeature.hasDocumentation()) {
+ stringBuffer.append(TEXT_216);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_217);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_218);
+ }
+ stringBuffer.append(TEXT_219);
+ if (genFeature.hasDocumentation()) {
+ stringBuffer.append(TEXT_220);
+ stringBuffer.append(genFeature.getDocumentation(genModel.getIndentation(stringBuffer)));
+ stringBuffer.append(TEXT_221);
+ }
+ stringBuffer.append(TEXT_222);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_223);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_224);
+ if (genFeature.getTypeGenEnum() != null) {
+ stringBuffer.append(TEXT_225);
+ stringBuffer.append(genFeature.getTypeGenEnum().getQualifiedName());
+ }
+ if (genFeature.isUnsettable()) {
+ if (!genFeature.isSuppressedIsSetVisibility()) {
+ stringBuffer.append(TEXT_226);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_227);
+ }
+ if (genFeature.isChangeable() && !genFeature.isSuppressedUnsetVisibility()) {
+ stringBuffer.append(TEXT_228);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_229);
+ }
+ }
+ if (genFeature.isChangeable() && !genFeature.isListType() && !genFeature.isSuppressedSetVisibility()) {
+ stringBuffer.append(TEXT_230);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_231);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_232);
+ }
+ if (!genModel.isSuppressEMFMetaData()) {
+ stringBuffer.append(TEXT_233);
+ stringBuffer.append(genPackage.getQualifiedPackageInterfaceName());
+ stringBuffer.append(TEXT_234);
+ stringBuffer.append(genFeature.getFeatureAccessorName());
+ stringBuffer.append(TEXT_235);
+ }
+ if (genFeature.isBidirectional() && !genFeature.getReverse().getGenClass().isMapEntry()) { GenFeature reverseGenFeature = genFeature.getReverse();
+ if (!reverseGenFeature.isSuppressedGetVisibility()) {
+ stringBuffer.append(TEXT_236);
+ stringBuffer.append(reverseGenFeature.getGenClass().getQualifiedInterfaceName());
+ stringBuffer.append(TEXT_237);
+ stringBuffer.append(reverseGenFeature.getGetAccessor());
+ }
+ }
+ if (!genModel.isSuppressEMFModelTags()) { boolean first = true; for (StringTokenizer stringTokenizer = new StringTokenizer(genFeature.getModelInfo(), "\n\r"); stringTokenizer.hasMoreTokens(); ) { String modelInfo = stringTokenizer.nextToken(); if (first) { first = false;
+ stringBuffer.append(TEXT_238);
+ stringBuffer.append(modelInfo);
+ } else {
+ stringBuffer.append(TEXT_239);
+ stringBuffer.append(modelInfo);
+ }} if (first) {
+ stringBuffer.append(TEXT_240);
+ }}
+ stringBuffer.append(TEXT_241);
+ } else {
+ stringBuffer.append(TEXT_242);
+ }
+ if (!isImplementation) {
+ stringBuffer.append(TEXT_243);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_244);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_245);
+ } else {
+ stringBuffer.append(TEXT_246);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_247);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_248);
+ if (genModel.isReflectiveDelegation()) {
+ stringBuffer.append(TEXT_249);
+ if (genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_250);
+ }
+ stringBuffer.append(TEXT_251);
+ stringBuffer.append(genFeature.getObjectType());
+ stringBuffer.append(TEXT_252);
+ stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+ stringBuffer.append(TEXT_253);
+ if (genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_254);
+ stringBuffer.append(genFeature.getPrimitiveValueFunction());
+ stringBuffer.append(TEXT_255);
+ }
+ stringBuffer.append(TEXT_256);
+ } else if (!genFeature.isVolatile()) {
+ if (genFeature.isListType()) {
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_257);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_258);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_259);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_260);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_261);
+ }
+ stringBuffer.append(TEXT_262);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_263);
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_264);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_265);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_266);
+ stringBuffer.append(genClass.getListConstructor(genFeature));
+ stringBuffer.append(TEXT_267);
+ } else {
+ if (genFeature.getImportedType().equals("Sequence")){
+ stringBuffer.append(TEXT_268);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_269);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_270);
+ } else {
+ stringBuffer.append(TEXT_271);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_272);
+ stringBuffer.append(genClass.getName());
+ stringBuffer.append(TEXT_273);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_274);
+ }
+ }
+ stringBuffer.append(TEXT_275);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes() ? ".map()" : "");
+ stringBuffer.append(TEXT_276);
+ } else if (genFeature.isContainer()) {
+ stringBuffer.append(TEXT_277);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_278);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_279);
+ } else {
+ if (genFeature.isResolveProxies()) {
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_280);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_281);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_282);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_283);
+ stringBuffer.append(genFeature.getUpperName());
+ if (!genFeature.isReferenceType()) {
+ stringBuffer.append(TEXT_284);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_285);
+ }
+ stringBuffer.append(TEXT_286);
+ }
+ stringBuffer.append(TEXT_287);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_288);
+ stringBuffer.append(genFeature.getSafeNameAsEObject());
+ stringBuffer.append(TEXT_289);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_290);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_291);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_292);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_293);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_294);
+ stringBuffer.append(genFeature.getNonEObjectInternalTypeCast());
+ stringBuffer.append(TEXT_295);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_296);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_297);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_298);
+ if (genFeature.isEffectiveContains()) {
+ stringBuffer.append(TEXT_299);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_300);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_301);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_302);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_303);
+ if (!genFeature.isBidirectional()) {
+ stringBuffer.append(TEXT_304);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_305);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_306);
+ } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();
+ stringBuffer.append(TEXT_307);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.ChangeContext"));
+ stringBuffer.append(TEXT_308);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_309);
+ stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
+ stringBuffer.append(TEXT_310);
+ stringBuffer.append(targetClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_311);
+ }
+ stringBuffer.append(TEXT_312);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_313);
+ if (!genFeature.isBidirectional()) {
+ stringBuffer.append(TEXT_314);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_315);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_316);
+ } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();
+ stringBuffer.append(TEXT_317);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_318);
+ stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
+ stringBuffer.append(TEXT_319);
+ stringBuffer.append(targetClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_320);
+ }
+ stringBuffer.append(TEXT_321);
+ } else if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_322);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_323);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_324);
+ }
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_325);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_326);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_327);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_328);
+ }
+ stringBuffer.append(TEXT_329);
+ }
+ if (!genFeature.isResolveProxies() && genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_330);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_331);
+ stringBuffer.append(genFeature.getUpperName());
+ if (!genFeature.isReferenceType()) {
+ stringBuffer.append(TEXT_332);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_333);
+ }
+ stringBuffer.append(TEXT_334);
+ } else if (genClass.isFlag(genFeature)) {
+ stringBuffer.append(TEXT_335);
+ stringBuffer.append(genClass.getFlagsField(genFeature));
+ stringBuffer.append(TEXT_336);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_337);
+ } else {
+ stringBuffer.append(TEXT_338);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_339);
+ }
+ }
+ } else {//volatile
+ if (genFeature.isResolveProxies() && !genFeature.isListType()) {
+ stringBuffer.append(TEXT_340);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_341);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_342);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_343);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_344);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_345);
+ stringBuffer.append(genFeature.getNonEObjectInternalTypeCast());
+ stringBuffer.append(TEXT_346);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_347);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_348);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_349);
+ } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
+ if (genFeature.isFeatureMapType()) {
+ if (delegateFeature.isWrappedFeatureMapType()) {
+ stringBuffer.append(TEXT_350);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_351);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_352);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_353);
+ } else {
+ stringBuffer.append(TEXT_354);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+ stringBuffer.append(TEXT_355);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+ stringBuffer.append(TEXT_356);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_357);
+ stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+ stringBuffer.append(TEXT_358);
+ }
+ } else if (genFeature.isListType()) {
+ if (delegateFeature.isWrappedFeatureMapType()) {
+ stringBuffer.append(TEXT_359);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_360);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_361);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_362);
+ } else {
+ stringBuffer.append(TEXT_363);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+ stringBuffer.append(TEXT_364);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_365);
+ stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+ stringBuffer.append(TEXT_366);
+ }
+ } else {
+ if (delegateFeature.isWrappedFeatureMapType()) {
+ stringBuffer.append(TEXT_367);
+ if (genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_368);
+ }
+ stringBuffer.append(TEXT_369);
+ stringBuffer.append(genFeature.getObjectType());
+ stringBuffer.append(TEXT_370);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_371);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_372);
+ if (genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_373);
+ stringBuffer.append(genFeature.getPrimitiveValueFunction());
+ stringBuffer.append(TEXT_374);
+ }
+ stringBuffer.append(TEXT_375);
+ } else {
+ stringBuffer.append(TEXT_376);
+ if (genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_377);
+ }
+ stringBuffer.append(TEXT_378);
+ stringBuffer.append(genFeature.getObjectType());
+ stringBuffer.append(TEXT_379);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_380);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_381);
+ if (genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_382);
+ stringBuffer.append(genFeature.getPrimitiveValueFunction());
+ stringBuffer.append(TEXT_383);
+ }
+ stringBuffer.append(TEXT_384);
+ }
+ }
+ } else {
+ stringBuffer.append(TEXT_385);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_386);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_387);
+ //Class/getGenFeature.todo.override.javajetinc
+ }
+ }
+ stringBuffer.append(TEXT_388);
+ }
+ //Class/getGenFeature.override.javajetinc
+ }
+ if (isImplementation && !genModel.isReflectiveDelegation() && genFeature.isBasicGet()) {
+ stringBuffer.append(TEXT_389);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_390);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_391);
+ if (genFeature.isContainer()) {
+ stringBuffer.append(TEXT_392);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_393);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_394);
+ } else if (!genFeature.isVolatile()) {
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_395);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_396);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_397);
+ } else {
+ stringBuffer.append(TEXT_398);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_399);
+ }
+ } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
+ if (delegateFeature.isWrappedFeatureMapType()) {
+ stringBuffer.append(TEXT_400);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_401);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_402);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_403);
+ } else {
+ stringBuffer.append(TEXT_404);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_405);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_406);
+ stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+ stringBuffer.append(TEXT_407);
+ }
+ } else {
+ stringBuffer.append(TEXT_408);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_409);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_410);
+ //Class/basicGetGenFeature.todo.override.javajetinc
+ }
+ stringBuffer.append(TEXT_411);
+ //Class/basicGetGenFeature.override.javajetinc
+ }
+ if (isImplementation && !genModel.isReflectiveDelegation() && genFeature.isBasicSet()) {
+ stringBuffer.append(TEXT_412);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_413);
+ stringBuffer.append(genFeature.getImportedInternalType());
+ stringBuffer.append(TEXT_414);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_415);
+ if (!genFeature.isVolatile()) {
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_416);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_417);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_418);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_419);
+ } else {
+ stringBuffer.append(TEXT_420);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_421);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_422);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_423);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_424);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_425);
+ }
+ if (genFeature.isUnsettable()) {
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_426);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_427);
+ } else if (genClass.isESetFlag(genFeature)) {
+ stringBuffer.append(TEXT_428);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_429);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_430);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_431);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_432);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_433);
+ } else {
+ stringBuffer.append(TEXT_434);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_435);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_436);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_437);
+ }
+ }
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_438);
+ if (genFeature.isUnsettable()) {
+ stringBuffer.append(TEXT_439);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
+ stringBuffer.append(TEXT_440);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
+ stringBuffer.append(TEXT_441);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
+ stringBuffer.append(TEXT_442);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_443);
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_444);
+ stringBuffer.append(genFeature.getCapName());
+ } else {
+ stringBuffer.append(TEXT_445);
+ stringBuffer.append(genFeature.getCapName());
+ }
+ stringBuffer.append(TEXT_446);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_447);
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_448);
+ } else {
+ stringBuffer.append(TEXT_449);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_450);
+ }
+ stringBuffer.append(TEXT_451);
+ } else {
+ stringBuffer.append(TEXT_452);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
+ stringBuffer.append(TEXT_453);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
+ stringBuffer.append(TEXT_454);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
+ stringBuffer.append(TEXT_455);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_456);
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_457);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_458);
+ stringBuffer.append(genFeature.getCapName());
+ } else {
+ stringBuffer.append(TEXT_459);
+ stringBuffer.append(genFeature.getCapName());
+ }
+ stringBuffer.append(TEXT_460);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_461);
+ }
+ stringBuffer.append(TEXT_462);
+ }
+ stringBuffer.append(TEXT_463);
+ } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
+ if (delegateFeature.isWrappedFeatureMapType()) {
+ stringBuffer.append(TEXT_464);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+ stringBuffer.append(TEXT_465);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+ stringBuffer.append(TEXT_466);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_467);
+ stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+ stringBuffer.append(TEXT_468);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_469);
+ } else {
+ stringBuffer.append(TEXT_470);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+ stringBuffer.append(TEXT_471);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_472);
+ stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+ stringBuffer.append(TEXT_473);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_474);
+ }
+ } else {
+ stringBuffer.append(TEXT_475);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_476);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_477);
+ //Class/basicSetGenFeature.todo.override.javajetinc
+ }
+ stringBuffer.append(TEXT_478);
+ //Class/basicSetGenFeature.override.javajetinc
+ }
+ if (genFeature.isSet() && (isImplementation || !genFeature.isSuppressedSetVisibility())) {
+ if (isInterface) {
+ stringBuffer.append(TEXT_479);
+ stringBuffer.append(genClass.getQualifiedInterfaceName());
+ stringBuffer.append(TEXT_480);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_481);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_482);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_483);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_484);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_485);
+ if (genFeature.isEnumType()) {
+ stringBuffer.append(TEXT_486);
+ stringBuffer.append(genFeature.getTypeGenEnum().getQualifiedName());
+ }
+ if (genFeature.isUnsettable()) {
+ if (!genFeature.isSuppressedIsSetVisibility()) {
+ stringBuffer.append(TEXT_487);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_488);
+ }
+ if (!genFeature.isSuppressedUnsetVisibility()) {
+ stringBuffer.append(TEXT_489);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_490);
+ }
+ }
+ stringBuffer.append(TEXT_491);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_492);
+ } else {
+ stringBuffer.append(TEXT_493);
+ }
+ if (!isImplementation) {
+ stringBuffer.append(TEXT_494);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_495);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_496);
+ } else {
+ stringBuffer.append(TEXT_497);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_498);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_499);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_500);
+ if (genModel.isReflectiveDelegation()) {
+ stringBuffer.append(TEXT_501);
+ stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+ stringBuffer.append(TEXT_502);
+ if (genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_503);
+ stringBuffer.append(genFeature.getObjectType());
+ stringBuffer.append(TEXT_504);
+ }
+ stringBuffer.append(TEXT_505);
+ stringBuffer.append(genFeature.getCapName());
+ if (genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_506);
+ }
+ stringBuffer.append(TEXT_507);
+ } else if (!genFeature.isVolatile()) {
+ if (genFeature.isContainer()) { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();
+ stringBuffer.append(TEXT_508);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_509);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_510);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_511);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreUtil"));
+ stringBuffer.append(TEXT_512);
+ stringBuffer.append(genFeature.getEObjectCast());
+ stringBuffer.append(TEXT_513);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_514);
+ stringBuffer.append(genModel.getImportedName("java.lang.IllegalArgumentException"));
+ stringBuffer.append(TEXT_515);
+ stringBuffer.append(genModel.getNonNLS());
+ stringBuffer.append(TEXT_516);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_517);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_518);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_519);
+ stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
+ stringBuffer.append(TEXT_520);
+ stringBuffer.append(targetClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_521);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_522);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_523);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_524);
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_525);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_526);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_527);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_528);
+ }
+ } else if (genFeature.isBidirectional() || genFeature.isEffectiveContains()) {
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_529);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_530);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_531);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_532);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_533);
+ }
+ stringBuffer.append(TEXT_534);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_535);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_536);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_537);
+ if (!genFeature.isBidirectional()) {
+ stringBuffer.append(TEXT_538);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_539);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_540);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_541);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_542);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_543);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_544);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_545);
+ } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();
+ stringBuffer.append(TEXT_546);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_547);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_548);
+ stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
+ stringBuffer.append(TEXT_549);
+ stringBuffer.append(targetClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_550);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_551);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_552);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_553);
+ stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
+ stringBuffer.append(TEXT_554);
+ stringBuffer.append(targetClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_555);
+ }
+ stringBuffer.append(TEXT_556);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_557);
+ stringBuffer.append(genFeature.getInternalTypeCast());
+ stringBuffer.append(TEXT_558);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_559);
+ if (genFeature.isUnsettable()) {
+ stringBuffer.append(TEXT_560);
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_561);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_562);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_563);
+ } else if (genClass.isESetFlag(genFeature)) {
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_564);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_565);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_566);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_567);
+ }
+ stringBuffer.append(TEXT_568);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_569);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_570);
+ } else {
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_571);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_572);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_573);
+ }
+ stringBuffer.append(TEXT_574);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_575);
+ }
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_576);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_577);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_578);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_579);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_580);
+ }
+ stringBuffer.append(TEXT_581);
+ } else {
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_582);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_583);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_584);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_585);
+ }
+ }
+ } else {
+ if (genClass.isFlag(genFeature)) {
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_586);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_587);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_588);
+ stringBuffer.append(genClass.getFlagsField(genFeature));
+ stringBuffer.append(TEXT_589);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_590);
+ }
+ stringBuffer.append(TEXT_591);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_592);
+ stringBuffer.append(genClass.getFlagsField(genFeature));
+ stringBuffer.append(TEXT_593);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_594);
+ stringBuffer.append(genClass.getFlagsField(genFeature));
+ stringBuffer.append(TEXT_595);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_596);
+ } else {
+ if (!genModel.isVirtualDelegation() || genFeature.isPrimitiveType()) {
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_597);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_598);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_599);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_600);
+ }
+ }
+ if (genFeature.isEnumType()) {
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_601);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_602);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_603);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_604);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_605);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_606);
+ } else {
+ stringBuffer.append(TEXT_607);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_608);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_609);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_610);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_611);
+ }
+ } else {
+ if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_612);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_613);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_614);
+ stringBuffer.append(genFeature.getInternalTypeCast());
+ stringBuffer.append(TEXT_615);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_616);
+ } else {
+ stringBuffer.append(TEXT_617);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_618);
+ stringBuffer.append(genFeature.getInternalTypeCast());
+ stringBuffer.append(TEXT_619);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_620);
+ }
+ }
+ if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_621);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_622);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_623);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_624);
+ }
+ }
+ if (genFeature.isUnsettable()) {
+ if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_625);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_626);
+ } else if (genClass.isESetFlag(genFeature)) {
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_627);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_628);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_629);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_630);
+ }
+ stringBuffer.append(TEXT_631);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_632);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_633);
+ } else {
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_634);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_635);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_636);
+ }
+ stringBuffer.append(TEXT_637);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_638);
+ }
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_639);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_640);
+ if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_641);
+ if (genFeature.isReferenceType()) {
+ stringBuffer.append(TEXT_642);
+ } else {
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_643);
+ }
+ stringBuffer.append(TEXT_644);
+ stringBuffer.append(genFeature.getCapName());
+ } else {
+ stringBuffer.append(TEXT_645);
+ stringBuffer.append(genFeature.getCapName());
+ }
+ stringBuffer.append(TEXT_646);
+ if (genClass.isFlag(genFeature)) {
+ stringBuffer.append(TEXT_647);
+ stringBuffer.append(genFeature.getCapName());
+ } else {
+ stringBuffer.append(genFeature.getSafeName());
+ }
+ stringBuffer.append(TEXT_648);
+ if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_649);
+ } else {
+ stringBuffer.append(TEXT_650);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_651);
+ }
+ stringBuffer.append(TEXT_652);
+ }
+ } else {
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_653);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_654);
+ if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_655);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_656);
+ if (genFeature.isReferenceType()) {
+ stringBuffer.append(TEXT_657);
+ } else {
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_658);
+ }
+ stringBuffer.append(TEXT_659);
+ stringBuffer.append(genFeature.getCapName());
+ } else {
+ stringBuffer.append(TEXT_660);
+ stringBuffer.append(genFeature.getCapName());
+ }
+ stringBuffer.append(TEXT_661);
+ if (genClass.isFlag(genFeature)) {
+ stringBuffer.append(TEXT_662);
+ stringBuffer.append(genFeature.getCapName());
+ } else {
+ stringBuffer.append(genFeature.getSafeName());
+ }
+ stringBuffer.append(TEXT_663);
+ }
+ }
+ }
+ } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
+ if (delegateFeature.isWrappedFeatureMapType()) {
+ stringBuffer.append(TEXT_664);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_665);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_666);
+ if (genFeature.isPrimitiveType()){
+ stringBuffer.append(TEXT_667);
+ stringBuffer.append(genFeature.getObjectType());
+ stringBuffer.append(TEXT_668);
+ }
+ stringBuffer.append(TEXT_669);
+ stringBuffer.append(genFeature.getCapName());
+ if (genFeature.isPrimitiveType()){
+ stringBuffer.append(TEXT_670);
+ }
+ stringBuffer.append(TEXT_671);
+ } else {
+ stringBuffer.append(TEXT_672);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+ stringBuffer.append(TEXT_673);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_674);
+ stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+ stringBuffer.append(TEXT_675);
+ if (genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_676);
+ stringBuffer.append(genFeature.getObjectType());
+ stringBuffer.append(TEXT_677);
+ }
+ stringBuffer.append(TEXT_678);
+ stringBuffer.append(genFeature.getCapName());
+ if (genFeature.isPrimitiveType()){
+ stringBuffer.append(TEXT_679);
+ }
+ stringBuffer.append(TEXT_680);
+ }
+ } else {
+ stringBuffer.append(TEXT_681);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_682);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_683);
+ //Class/setGenFeature.todo.override.javajetinc
+ }
+ stringBuffer.append(TEXT_684);
+ }
+ //Class/setGenFeature.override.javajetinc
+ }
+ if (isImplementation && !genModel.isReflectiveDelegation() && genFeature.isBasicUnset()) {
+ stringBuffer.append(TEXT_685);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_686);
+ if (!genFeature.isVolatile()) {
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_687);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_688);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_689);
+ } else {
+ stringBuffer.append(TEXT_690);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_691);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_692);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_693);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_694);
+ }
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_695);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_696);
+ } else if (genClass.isESetFlag(genFeature)) {
+ stringBuffer.append(TEXT_697);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_698);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_699);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_700);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_701);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_702);
+ } else {
+ stringBuffer.append(TEXT_703);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_704);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_705);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_706);
+ }
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_707);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
+ stringBuffer.append(TEXT_708);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl"));
+ stringBuffer.append(TEXT_709);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.notify.Notification"));
+ stringBuffer.append(TEXT_710);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_711);
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_712);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_713);
+ } else {
+ stringBuffer.append(TEXT_714);
+ stringBuffer.append(genFeature.getCapName());
+ }
+ stringBuffer.append(TEXT_715);
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_716);
+ } else {
+ stringBuffer.append(TEXT_717);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_718);
+ }
+ stringBuffer.append(TEXT_719);
+ }
+ } else {
+ stringBuffer.append(TEXT_720);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_721);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_722);
+ //Class/basicUnsetGenFeature.todo.override.javajetinc
+ }
+ stringBuffer.append(TEXT_723);
+ //Class.basicUnsetGenFeature.override.javajetinc
+ }
+ if (genFeature.isUnset() && (isImplementation || !genFeature.isSuppressedUnsetVisibility())) {
+ if (isInterface) {
+ stringBuffer.append(TEXT_724);
+ stringBuffer.append(genClass.getQualifiedInterfaceName());
+ stringBuffer.append(TEXT_725);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_726);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_727);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_728);
+ if (!genFeature.isSuppressedIsSetVisibility()) {
+ stringBuffer.append(TEXT_729);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_730);
+ }
+ stringBuffer.append(TEXT_731);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_732);
+ if (!genFeature.isListType() && !genFeature.isSuppressedSetVisibility()) {
+ stringBuffer.append(TEXT_733);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_734);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_735);
+ }
+ stringBuffer.append(TEXT_736);
+ } else {
+ stringBuffer.append(TEXT_737);
+ }
+ if (!isImplementation) {
+ stringBuffer.append(TEXT_738);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_739);
+ } else {
+ stringBuffer.append(TEXT_740);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_741);
+ if (genModel.isReflectiveDelegation()) {
+ stringBuffer.append(TEXT_742);
+ stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+ stringBuffer.append(TEXT_743);
+ } else if (!genFeature.isVolatile()) {
+ if (genFeature.isListType()) {
+ stringBuffer.append(TEXT_744);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
+ stringBuffer.append(TEXT_745);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_746);
+ } else if (genFeature.isBidirectional() || genFeature.isEffectiveContains()) {
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_747);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_748);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_749);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_750);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_751);
+ }
+ stringBuffer.append(TEXT_752);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_753);
+ if (!genFeature.isBidirectional()) {
+ stringBuffer.append(TEXT_754);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_755);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_756);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_757);
+ } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();
+ stringBuffer.append(TEXT_758);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_759);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_760);
+ stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
+ stringBuffer.append(TEXT_761);
+ stringBuffer.append(targetClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_762);
+ }
+ stringBuffer.append(TEXT_763);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_764);
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_765);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_766);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_767);
+ } else if (genClass.isESetFlag(genFeature)) {
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_768);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_769);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_770);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_771);
+ }
+ stringBuffer.append(TEXT_772);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_773);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_774);
+ } else {
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_775);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_776);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_777);
+ }
+ stringBuffer.append(TEXT_778);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_779);
+ }
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_780);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_781);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_782);
+ }
+ stringBuffer.append(TEXT_783);
+ } else {
+ if (genClass.isFlag(genFeature)) {
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_784);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_785);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_786);
+ stringBuffer.append(genClass.getFlagsField(genFeature));
+ stringBuffer.append(TEXT_787);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_788);
+ }
+ } else if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_789);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_790);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_791);
+ } else {
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_792);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_793);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_794);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_795);
+ }
+ }
+ if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_796);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_797);
+ } else if (genClass.isESetFlag(genFeature)) {
+ stringBuffer.append(TEXT_798);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_799);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_800);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_801);
+ } else {
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_802);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_803);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_804);
+ }
+ }
+ if (genFeature.isReferenceType()) {
+ stringBuffer.append(TEXT_805);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_806);
+ if (!genModel.isVirtualDelegation()) {
+ if (genClass.isESetFlag(genFeature)) {
+ stringBuffer.append(TEXT_807);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_808);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_809);
+ } else {
+ stringBuffer.append(TEXT_810);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_811);
+ }
+ }
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_812);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_813);
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_814);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_815);
+ } else {
+ stringBuffer.append(TEXT_816);
+ stringBuffer.append(genFeature.getCapName());
+ }
+ stringBuffer.append(TEXT_817);
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_818);
+ } else {
+ stringBuffer.append(TEXT_819);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_820);
+ }
+ stringBuffer.append(TEXT_821);
+ }
+ } else {
+ if (genClass.isFlag(genFeature)) {
+ stringBuffer.append(TEXT_822);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_823);
+ stringBuffer.append(genClass.getFlagsField(genFeature));
+ stringBuffer.append(TEXT_824);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_825);
+ stringBuffer.append(genClass.getFlagsField(genFeature));
+ stringBuffer.append(TEXT_826);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_827);
+ } else if (!genModel.isVirtualDelegation() || genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_828);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_829);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_830);
+ }
+ if (!genModel.isVirtualDelegation() || genFeature.isPrimitiveType()) {
+ if (genClass.isESetFlag(genFeature)) {
+ stringBuffer.append(TEXT_831);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_832);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_833);
+ } else {
+ stringBuffer.append(TEXT_834);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_835);
+ }
+ }
+ if (!genModel.isSuppressNotification()) {
+ stringBuffer.append(TEXT_836);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_837);
+ if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_838);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_839);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_840);
+ } else {
+ stringBuffer.append(TEXT_841);
+ stringBuffer.append(genFeature.getCapName());
+ }
+ stringBuffer.append(TEXT_842);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_843);
+ if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_844);
+ } else {
+ stringBuffer.append(TEXT_845);
+ stringBuffer.append(genFeature.getCapName());
+ stringBuffer.append(TEXT_846);
+ }
+ stringBuffer.append(TEXT_847);
+ }
+ }
+ }
+ } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
+ if (delegateFeature.isWrappedFeatureMapType()) {
+ stringBuffer.append(TEXT_848);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_849);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_850);
+ } else {
+ stringBuffer.append(TEXT_851);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_852);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_853);
+ }
+ } else {
+ stringBuffer.append(TEXT_854);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_855);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_856);
+ //Class/unsetGenFeature.todo.override.javajetinc
+ }
+ stringBuffer.append(TEXT_857);
+ }
+ //Class/unsetGenFeature.override.javajetinc
+ }
+ if (genFeature.isIsSet() && (isImplementation || !genFeature.isSuppressedIsSetVisibility())) {
+ if (isInterface) {
+ stringBuffer.append(TEXT_858);
+ stringBuffer.append(genClass.getQualifiedInterfaceName());
+ stringBuffer.append(TEXT_859);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_860);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_861);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_862);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_863);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_864);
+ if (genFeature.isChangeable() && !genFeature.isSuppressedUnsetVisibility()) {
+ stringBuffer.append(TEXT_865);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_866);
+ }
+ stringBuffer.append(TEXT_867);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_868);
+ if (!genFeature.isListType() && genFeature.isChangeable() && !genFeature.isSuppressedSetVisibility()) {
+ stringBuffer.append(TEXT_869);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_870);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_871);
+ }
+ stringBuffer.append(TEXT_872);
+ } else {
+ stringBuffer.append(TEXT_873);
+ }
+ if (!isImplementation) {
+ stringBuffer.append(TEXT_874);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_875);
+ } else {
+ stringBuffer.append(TEXT_876);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_877);
+ if (genModel.isReflectiveDelegation()) {
+ stringBuffer.append(TEXT_878);
+ stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+ stringBuffer.append(TEXT_879);
+ } else if (!genFeature.isVolatile()) {
+ if (genFeature.isListType()) {
+ if (genModel.isVirtualDelegation()) {
+ stringBuffer.append(TEXT_880);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_881);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_882);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_883);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_884);
+ }
+ stringBuffer.append(TEXT_885);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_886);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
+ stringBuffer.append(TEXT_887);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_888);
+ } else {
+ if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_889);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_890);
+ } else if (genClass.isESetFlag(genFeature)) {
+ stringBuffer.append(TEXT_891);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_892);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_893);
+ } else {
+ stringBuffer.append(TEXT_894);
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_895);
+ }
+ }
+ } else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();
+ if (delegateFeature.isWrappedFeatureMapType()) {
+ stringBuffer.append(TEXT_896);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_897);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_898);
+ } else {
+ stringBuffer.append(TEXT_899);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+ stringBuffer.append(TEXT_900);
+ stringBuffer.append(delegateFeature.getAccessorName());
+ stringBuffer.append(TEXT_901);
+ stringBuffer.append(genFeature.getQualifiedFeatureAccessor());
+ stringBuffer.append(TEXT_902);
+ }
+ } else {
+ stringBuffer.append(TEXT_903);
+ stringBuffer.append(genFeature.getFormattedName());
+ stringBuffer.append(TEXT_904);
+ stringBuffer.append(genFeature.getFeatureKind());
+ stringBuffer.append(TEXT_905);
+ //Class/isSetGenFeature.todo.override.javajetinc
+ }
+ stringBuffer.append(TEXT_906);
+ }
+ //Class/isSetGenFeature.override.javajetinc
+ }
+ //Class/genFeature.override.javajetinc
+ }//for
+ for (Iterator i= (isImplementation ? genClass.getImplementedGenOperations() : genClass.getDeclaredGenOperations()).iterator(); i.hasNext();) { GenOperation genOperation = (GenOperation)i.next();
+ if (isInterface) {
+ stringBuffer.append(TEXT_907);
+ if (genOperation.hasDocumentation()) {
+ stringBuffer.append(TEXT_908);
+ stringBuffer.append(genOperation.getDocumentation(genModel.getIndentation(stringBuffer)));
+ stringBuffer.append(TEXT_909);
+ }
+ if (!genModel.isSuppressEMFModelTags()) { boolean first = true; for (StringTokenizer stringTokenizer = new StringTokenizer(genOperation.getModelInfo(), "\n\r"); stringTokenizer.hasMoreTokens(); ) { String modelInfo = stringTokenizer.nextToken(); if (first) { first = false;
+ stringBuffer.append(TEXT_910);
+ stringBuffer.append(modelInfo);
+ } else {
+ stringBuffer.append(TEXT_911);
+ stringBuffer.append(modelInfo);
+ }} if (first) {
+ stringBuffer.append(TEXT_912);
+ }}
+ stringBuffer.append(TEXT_913);
+ } else {
+ stringBuffer.append(TEXT_914);
+ }
+ if (!isImplementation) {
+ stringBuffer.append(TEXT_915);
+ stringBuffer.append(genOperation.getImportedType());
+ stringBuffer.append(TEXT_916);
+ stringBuffer.append(genOperation.getName());
+ stringBuffer.append(TEXT_917);
+ stringBuffer.append(genOperation.getParameters());
+ stringBuffer.append(TEXT_918);
+ stringBuffer.append(genOperation.getThrows());
+ stringBuffer.append(TEXT_919);
+ } else {
+ stringBuffer.append(TEXT_920);
+ stringBuffer.append(genOperation.getImportedType());
+ stringBuffer.append(TEXT_921);
+ stringBuffer.append(genOperation.getName());
+ stringBuffer.append(TEXT_922);
+ stringBuffer.append(genOperation.getParameters());
+ stringBuffer.append(TEXT_923);
+ stringBuffer.append(genOperation.getThrows());
+ stringBuffer.append(TEXT_924);
+ if (genOperation.hasBody()) {
+ stringBuffer.append(TEXT_925);
+ stringBuffer.append(genOperation.getBody(genModel.getIndentation(stringBuffer)));
+ } else if (genOperation.isInvariant()) {GenClass opClass = genOperation.getGenClass(); String diagnostics = ((GenParameter)genOperation.getGenParameters().get(0)).getName(); String context = ((GenParameter)genOperation.getGenParameters().get(1)).getName();
+ stringBuffer.append(TEXT_926);
+ stringBuffer.append(diagnostics);
+ stringBuffer.append(TEXT_927);
+ stringBuffer.append(diagnostics);
+ stringBuffer.append(TEXT_928);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.BasicDiagnostic"));
+ stringBuffer.append(TEXT_929);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.Diagnostic"));
+ stringBuffer.append(TEXT_930);
+ stringBuffer.append(opClass.getGenPackage().getImportedValidatorClassName());
+ stringBuffer.append(TEXT_931);
+ stringBuffer.append(opClass.getGenPackage().getImportedValidatorClassName());
+ stringBuffer.append(TEXT_932);
+ stringBuffer.append(opClass.getOperationID(genOperation));
+ stringBuffer.append(TEXT_933);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.plugin.EcorePlugin"));
+ stringBuffer.append(TEXT_934);
+ stringBuffer.append(genOperation.getName());
+ stringBuffer.append(TEXT_935);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.EObjectValidator"));
+ stringBuffer.append(TEXT_936);
+ stringBuffer.append(context);
+ stringBuffer.append(TEXT_937);
+ stringBuffer.append(genModel.getNonNLS());
+ stringBuffer.append(genModel.getNonNLS(2));
+ stringBuffer.append(TEXT_938);
+ } else {
+ stringBuffer.append(TEXT_939);
+ //Class/implementedGenOperation.todo.override.javajetinc
+ }
+ stringBuffer.append(TEXT_940);
+ }
+ //Class/implementedGenOperation.override.javajetinc
+ }//for
+ if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEInverseAddGenFeatures())) {
+ stringBuffer.append(TEXT_941);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_942);
+ for (Iterator i=genClass.getEInverseAddGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();
+ if (!genModel.isMinimalReflectiveMethods() || genClass.getImplementedGenFeatures().contains(genFeature)) {
+ stringBuffer.append(TEXT_943);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_944);
+ if (genFeature.isListType()) {
+ if (genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes()) {
+ stringBuffer.append(TEXT_945);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
+ stringBuffer.append(TEXT_946);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
+ stringBuffer.append(TEXT_947);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_948);
+ } else {
+ stringBuffer.append(TEXT_949);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
+ stringBuffer.append(TEXT_950);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_951);
+ }
+ } else if (genFeature.isContainer()) {
+ stringBuffer.append(TEXT_952);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_953);
+ } else {
+ if (genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
+ stringBuffer.append(TEXT_954);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_955);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_956);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_957);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_958);
+ }
+ stringBuffer.append(TEXT_959);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_960);
+ if (genFeature.isEffectiveContains()) {
+ stringBuffer.append(TEXT_961);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_962);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_963);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_964);
+ } else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();
+ stringBuffer.append(TEXT_965);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject"));
+ stringBuffer.append(TEXT_966);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_967);
+ stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
+ stringBuffer.append(TEXT_968);
+ stringBuffer.append(targetClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_969);
+ }
+ stringBuffer.append(TEXT_970);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_971);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_972);
+ }
+ }
+ }
+ stringBuffer.append(TEXT_973);
+ if (genModel.isMinimalReflectiveMethods()) {
+ stringBuffer.append(TEXT_974);
+ } else {
+ stringBuffer.append(TEXT_975);
+ }
+ stringBuffer.append(TEXT_976);
+ }
+ if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEInverseRemoveGenFeatures())) {
+ stringBuffer.append(TEXT_977);
+ stringBuffer.append(genModel.getImportedName("java.lang.Object"));
+ stringBuffer.append(TEXT_978);
+ for (Iterator i=genClass.getEInverseRemoveGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();
+ if (!genModel.isMinimalReflectiveMethods() || genClass.getImplementedGenFeatures().contains(genFeature)) {
+ stringBuffer.append(TEXT_979);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_980);
+ if (genFeature.isListType()) {
+ if (genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes()) {
+ stringBuffer.append(TEXT_981);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList"));
+ stringBuffer.append(TEXT_982);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
+ stringBuffer.append(TEXT_983);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_984);
+ } else if (genFeature.isWrappedFeatureMapType()) {
+ stringBuffer.append(TEXT_985);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_986);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_987);
+ } else {
+ stringBuffer.append(TEXT_988);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_989);
+ }
+ } else if (genFeature.isContainer()) {
+ stringBuffer.append(TEXT_990);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_991);
+ } else if (genFeature.isUnsettable()) {
+ stringBuffer.append(TEXT_992);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_993);
+ } else {
+ stringBuffer.append(TEXT_994);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_995);
+ }
+ }
+ }
+ stringBuffer.append(TEXT_996);
+ if (genModel.isMinimalReflectiveMethods()) {
+ stringBuffer.append(TEXT_997);
+ } else {
+ stringBuffer.append(TEXT_998);
+ }
+ stringBuffer.append(TEXT_999);
+ }
+ if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEBasicRemoveFromContainerGenFeatures())) {
+ stringBuffer.append(TEXT_1000);
+ for (Iterator i=genClass.getEBasicRemoveFromContainerGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();
+ GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();
+ if (!genModel.isMinimalReflectiveMethods() || genClass.getImplementedGenFeatures().contains(genFeature)) {
+ stringBuffer.append(TEXT_1001);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1002);
+ stringBuffer.append(targetClass.getQualifiedFeatureID(reverseFeature));
+ stringBuffer.append(TEXT_1003);
+ stringBuffer.append(targetClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_1004);
+ }
+ }
+ stringBuffer.append(TEXT_1005);
+ if (genModel.isMinimalReflectiveMethods()) {
+ stringBuffer.append(TEXT_1006);
+ } else {
+ stringBuffer.append(TEXT_1007);
+ }
+ stringBuffer.append(TEXT_1008);
+ }
+ if (isImplementation && !genModel.isReflectiveDelegation() && !genClass.getImplementedGenFeatures().isEmpty()) {
+ stringBuffer.append(TEXT_1009);
+ for (Iterator i=genClass.getAllGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();
+ if (!genModel.isMinimalReflectiveMethods() || genClass.getImplementedGenFeatures().contains(genFeature)) {
+ stringBuffer.append(TEXT_1010);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1011);
+ if (genFeature.isPrimitiveType()) {
+ if (genFeature.isBooleanType()) {
+ stringBuffer.append(TEXT_1012);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1013);
+ } else {
+ stringBuffer.append(TEXT_1014);
+ stringBuffer.append(genFeature.getObjectType());
+ stringBuffer.append(TEXT_1015);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1016);
+ }
+ } else if (genFeature.isResolveProxies() && !genFeature.isListType()) {
+ stringBuffer.append(TEXT_1017);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1018);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_1019);
+ } else if (genFeature.isMapType()) {
+ if (genFeature.isEffectiveSuppressEMFTypes()) {
+ stringBuffer.append(TEXT_1020);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
+ stringBuffer.append(TEXT_1021);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1022);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1023);
+ } else {
+ stringBuffer.append(TEXT_1024);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1025);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1026);
+ }
+ } else if (genFeature.isWrappedFeatureMapType()) {
+ stringBuffer.append(TEXT_1027);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1028);
+ } else if (genFeature.isFeatureMapType()) {
+ stringBuffer.append(TEXT_1029);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1030);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+ stringBuffer.append(TEXT_1031);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1032);
+ } else {
+ stringBuffer.append(TEXT_1033);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1034);
+ }
+ }
+ }
+ stringBuffer.append(TEXT_1035);
+ if (genModel.isMinimalReflectiveMethods()) {
+ stringBuffer.append(TEXT_1036);
+ } else {
+ stringBuffer.append(TEXT_1037);
+ }
+ stringBuffer.append(TEXT_1038);
+ }
+ if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getESetGenFeatures())) {
+ stringBuffer.append(TEXT_1039);
+ for (Iterator i=genClass.getESetGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();
+ if (!genModel.isMinimalReflectiveMethods() || genClass.getImplementedGenFeatures().contains(genFeature)) {
+ stringBuffer.append(TEXT_1040);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1041);
+ if (genFeature.isListType()) {
+ if (genFeature.isWrappedFeatureMapType()) {
+ stringBuffer.append(TEXT_1042);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_1043);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1044);
+ } else if (genFeature.isFeatureMapType()) {
+ stringBuffer.append(TEXT_1045);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap"));
+ stringBuffer.append(TEXT_1046);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1047);
+ } else if (genFeature.isMapType()) {
+ if (genFeature.isEffectiveSuppressEMFTypes()) {
+ stringBuffer.append(TEXT_1048);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+ stringBuffer.append(TEXT_1049);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
+ stringBuffer.append(TEXT_1050);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1051);
+ } else {
+ stringBuffer.append(TEXT_1052);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature"));
+ stringBuffer.append(TEXT_1053);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1054);
+ }
+ } else {
+ stringBuffer.append(TEXT_1055);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1056);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1057);
+ stringBuffer.append(genModel.getImportedName("java.util.Collection"));
+ stringBuffer.append(TEXT_1058);
+ }
+ } else if (genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_1059);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_1060);
+ stringBuffer.append(genFeature.getObjectType());
+ stringBuffer.append(TEXT_1061);
+ stringBuffer.append(genFeature.getPrimitiveValueFunction());
+ stringBuffer.append(TEXT_1062);
+ } else {
+ stringBuffer.append(TEXT_1063);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_1064);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_1065);
+ }
+ stringBuffer.append(TEXT_1066);
+ }
+ }
+ stringBuffer.append(TEXT_1067);
+ if (genModel.isMinimalReflectiveMethods()) {
+ stringBuffer.append(TEXT_1068);
+ } else {
+ stringBuffer.append(TEXT_1069);
+ }
+ stringBuffer.append(TEXT_1070);
+ for (Iterator i=genClass.getESetGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();
+ if (!genModel.isMinimalReflectiveMethods() || genClass.getImplementedGenFeatures().contains(genFeature)) {
+ stringBuffer.append(TEXT_1071);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1072);
+ if (genFeature.isListType() && !genFeature.isUnsettable()) {
+ if (genFeature.isWrappedFeatureMapType()) {
+ stringBuffer.append(TEXT_1073);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_1074);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1075);
+ } else {
+ stringBuffer.append(TEXT_1076);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1077);
+ }
+ } else if (genFeature.isUnsettable()) {
+ stringBuffer.append(TEXT_1078);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_1079);
+ } else if (genFeature.isReferenceType()) {
+ stringBuffer.append(TEXT_1080);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_1081);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_1082);
+ } else {
+ stringBuffer.append(TEXT_1083);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_1084);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1085);
+ }
+ stringBuffer.append(TEXT_1086);
+ }
+ }
+ stringBuffer.append(TEXT_1087);
+ if (genModel.isMinimalReflectiveMethods()) {
+ stringBuffer.append(TEXT_1088);
+ } else {
+ stringBuffer.append(TEXT_1089);
+ }
+ stringBuffer.append(TEXT_1090);
+ }
+ if (isImplementation && !genModel.isReflectiveDelegation() && !genClass.getImplementedGenFeatures().isEmpty()) {
+ stringBuffer.append(TEXT_1091);
+ for (Iterator i=genClass.getAllGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();
+ if (!genModel.isMinimalReflectiveMethods() || genClass.getImplementedGenFeatures().contains(genFeature)) {
+ stringBuffer.append(TEXT_1092);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1093);
+ if (genFeature.isListType() && !genFeature.isUnsettable()) {
+ if (genFeature.isWrappedFeatureMapType()) {
+ if (genFeature.isVolatile()) {
+ stringBuffer.append(TEXT_1094);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_1095);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1096);
+ } else {
+ stringBuffer.append(TEXT_1097);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1098);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_1099);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1100);
+ }
+ } else {
+ if (genClass.isField(genFeature)) {
+ stringBuffer.append(TEXT_1101);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1102);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1103);
+ } else {
+ if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
+ stringBuffer.append(TEXT_1104);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_1105);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1106);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_1107);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1108);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1109);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1110);
+ } else {
+ stringBuffer.append(TEXT_1111);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1112);
+ }
+ }
+ }
+ } else if (genFeature.isUnsettable()) {
+ stringBuffer.append(TEXT_1113);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_1114);
+ } else if (genFeature.isResolveProxies()) {
+ if (genClass.isField(genFeature)) {
+ stringBuffer.append(TEXT_1115);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1116);
+ } else {
+ if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
+ stringBuffer.append(TEXT_1117);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1118);
+ } else {
+ stringBuffer.append(TEXT_1119);
+ stringBuffer.append(genFeature.getAccessorName());
+ stringBuffer.append(TEXT_1120);
+ }
+ }
+ } else if (genFeature.isReferenceType()) {
+ if (genClass.isField(genFeature)) {
+ stringBuffer.append(TEXT_1121);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1122);
+ } else {
+ if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
+ stringBuffer.append(TEXT_1123);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1124);
+ } else {
+ stringBuffer.append(TEXT_1125);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1126);
+ }
+ }
+ } else if (genFeature.isPrimitiveType() || genFeature.isEnumType()) {
+ if (genClass.isField(genFeature)) {
+ if (genClass.isFlag(genFeature)) {
+ stringBuffer.append(TEXT_1127);
+ stringBuffer.append(genClass.getFlagsField(genFeature));
+ stringBuffer.append(TEXT_1128);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1129);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1130);
+ } else {
+ stringBuffer.append(TEXT_1131);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1132);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1133);
+ }
+ } else {
+ if (genFeature.isEnumType() && genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
+ stringBuffer.append(TEXT_1134);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1135);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1136);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1137);
+ } else {
+ stringBuffer.append(TEXT_1138);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1139);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1140);
+ }
+ }
+ } else {//datatype
+ if (genClass.isField(genFeature)) {
+ stringBuffer.append(TEXT_1141);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1142);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1143);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1144);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1145);
+ } else {
+ if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {
+ stringBuffer.append(TEXT_1146);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_1147);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1148);
+ stringBuffer.append(genFeature.getImportedType());
+ stringBuffer.append(TEXT_1149);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1150);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1151);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1152);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1153);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1154);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1155);
+ } else {
+ stringBuffer.append(TEXT_1156);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1157);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1158);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1159);
+ stringBuffer.append(genFeature.getGetAccessor());
+ stringBuffer.append(TEXT_1160);
+ }
+ }
+ }
+ }
+ }
+ stringBuffer.append(TEXT_1161);
+ if (genModel.isMinimalReflectiveMethods()) {
+ stringBuffer.append(TEXT_1162);
+ } else {
+ stringBuffer.append(TEXT_1163);
+ }
+ stringBuffer.append(TEXT_1164);
+ //Class/eIsSet.override.javajetinc
+ }
+ if (isImplementation && !genClass.getMixinGenFeatures().isEmpty()) {
+ stringBuffer.append(TEXT_1165);
+ for (Iterator m=genClass.getMixinGenClasses().iterator(); m.hasNext();) { GenClass mixinGenClass = (GenClass)m.next();
+ stringBuffer.append(TEXT_1166);
+ stringBuffer.append(mixinGenClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_1167);
+ for (Iterator f=mixinGenClass.getGenFeatures().iterator(); f.hasNext();) { GenFeature genFeature = (GenFeature)f.next();
+ stringBuffer.append(TEXT_1168);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1169);
+ stringBuffer.append(mixinGenClass.getQualifiedFeatureID(genFeature));
+ stringBuffer.append(TEXT_1170);
+ }
+ stringBuffer.append(TEXT_1171);
+ }
+ stringBuffer.append(TEXT_1172);
+ for (Iterator m=genClass.getMixinGenClasses().iterator(); m.hasNext();) { GenClass mixinGenClass = (GenClass)m.next();
+ stringBuffer.append(TEXT_1173);
+ stringBuffer.append(mixinGenClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_1174);
+ for (Iterator f=mixinGenClass.getGenFeatures().iterator(); f.hasNext();) { GenFeature genFeature = (GenFeature)f.next();
+ stringBuffer.append(TEXT_1175);
+ stringBuffer.append(mixinGenClass.getQualifiedFeatureID(genFeature));
+ stringBuffer.append(TEXT_1176);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1177);
+ }
+ stringBuffer.append(TEXT_1178);
+ }
+ stringBuffer.append(TEXT_1179);
+ }
+ if (isImplementation && genModel.isVirtualDelegation()) { String eVirtualValuesField = genClass.getEVirtualValuesField();
+ if (eVirtualValuesField != null) {
+ stringBuffer.append(TEXT_1180);
+ stringBuffer.append(eVirtualValuesField);
+ stringBuffer.append(TEXT_1181);
+ stringBuffer.append(eVirtualValuesField);
+ stringBuffer.append(TEXT_1182);
+ }
+ { List eVirtualIndexBitFields = genClass.getEVirtualIndexBitFields(new ArrayList());
+ if (!eVirtualIndexBitFields.isEmpty()) { List allEVirtualIndexBitFields = genClass.getAllEVirtualIndexBitFields(new ArrayList());
+ stringBuffer.append(TEXT_1183);
+ for (int i = 0; i < allEVirtualIndexBitFields.size(); i++) {
+ stringBuffer.append(TEXT_1184);
+ stringBuffer.append(i);
+ stringBuffer.append(TEXT_1185);
+ stringBuffer.append(allEVirtualIndexBitFields.get(i));
+ stringBuffer.append(TEXT_1186);
+ }
+ stringBuffer.append(TEXT_1187);
+ for (int i = 0; i < allEVirtualIndexBitFields.size(); i++) {
+ stringBuffer.append(TEXT_1188);
+ stringBuffer.append(i);
+ stringBuffer.append(TEXT_1189);
+ stringBuffer.append(allEVirtualIndexBitFields.get(i));
+ stringBuffer.append(TEXT_1190);
+ }
+ stringBuffer.append(TEXT_1191);
+ }
+ }
+ }
+ if (isImplementation && !genModel.isReflectiveDelegation() && !genClass.getToStringGenFeatures().isEmpty()) {
+ stringBuffer.append(TEXT_1192);
+ { boolean first = true;
+ for (Iterator i=genClass.getToStringGenFeatures().iterator(); i.hasNext(); ) { GenFeature genFeature = (GenFeature)i.next();
+ if (first) { first = false;
+ stringBuffer.append(TEXT_1193);
+ stringBuffer.append(genFeature.getName());
+ stringBuffer.append(TEXT_1194);
+ stringBuffer.append(genModel.getNonNLS());
+ } else {
+ stringBuffer.append(TEXT_1195);
+ stringBuffer.append(genFeature.getName());
+ stringBuffer.append(TEXT_1196);
+ stringBuffer.append(genModel.getNonNLS());
+ }
+ if (genFeature.isUnsettable() && !genFeature.isListType()) {
+ if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_1197);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1198);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1199);
+ stringBuffer.append(genModel.getNonNLS());
+ } else {
+ if (genClass.isFlag(genFeature)) {
+ stringBuffer.append(TEXT_1200);
+ if (genClass.isESetFlag(genFeature)) {
+ stringBuffer.append(TEXT_1201);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_1202);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1203);
+ } else {
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_1204);
+ }
+ stringBuffer.append(TEXT_1205);
+ stringBuffer.append(genClass.getFlagsField(genFeature));
+ stringBuffer.append(TEXT_1206);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1207);
+ stringBuffer.append(genModel.getNonNLS());
+ } else {
+ stringBuffer.append(TEXT_1208);
+ if (genClass.isESetFlag(genFeature)) {
+ stringBuffer.append(TEXT_1209);
+ stringBuffer.append(genClass.getESetFlagsField(genFeature));
+ stringBuffer.append(TEXT_1210);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1211);
+ } else {
+ stringBuffer.append(genFeature.getUncapName());
+ stringBuffer.append(TEXT_1212);
+ }
+ stringBuffer.append(TEXT_1213);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1214);
+ stringBuffer.append(genModel.getNonNLS());
+ }
+ }
+ } else {
+ if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_1215);
+ stringBuffer.append(genFeature.getUpperName());
+ if (!genFeature.isListType() && !genFeature.isReferenceType()){
+ stringBuffer.append(TEXT_1216);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1217);
+ }
+ stringBuffer.append(TEXT_1218);
+ } else {
+ if (genClass.isFlag(genFeature)) {
+ stringBuffer.append(TEXT_1219);
+ stringBuffer.append(genClass.getFlagsField(genFeature));
+ stringBuffer.append(TEXT_1220);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_1221);
+ } else {
+ stringBuffer.append(TEXT_1222);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_1223);
+ }
+ }
+ }
+ }
+ }
+ stringBuffer.append(TEXT_1224);
+ }
+ if (isImplementation && genClass.isMapEntry()) { GenFeature keyFeature = genClass.getMapEntryKeyFeature(); GenFeature valueFeature = genClass.getMapEntryValueFeature();
+ stringBuffer.append(TEXT_1225);
+ if (keyFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_1226);
+ stringBuffer.append(keyFeature.getObjectType());
+ stringBuffer.append(TEXT_1227);
+ } else {
+ stringBuffer.append(TEXT_1228);
+ }
+ stringBuffer.append(TEXT_1229);
+ if (keyFeature.isListType()) {
+ stringBuffer.append(TEXT_1230);
+ stringBuffer.append(genModel.getImportedName("java.util.Collection"));
+ stringBuffer.append(TEXT_1231);
+ } else if (keyFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_1232);
+ stringBuffer.append(keyFeature.getObjectType());
+ stringBuffer.append(TEXT_1233);
+ stringBuffer.append(keyFeature.getPrimitiveValueFunction());
+ stringBuffer.append(TEXT_1234);
+ } else {
+ stringBuffer.append(TEXT_1235);
+ stringBuffer.append(keyFeature.getImportedType());
+ stringBuffer.append(TEXT_1236);
+ }
+ stringBuffer.append(TEXT_1237);
+ if (valueFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_1238);
+ stringBuffer.append(valueFeature.getObjectType());
+ stringBuffer.append(TEXT_1239);
+ } else {
+ stringBuffer.append(TEXT_1240);
+ }
+ stringBuffer.append(TEXT_1241);
+ if (valueFeature.isListType()) {
+ stringBuffer.append(TEXT_1242);
+ stringBuffer.append(genModel.getImportedName("java.util.Collection"));
+ stringBuffer.append(TEXT_1243);
+ } else if (valueFeature.isPrimitiveType()) {
+ stringBuffer.append(TEXT_1244);
+ stringBuffer.append(valueFeature.getObjectType());
+ stringBuffer.append(TEXT_1245);
+ stringBuffer.append(valueFeature.getPrimitiveValueFunction());
+ stringBuffer.append(TEXT_1246);
+ } else {
+ stringBuffer.append(TEXT_1247);
+ stringBuffer.append(valueFeature.getImportedType());
+ stringBuffer.append(TEXT_1248);
+ }
+ stringBuffer.append(TEXT_1249);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
+ stringBuffer.append(TEXT_1250);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EObject"));
+ stringBuffer.append(TEXT_1251);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.common.util.EMap"));
+ stringBuffer.append(TEXT_1252);
+ }
+ stringBuffer.append(TEXT_1253);
+ stringBuffer.append(isInterface ? " " + genClass.getInterfaceName() : genClass.getClassName());
+ // TODO fix the space above
+ genModel.emitSortedImports();
+ stringBuffer.append(TEXT_1254);
+ return stringBuffer.toString();
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/templates/model/SDOFactoryClass.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/templates/model/SDOFactoryClass.java
new file mode 100644
index 0000000000..c74f196d95
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/templates/model/SDOFactoryClass.java
@@ -0,0 +1,1495 @@
+/**
+ *
+ * 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.generate.templates.model;
+
+import java.util.*;
+import org.eclipse.emf.codegen.ecore.genmodel.*;
+
+public class SDOFactoryClass
+{
+ protected static String nl;
+ public static synchronized SDOFactoryClass create(String lineSeparator)
+ {
+ nl = lineSeparator;
+ SDOFactoryClass result = new SDOFactoryClass();
+ nl = null;
+ return result;
+ }
+
+ protected final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl;
+ protected final String TEXT_1 = "";
+ protected final String TEXT_2 = "/**" + NL + " * <copyright>" + NL + " * </copyright>" + NL + " *" + NL + " * ";
+ protected final String TEXT_3 = "Id";
+ protected final String TEXT_4 = NL + " */";
+ protected final String TEXT_5 = NL + "package ";
+ protected final String TEXT_6 = ";";
+ protected final String TEXT_7 = NL + "package ";
+ protected final String TEXT_8 = ";";
+ protected final String TEXT_9 = NL;
+ protected final String TEXT_10 = NL;
+ protected final String TEXT_11 = NL + "/**" + NL + " * <!-- begin-user-doc -->" + NL + " * The <b>Factory</b> for the model." + NL + " * It provides a create method for each non-abstract class of the model." + NL + " * <!-- end-user-doc -->";
+ protected final String TEXT_12 = NL + " * @see ";
+ protected final String TEXT_13 = NL + " * @generated" + NL + " */";
+ protected final String TEXT_14 = NL + "/**" + NL + " * <!-- begin-user-doc -->" + NL + " * An implementation of the model <b>Factory</b>." + NL + " * <!-- end-user-doc -->" + NL + " * @generated" + NL + " */";
+ protected final String TEXT_15 = NL + "public class ";
+ protected final String TEXT_16 = " extends ";
+ protected final String TEXT_17 = " implements ";
+ protected final String TEXT_18 = NL + "public interface ";
+ protected final String TEXT_19 = " extends ";
+ protected final String TEXT_20 = NL + "{";
+ protected final String TEXT_21 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\t";
+ protected final String TEXT_22 = " copyright = \"";
+ protected final String TEXT_23 = "\";";
+ protected final String TEXT_24 = NL;
+ protected final String TEXT_25 = NL;
+ protected final String TEXT_26 = NL + "\t/**" + NL + "\t * The singleton instance of the factory." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\t";
+ protected final String TEXT_27 = " INSTANCE = ";
+ protected final String TEXT_28 = ".init();" + NL;
+ protected final String TEXT_29 = NL + "\t/**" + NL + "\t * The singleton instance of the factory." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\t";
+ protected final String TEXT_30 = " eINSTANCE = ";
+ protected final String TEXT_31 = ".init();" + NL;
+ protected final String TEXT_32 = NL + "/**" + NL + " * The package namespace URI." + NL + " * <!-- begin-user-doc -->" + NL + " * <!-- end-user-doc -->" + NL + " * @generated" + NL + " */";
+ protected final String TEXT_33 = NL;
+ protected final String TEXT_34 = " NAMESPACE_URI = \"";
+ protected final String TEXT_35 = "\";";
+ protected final String TEXT_36 = NL + NL + "/**" + NL + " * The package namespace name." + NL + " * <!-- begin-user-doc -->" + NL + " * <!-- end-user-doc -->" + NL + " * @generated" + NL + " */";
+ protected final String TEXT_37 = NL;
+ protected final String TEXT_38 = " NAMESPACE_PREFIX = \"";
+ protected final String TEXT_39 = "\";";
+ protected final String TEXT_40 = NL + NL;
+ protected final String TEXT_41 = NL;
+ protected final String TEXT_42 = "int ";
+ protected final String TEXT_43 = " = ";
+ protected final String TEXT_44 = ";";
+ protected final String TEXT_45 = NL + "\t" + NL + "\t" + NL + "\t/**" + NL + "\t * Creates the default factory implementation." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */";
+ protected final String TEXT_46 = NL + NL + "\t/**" + NL + "\t * Creates an instance of the factory." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+ protected final String TEXT_47 = "()" + NL + "\t{" + NL + "\t\tsuper(NAMESPACE_URI, NAMESPACE_PREFIX);" + NL + "\t}" + NL + "\t" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+ protected final String TEXT_48 = " create(int typeNumber)" + NL + "\t{" + NL + "\t\tswitch (typeNumber)" + NL + "\t\t{";
+ protected final String TEXT_49 = NL + "\t\t\t// TODO make sure we're supposed to ingore DOCUMENT_ROOT" + NL + "\t\t\tcase ";
+ protected final String TEXT_50 = ": return (";
+ protected final String TEXT_51 = ")create";
+ protected final String TEXT_52 = "();";
+ protected final String TEXT_53 = NL + "\t\t\tdefault:" + NL + "\t\t\t\treturn super.create(typeNumber);" + NL + "\t\t}" + NL + "\t}" + NL + NL;
+ protected final String TEXT_54 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic Object createFromString(";
+ protected final String TEXT_55 = " eDataType, String initialValue)" + NL + "\t{" + NL + "\t\tswitch (eDataType.getClassifierID())" + NL + "\t\t{";
+ protected final String TEXT_56 = NL + "\t\t\tcase ";
+ protected final String TEXT_57 = ".";
+ protected final String TEXT_58 = ":" + NL + "\t\t\t\treturn create";
+ protected final String TEXT_59 = "FromString(eDataType, initialValue);";
+ protected final String TEXT_60 = NL + "\t\t\tdefault:" + NL + "\t\t\t\tthrow new IllegalArgumentException(\"The datatype '\" + eDataType.getName() + \"' is not a valid classifier\");";
+ protected final String TEXT_61 = NL + "\t\t}" + NL + "\t}" + NL + "" + NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic String convertToString(";
+ protected final String TEXT_62 = " eDataType, Object instanceValue)" + NL + "\t{" + NL + "\t\tswitch (eDataType.getClassifierID())" + NL + "\t\t{";
+ protected final String TEXT_63 = NL + "\t\t\tcase ";
+ protected final String TEXT_64 = ".";
+ protected final String TEXT_65 = ":" + NL + "\t\t\t\treturn convert";
+ protected final String TEXT_66 = "ToString(eDataType, instanceValue);";
+ protected final String TEXT_67 = NL + "\t\t\tdefault:" + NL + "\t\t\t\tthrow new IllegalArgumentException(\"The datatype '\" + eDataType.getName() + \"' is not a valid classifier\");";
+ protected final String TEXT_68 = NL + "\t\t}" + NL + "\t}" + NL;
+ protected final String TEXT_69 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+ protected final String TEXT_70 = " create";
+ protected final String TEXT_71 = "()" + NL + "\t{";
+ protected final String TEXT_72 = NL + "\t\t";
+ protected final String TEXT_73 = " ";
+ protected final String TEXT_74 = " = ";
+ protected final String TEXT_75 = "super.create(";
+ protected final String TEXT_76 = ");";
+ protected final String TEXT_77 = NL + "\t\t";
+ protected final String TEXT_78 = " ";
+ protected final String TEXT_79 = " = new ";
+ protected final String TEXT_80 = "()";
+ protected final String TEXT_81 = "{}";
+ protected final String TEXT_82 = ";";
+ protected final String TEXT_83 = NL + "\t\treturn ";
+ protected final String TEXT_84 = ";" + NL + "\t}" + NL + "\t" + NL + "\t// Following creates and initializes SDO metadata for the supported types." + NL + "\tprotected ";
+ protected final String TEXT_85 = " ";
+ protected final String TEXT_86 = "Type = null;" + NL + "\t" + NL + "\tpublic ";
+ protected final String TEXT_87 = " get";
+ protected final String TEXT_88 = "()" + NL + "\t{" + NL + "\t\t// TODO - kdk - verify how to generate quoteType...";
+ protected final String TEXT_89 = "Type?" + NL + "\t\treturn ";
+ protected final String TEXT_90 = "Type;" + NL + " }";
+ protected final String TEXT_91 = NL + NL + "\tprivate static boolean isInited = false;" + NL + "\t" + NL + "\tpublic static ";
+ protected final String TEXT_92 = " init()" + NL + "\t{" + NL + " \tif (isInited) return (";
+ protected final String TEXT_93 = ")FactoryBase.getStaticFactory(";
+ protected final String TEXT_94 = ".NAMESPACE_URI);" + NL + " \t";
+ protected final String TEXT_95 = " the";
+ protected final String TEXT_96 = " = new ";
+ protected final String TEXT_97 = "();" + NL + " \tisInited = true;" + NL + "" + NL + " \t// Initialize simple dependencies" + NL + " \t";
+ protected final String TEXT_98 = ".registerStaticTypes(";
+ protected final String TEXT_99 = ".class);" + NL + " \t";
+ protected final String TEXT_100 = ".registerStaticTypes(";
+ protected final String TEXT_101 = ".class);" + NL + " \t" + NL + " \t// Create package meta-data objects" + NL + " \tthe";
+ protected final String TEXT_102 = ".createMetaData();" + NL + "" + NL + " \t// Initialize created meta-data" + NL + " \tthe";
+ protected final String TEXT_103 = ".initializeMetaData();" + NL + "" + NL + " \t// Mark meta-data to indicate it can't be changed" + NL + " \t//the";
+ protected final String TEXT_104 = ".freeze(); //FB do we need to freeze / should we freeze ????" + NL + "" + NL + " \treturn the";
+ protected final String TEXT_105 = ";" + NL + "\t}" + NL + " " + NL + "\tprivate boolean isCreated = false;" + NL + "" + NL + "\tpublic void createMetaData()" + NL + "\t{" + NL + "\t\tif (isCreated) return;" + NL + "\t\tisCreated = true;";
+ protected final String TEXT_106 = NL + " ";
+ protected final String TEXT_107 = NL + " ";
+ protected final String TEXT_108 = "Type = createType(false, ";
+ protected final String TEXT_109 = ");";
+ protected final String TEXT_110 = NL + "\t\tcreateProperty(";
+ protected final String TEXT_111 = ", ";
+ protected final String TEXT_112 = "Type, ";
+ protected final String TEXT_113 = ".";
+ protected final String TEXT_114 = ");";
+ protected final String TEXT_115 = NL + "\t}" + NL + "\tprivate boolean isInitialized = false;" + NL + "" + NL + "\tpublic void initializeMetaData()" + NL + "\t{" + NL + "\t\tif (isInitialized) return;" + NL + "\t\tisInitialized = true;" + NL + "" + NL + "\t\t// Obtain other dependent packages" + NL + "\t\t";
+ protected final String TEXT_116 = " theModelPackageImpl = (";
+ protected final String TEXT_117 = ")FactoryBase.getStaticFactory(";
+ protected final String TEXT_118 = ".NAMESPACE_URI);" + NL + "" + NL + "\t\t// Add supertypes to classes" + NL + "\t\t// Initialize classes and features; add operations and parameters";
+ protected final String TEXT_119 = NL + "\t\t" + NL + "\t\tinitializeType(";
+ protected final String TEXT_120 = "Type, ";
+ protected final String TEXT_121 = ".class, \"";
+ protected final String TEXT_122 = "\");";
+ protected final String TEXT_123 = NL + "\t\tinitializeProperty((";
+ protected final String TEXT_124 = ")";
+ protected final String TEXT_125 = "Type.getProperties().get(";
+ protected final String TEXT_126 = ".";
+ protected final String TEXT_127 = "), ";
+ protected final String TEXT_128 = ", \"";
+ protected final String TEXT_129 = "\", ";
+ protected final String TEXT_130 = ", ";
+ protected final String TEXT_131 = ", ";
+ protected final String TEXT_132 = ", ";
+ protected final String TEXT_133 = ", ";
+ protected final String TEXT_134 = ", ";
+ protected final String TEXT_135 = ", ";
+ protected final String TEXT_136 = ", ";
+ protected final String TEXT_137 = " , ";
+ protected final String TEXT_138 = ");";
+ protected final String TEXT_139 = NL + "\t\tinitializeProperty((";
+ protected final String TEXT_140 = ")";
+ protected final String TEXT_141 = "Type.getProperties().get(";
+ protected final String TEXT_142 = ".";
+ protected final String TEXT_143 = "), ";
+ protected final String TEXT_144 = ", \"";
+ protected final String TEXT_145 = "\", ";
+ protected final String TEXT_146 = ", ";
+ protected final String TEXT_147 = ", ";
+ protected final String TEXT_148 = ", ";
+ protected final String TEXT_149 = ", ";
+ protected final String TEXT_150 = ", ";
+ protected final String TEXT_151 = ", ";
+ protected final String TEXT_152 = ");";
+ protected final String TEXT_153 = "createXSDMetaData();" + NL + "\t}" + NL + " " + NL + "\tprotected void createXSDMetaData()" + NL + "\t{" + NL + "\t\tsuper.createXSDMetaData();";
+ protected final String TEXT_154 = NL + "\t\t// TODO - kdk - is the order right? should kind, elementOnly be first" + NL + "\t\taddXSDMapping" + NL + "\t\t(";
+ protected final String TEXT_155 = "Type," + NL + "\t\tnew String[] " + NL + "\t\t{" + NL + "\t\t\"name\", \"";
+ protected final String TEXT_156 = "\"," + NL + "\t\t\"kind\", \"elementOnly\"" + NL + "\t\t});";
+ protected final String TEXT_157 = NL + "\t\taddXSDMapping" + NL + "\t\t((";
+ protected final String TEXT_158 = ")";
+ protected final String TEXT_159 = "Type.getProperties().get(";
+ protected final String TEXT_160 = ".";
+ protected final String TEXT_161 = ")," + NL + "\t\tnew String[]" + NL + "\t\t{" + NL + "\t\t\"kind\", \"element\"," + NL + "\t\t\"name\", \"";
+ protected final String TEXT_162 = "\"" + NL + "\t\t});" + NL + "\t";
+ protected final String TEXT_163 = NL;
+ protected final String TEXT_164 = NL + "\t\t// TODO - kdk - how do I filter out mixed, xMLNSPrefixMap, and xSISchemaLocation without hardcoding it" + NL + "\t\t// TODO - kdk - can I hardcode ##targetNamespace?" + NL + "\t";
+ protected final String TEXT_165 = NL + "\t\tcreateGlobalProperty" + NL + "\t\t(\"";
+ protected final String TEXT_166 = "\", " + NL + "\t\t";
+ protected final String TEXT_167 = ".get";
+ protected final String TEXT_168 = "()," + NL + "\t\tnew String[] " + NL + "\t\t{" + NL + "\t\t\"kind\", \"element\"," + NL + "\t\t\"name\", \"";
+ protected final String TEXT_169 = "\"," + NL + "\t\t\"namespace\", \"##targetNamespace\"" + NL + "\t\t}); " + NL + "\t";
+ protected final String TEXT_170 = NL + " }" + NL;
+ protected final String TEXT_171 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+ protected final String TEXT_172 = " create";
+ protected final String TEXT_173 = "(String literal)" + NL + "\t{";
+ protected final String TEXT_174 = NL + "\t\t";
+ protected final String TEXT_175 = " result = ";
+ protected final String TEXT_176 = ".get(literal);" + NL + "\t\tif (result == null) throw new IllegalArgumentException(\"The value '\" + literal + \"' is not a valid enumerator of '\" + ";
+ protected final String TEXT_177 = ".getName() + \"'\");";
+ protected final String TEXT_178 = NL + "\t\treturn result;";
+ protected final String TEXT_179 = NL + "\t\treturn new ";
+ protected final String TEXT_180 = "(create";
+ protected final String TEXT_181 = "(literal));";
+ protected final String TEXT_182 = NL + "\t\treturn create";
+ protected final String TEXT_183 = "(literal);";
+ protected final String TEXT_184 = NL + "\t\treturn new ";
+ protected final String TEXT_185 = "(";
+ protected final String TEXT_186 = ".create";
+ protected final String TEXT_187 = "(literal));";
+ protected final String TEXT_188 = NL + "\t\treturn ";
+ protected final String TEXT_189 = ".create";
+ protected final String TEXT_190 = "(literal);";
+ protected final String TEXT_191 = NL + "\t\treturn (";
+ protected final String TEXT_192 = ")";
+ protected final String TEXT_193 = ".createFromString(";
+ protected final String TEXT_194 = ", literal);";
+ protected final String TEXT_195 = NL + "\t\tif (literal == null) return null;" + NL + "\t\t";
+ protected final String TEXT_196 = " result = new ";
+ protected final String TEXT_197 = "();" + NL + "\t\tfor (";
+ protected final String TEXT_198 = " stringTokenizer = new ";
+ protected final String TEXT_199 = "(literal); stringTokenizer.hasMoreTokens(); )" + NL + "\t\t{" + NL + "\t\t\tString item = stringTokenizer.nextToken();";
+ protected final String TEXT_200 = NL + "\t\t\tresult.add(create";
+ protected final String TEXT_201 = "(item));";
+ protected final String TEXT_202 = NL + "\t\t\tresult.add(create";
+ protected final String TEXT_203 = "FromString(";
+ protected final String TEXT_204 = ", item));";
+ protected final String TEXT_205 = NL + "\t\t\tresult.add(";
+ protected final String TEXT_206 = ".create";
+ protected final String TEXT_207 = "(item));";
+ protected final String TEXT_208 = NL + "\t\t\tresult.add(";
+ protected final String TEXT_209 = ".createFromString(";
+ protected final String TEXT_210 = ", item));";
+ protected final String TEXT_211 = NL + "\t\t}" + NL + "\t\treturn result;";
+ protected final String TEXT_212 = NL + "\t\tif (literal == null) return ";
+ protected final String TEXT_213 = ";" + NL + "\t\t";
+ protected final String TEXT_214 = " result = ";
+ protected final String TEXT_215 = ";" + NL + "\t\tRuntimeException exception = null;";
+ protected final String TEXT_216 = NL + "\t\ttry" + NL + "\t\t{";
+ protected final String TEXT_217 = NL + "\t\t\tresult = create";
+ protected final String TEXT_218 = "(literal);";
+ protected final String TEXT_219 = NL + "\t\t\tresult = (";
+ protected final String TEXT_220 = ")create";
+ protected final String TEXT_221 = "FromString(";
+ protected final String TEXT_222 = ", literal);";
+ protected final String TEXT_223 = NL + "\t\t\tresult = ";
+ protected final String TEXT_224 = ".create";
+ protected final String TEXT_225 = "(literal);";
+ protected final String TEXT_226 = NL + "\t\t\tresult = (";
+ protected final String TEXT_227 = ")";
+ protected final String TEXT_228 = ".createFromString(";
+ protected final String TEXT_229 = ", literal);";
+ protected final String TEXT_230 = NL + "\t\t\tif (";
+ protected final String TEXT_231 = "result != null && ";
+ protected final String TEXT_232 = ".INSTANCE.validate(";
+ protected final String TEXT_233 = ", ";
+ protected final String TEXT_234 = "new ";
+ protected final String TEXT_235 = "(result)";
+ protected final String TEXT_236 = "result";
+ protected final String TEXT_237 = ", null, null))" + NL + "\t\t\t{" + NL + "\t\t\t\treturn result;" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tcatch (RuntimeException e)" + NL + "\t\t{" + NL + "\t\t\texception = e;" + NL + "\t\t}";
+ protected final String TEXT_238 = NL + "\t\tif (";
+ protected final String TEXT_239 = "result != null || ";
+ protected final String TEXT_240 = "exception == null) return result;" + NL + " " + NL + "\t\tthrow exception;";
+ protected final String TEXT_241 = NL + "\t\t// TODO: implement this method" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new ";
+ protected final String TEXT_242 = "();";
+ protected final String TEXT_243 = NL + "\t\treturn ((";
+ protected final String TEXT_244 = ")super.createFromString(";
+ protected final String TEXT_245 = ", literal)).";
+ protected final String TEXT_246 = "();";
+ protected final String TEXT_247 = NL + "\t\treturn (";
+ protected final String TEXT_248 = ")super.createFromString(";
+ protected final String TEXT_249 = ", literal);";
+ protected final String TEXT_250 = NL + "\t}" + NL;
+ protected final String TEXT_251 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic ";
+ protected final String TEXT_252 = " create";
+ protected final String TEXT_253 = "FromString(";
+ protected final String TEXT_254 = " eDataType, String initialValue)" + NL + "\t{";
+ protected final String TEXT_255 = NL + "\t\treturn create";
+ protected final String TEXT_256 = "(initialValue);";
+ protected final String TEXT_257 = NL + "\t\t";
+ protected final String TEXT_258 = " result = ";
+ protected final String TEXT_259 = ".get(initialValue);" + NL + "\t\tif (result == null) throw new IllegalArgumentException(\"The value '\" + initialValue + \"' is not a valid enumerator of '\" + eDataType.getName() + \"'\");";
+ protected final String TEXT_260 = NL + "\t\treturn result;";
+ protected final String TEXT_261 = NL + "\t\treturn (";
+ protected final String TEXT_262 = ")create";
+ protected final String TEXT_263 = "FromString(";
+ protected final String TEXT_264 = ", initialValue);";
+ protected final String TEXT_265 = NL + "\t\treturn (";
+ protected final String TEXT_266 = ")";
+ protected final String TEXT_267 = ".createFromString(";
+ protected final String TEXT_268 = ", initialValue);";
+ protected final String TEXT_269 = NL + "\t\treturn create";
+ protected final String TEXT_270 = "(initialValue);";
+ protected final String TEXT_271 = NL + "\t\tif (initialValue == null) return null;" + NL + "\t\t";
+ protected final String TEXT_272 = " result = new ";
+ protected final String TEXT_273 = "();" + NL + "\t\tfor (";
+ protected final String TEXT_274 = " stringTokenizer = new ";
+ protected final String TEXT_275 = "(initialValue); stringTokenizer.hasMoreTokens(); )" + NL + "\t\t{" + NL + "\t\t\tString item = stringTokenizer.nextToken();";
+ protected final String TEXT_276 = NL + "\t\t\tresult.add(create";
+ protected final String TEXT_277 = "FromString(";
+ protected final String TEXT_278 = ", item));";
+ protected final String TEXT_279 = NL + "\t\t\tresult.add(";
+ protected final String TEXT_280 = ".createFromString(";
+ protected final String TEXT_281 = ", item));";
+ protected final String TEXT_282 = NL + "\t\t}" + NL + "\t\treturn result;";
+ protected final String TEXT_283 = NL + "\t\treturn new ";
+ protected final String TEXT_284 = "(create";
+ protected final String TEXT_285 = "(initialValue));";
+ protected final String TEXT_286 = NL + "\t\treturn create";
+ protected final String TEXT_287 = "(initialValue);";
+ protected final String TEXT_288 = NL + "\t\tif (initialValue == null) return null;" + NL + "\t\t";
+ protected final String TEXT_289 = " result = null;" + NL + "\t\tRuntimeException exception = null;";
+ protected final String TEXT_290 = NL + "\t\ttry" + NL + "\t\t{";
+ protected final String TEXT_291 = NL + "\t\t\tresult = (";
+ protected final String TEXT_292 = ")create";
+ protected final String TEXT_293 = "FromString(";
+ protected final String TEXT_294 = ", initialValue);";
+ protected final String TEXT_295 = NL + "\t\t\tresult = (";
+ protected final String TEXT_296 = ")";
+ protected final String TEXT_297 = ".createFromString(";
+ protected final String TEXT_298 = ", initialValue);";
+ protected final String TEXT_299 = NL + "\t\t\tif (result != null && ";
+ protected final String TEXT_300 = ".INSTANCE.validate(eDataType, result, null, null))" + NL + "\t\t\t{" + NL + "\t\t\t\treturn result;" + NL + "\t\t\t}" + NL + "\t\t}" + NL + "\t\tcatch (RuntimeException e)" + NL + "\t\t{" + NL + "\t\t\texception = e;" + NL + "\t\t}";
+ protected final String TEXT_301 = NL + "\t\tif (result != null || exception == null) return result;" + NL + " " + NL + "\t\tthrow exception;";
+ protected final String TEXT_302 = NL + "\t\t// TODO: implement this method" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new ";
+ protected final String TEXT_303 = "();";
+ protected final String TEXT_304 = NL + "\t\treturn (";
+ protected final String TEXT_305 = ")super.createFromString(eDataType, initialValue);";
+ protected final String TEXT_306 = NL + "\t}" + NL;
+ protected final String TEXT_307 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic String convert";
+ protected final String TEXT_308 = "(";
+ protected final String TEXT_309 = " instanceValue)" + NL + "\t{";
+ protected final String TEXT_310 = NL + "\t\treturn instanceValue == null ? null : instanceValue.toString();";
+ protected final String TEXT_311 = NL + "\t\treturn instanceValue == null ? null : convert";
+ protected final String TEXT_312 = "(instanceValue.";
+ protected final String TEXT_313 = "());";
+ protected final String TEXT_314 = NL + "\t\treturn convert";
+ protected final String TEXT_315 = "(instanceValue);";
+ protected final String TEXT_316 = NL + "\t\treturn ";
+ protected final String TEXT_317 = ".convert";
+ protected final String TEXT_318 = "(instanceValue);";
+ protected final String TEXT_319 = NL + "\t\treturn ";
+ protected final String TEXT_320 = ".convertToString(";
+ protected final String TEXT_321 = ", instanceValue);";
+ protected final String TEXT_322 = NL + "\t\tif (instanceValue == null) return null;" + NL + "\t\tif (instanceValue.isEmpty()) return \"\";" + NL + "\t\t";
+ protected final String TEXT_323 = " result = new ";
+ protected final String TEXT_324 = "();" + NL + "\t\tfor (";
+ protected final String TEXT_325 = " i = instanceValue.iterator(); i.hasNext(); )" + NL + "\t\t{";
+ protected final String TEXT_326 = NL + "\t\t\tresult.append(convert";
+ protected final String TEXT_327 = "((";
+ protected final String TEXT_328 = ")i.next()));";
+ protected final String TEXT_329 = NL + "\t\t\tresult.append(convert";
+ protected final String TEXT_330 = "ToString(";
+ protected final String TEXT_331 = ", i.next()));";
+ protected final String TEXT_332 = NL + "\t\t\tresult.append(";
+ protected final String TEXT_333 = ".convert";
+ protected final String TEXT_334 = "((";
+ protected final String TEXT_335 = ")i.next()));";
+ protected final String TEXT_336 = NL + "\t\t\tresult.append(";
+ protected final String TEXT_337 = ".convertToString(";
+ protected final String TEXT_338 = ", i.next()));";
+ protected final String TEXT_339 = NL + "\t\t\tresult.append(' ');" + NL + "\t\t}" + NL + "\t\treturn result.substring(0, result.length() - 1);";
+ protected final String TEXT_340 = NL + "\t\tif (instanceValue == null) return null;";
+ protected final String TEXT_341 = NL + "\t\tif (";
+ protected final String TEXT_342 = ".isInstance(instanceValue))" + NL + "\t\t{" + NL + "\t\t\ttry" + NL + "\t\t\t{";
+ protected final String TEXT_343 = NL + "\t\t\t\tString value = convert";
+ protected final String TEXT_344 = "(instanceValue);";
+ protected final String TEXT_345 = NL + "\t\t\t\tString value = convert";
+ protected final String TEXT_346 = "ToString(";
+ protected final String TEXT_347 = ", instanceValue);";
+ protected final String TEXT_348 = NL + "\t\t\t\tString value = ";
+ protected final String TEXT_349 = ".convert";
+ protected final String TEXT_350 = "((";
+ protected final String TEXT_351 = ")instanceValue);";
+ protected final String TEXT_352 = NL + "\t\t\t\tString value = ";
+ protected final String TEXT_353 = ".convertToString(";
+ protected final String TEXT_354 = ", instanceValue);";
+ protected final String TEXT_355 = NL + "\t\t\t\tif (value != null) return value;" + NL + "\t\t\t}" + NL + "\t\t\tcatch (Exception e)" + NL + "\t\t\t{" + NL + "\t\t\t}" + NL + "\t\t}";
+ protected final String TEXT_356 = NL + "\t\ttry" + NL + "\t\t{";
+ protected final String TEXT_357 = NL + "\t\t\tString value = convert";
+ protected final String TEXT_358 = "(instanceValue);";
+ protected final String TEXT_359 = NL + "\t\t\tString value = convert";
+ protected final String TEXT_360 = "ToString(";
+ protected final String TEXT_361 = ", new ";
+ protected final String TEXT_362 = "(instanceValue));";
+ protected final String TEXT_363 = NL + "\t\t\tString value = ";
+ protected final String TEXT_364 = ".convert";
+ protected final String TEXT_365 = "(instanceValue);";
+ protected final String TEXT_366 = NL + "\t\t\tString value = ";
+ protected final String TEXT_367 = ".convertToString(";
+ protected final String TEXT_368 = ", new ";
+ protected final String TEXT_369 = "(instanceValue));";
+ protected final String TEXT_370 = NL + "\t\t\tif (value != null) return value;" + NL + "\t\t}" + NL + "\t\tcatch (Exception e)" + NL + "\t\t{" + NL + "\t\t}";
+ protected final String TEXT_371 = NL + "\t\tthrow new IllegalArgumentException(\"Invalid value: '\"+instanceValue+\"' for datatype :\"+";
+ protected final String TEXT_372 = ".getName());";
+ protected final String TEXT_373 = NL + "\t\t// TODO: implement this method" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new ";
+ protected final String TEXT_374 = "();";
+ protected final String TEXT_375 = NL + "\t\treturn super.convertToString(";
+ protected final String TEXT_376 = ", new ";
+ protected final String TEXT_377 = "(instanceValue));";
+ protected final String TEXT_378 = NL + "\t\treturn super.convertToString(";
+ protected final String TEXT_379 = ", instanceValue);";
+ protected final String TEXT_380 = NL + "\t}" + NL;
+ protected final String TEXT_381 = NL + "\t/**" + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @generated" + NL + "\t */" + NL + "\tpublic String convert";
+ protected final String TEXT_382 = "ToString(";
+ protected final String TEXT_383 = " eDataType, Object instanceValue)" + NL + "\t{";
+ protected final String TEXT_384 = NL + "\t\treturn instanceValue == null ? null : instanceValue.toString();";
+ protected final String TEXT_385 = NL + "\t\treturn convert";
+ protected final String TEXT_386 = "ToString(";
+ protected final String TEXT_387 = ", instanceValue);";
+ protected final String TEXT_388 = NL + "\t\treturn ";
+ protected final String TEXT_389 = ".convertToString(";
+ protected final String TEXT_390 = ", instanceValue);";
+ protected final String TEXT_391 = NL + "\t\treturn convert";
+ protected final String TEXT_392 = "((";
+ protected final String TEXT_393 = ")instanceValue);";
+ protected final String TEXT_394 = NL + "\t\tif (instanceValue == null) return null;" + NL + "\t\t";
+ protected final String TEXT_395 = " list = (";
+ protected final String TEXT_396 = ")instanceValue;" + NL + "\t\tif (list.isEmpty()) return \"\";" + NL + "\t\t";
+ protected final String TEXT_397 = " result = new ";
+ protected final String TEXT_398 = "();" + NL + "\t\tfor (";
+ protected final String TEXT_399 = " i = list.iterator(); i.hasNext(); )" + NL + "\t\t{";
+ protected final String TEXT_400 = NL + "\t\t\tresult.append(convert";
+ protected final String TEXT_401 = "ToString(";
+ protected final String TEXT_402 = ", i.next()));";
+ protected final String TEXT_403 = NL + "\t\t\tresult.append(";
+ protected final String TEXT_404 = ".convertToString(";
+ protected final String TEXT_405 = ", i.next()));";
+ protected final String TEXT_406 = NL + "\t\t\tresult.append(' ');" + NL + "\t\t}" + NL + "\t\treturn result.substring(0, result.length() - 1);";
+ protected final String TEXT_407 = NL + "\t\treturn instanceValue == null ? null : convert";
+ protected final String TEXT_408 = "(((";
+ protected final String TEXT_409 = ")instanceValue).";
+ protected final String TEXT_410 = "());";
+ protected final String TEXT_411 = NL + "\t\treturn convert";
+ protected final String TEXT_412 = "(instanceValue);";
+ protected final String TEXT_413 = NL + "\t\tif (instanceValue == null) return null;";
+ protected final String TEXT_414 = NL + "\t\tif (";
+ protected final String TEXT_415 = ".isInstance(instanceValue))" + NL + "\t\t{" + NL + "\t\t\ttry" + NL + "\t\t\t{";
+ protected final String TEXT_416 = NL + "\t\t\t\tString value = convert";
+ protected final String TEXT_417 = "ToString(";
+ protected final String TEXT_418 = ", instanceValue);";
+ protected final String TEXT_419 = NL + "\t\t\t\tString value = ";
+ protected final String TEXT_420 = ".convertToString(";
+ protected final String TEXT_421 = ", instanceValue);";
+ protected final String TEXT_422 = NL + "\t\t\t\tif (value != null) return value;" + NL + "\t\t\t}" + NL + "\t\t\tcatch (Exception e)" + NL + "\t\t\t{" + NL + "\t\t\t}" + NL + "\t\t}";
+ protected final String TEXT_423 = NL + "\t\tthrow new IllegalArgumentException(\"Invalid value: '\"+instanceValue+\"' for datatype :\"+eDataType.getName());";
+ protected final String TEXT_424 = NL + "\t\t// TODO: implement this method" + NL + "\t\t// Ensure that you remove @generated or mark it @generated NOT" + NL + "\t\tthrow new ";
+ protected final String TEXT_425 = "();";
+ protected final String TEXT_426 = NL + "\t\treturn super.convertToString(eDataType, instanceValue);";
+ protected final String TEXT_427 = NL + "\t}" + NL;
+ protected final String TEXT_428 = NL + "\t/**" + NL + "\t * Returns a new object of class '<em>";
+ protected final String TEXT_429 = "</em>'." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @return a new object of class '<em>";
+ protected final String TEXT_430 = "</em>'." + NL + "\t * @generated" + NL + "\t */" + NL + "\t";
+ protected final String TEXT_431 = " create";
+ protected final String TEXT_432 = "();" + NL;
+ protected final String TEXT_433 = NL + "\t/**" + NL + "\t * Returns an instance of data type '<em>";
+ protected final String TEXT_434 = "</em>' corresponding the given literal." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @param literal a literal of the data type." + NL + "\t * @return a new instance value of the data type." + NL + "\t * @generated" + NL + "\t */" + NL + "\t";
+ protected final String TEXT_435 = " create";
+ protected final String TEXT_436 = "(String literal);" + NL + "" + NL + "\t/**" + NL + "\t * Returns a literal representation of an instance of data type '<em>";
+ protected final String TEXT_437 = "</em>'." + NL + "\t * <!-- begin-user-doc -->" + NL + "\t * <!-- end-user-doc -->" + NL + "\t * @param instanceValue an instance value of the data type." + NL + "\t * @return a literal representation of the instance value." + NL + "\t * @generated" + NL + "\t */" + NL + "\tString convert";
+ protected final String TEXT_438 = "(";
+ protected final String TEXT_439 = " instanceValue);" + NL;
+ protected final String TEXT_440 = NL + "} //";
+ protected final String TEXT_441 = NL;
+
+ public String generate(Object argument)
+ {
+ final StringBuffer stringBuffer = new StringBuffer();
+
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2002-2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ */
+
+ GenPackage genPackage = (GenPackage)((Object[])argument)[0]; GenModel genModel=genPackage.getGenModel();
+ boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]);
+ String publicStaticFinalFlag = isImplementation ? "public static final " : "";
+ stringBuffer.append(TEXT_1);
+ stringBuffer.append(TEXT_2);
+ stringBuffer.append("$");
+ stringBuffer.append(TEXT_3);
+ stringBuffer.append("$");
+ stringBuffer.append(TEXT_4);
+ if (isInterface || genModel.isSuppressInterfaces()) {
+ stringBuffer.append(TEXT_5);
+ stringBuffer.append(genPackage.getReflectionPackageName());
+ stringBuffer.append(TEXT_6);
+ } else {
+ stringBuffer.append(TEXT_7);
+ stringBuffer.append(genPackage.getClassPackageName());
+ stringBuffer.append(TEXT_8);
+ }
+ stringBuffer.append(TEXT_9);
+ if (isImplementation) {
+ if (!genPackage.hasJavaLangConflict() && !genPackage.hasInterfaceImplConflict() && !genPackage.getClassPackageName().equals(genPackage.getInterfacePackageName())) genModel.addImport(genPackage.getInterfacePackageName() + ".*");
+ }
+ genModel.markImportLocation(stringBuffer);
+ stringBuffer.append(TEXT_10);
+ if (isInterface) {
+ stringBuffer.append(TEXT_11);
+ if (!genModel.isSuppressEMFMetaData()) {
+ stringBuffer.append(TEXT_12);
+ stringBuffer.append(genPackage.getQualifiedPackageInterfaceName());
+ }
+ stringBuffer.append(TEXT_13);
+ } else {
+ stringBuffer.append(TEXT_14);
+ }
+ if (isImplementation) {
+ stringBuffer.append(TEXT_15);
+ stringBuffer.append(genPackage.getFactoryClassName());
+ stringBuffer.append(TEXT_16);
+ stringBuffer.append(genModel.getImportedName("org.apache.tuscany.sdo.impl.FactoryBase"));
+ if (!genModel.isSuppressInterfaces()) {
+ stringBuffer.append(TEXT_17);
+ stringBuffer.append(genPackage.getImportedFactoryInterfaceName());
+ }
+ } else {
+ stringBuffer.append(TEXT_18);
+ stringBuffer.append(genPackage.getFactoryInterfaceName());
+ if (!genModel.isSuppressEMFMetaData()) {
+ stringBuffer.append(TEXT_19);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EFactory"));
+ }
+ }
+ stringBuffer.append(TEXT_20);
+ if (genModel.getCopyrightText() != null) {
+ stringBuffer.append(TEXT_21);
+ stringBuffer.append(publicStaticFinalFlag);
+ stringBuffer.append(genModel.getImportedName("java.lang.String"));
+ stringBuffer.append(TEXT_22);
+ stringBuffer.append(genModel.getCopyrightText());
+ stringBuffer.append(TEXT_23);
+ stringBuffer.append(genModel.getNonNLS());
+ stringBuffer.append(TEXT_24);
+ }
+ stringBuffer.append(TEXT_25);
+ if (isInterface && genModel.isSuppressEMFMetaData()) {
+ stringBuffer.append(TEXT_26);
+ stringBuffer.append(publicStaticFinalFlag);
+ stringBuffer.append(genPackage.getFactoryInterfaceName());
+ stringBuffer.append(TEXT_27);
+ stringBuffer.append(genPackage.getQualifiedFactoryClassName());
+ stringBuffer.append(TEXT_28);
+ } else if (isInterface && !genModel.isSuppressInterfaces()) {
+ stringBuffer.append(TEXT_29);
+ stringBuffer.append(publicStaticFinalFlag);
+ stringBuffer.append(genPackage.getFactoryInterfaceName());
+ stringBuffer.append(TEXT_30);
+ stringBuffer.append(genPackage.getQualifiedFactoryClassName());
+ stringBuffer.append(TEXT_31);
+ }
+ if (isImplementation) {
+ stringBuffer.append(TEXT_32);
+ stringBuffer.append(TEXT_33);
+ stringBuffer.append(publicStaticFinalFlag);
+ stringBuffer.append(genModel.getImportedName("java.lang.String"));
+ stringBuffer.append(TEXT_34);
+ stringBuffer.append(genPackage.getNSURI());
+ stringBuffer.append(TEXT_35);
+ stringBuffer.append(genModel.getNonNLS());
+ stringBuffer.append(TEXT_36);
+ stringBuffer.append(TEXT_37);
+ stringBuffer.append(publicStaticFinalFlag);
+ stringBuffer.append(genModel.getImportedName("java.lang.String"));
+ stringBuffer.append(TEXT_38);
+ stringBuffer.append(genPackage.getNSName());
+ stringBuffer.append(TEXT_39);
+ stringBuffer.append(genModel.getNonNLS());
+ stringBuffer.append(TEXT_40);
+ for (Iterator i=genPackage.getOrderedGenClassifiers().iterator(); i.hasNext();) { GenClassifier genClassifier = (GenClassifier)i.next();
+ if (!genClassifier.getClassifierID().equals("DOCUMENT_ROOT")) {
+ stringBuffer.append(TEXT_41);
+ stringBuffer.append(publicStaticFinalFlag);
+ stringBuffer.append(TEXT_42);
+ stringBuffer.append(genPackage.getClassifierID(genClassifier));
+ stringBuffer.append(TEXT_43);
+ stringBuffer.append(genPackage.getClassifierValue(genClassifier));
+ stringBuffer.append(TEXT_44);
+ } }
+ stringBuffer.append(TEXT_45);
+ String factoryType = genModel.isSuppressEMFMetaData() ? genPackage.getFactoryClassName() : genPackage.getImportedFactoryInterfaceName();
+ stringBuffer.append(TEXT_46);
+ stringBuffer.append(genPackage.getFactoryClassName());
+ stringBuffer.append(TEXT_47);
+ stringBuffer.append(genModel.getImportedName("commonj.sdo.DataObject"));
+ stringBuffer.append(TEXT_48);
+ for (Iterator i=genPackage.getGenClasses().iterator(); i.hasNext();) { GenClass genClass = (GenClass)i.next();
+ if (!genClass.isAbstract() && !genClass.getClassifierID().equals("DOCUMENT_ROOT")) {
+ stringBuffer.append(TEXT_49);
+ stringBuffer.append(genClass.getClassifierID());
+ stringBuffer.append(TEXT_50);
+ stringBuffer.append(genModel.getImportedName("commonj.sdo.DataObject"));
+ stringBuffer.append(TEXT_51);
+ stringBuffer.append(genClass.getName());
+ stringBuffer.append(TEXT_52);
+ }
+ }
+ stringBuffer.append(TEXT_53);
+ if (!genPackage.getAllGenDataTypes().isEmpty()) {
+ stringBuffer.append(TEXT_54);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EDataType"));
+ stringBuffer.append(TEXT_55);
+ for (Iterator i=genPackage.getAllGenDataTypes().iterator(); i.hasNext();) { GenDataType genDataType = (GenDataType)i.next();
+ if (genDataType.isSerializable()) {
+ stringBuffer.append(TEXT_56);
+ stringBuffer.append(genPackage.getImportedPackageInterfaceName());
+ stringBuffer.append(TEXT_57);
+ stringBuffer.append(genDataType.getClassifierID());
+ stringBuffer.append(TEXT_58);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_59);
+ }
+ }
+ stringBuffer.append(TEXT_60);
+ stringBuffer.append(genModel.getNonNLS());
+ stringBuffer.append(genModel.getNonNLS(2));
+ stringBuffer.append(TEXT_61);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EDataType"));
+ stringBuffer.append(TEXT_62);
+ for (Iterator i=genPackage.getAllGenDataTypes().iterator(); i.hasNext();) { GenDataType genDataType = (GenDataType)i.next();
+ if (genDataType.isSerializable()) {
+ stringBuffer.append(TEXT_63);
+ stringBuffer.append(genPackage.getImportedPackageInterfaceName());
+ stringBuffer.append(TEXT_64);
+ stringBuffer.append(genDataType.getClassifierID());
+ stringBuffer.append(TEXT_65);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_66);
+ }
+ }
+ stringBuffer.append(TEXT_67);
+ stringBuffer.append(genModel.getNonNLS());
+ stringBuffer.append(genModel.getNonNLS(2));
+ stringBuffer.append(TEXT_68);
+ }
+ for (Iterator i=genPackage.getGenClasses().iterator(); i.hasNext();) { GenClass genClass = (GenClass)i.next();
+ if (!genClass.isAbstract() && !genClass.getClassifierID().equals("DOCUMENT_ROOT")) {
+ stringBuffer.append(TEXT_69);
+ stringBuffer.append(genClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_70);
+ stringBuffer.append(genClass.getName());
+ stringBuffer.append(TEXT_71);
+ if (genClass.isDynamic()) {
+ stringBuffer.append(TEXT_72);
+ stringBuffer.append(genClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_73);
+ stringBuffer.append(genClass.getSafeUncapName());
+ stringBuffer.append(TEXT_74);
+ stringBuffer.append(genClass.getCastFromEObject());
+ stringBuffer.append(TEXT_75);
+ stringBuffer.append(genClass.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_76);
+ } else {
+ stringBuffer.append(TEXT_77);
+ stringBuffer.append(genClass.getImportedClassName());
+ stringBuffer.append(TEXT_78);
+ stringBuffer.append(genClass.getSafeUncapName());
+ stringBuffer.append(TEXT_79);
+ stringBuffer.append(genClass.getImportedClassName());
+ stringBuffer.append(TEXT_80);
+ if (genModel.isSuppressInterfaces() && !genPackage.getReflectionPackageName().equals(genPackage.getInterfacePackageName())) {
+ stringBuffer.append(TEXT_81);
+ }
+ stringBuffer.append(TEXT_82);
+ }
+ stringBuffer.append(TEXT_83);
+ stringBuffer.append(genClass.getSafeUncapName());
+ stringBuffer.append(TEXT_84);
+ stringBuffer.append(genModel.getImportedName("commonj.sdo.Type"));
+ stringBuffer.append(TEXT_85);
+ stringBuffer.append(genClass.getSafeUncapName());
+ stringBuffer.append(TEXT_86);
+ stringBuffer.append(genModel.getImportedName("commonj.sdo.Type"));
+ stringBuffer.append(TEXT_87);
+ stringBuffer.append(genClass.getName());
+ stringBuffer.append(TEXT_88);
+ stringBuffer.append(genClass.getSafeUncapName());
+ stringBuffer.append(TEXT_89);
+ stringBuffer.append(genClass.getSafeUncapName());
+ stringBuffer.append(TEXT_90);
+ }
+ }
+ stringBuffer.append(TEXT_91);
+ stringBuffer.append(factoryType);
+ stringBuffer.append(TEXT_92);
+ stringBuffer.append(factoryType);
+ stringBuffer.append(TEXT_93);
+ stringBuffer.append(factoryType);
+ stringBuffer.append(TEXT_94);
+ stringBuffer.append(factoryType);
+ stringBuffer.append(TEXT_95);
+ stringBuffer.append(factoryType);
+ stringBuffer.append(TEXT_96);
+ stringBuffer.append(factoryType);
+ stringBuffer.append(TEXT_97);
+ stringBuffer.append(genModel.getImportedName("org.apache.tuscany.sdo.util.SDOUtil"));
+ stringBuffer.append(TEXT_98);
+ stringBuffer.append(genModel.getImportedName("org.apache.tuscany.sdo.impl.SDOFactoryImpl"));
+ stringBuffer.append(TEXT_99);
+ stringBuffer.append(genModel.getImportedName("org.apache.tuscany.sdo.util.SDOUtil"));
+ stringBuffer.append(TEXT_100);
+ stringBuffer.append(genModel.getImportedName("org.apache.tuscany.sdo.model.impl.ModelPackageImpl"));
+ stringBuffer.append(TEXT_101);
+ stringBuffer.append(factoryType);
+ stringBuffer.append(TEXT_102);
+ stringBuffer.append(factoryType);
+ stringBuffer.append(TEXT_103);
+ stringBuffer.append(factoryType);
+ stringBuffer.append(TEXT_104);
+ stringBuffer.append(factoryType);
+ stringBuffer.append(TEXT_105);
+ for (Iterator i=genPackage.getGenClasses().iterator(); i.hasNext();) { GenClass genClass = (GenClass)i.next();
+ stringBuffer.append(TEXT_106);
+ if (!genClass.isAbstract() && !genClass.getClassifierID().equals("DOCUMENT_ROOT")) {
+ stringBuffer.append(TEXT_107);
+ stringBuffer.append(genClass.getSafeUncapName());
+ stringBuffer.append(TEXT_108);
+ stringBuffer.append(genPackage.getClassifierID(genClass));
+ stringBuffer.append(TEXT_109);
+ for (Iterator j=genClass.getAllGenFeatures().iterator(); j.hasNext();) { GenFeature genFeature = (GenFeature)j.next();
+ stringBuffer.append(TEXT_110);
+ stringBuffer.append(!genFeature.isReferenceType());
+ stringBuffer.append(TEXT_111);
+ stringBuffer.append(genClass.getSafeUncapName());
+ stringBuffer.append(TEXT_112);
+ stringBuffer.append(genClass.getClassName());
+ stringBuffer.append(TEXT_113);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_114);
+ }
+ }
+ }
+ stringBuffer.append(TEXT_115);
+ stringBuffer.append(genModel.getImportedName("org.apache.tuscany.sdo.model.impl.ModelFactoryImpl"));
+ stringBuffer.append(TEXT_116);
+ stringBuffer.append(genModel.getImportedName("org.apache.tuscany.sdo.model.impl.ModelFactoryImpl"));
+ stringBuffer.append(TEXT_117);
+ stringBuffer.append(genModel.getImportedName("org.apache.tuscany.sdo.model.impl.ModelFactoryImpl"));
+ stringBuffer.append(TEXT_118);
+ for (Iterator i=genPackage.getGenClasses().iterator(); i.hasNext();) { GenClass genClass = (GenClass)i.next();
+ if (!genClass.isAbstract() && !genClass.getClassifierID().equals("DOCUMENT_ROOT")) {
+ stringBuffer.append(TEXT_119);
+ stringBuffer.append(genClass.getSafeUncapName());
+ stringBuffer.append(TEXT_120);
+ stringBuffer.append(genClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_121);
+ stringBuffer.append(genClass.getName());
+ stringBuffer.append(TEXT_122);
+ for (Iterator j=genClass.getAllGenFeatures().iterator(); j.hasNext();) {GenFeature genFeature = (GenFeature)j.next();
+ String type = genFeature.getImportedType().equals("Sequence") ? "getSequence()" : genPackage.getPackageInstanceVariable(genFeature.getTypeGenPackage()) + ".get" + genFeature.getTypeClassifierAccessorName() + "()";
+ if (genFeature.isReferenceType()) { GenFeature reverseGenFeature = genFeature.getReverse();
+ String reverse = reverseGenFeature == null ? "null" : genPackage.getPackageInstanceVariable(reverseGenFeature.getGenPackage()) + ".get" + reverseGenFeature.getFeatureAccessorName() + "()";
+ stringBuffer.append(TEXT_123);
+ stringBuffer.append(genModel.getImportedName("commonj.sdo.Property"));
+ stringBuffer.append(TEXT_124);
+ stringBuffer.append(genClass.getSafeUncapName());
+ stringBuffer.append(TEXT_125);
+ stringBuffer.append(genClass.getClassName());
+ stringBuffer.append(TEXT_126);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_127);
+ stringBuffer.append(type);
+ stringBuffer.append(TEXT_128);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_129);
+ stringBuffer.append(genFeature.getDefaultValue());
+ stringBuffer.append(TEXT_130);
+ stringBuffer.append(genFeature.getLowerBound());
+ stringBuffer.append(TEXT_131);
+ stringBuffer.append(genFeature.getUpperBound());
+ stringBuffer.append(TEXT_132);
+ stringBuffer.append(genFeature.getContainerClass());
+ stringBuffer.append(TEXT_133);
+ stringBuffer.append(genFeature.getChangeableFlag().equals("IS_CHANGEABLE") ? "false" : "true");
+ stringBuffer.append(TEXT_134);
+ stringBuffer.append(genFeature.getUnsettableFlag().equals("IS_UNSETTABLE") ? "true": "false");
+ stringBuffer.append(TEXT_135);
+ stringBuffer.append(genFeature.getDerivedFlag().equals("IS_DERIVED") ? "true" : "false");
+ stringBuffer.append(TEXT_136);
+ stringBuffer.append(genFeature.getContainmentFlag().equals("IS_COMPOSITE")? "true": "false");
+ stringBuffer.append(TEXT_137);
+ stringBuffer.append(reverse);
+ stringBuffer.append(TEXT_138);
+ }else{
+ stringBuffer.append(TEXT_139);
+ stringBuffer.append(genModel.getImportedName("commonj.sdo.Property"));
+ stringBuffer.append(TEXT_140);
+ stringBuffer.append(genClass.getSafeUncapName());
+ stringBuffer.append(TEXT_141);
+ stringBuffer.append(genClass.getClassName());
+ stringBuffer.append(TEXT_142);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_143);
+ stringBuffer.append(type);
+ stringBuffer.append(TEXT_144);
+ stringBuffer.append(genFeature.getSafeName());
+ stringBuffer.append(TEXT_145);
+ stringBuffer.append(genFeature.getDefaultValue());
+ stringBuffer.append(TEXT_146);
+ stringBuffer.append(genFeature.getLowerBound());
+ stringBuffer.append(TEXT_147);
+ stringBuffer.append(genFeature.getUpperBound());
+ stringBuffer.append(TEXT_148);
+ stringBuffer.append(genFeature.getContainerClass());
+ stringBuffer.append(TEXT_149);
+ stringBuffer.append(genFeature.getChangeableFlag().equals("IS_CHANGEABLE") ? "false" : "true");
+ stringBuffer.append(TEXT_150);
+ stringBuffer.append(genFeature.getUnsettableFlag().equals("IS_UNSETTABLE") ? "true": "false");
+ stringBuffer.append(TEXT_151);
+ stringBuffer.append(genFeature.getDerivedFlag().equals("IS_DERIVED") ? "true" : "false");
+ stringBuffer.append(TEXT_152);
+ }
+ }
+ }
+ }
+ stringBuffer.append(TEXT_153);
+ for (Iterator i=genPackage.getGenClasses().iterator(); i.hasNext();) { GenClass genClass = (GenClass)i.next();
+ if (!genClass.isAbstract() && !genClass.getClassifierID().equals("DOCUMENT_ROOT")) {
+ stringBuffer.append(TEXT_154);
+ stringBuffer.append(genClass.getSafeUncapName());
+ stringBuffer.append(TEXT_155);
+ stringBuffer.append(genClass.getName());
+ stringBuffer.append(TEXT_156);
+ for (Iterator j=genClass.getAllGenFeatures().iterator(); j.hasNext();) { GenFeature genFeature = (GenFeature)j.next();
+ stringBuffer.append(TEXT_157);
+ stringBuffer.append(genModel.getImportedName("commonj.sdo.Property"));
+ stringBuffer.append(TEXT_158);
+ stringBuffer.append(genClass.getSafeUncapName());
+ stringBuffer.append(TEXT_159);
+ stringBuffer.append(genClass.getClassName());
+ stringBuffer.append(TEXT_160);
+ stringBuffer.append(genFeature.getUpperName());
+ stringBuffer.append(TEXT_161);
+ stringBuffer.append(genFeature.getName());
+ stringBuffer.append(TEXT_162);
+ }
+ }
+ }
+ stringBuffer.append(TEXT_163);
+ for (Iterator i=genPackage.getGenClasses().iterator(); i.hasNext();) { GenClass genClass = (GenClass)i.next();
+ if (!genClass.isAbstract() && genClass.getClassifierID().equals("DOCUMENT_ROOT")) {
+ stringBuffer.append(TEXT_164);
+ for (Iterator j=genClass.getAllGenFeatures().iterator(); j.hasNext();) { GenFeature genFeature = (GenFeature)j.next();
+ if (!genFeature.getName().equals("mixed") && !genFeature.getName().equals("xMLNSPrefixMap") && !genFeature.getName().equals("xSISchemaLocation")){
+ stringBuffer.append(TEXT_165);
+ stringBuffer.append(genFeature.getName());
+ stringBuffer.append(TEXT_166);
+ stringBuffer.append(genPackage.getPackageInstanceVariable(genFeature.getTypeGenPackage()));
+ stringBuffer.append(TEXT_167);
+ stringBuffer.append(genFeature.getTypeClassifierAccessorName());
+ stringBuffer.append(TEXT_168);
+ stringBuffer.append(genFeature.getName());
+ stringBuffer.append(TEXT_169);
+ }
+ }
+ }
+ }
+ stringBuffer.append(TEXT_170);
+ for (Iterator i=genPackage.getAllGenDataTypes().iterator(); i.hasNext();) { GenDataType genDataType = (GenDataType)i.next();
+ if (genDataType.isSerializable()) {
+ if (genPackage.isDataTypeConverters()) { String eDataType = genDataType.getQualifiedClassifierAccessor();
+ stringBuffer.append(TEXT_171);
+ stringBuffer.append(genDataType.getImportedInstanceClassName());
+ stringBuffer.append(TEXT_172);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_173);
+ if (genDataType instanceof GenEnum) {
+ stringBuffer.append(TEXT_174);
+ stringBuffer.append(genDataType.getImportedInstanceClassName());
+ stringBuffer.append(TEXT_175);
+ stringBuffer.append(genDataType.getImportedInstanceClassName());
+ stringBuffer.append(TEXT_176);
+ stringBuffer.append(eDataType);
+ stringBuffer.append(TEXT_177);
+ stringBuffer.append(genModel.getNonNLS());
+ stringBuffer.append(genModel.getNonNLS(2));
+ stringBuffer.append(genModel.getNonNLS(3));
+ stringBuffer.append(TEXT_178);
+ } else if (genDataType.getBaseType() != null) { GenDataType genBaseType = genDataType.getBaseType(); boolean isPrimitiveConversion = !genDataType.isPrimitiveType() && genBaseType.isPrimitiveType();
+ if (genBaseType.getGenPackage() == genPackage) {
+ if (isPrimitiveConversion) {
+ stringBuffer.append(TEXT_179);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_180);
+ stringBuffer.append(genBaseType.getName());
+ stringBuffer.append(TEXT_181);
+ } else {
+ stringBuffer.append(TEXT_182);
+ stringBuffer.append(genBaseType.getName());
+ stringBuffer.append(TEXT_183);
+ }
+ } else if (genBaseType.getGenPackage().isDataTypeConverters()) {
+ if (isPrimitiveConversion) {
+ stringBuffer.append(TEXT_184);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_185);
+ stringBuffer.append(genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_186);
+ stringBuffer.append(genBaseType.getName());
+ stringBuffer.append(TEXT_187);
+ } else {
+ stringBuffer.append(TEXT_188);
+ stringBuffer.append(genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_189);
+ stringBuffer.append(genBaseType.getName());
+ stringBuffer.append(TEXT_190);
+ }
+ } else {
+ stringBuffer.append(TEXT_191);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_192);
+ stringBuffer.append(genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_193);
+ stringBuffer.append(genBaseType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_194);
+ }
+ } else if (genDataType.getItemType() != null) { GenDataType genItemType = genDataType.getItemType();
+ stringBuffer.append(TEXT_195);
+ stringBuffer.append(genModel.getImportedName("java.util.List"));
+ stringBuffer.append(TEXT_196);
+ stringBuffer.append(genModel.getImportedName("java.util.ArrayList"));
+ stringBuffer.append(TEXT_197);
+ stringBuffer.append(genModel.getImportedName("java.util.StringTokenizer"));
+ stringBuffer.append(TEXT_198);
+ stringBuffer.append(genModel.getImportedName("java.util.StringTokenizer"));
+ stringBuffer.append(TEXT_199);
+ if (genItemType.getGenPackage() == genPackage) {
+ if (genPackage.isDataTypeConverters()) { genItemType = genItemType.getObjectType();
+ stringBuffer.append(TEXT_200);
+ stringBuffer.append(genItemType.getName());
+ stringBuffer.append(TEXT_201);
+ } else {
+ stringBuffer.append(TEXT_202);
+ stringBuffer.append(genItemType.getName());
+ stringBuffer.append(TEXT_203);
+ stringBuffer.append(genItemType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_204);
+ }
+ } else {
+ if (genItemType.getGenPackage().isDataTypeConverters()) { genItemType = genItemType.getObjectType();
+ stringBuffer.append(TEXT_205);
+ stringBuffer.append(genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_206);
+ stringBuffer.append(genItemType.getName());
+ stringBuffer.append(TEXT_207);
+ } else {
+ stringBuffer.append(TEXT_208);
+ stringBuffer.append(genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_209);
+ stringBuffer.append(genItemType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_210);
+ }
+ }
+ stringBuffer.append(TEXT_211);
+ } else if (!genDataType.getMemberTypes().isEmpty()) {
+ stringBuffer.append(TEXT_212);
+ stringBuffer.append(genDataType.getStaticValue(null));
+ stringBuffer.append(TEXT_213);
+ stringBuffer.append(genDataType.getImportedInstanceClassName());
+ stringBuffer.append(TEXT_214);
+ stringBuffer.append(genDataType.getStaticValue(null));
+ stringBuffer.append(TEXT_215);
+ for (Iterator j = genDataType.getMemberTypes().iterator(); j.hasNext(); ) { GenDataType genMemberType = (GenDataType)j.next();
+ stringBuffer.append(TEXT_216);
+ if (genMemberType.getGenPackage() == genPackage) {
+ if (genPackage.isDataTypeConverters()) { if (!genDataType.isPrimitiveType()) genMemberType = genMemberType.getObjectType();
+ stringBuffer.append(TEXT_217);
+ stringBuffer.append(genMemberType.getName());
+ stringBuffer.append(TEXT_218);
+ } else {
+ stringBuffer.append(TEXT_219);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_220);
+ stringBuffer.append(genMemberType.getName());
+ stringBuffer.append(TEXT_221);
+ stringBuffer.append(genMemberType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_222);
+ }
+ } else {
+ if (genPackage.isDataTypeConverters()) { if (!genDataType.isPrimitiveType()) genMemberType = genMemberType.getObjectType();
+ stringBuffer.append(TEXT_223);
+ stringBuffer.append(genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_224);
+ stringBuffer.append(genMemberType.getName());
+ stringBuffer.append(TEXT_225);
+ } else {
+ stringBuffer.append(TEXT_226);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_227);
+ stringBuffer.append(genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_228);
+ stringBuffer.append(genMemberType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_229);
+ }
+ }
+ stringBuffer.append(TEXT_230);
+ if (!genDataType.isPrimitiveType()) {
+ stringBuffer.append(TEXT_231);
+ }
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.Diagnostician"));
+ stringBuffer.append(TEXT_232);
+ stringBuffer.append(eDataType);
+ stringBuffer.append(TEXT_233);
+ if (genDataType.isPrimitiveType()) {
+ stringBuffer.append(TEXT_234);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_235);
+ } else {
+ stringBuffer.append(TEXT_236);
+ }
+ stringBuffer.append(TEXT_237);
+ }
+ stringBuffer.append(TEXT_238);
+ if (!genDataType.isPrimitiveType()) {
+ stringBuffer.append(TEXT_239);
+ }
+ stringBuffer.append(TEXT_240);
+ } else if (genDataType.isArrayType()) {
+ stringBuffer.append(TEXT_241);
+ stringBuffer.append(genModel.getImportedName("java.lang.UnsupportedOperationException"));
+ stringBuffer.append(TEXT_242);
+ } else if (genDataType.isPrimitiveType()) {
+ stringBuffer.append(TEXT_243);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_244);
+ stringBuffer.append(eDataType);
+ stringBuffer.append(TEXT_245);
+ stringBuffer.append(genDataType.getPrimitiveValueFunction());
+ stringBuffer.append(TEXT_246);
+ } else {
+ stringBuffer.append(TEXT_247);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_248);
+ stringBuffer.append(eDataType);
+ stringBuffer.append(TEXT_249);
+ }
+ stringBuffer.append(TEXT_250);
+ }
+ stringBuffer.append(TEXT_251);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_252);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_253);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EDataType"));
+ stringBuffer.append(TEXT_254);
+ if (genDataType instanceof GenEnum) {
+ if (genPackage.isDataTypeConverters()) {
+ stringBuffer.append(TEXT_255);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_256);
+ } else {
+ stringBuffer.append(TEXT_257);
+ stringBuffer.append(((GenEnum)genDataType).getImportedInstanceClassName());
+ stringBuffer.append(TEXT_258);
+ stringBuffer.append(((GenEnum)genDataType).getImportedInstanceClassName());
+ stringBuffer.append(TEXT_259);
+ stringBuffer.append(genModel.getNonNLS());
+ stringBuffer.append(genModel.getNonNLS(2));
+ stringBuffer.append(genModel.getNonNLS(3));
+ stringBuffer.append(TEXT_260);
+ }
+ } else if (genDataType.getBaseType() != null) { GenDataType genBaseType = genDataType.getBaseType();
+ if (genBaseType.getGenPackage() == genPackage) {
+ stringBuffer.append(TEXT_261);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_262);
+ stringBuffer.append(genBaseType.getName());
+ stringBuffer.append(TEXT_263);
+ stringBuffer.append(genBaseType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_264);
+ } else {
+ stringBuffer.append(TEXT_265);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_266);
+ stringBuffer.append(genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_267);
+ stringBuffer.append(genBaseType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_268);
+ }
+ } else if (genDataType.getItemType() != null) { GenDataType genItemType = genDataType.getItemType();
+ if (genPackage.isDataTypeConverters()) {
+ stringBuffer.append(TEXT_269);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_270);
+ } else {
+ stringBuffer.append(TEXT_271);
+ stringBuffer.append(genModel.getImportedName("java.util.List"));
+ stringBuffer.append(TEXT_272);
+ stringBuffer.append(genModel.getImportedName("java.util.ArrayList"));
+ stringBuffer.append(TEXT_273);
+ stringBuffer.append(genModel.getImportedName("java.util.StringTokenizer"));
+ stringBuffer.append(TEXT_274);
+ stringBuffer.append(genModel.getImportedName("java.util.StringTokenizer"));
+ stringBuffer.append(TEXT_275);
+ if (genItemType.getGenPackage() == genPackage) {
+ stringBuffer.append(TEXT_276);
+ stringBuffer.append(genItemType.getName());
+ stringBuffer.append(TEXT_277);
+ stringBuffer.append(genItemType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_278);
+ } else {
+ stringBuffer.append(TEXT_279);
+ stringBuffer.append(genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_280);
+ stringBuffer.append(genItemType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_281);
+ }
+ stringBuffer.append(TEXT_282);
+ }
+ } else if (!genDataType.getMemberTypes().isEmpty()) {
+ if (genPackage.isDataTypeConverters()) {
+ if (genDataType.isPrimitiveType()) {
+ stringBuffer.append(TEXT_283);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_284);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_285);
+ } else {
+ stringBuffer.append(TEXT_286);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_287);
+ }
+ } else {
+ stringBuffer.append(TEXT_288);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_289);
+ for (Iterator j = genDataType.getMemberTypes().iterator(); j.hasNext(); ) { GenDataType genMemberType = (GenDataType)j.next();
+ stringBuffer.append(TEXT_290);
+ if (genMemberType.getGenPackage() == genPackage) {
+ stringBuffer.append(TEXT_291);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_292);
+ stringBuffer.append(genMemberType.getName());
+ stringBuffer.append(TEXT_293);
+ stringBuffer.append(genMemberType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_294);
+ } else {
+ stringBuffer.append(TEXT_295);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_296);
+ stringBuffer.append(genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_297);
+ stringBuffer.append(genMemberType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_298);
+ }
+ stringBuffer.append(TEXT_299);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.util.Diagnostician"));
+ stringBuffer.append(TEXT_300);
+ }
+ stringBuffer.append(TEXT_301);
+ }
+ } else if (genDataType.isArrayType()) {
+ stringBuffer.append(TEXT_302);
+ stringBuffer.append(genModel.getImportedName("java.lang.UnsupportedOperationException"));
+ stringBuffer.append(TEXT_303);
+ } else {
+ stringBuffer.append(TEXT_304);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_305);
+ }
+ stringBuffer.append(TEXT_306);
+ if (genPackage.isDataTypeConverters()) { String eDataType = genDataType.getQualifiedClassifierAccessor();
+ stringBuffer.append(TEXT_307);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_308);
+ stringBuffer.append(genDataType.getImportedInstanceClassName());
+ stringBuffer.append(TEXT_309);
+ if (genDataType instanceof GenEnum) {
+ stringBuffer.append(TEXT_310);
+ } else if (genDataType.getBaseType() != null) { GenDataType genBaseType = genDataType.getBaseType(); boolean isPrimitiveConversion = !genDataType.isPrimitiveType() && genBaseType.isPrimitiveType();
+ if (genBaseType.getGenPackage() == genPackage) {
+ if (isPrimitiveConversion) {
+ stringBuffer.append(TEXT_311);
+ stringBuffer.append(genBaseType.getName());
+ stringBuffer.append(TEXT_312);
+ stringBuffer.append(genBaseType.getPrimitiveValueFunction());
+ stringBuffer.append(TEXT_313);
+ } else {
+ stringBuffer.append(TEXT_314);
+ stringBuffer.append(genBaseType.getName());
+ stringBuffer.append(TEXT_315);
+ }
+ } else if (genBaseType.getGenPackage().isDataTypeConverters()) {
+ stringBuffer.append(TEXT_316);
+ stringBuffer.append(genBaseType.getGenPackage().getQualifiedFactoryInstanceAccessor());
+ stringBuffer.append(TEXT_317);
+ stringBuffer.append(genBaseType.getName());
+ stringBuffer.append(TEXT_318);
+ } else {
+ stringBuffer.append(TEXT_319);
+ stringBuffer.append(genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_320);
+ stringBuffer.append(genBaseType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_321);
+ }
+ } else if (genDataType.getItemType() != null) { GenDataType genItemType = genDataType.getItemType();
+ stringBuffer.append(TEXT_322);
+ stringBuffer.append(genModel.getImportedName("java.lang.StringBuffer"));
+ stringBuffer.append(TEXT_323);
+ stringBuffer.append(genModel.getImportedName("java.lang.StringBuffer"));
+ stringBuffer.append(TEXT_324);
+ stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
+ stringBuffer.append(TEXT_325);
+ if (genItemType.getGenPackage() == genPackage) {
+ if (genPackage.isDataTypeConverters()) { genItemType = genItemType.getObjectType();
+ stringBuffer.append(TEXT_326);
+ stringBuffer.append(genItemType.getName());
+ stringBuffer.append(TEXT_327);
+ stringBuffer.append(genItemType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_328);
+ } else {
+ stringBuffer.append(TEXT_329);
+ stringBuffer.append(genItemType.getName());
+ stringBuffer.append(TEXT_330);
+ stringBuffer.append(genItemType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_331);
+ }
+ } else {
+ if (genItemType.getGenPackage().isDataTypeConverters()) { genItemType = genItemType.getObjectType();
+ stringBuffer.append(TEXT_332);
+ stringBuffer.append(genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_333);
+ stringBuffer.append(genItemType.getName());
+ stringBuffer.append(TEXT_334);
+ stringBuffer.append(genItemType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_335);
+ } else {
+ stringBuffer.append(TEXT_336);
+ stringBuffer.append(genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_337);
+ stringBuffer.append(genItemType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_338);
+ }
+ }
+ stringBuffer.append(TEXT_339);
+ } else if (!genDataType.getMemberTypes().isEmpty()) {
+ if (!genDataType.isPrimitiveType()) {
+ stringBuffer.append(TEXT_340);
+ for (Iterator j = genDataType.getMemberTypes().iterator(); j.hasNext(); ) { GenDataType genMemberType = (GenDataType)j.next();
+ stringBuffer.append(TEXT_341);
+ stringBuffer.append(genMemberType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_342);
+ if (genMemberType.getGenPackage() == genPackage) {
+ if (genPackage.isDataTypeConverters()) {
+ stringBuffer.append(TEXT_343);
+ stringBuffer.append(genMemberType.getName());
+ stringBuffer.append(TEXT_344);
+ } else {
+ stringBuffer.append(TEXT_345);
+ stringBuffer.append(genMemberType.getName());
+ stringBuffer.append(TEXT_346);
+ stringBuffer.append(genMemberType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_347);
+ }
+ } else {
+ if (genMemberType.getGenPackage().isDataTypeConverters()) { genMemberType = genMemberType.getObjectType();
+ stringBuffer.append(TEXT_348);
+ stringBuffer.append(genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_349);
+ stringBuffer.append(genMemberType.getName());
+ stringBuffer.append(TEXT_350);
+ stringBuffer.append(genMemberType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_351);
+ } else {
+ stringBuffer.append(TEXT_352);
+ stringBuffer.append(genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_353);
+ stringBuffer.append(genMemberType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_354);
+ }
+ }
+ stringBuffer.append(TEXT_355);
+ }
+ } else {
+ for (Iterator j = genDataType.getMemberTypes().iterator(); j.hasNext(); ) { GenDataType genMemberType = (GenDataType)j.next();
+ stringBuffer.append(TEXT_356);
+ if (genMemberType.getGenPackage() == genPackage) {
+ if (genPackage.isDataTypeConverters()) {
+ stringBuffer.append(TEXT_357);
+ stringBuffer.append(genMemberType.getName());
+ stringBuffer.append(TEXT_358);
+ } else {
+ stringBuffer.append(TEXT_359);
+ stringBuffer.append(genMemberType.getName());
+ stringBuffer.append(TEXT_360);
+ stringBuffer.append(genMemberType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_361);
+ stringBuffer.append(genMemberType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_362);
+ }
+ } else {
+ if (genMemberType.getGenPackage().isDataTypeConverters()) {
+ stringBuffer.append(TEXT_363);
+ stringBuffer.append(genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_364);
+ stringBuffer.append(genMemberType.getName());
+ stringBuffer.append(TEXT_365);
+ } else {
+ stringBuffer.append(TEXT_366);
+ stringBuffer.append(genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_367);
+ stringBuffer.append(genMemberType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_368);
+ stringBuffer.append(genMemberType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_369);
+ }
+ }
+ stringBuffer.append(TEXT_370);
+ }
+ }
+ stringBuffer.append(TEXT_371);
+ stringBuffer.append(eDataType);
+ stringBuffer.append(TEXT_372);
+ } else if (genDataType.isArrayType()) {
+ stringBuffer.append(TEXT_373);
+ stringBuffer.append(genModel.getImportedName("java.lang.UnsupportedOperationException"));
+ stringBuffer.append(TEXT_374);
+ } else if (genDataType.isPrimitiveType()) {
+ stringBuffer.append(TEXT_375);
+ stringBuffer.append(eDataType);
+ stringBuffer.append(TEXT_376);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_377);
+ } else {
+ stringBuffer.append(TEXT_378);
+ stringBuffer.append(eDataType);
+ stringBuffer.append(TEXT_379);
+ }
+ stringBuffer.append(TEXT_380);
+ }
+ stringBuffer.append(TEXT_381);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_382);
+ stringBuffer.append(genModel.getImportedName("org.eclipse.emf.ecore.EDataType"));
+ stringBuffer.append(TEXT_383);
+ if (genDataType instanceof GenEnum) {
+ stringBuffer.append(TEXT_384);
+ } else if (genDataType.getBaseType() != null) { GenDataType genBaseType = genDataType.getBaseType();
+ if (genBaseType.getGenPackage() == genPackage) {
+ stringBuffer.append(TEXT_385);
+ stringBuffer.append(genBaseType.getName());
+ stringBuffer.append(TEXT_386);
+ stringBuffer.append(genBaseType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_387);
+ } else {
+ stringBuffer.append(TEXT_388);
+ stringBuffer.append(genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_389);
+ stringBuffer.append(genBaseType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_390);
+ }
+ } else if (genDataType.getItemType() != null) { GenDataType genItemType = genDataType.getItemType();
+ if (genPackage.isDataTypeConverters()) {
+ stringBuffer.append(TEXT_391);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_392);
+ stringBuffer.append(genModel.getImportedName("java.util.List"));
+ stringBuffer.append(TEXT_393);
+ } else {
+ stringBuffer.append(TEXT_394);
+ stringBuffer.append(genModel.getImportedName("java.util.List"));
+ stringBuffer.append(TEXT_395);
+ stringBuffer.append(genModel.getImportedName("java.util.List"));
+ stringBuffer.append(TEXT_396);
+ stringBuffer.append(genModel.getImportedName("java.lang.StringBuffer"));
+ stringBuffer.append(TEXT_397);
+ stringBuffer.append(genModel.getImportedName("java.lang.StringBuffer"));
+ stringBuffer.append(TEXT_398);
+ stringBuffer.append(genModel.getImportedName("java.util.Iterator"));
+ stringBuffer.append(TEXT_399);
+ if (genItemType.getGenPackage() == genPackage) {
+ stringBuffer.append(TEXT_400);
+ stringBuffer.append(genItemType.getName());
+ stringBuffer.append(TEXT_401);
+ stringBuffer.append(genItemType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_402);
+ } else {
+ stringBuffer.append(TEXT_403);
+ stringBuffer.append(genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_404);
+ stringBuffer.append(genItemType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_405);
+ }
+ stringBuffer.append(TEXT_406);
+ }
+ } else if (!genDataType.getMemberTypes().isEmpty()) {
+ if (genPackage.isDataTypeConverters()) {
+ if (genDataType.isPrimitiveType()) {
+ stringBuffer.append(TEXT_407);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_408);
+ stringBuffer.append(genDataType.getObjectInstanceClassName());
+ stringBuffer.append(TEXT_409);
+ stringBuffer.append(genDataType.getPrimitiveValueFunction());
+ stringBuffer.append(TEXT_410);
+ } else {
+ stringBuffer.append(TEXT_411);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_412);
+ }
+ } else {
+ stringBuffer.append(TEXT_413);
+ for (Iterator j = genDataType.getMemberTypes().iterator(); j.hasNext(); ) { GenDataType genMemberType = (GenDataType)j.next();
+ stringBuffer.append(TEXT_414);
+ stringBuffer.append(genMemberType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_415);
+ if (genMemberType.getGenPackage() == genPackage) {
+ stringBuffer.append(TEXT_416);
+ stringBuffer.append(genMemberType.getName());
+ stringBuffer.append(TEXT_417);
+ stringBuffer.append(genMemberType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_418);
+ } else {
+ stringBuffer.append(TEXT_419);
+ stringBuffer.append(genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor());
+ stringBuffer.append(TEXT_420);
+ stringBuffer.append(genMemberType.getQualifiedClassifierAccessor());
+ stringBuffer.append(TEXT_421);
+ }
+ stringBuffer.append(TEXT_422);
+ }
+ stringBuffer.append(TEXT_423);
+ }
+ } else if (genDataType.isArrayType()) {
+ stringBuffer.append(TEXT_424);
+ stringBuffer.append(genModel.getImportedName("java.lang.UnsupportedOperationException"));
+ stringBuffer.append(TEXT_425);
+ } else {
+ stringBuffer.append(TEXT_426);
+ }
+ stringBuffer.append(TEXT_427);
+ }
+ }
+ } else {
+ for (Iterator i=genPackage.getGenClasses().iterator(); i.hasNext();) { GenClass genClass = (GenClass)i.next();
+ if (genClass.hasFactoryInterfaceCreateMethod()) {
+ stringBuffer.append(TEXT_428);
+ stringBuffer.append(genClass.getFormattedName());
+ stringBuffer.append(TEXT_429);
+ stringBuffer.append(genClass.getFormattedName());
+ stringBuffer.append(TEXT_430);
+ stringBuffer.append(genClass.getImportedInterfaceName());
+ stringBuffer.append(TEXT_431);
+ stringBuffer.append(genClass.getName());
+ stringBuffer.append(TEXT_432);
+ }
+ }
+ if (genPackage.isDataTypeConverters()) {
+ for (Iterator i=genPackage.getAllGenDataTypes().iterator(); i.hasNext();) { GenDataType genDataType = (GenDataType)i.next();
+ if (genDataType.isSerializable()) {
+ stringBuffer.append(TEXT_433);
+ stringBuffer.append(genDataType.getFormattedName());
+ stringBuffer.append(TEXT_434);
+ stringBuffer.append(genDataType.getImportedInstanceClassName());
+ stringBuffer.append(TEXT_435);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_436);
+ stringBuffer.append(genDataType.getFormattedName());
+ stringBuffer.append(TEXT_437);
+ stringBuffer.append(genDataType.getName());
+ stringBuffer.append(TEXT_438);
+ stringBuffer.append(genDataType.getImportedInstanceClassName());
+ stringBuffer.append(TEXT_439);
+ }
+ }
+ }
+ }
+ stringBuffer.append(TEXT_440);
+ stringBuffer.append(isInterface ? genPackage.getFactoryInterfaceName() : genPackage.getFactoryClassName());
+ genModel.emitSortedImports();
+ stringBuffer.append(TEXT_441);
+ return stringBuffer.toString();
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/eclipse/jdt/core/formatter/CodeFormatter.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/eclipse/jdt/core/formatter/CodeFormatter.java
new file mode 100644
index 0000000000..99c9191a34
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/java/org/eclipse/jdt/core/formatter/CodeFormatter.java
@@ -0,0 +1,24 @@
+/**
+ *
+ * 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.
+ */
+/*******************************************************************************
+ * TEMPORARY dummy file to work around EMF generator dependency problem.
+ * This file will be deleted as soon as the EMF generator is fixed.
+ *******************************************************************************/
+package org.eclipse.jdt.core.formatter;
+
+public abstract class CodeFormatter {
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/resources/META-INF/LICENSE.txt b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/resources/META-INF/LICENSE.txt
new file mode 100644
index 0000000000..25d78feeac
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/resources/META-INF/LICENSE.txt
@@ -0,0 +1,1277 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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.
+
+
+APACHE TUSCANY SUBCOMPONENTS:
+
+The Apache Tuscany distribution includes a number of subcomponents with
+separate copyright notices and license terms. Your use of the source
+code for the these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+===============================================================================
+
+For the Eclipse Modeling Framework component and the Celtix binding:
+
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF
+THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and
+documentation distributed under this Agreement, and
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and
+are distributed by that particular Contributor. A Contribution
+'originates' from a Contributor if it was added to the Program by such
+Contributor itself or anyone acting on such Contributor's behalf.
+Contributions do not include additions to the Program which: (i) are
+separate modules of software distributed in conjunction with the
+Program under their own license agreement, and (ii) are not derivative
+works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor
+which are necessarily infringed by the use or sale of its Contribution
+alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this
+Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby
+grants Recipient a non-exclusive, worldwide, royalty-free copyright
+license to reproduce, prepare derivative works of, publicly display,
+publicly perform, distribute and sublicense the Contribution of such
+Contributor, if any, and such derivative works, in source code and
+object code form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby
+grants Recipient a non-exclusive, worldwide, royalty-free patent
+license under Licensed Patents to make, use, sell, offer to sell,
+import and otherwise transfer the Contribution of such Contributor, if
+any, in source code and object code form. This patent license shall
+apply to the combination of the Contribution and the Program if, at
+the time the Contribution is added by the Contributor, such addition
+of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the
+licenses to its Contributions set forth herein, no assurances are
+provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility
+to secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow
+Recipient to distribute the Program, it is Recipient's responsibility
+to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright
+license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form
+under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties
+and conditions, express and implied, including warranties or
+conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability
+for damages, including direct, indirect, special, incidental and
+consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are
+offered by that Contributor alone and not by any other party; and
+
+iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable
+manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the
+Program.
+
+Contributors may not remove or alter any copyright notices contained
+within the Program.
+
+Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use
+of the Program, the Contributor who includes the Program in a
+commercial product offering should do so in a manner which does not
+create potential liability for other Contributors. Therefore, if a
+Contributor includes the Program in a commercial product offering,
+such Contributor ("Commercial Contributor") hereby agrees to defend
+and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising
+from claims, lawsuits and other legal actions brought by a third party
+against the Indemnified Contributor to the extent caused by the acts
+or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement.
+In order to qualify, an Indemnified Contributor must: a) promptly
+notify the Commercial Contributor in writing of such claim, and b)
+allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement
+negotiations. The Indemnified Contributor may participate in any such
+claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
+WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable
+laws, damage to or loss of data, programs or equipment, and
+unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
+ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further
+action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+the Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of
+the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of
+time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use
+and distribution of the Program as soon as reasonably practicable.
+However, Recipient's obligations under this Agreement and any licenses
+granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement,
+but in order to avoid inconsistency the Agreement is copyrighted and
+may only be modified in the following manner. The Agreement Steward
+reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement
+Steward has the right to modify this Agreement. The Eclipse Foundation
+is the initial Agreement Steward. The Eclipse Foundation may assign
+the responsibility to serve as the Agreement Steward to a suitable
+separate entity. Each new version of the Agreement will be given a
+distinguishing version number. The Program (including Contributions)
+may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the
+Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives
+no rights or licenses to the intellectual property of any Contributor
+under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No
+party to this Agreement will bring a legal action under this Agreement
+more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.
+
+===============================================================================
+
+For the Rhino JavaScript container component:
+
+Mozilla Public License 1.1 (MPL 1.1)
+
+1. Definitions.
+
+ 1.0.1. "Commercial Use" means distribution or otherwise making the
+Covered Code available to a third party.
+
+ 1.1. "Contributor" means each entity that creates or contributes to
+the creation of Modifications.
+
+ 1.2. "Contributor Version" means the combination of the Original Code,
+prior Modifications used by a Contributor, and the Modifications made by that
+particular Contributor.
+
+ 1.3. "Covered Code" means the Original Code or Modifications or the
+combination of the Original Code and Modifications, in each case including
+portions thereof.
+
+ 1.4. "Electronic Distribution Mechanism" means a mechanism generally
+accepted in the software development community for the electronic transfer of
+data.
+
+ 1.5. "Executable" means Covered Code in any form other than Source
+Code.
+
+ 1.6. "Initial Developer" means the individual or entity identified as
+the Initial Developer in the Source Code notice required by Exhibit A.
+
+ 1.7. "Larger Work" means a work which combines Covered Code or
+portions thereof with code not governed by the terms of this License.
+
+ 1.8. "License" means this document.
+
+ 1.8.1. "Licensable" means having the right to grant, to the maximum
+extent possible, whether at the time of the initial grant or subsequently
+acquired, any and all of the rights conveyed herein.
+
+ 1.9. "Modifications" means any addition to or deletion from the
+substance or structure of either the Original Code or any previous
+Modifications. When Covered Code is released as a series of files, a
+Modification is:
+ A. Any addition to or deletion from the contents of a file
+containing Original Code or previous Modifications.
+
+ B. Any new file that contains any part of the Original Code or
+previous Modifications.
+
+ 1.10. "Original Code" means Source Code of computer software code
+which is described in the Source Code notice required by Exhibit A as Original
+Code, and which, at the time of its release under this License is not already
+Covered Code governed by this License.
+
+ 1.10.1. "Patent Claims" means any patent claim(s), now owned or
+hereafter acquired, including without limitation, method, process, and
+apparatus claims, in any patent Licensable by grantor.
+
+ 1.11. "Source Code" means the preferred form of the Covered Code for
+making modifications to it, including all modules it contains, plus any
+associated interface definition files, scripts used to control compilation and
+installation of an Executable, or source code differential comparisons against
+either the Original Code or another well known, available Covered Code of the
+Contributor's choice. The Source Code can be in a compressed or archival form,
+provided the appropriate decompression or de-archiving software is widely
+available for no charge.
+
+ 1.12. "You" (or "Your") means an individual or a legal entity
+exercising rights under, and complying with all of the terms of, this License
+or a future version of this License issued under Section 6.1. For legal
+entities, "You" includes any entity which controls, is controlled by, or is
+under common control with You. For purposes of this definition, "control"
+means (a) the power, direct or indirect, to cause the direction or management
+of such entity, whether by contract or otherwise, or (b) ownership of more
+than fifty percent (50%) of the outstanding shares or beneficial ownership of
+such entity.
+
+2. Source Code License.
+
+ 2.1. The Initial Developer Grant.
+ The Initial Developer hereby grants You a world-wide, royalty-free,
+non-exclusive license, subject to third party intellectual property claims:
+ (a) under intellectual property rights (other than patent or
+trademark) Licensable by Initial Developer to use, reproduce, modify, display,
+perform, sublicense and distribute the Original Code (or portions thereof)
+with or without Modifications, and/or as part of a Larger Work; and
+
+ (b) under Patents Claims infringed by the making, using or selling
+of Original Code, to make, have made, use, practice, sell, and offer for sale,
+and/or otherwise dispose of the Original Code (or portions thereof).
+ (c) the licenses granted in this Section 2.1(a) and
+(b) are effective on the date Initial Developer first distributes Original
+Code under the terms of this License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent license is
+granted: 1) for code that You delete from the Original Code; 2) separate from
+the Original Code; or 3) for infringements caused by: i) the modification of
+the Original Code or ii) the combination of the Original Code with other
+software or devices.
+
+ 2.2. Contributor Grant.
+ Subject to third party intellectual property claims, each Contributor
+hereby grants You a world-wide, royalty-free, non-exclusive license
+
+ (a) under intellectual property rights (other than patent or
+trademark) Licensable by Contributor, to use, reproduce, modify, display,
+perform, sublicense and distribute the Modifications created by such
+Contributor (or portions thereof) either on an unmodified basis, with other
+Modifications, as Covered Code and/or as part of a Larger Work; and
+
+ (b) under Patent Claims infringed by the making, using, or selling
+of Modifications made by that Contributor either alone and/or in combination
+with its Contributor Version (or portions of such combination), to make, use,
+sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications
+made by that Contributor (or portions thereof); and 2) the combination of
+Modifications made by that Contributor with its Contributor Version (or
+portions of such combination).
+
+ (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+effective on the date Contributor first makes Commercial Use of the Covered
+Code.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent license is
+granted: 1) for any code that Contributor has deleted from the Contributor
+Version; 2) separate from the Contributor Version; 3) for infringements
+caused by: i) third party modifications of Contributor Version or ii) the
+combination of Modifications made by that Contributor with other software
+(except as part of the Contributor Version) or other devices; or 4) under
+Patent Claims infringed by Covered Code in the absence of Modifications made
+by that Contributor.
+
+
+3. Distribution Obligations.
+
+ 3.1. Application of License.
+ The Modifications which You create or to which You contribute are
+governed by the terms of this License, including without limitation Section
+2.2. The Source Code version of Covered Code may be distributed only under the
+terms of this License or a future version of this License released under
+Section 6.1, and You must include a copy of this License with every copy of
+the Source Code You distribute. You may not offer or impose any terms on any
+Source Code version that alters or restricts the applicable version of this
+License or the recipients' rights hereunder. However, You may include an
+additional document offering the additional rights described in Section 3.5.
+
+ 3.2. Availability of Source Code.
+ Any Modification which You create or to which You contribute must be
+made available in Source Code form under the terms of this License either on
+the same media as an Executable version or via an accepted Electronic
+Distribution Mechanism to anyone to whom you made an Executable version
+available; and if made available via Electronic Distribution Mechanism, must
+remain available for at least twelve (12) months after the date it initially
+became available, or at least six (6) months after a subsequent version of
+that particular Modification has been made available to such recipients. You
+are responsible for ensuring that the Source Code version remains available
+even if the Electronic Distribution Mechanism is maintained by a third party.
+
+ 3.3. Description of Modifications.
+ You must cause all Covered Code to which You contribute to contain a
+file documenting the changes You made to create that Covered Code and the date
+of any change. You must include a prominent statement that the Modification is
+derived, directly or indirectly, from Original Code provided by the Initial
+Developer and including the name of the Initial Developer in (a) the Source
+Code, and (b) in any notice in an Executable version or related documentation
+in which You describe the origin or ownership of the Covered Code.
+
+ 3.4. Intellectual Property Matters
+ (a) Third Party Claims.
+ If Contributor has knowledge that a license under a third party's
+intellectual property rights is required to exercise the rights granted by
+such Contributor under Sections 2.1 or 2.2, Contributor must include a text
+file with the Source Code distribution titled "LEGAL" which describes the
+claim and the party making the claim in sufficient detail that a recipient
+will know whom to contact. If Contributor obtains such knowledge after the
+Modification is made available as described in Section 3.2, Contributor shall
+promptly modify the LEGAL file in all copies Contributor makes available
+thereafter and shall take other steps (such as notifying appropriate mailing
+lists or newsgroups) reasonably calculated to inform those who received the
+Covered Code that new knowledge has been obtained.
+
+ (b) Contributor APIs.
+ If Contributor's Modifications include an application programming
+interface and Contributor has knowledge of patent licenses which are
+reasonably necessary to implement that API, Contributor must also include this
+information in the LEGAL file.
+
+ (c) Representations.
+ Contributor represents that, except as disclosed pursuant to
+Section 3.4(a) above, Contributor believes that Contributor's Modifications
+are Contributor's original creation(s) and/or Contributor has sufficient
+rights to grant the rights conveyed by this License.
+
+
+ 3.5. Required Notices.
+ You must duplicate the notice in Exhibit A in each file of the Source
+Code. If it is not possible to put such notice in a particular Source Code
+file due to its structure, then You must include such notice in a location
+(such as a relevant directory) where a user would be likely to look for such a
+notice. If You created one or more Modification(s) You may add your name as a
+Contributor to the notice described in Exhibit A. You must also duplicate
+this License in any documentation for the Source Code where You describe
+recipients' rights or ownership rights relating to Covered Code. You may
+choose to offer, and to charge a fee for, warranty, support, indemnity or
+liability obligations to one or more recipients of Covered Code. However, You
+may do so only on Your own behalf, and not on behalf of the Initial Developer
+or any Contributor. You must make it absolutely clear than any such warranty,
+support, indemnity or liability obligation is offered by You alone, and You
+hereby agree to indemnify the Initial Developer and every Contributor for any
+liability incurred by the Initial Developer or such Contributor as a result of
+warranty, support, indemnity or liability terms You offer.
+
+ 3.6. Distribution of Executable Versions.
+ You may distribute Covered Code in Executable form only if the
+requirements of Section 3.1-3.5 have been met for that Covered Code, and if
+You include a notice stating that the Source Code version of the Covered Code
+is available under the terms of this License, including a description of how
+and where You have fulfilled the obligations of Section 3.2. The notice must
+be conspicuously included in any notice in an Executable version, related
+documentation or collateral in which You describe recipients' rights relating
+to the Covered Code. You may distribute the Executable version of Covered Code
+or ownership rights under a license of Your choice, which may contain terms
+different from this License, provided that You are in compliance with the
+terms of this License and that the license for the Executable version does not
+attempt to limit or alter the recipient's rights in the Source Code version
+from the rights set forth in this License. If You distribute the Executable
+version under a different license You must make it absolutely clear that any
+terms which differ from this License are offered by You alone, not by the
+Initial Developer or any Contributor. You hereby agree to indemnify the
+Initial Developer and every Contributor for any liability incurred by the
+Initial Developer or such Contributor as a result of any such terms You offer.
+
+ 3.7. Larger Works.
+ You may create a Larger Work by combining Covered Code with other code
+not governed by the terms of this License and distribute the Larger Work as a
+single product. In such a case, You must make sure the requirements of this
+License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+ If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Code due to statute,
+judicial order, or regulation then You must: (a) comply with the terms of this
+License to the maximum extent possible; and (b) describe the limitations and
+the code they affect. Such description must be included in the LEGAL file
+described in Section 3.4 and must be included with all distributions of the
+Source Code. Except to the extent prohibited by statute or regulation, such
+description must be sufficiently detailed for a recipient of ordinary skill to
+be able to understand it.
+
+5. Application of this License.
+
+ This License applies to code to which the Initial Developer has attached
+the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+ 6.1. New Versions.
+ Netscape Communications Corporation ("Netscape") may publish revised
+and/or new versions of the License from time to time. Each version will be
+given a distinguishing version number.
+
+ 6.2. Effect of New Versions.
+ Once Covered Code has been published under a particular version of the
+License, You may always continue to use it under the terms of that version.
+You may also choose to use such Covered Code under the terms of any subsequent
+version of the License published by Netscape. No one other than Netscape has
+the right to modify the terms applicable to Covered Code created under this
+License.
+
+ 6.3. Derivative Works.
+ If You create or use a modified version of this License (which you may
+only do in order to apply it to code which is not already Covered Code
+governed by this License), You must (a) rename Your license so that the
+phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "MPL", "NPL" or
+any confusingly similar phrase do not appear in your license (except to note
+that your license differs from this License) and (b) otherwise make it clear
+that Your version of the license contains terms which differ from the Mozilla
+Public License and Netscape Public License. (Filling in the name of the
+Initial Developer, Original Code or Contributor in the notice described in
+Exhibit A shall not of themselves be deemed to be modifications of this
+License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+ COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE,
+FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE
+QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED
+CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY
+OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR
+CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
+LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+DISCLAIMER.
+
+8. TERMINATION.
+
+ 8.1. This License and the rights granted hereunder will terminate
+automatically if You fail to comply with terms herein and fail to cure such
+breach within 30 days of becoming aware of the breach. All sublicenses to the
+Covered Code which are properly granted shall survive any termination of this
+License. Provisions which, by their nature, must remain in effect beyond the
+termination of this License shall survive.
+
+ 8.2. If You initiate litigation by asserting a patent infringement
+claim (excluding declatory judgment actions) against Initial Developer or a
+Contributor (the Initial Developer or Contributor against whom You file such
+action is referred to as "Participant") alleging that:
+
+ (a) such Participant's Contributor Version directly or indirectly
+infringes any patent, then any and all rights granted by such Participant to
+You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice
+from Participant terminate prospectively, unless if within 60 days after
+receipt of notice You either: (i) agree in writing to pay Participant a
+mutually agreeable reasonable royalty for Your past and future use of
+Modifications made by such Participant, or (ii) withdraw Your litigation claim
+with respect to the Contributor Version against such Participant. If within
+60 days of notice, a reasonable royalty and payment arrangement are not
+mutually agreed upon in writing by the parties or the litigation claim is not
+withdrawn, the rights granted by Participant to You under Sections 2.1 and/or
+2.2 automatically terminate at the expiration of the 60 day notice period
+specified above.
+
+ (b) any software, hardware, or device, other than such Participant's
+Contributor Version, directly or indirectly infringes any patent, then any
+rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are
+revoked effective as of the date You first made, used, sold, distributed, or
+had made, Modifications made by that Participant.
+
+ 8.3. If You assert a patent infringement claim against Participant
+alleging that such Participant's Contributor Version directly or indirectly
+infringes any patent where such claim is resolved (such as by license or
+settlement) prior to the initiation of patent infringement litigation, then
+the reasonable value of the licenses granted by such Participant under
+Sections 2.1 or 2.2 shall be taken into account in determining the amount or
+value of any payment or license.
+
+ 8.4. In the event of termination under Sections 8.1 or 8.2 above, all
+end user license agreements (excluding distributors and resellers) which have
+been validly granted by You or any distributor hereunder prior to termination
+shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY
+SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT,
+SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING,
+WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER
+FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES,
+EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH
+DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH
+OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
+APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
+EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+ The Covered Code is a "commercial item," as that term is defined in 48
+C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and
+"commercial computer software documentation," as such terms are used in 48
+C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R.
+227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users
+acquire Covered Code with only those rights set forth herein.
+
+11. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject matter
+hereof. If any provision of this License is held to be unenforceable, such
+provision shall be reformed only to the extent necessary to make it
+enforceable. This License shall be governed by California law provisions
+(except to the extent applicable law, if any, provides otherwise), excluding
+its conflict-of-law provisions. With respect to disputes in which at least one
+party is a citizen of, or an entity chartered or registered to do business in
+the United States of America, any litigation relating to this License shall be
+subject to the jurisdiction of the Federal Courts of the Northern District of
+California, with venue lying in Santa Clara County, California, with the
+losing party responsible for costs, including without limitation, court costs
+and reasonable attorneys' fees and expenses. The application of the United
+Nations Convention on Contracts for the International Sale of Goods is
+expressly excluded. Any law or regulation which provides that the language of
+a contract shall be construed against the drafter shall not apply to this
+License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is
+responsible for claims and damages arising, directly or indirectly, out of its
+utilization of rights under this License and You agree to work with Initial
+Developer and Contributors to distribute such responsibility on an equitable
+basis. Nothing herein is intended or shall be deemed to constitute any
+admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+ Initial Developer may designate portions of the Covered Code as
+Multiple-Licensed. Multiple-Licensed means that the Initial Developer permits
+you to utilize portions of the Covered Code under Your choice of the MPL or
+the alternative licenses, if any, specified by the Initial Developer in the
+file described in Exhibit A.
+
+
+EXHIBIT A -Mozilla Public License.
+
+ ``The contents of this file are subject to the Mozilla Public License
+Version 1.1 (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.mozilla.org/MPL/
+
+ Software distributed under the License is distributed on an "AS IS"
+basis, WITHOUT WARRANTY OF
+ ANY KIND, either express or implied. See the License for the specific
+language governing rights and
+ limitations under the License.
+
+ The Original Code is ______________________________________.
+
+ The Initial Developer of the Original Code is ________________________.
+Portions created by
+ ______________________ are Copyright (C) ______
+_______________________. All Rights
+ Reserved.
+
+ Contributor(s): ______________________________________.
+
+ Alternatively, the contents of this file may be used under the terms of
+the _____ license (the [___] License), in which case the provisions of
+[______] License are applicable instead of those above. If you wish to allow
+use of your version of this file only under the terms of the [____] License
+and not to allow others to use your version of this file under the MPL,
+indicate your decision by deleting the provisions above and replace them
+with the notice and other provisions required by the [___] License. If you do
+not delete the provisions above, a recipient may use your version of this file
+under either the MPL or the [___] License."
+
+ [NOTE: The text of this Exhibit A may differ slightly from the text of
+the notices in the Source Code files of the Original Code. You should use the
+text of this Exhibit A rather than the text found in the Original Code Source
+Code for Your Modifications.]
+
+
+===============================================================================
+
+For the JAX-WS Reference Implementation component:
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+
+
+ 1. Definitions.
+
+ 1.1. "Contributor" means each individual or entity that
+ creates or contributes to the creation of Modifications.
+
+ 1.2. "Contributor Version" means the combination of the
+ Original Software, prior Modifications used by a
+ Contributor (if any), and the Modifications made by that
+ particular Contributor.
+
+ 1.3. "Covered Software" means (a) the Original Software, or
+ (b) Modifications, or (c) the combination of files
+ containing Original Software with files containing
+ Modifications, in each case including portions thereof.
+
+ 1.4. "Executable" means the Covered Software in any form
+ other than Source Code.
+
+ 1.5. "Initial Developer" means the individual or entity
+ that first makes Original Software available under this
+ License.
+
+ 1.6. "Larger Work" means a work which combines Covered
+ Software or portions thereof with code not governed by the
+ terms of this License.
+
+ 1.7. "License" means this document.
+
+ 1.8. "Licensable" means having the right to grant, to the
+ maximum extent possible, whether at the time of the initial
+ grant or subsequently acquired, any and all of the rights
+ conveyed herein.
+
+ 1.9. "Modifications" means the Source Code and Executable
+ form of any of the following:
+
+ A. Any file that results from an addition to,
+ deletion from or modification of the contents of a
+ file containing Original Software or previous
+ Modifications;
+
+ B. Any new file that contains any part of the
+ Original Software or previous Modification; or
+
+ C. Any new file that is contributed or otherwise made
+ available under the terms of this License.
+
+ 1.10. "Original Software" means the Source Code and
+ Executable form of computer software code that is
+ originally released under this License.
+
+ 1.11. "Patent Claims" means any patent claim(s), now owned
+ or hereafter acquired, including without limitation,
+ method, process, and apparatus claims, in any patent
+ Licensable by grantor.
+
+ 1.12. "Source Code" means (a) the common form of computer
+ software code in which modifications are made and (b)
+ associated documentation included in or with such code.
+
+ 1.13. "You" (or "Your") means an individual or a legal
+ entity exercising rights under, and complying with all of
+ the terms of, this License. For legal entities, "You"
+ includes any entity which controls, is controlled by, or is
+ under common control with You. For purposes of this
+ definition, "control" means (a) the power, direct or
+ indirect, to cause the direction or management of such
+ entity, whether by contract or otherwise, or (b) ownership
+ of more than fifty percent (50%) of the outstanding shares
+ or beneficial ownership of such entity.
+
+ 2. License Grants.
+
+ 2.1. The Initial Developer Grant.
+
+ Conditioned upon Your compliance with Section 3.1 below and
+ subject to third party intellectual property claims, the
+ Initial Developer hereby grants You a world-wide,
+ royalty-free, non-exclusive license:
+
+ (a) under intellectual property rights (other than
+ patent or trademark) Licensable by Initial Developer,
+ to use, reproduce, modify, display, perform,
+ sublicense and distribute the Original Software (or
+ portions thereof), with or without Modifications,
+ and/or as part of a Larger Work; and
+
+ (b) under Patent Claims infringed by the making,
+ using or selling of Original Software, to make, have
+ made, use, practice, sell, and offer for sale, and/or
+ otherwise dispose of the Original Software (or
+ portions thereof).
+
+ (c) The licenses granted in Sections 2.1(a) and (b)
+ are effective on the date Initial Developer first
+ distributes or otherwise makes the Original Software
+ available to a third party under the terms of this
+ License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent
+ license is granted: (1) for code that You delete from
+ the Original Software, or (2) for infringements
+ caused by: (i) the modification of the Original
+ Software, or (ii) the combination of the Original
+ Software with other software or devices.
+
+ 2.2. Contributor Grant.
+
+ Conditioned upon Your compliance with Section 3.1 below and
+ subject to third party intellectual property claims, each
+ Contributor hereby grants You a world-wide, royalty-free,
+ non-exclusive license:
+
+ (a) under intellectual property rights (other than
+ patent or trademark) Licensable by Contributor to
+ use, reproduce, modify, display, perform, sublicense
+ and distribute the Modifications created by such
+ Contributor (or portions thereof), either on an
+ unmodified basis, with other Modifications, as
+ Covered Software and/or as part of a Larger Work; and
+
+
+ (b) under Patent Claims infringed by the making,
+ using, or selling of Modifications made by that
+ Contributor either alone and/or in combination with
+ its Contributor Version (or portions of such
+ combination), to make, use, sell, offer for sale,
+ have made, and/or otherwise dispose of: (1)
+ Modifications made by that Contributor (or portions
+ thereof); and (2) the combination of Modifications
+ made by that Contributor with its Contributor Version
+ (or portions of such combination).
+
+ (c) The licenses granted in Sections 2.2(a) and
+ 2.2(b) are effective on the date Contributor first
+ distributes or otherwise makes the Modifications
+ available to a third party.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent
+ license is granted: (1) for any code that Contributor
+ has deleted from the Contributor Version; (2) for
+ infringements caused by: (i) third party
+ modifications of Contributor Version, or (ii) the
+ combination of Modifications made by that Contributor
+ with other software (except as part of the
+ Contributor Version) or other devices; or (3) under
+ Patent Claims infringed by Covered Software in the
+ absence of Modifications made by that Contributor.
+
+ 3. Distribution Obligations.
+
+ 3.1. Availability of Source Code.
+
+ Any Covered Software that You distribute or otherwise make
+ available in Executable form must also be made available in
+ Source Code form and that Source Code form must be
+ distributed only under the terms of this License. You must
+ include a copy of this License with every copy of the
+ Source Code form of the Covered Software You distribute or
+ otherwise make available. You must inform recipients of any
+ such Covered Software in Executable form as to how they can
+ obtain such Covered Software in Source Code form in a
+ reasonable manner on or through a medium customarily used
+ for software exchange.
+
+ 3.2. Modifications.
+
+ The Modifications that You create or to which You
+ contribute are governed by the terms of this License. You
+ represent that You believe Your Modifications are Your
+ original creation(s) and/or You have sufficient rights to
+ grant the rights conveyed by this License.
+
+ 3.3. Required Notices.
+
+ You must include a notice in each of Your Modifications
+ that identifies You as the Contributor of the Modification.
+ You may not remove or alter any copyright, patent or
+ trademark notices contained within the Covered Software, or
+ any notices of licensing or any descriptive text giving
+ attribution to any Contributor or the Initial Developer.
+
+ 3.4. Application of Additional Terms.
+
+ You may not offer or impose any terms on any Covered
+ Software in Source Code form that alters or restricts the
+ applicable version of this License or the recipients'
+ rights hereunder. You may choose to offer, and to charge a
+ fee for, warranty, support, indemnity or liability
+ obligations to one or more recipients of Covered Software.
+ However, you may do so only on Your own behalf, and not on
+ behalf of the Initial Developer or any Contributor. You
+ must make it absolutely clear that any such warranty,
+ support, indemnity or liability obligation is offered by
+ You alone, and You hereby agree to indemnify the Initial
+ Developer and every Contributor for any liability incurred
+ by the Initial Developer or such Contributor as a result of
+ warranty, support, indemnity or liability terms You offer.
+
+
+ 3.5. Distribution of Executable Versions.
+
+ You may distribute the Executable form of the Covered
+ Software under the terms of this License or under the terms
+ of a license of Your choice, which may contain terms
+ different from this License, provided that You are in
+ compliance with the terms of this License and that the
+ license for the Executable form does not attempt to limit
+ or alter the recipient's rights in the Source Code form
+ from the rights set forth in this License. If You
+ distribute the Covered Software in Executable form under a
+ different license, You must make it absolutely clear that
+ any terms which differ from this License are offered by You
+ alone, not by the Initial Developer or Contributor. You
+ hereby agree to indemnify the Initial Developer and every
+ Contributor for any liability incurred by the Initial
+ Developer or such Contributor as a result of any such terms
+ You offer.
+
+ 3.6. Larger Works.
+
+ You may create a Larger Work by combining Covered Software
+ with other code not governed by the terms of this License
+ and distribute the Larger Work as a single product. In such
+ a case, You must make sure the requirements of this License
+ are fulfilled for the Covered Software.
+
+ 4. Versions of the License.
+
+ 4.1. New Versions.
+
+ Sun Microsystems, Inc. is the initial license steward and
+ may publish revised and/or new versions of this License
+ from time to time. Each version will be given a
+ distinguishing version number. Except as provided in
+ Section 4.3, no one other than the license steward has the
+ right to modify this License.
+
+ 4.2. Effect of New Versions.
+
+ You may always continue to use, distribute or otherwise
+ make the Covered Software available under the terms of the
+ version of the License under which You originally received
+ the Covered Software. If the Initial Developer includes a
+ notice in the Original Software prohibiting it from being
+ distributed or otherwise made available under any
+ subsequent version of the License, You must distribute and
+ make the Covered Software available under the terms of the
+ version of the License under which You originally received
+ the Covered Software. Otherwise, You may also choose to
+ use, distribute or otherwise make the Covered Software
+ available under the terms of any subsequent version of the
+ License published by the license steward.
+
+ 4.3. Modified Versions.
+
+ When You are an Initial Developer and You want to create a
+ new license for Your Original Software, You may create and
+ use a modified version of this License if You: (a) rename
+ the license and remove any references to the name of the
+ license steward (except to note that the license differs
+ from this License); and (b) otherwise make it clear that
+ the license contains terms which differ from this License.
+
+
+ 5. DISCLAIMER OF WARRANTY.
+
+ COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
+ BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+ INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
+ SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
+ PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
+ PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
+ COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
+ INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF
+ ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
+ WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+ ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+ DISCLAIMER.
+
+ 6. TERMINATION.
+
+ 6.1. This License and the rights granted hereunder will
+ terminate automatically if You fail to comply with terms
+ herein and fail to cure such breach within 30 days of
+ becoming aware of the breach. Provisions which, by their
+ nature, must remain in effect beyond the termination of
+ this License shall survive.
+
+ 6.2. If You assert a patent infringement claim (excluding
+ declaratory judgment actions) against Initial Developer or
+ a Contributor (the Initial Developer or Contributor against
+ whom You assert such claim is referred to as "Participant")
+ alleging that the Participant Software (meaning the
+ Contributor Version where the Participant is a Contributor
+ or the Original Software where the Participant is the
+ Initial Developer) directly or indirectly infringes any
+ patent, then any and all rights granted directly or
+ indirectly to You by such Participant, the Initial
+ Developer (if the Initial Developer is not the Participant)
+ and all Contributors under Sections 2.1 and/or 2.2 of this
+ License shall, upon 60 days notice from Participant
+ terminate prospectively and automatically at the expiration
+ of such 60 day notice period, unless if within such 60 day
+ period You withdraw Your claim with respect to the
+ Participant Software against such Participant either
+ unilaterally or pursuant to a written agreement with
+ Participant.
+
+ 6.3. In the event of termination under Sections 6.1 or 6.2
+ above, all end user licenses that have been validly granted
+ by You or any distributor hereunder prior to termination
+ (excluding licenses granted to You by any distributor)
+ shall survive termination.
+
+ 7. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+ (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
+ INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
+ COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
+ LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
+ CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+ LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
+ STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+ COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+ INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+ LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
+ INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
+ APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
+ NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
+ CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
+ APPLY TO YOU.
+
+ 8. U.S. GOVERNMENT END USERS.
+
+ The Covered Software is a "commercial item," as that term is
+ defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
+ computer software" (as that term is defined at 48 C.F.R.
+ 252.227-7014(a)(1)) and "commercial computer software
+ documentation" as such terms are used in 48 C.F.R. 12.212 (Sept.
+ 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
+ through 227.7202-4 (June 1995), all U.S. Government End Users
+ acquire Covered Software with only those rights set forth herein.
+ This U.S. Government Rights clause is in lieu of, and supersedes,
+ any other FAR, DFAR, or other clause or provision that addresses
+ Government rights in computer software under this License.
+
+ 9. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject
+ matter hereof. If any provision of this License is held to be
+ unenforceable, such provision shall be reformed only to the
+ extent necessary to make it enforceable. This License shall be
+ governed by the law of the jurisdiction specified in a notice
+ contained within the Original Software (except to the extent
+ applicable law, if any, provides otherwise), excluding such
+ jurisdiction's conflict-of-law provisions. Any litigation
+ relating to this License shall be subject to the jurisdiction of
+ the courts located in the jurisdiction and venue specified in a
+ notice contained within the Original Software, with the losing
+ party responsible for costs, including, without limitation, court
+ costs and reasonable attorneys' fees and expenses. The
+ application of the United Nations Convention on Contracts for the
+ International Sale of Goods is expressly excluded. Any law or
+ regulation which provides that the language of a contract shall
+ be construed against the drafter shall not apply to this License.
+ You agree that You alone are responsible for compliance with the
+ United States export administration regulations (and the export
+ control laws and regulation of any other countries) when You use,
+ distribute or otherwise make available any Covered Software.
+
+ 10. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is
+ responsible for claims and damages arising, directly or
+ indirectly, out of its utilization of rights under this License
+ and You agree to work with Initial Developer and Contributors to
+ distribute such responsibility on an equitable basis. Nothing
+ herein is intended or shall be deemed to constitute any admission
+ of liability.
+
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/resources/META-INF/NOTICE b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000000..d48810c0ec
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,18 @@
+=========================================================================
+== NOTICE file corresponding to the section 4 d of ==
+== the Apache License, Version 2.0, ==
+== in this case for the Apache Tuscany distribution. ==
+=========================================================================
+
+This product includes software developed by the Apache Software Foundation
+(http://www.apache.org/).
+
+This product also includes software developed by:
+- the Eclipse Modeling Framework project (http://www.eclipse.org/emf/)
+- the Celtix project (http://celtix.objectweb.org/)
+- the Mozilla Rhino project (http://www.mozilla.org/rhino/)
+- the GlassFish JAX-WS project (https://jax-ws.dev.java.net/)
+
+Please read the LICENSE.txt file present in the root directory of this
+distribution.
+
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/resources/META-INF/README.txt b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/resources/META-INF/README.txt
new file mode 100644
index 0000000000..9b26d1690a
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/main/resources/META-INF/README.txt
@@ -0,0 +1,35 @@
+Apache Tuscany M1 build (May, 2006)
+===================================
+
+http://incubator.apache.org/tuscany/
+
+Tuscany is an effort undergoing incubation at the Apache Software Foundation
+(ASF), sponsored by the Web Services PMC.
+
+Incubation is required of all newly accepted projects until a further review
+indicates that the infrastructure, communications, and decision making process
+have stabilized in a manner consistent with other successful ASF projects.
+
+While incubation status is not necessarily a reflection of the completeness or
+stability of the code, it does indicate that the project has yet to be fully
+endorsed by the ASF.
+
+
+Support
+-------
+
+Any problem with this release can be reported to the Tuscany mailing list
+or in the JIRA issue tracker.
+
+Mailing list subscription:
+ tuscany-dev-subscribe@ws.apache.org
+
+Jira:
+ http://issues.apache.org/jira/browse/Tuscany
+
+
+Thank you for using Tuscany!
+
+
+The Tuscany Team.
+
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/MixedQuote.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/MixedQuote.java
new file mode 100644
index 0000000000..8ec83abfdb
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/MixedQuote.java
@@ -0,0 +1,323 @@
+/**
+ *
+ * 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 com.example.sequences;
+
+import commonj.sdo.Sequence;
+
+import java.math.BigDecimal;
+
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Mixed Quote</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link com.example.sequences.MixedQuote#getMixed <em>Mixed</em>}</li>
+ * <li>{@link com.example.sequences.MixedQuote#getSymbol <em>Symbol</em>}</li>
+ * <li>{@link com.example.sequences.MixedQuote#getCompanyName <em>Company Name</em>}</li>
+ * <li>{@link com.example.sequences.MixedQuote#getPrice <em>Price</em>}</li>
+ * <li>{@link com.example.sequences.MixedQuote#getOpen1 <em>Open1</em>}</li>
+ * <li>{@link com.example.sequences.MixedQuote#getHigh <em>High</em>}</li>
+ * <li>{@link com.example.sequences.MixedQuote#getLow <em>Low</em>}</li>
+ * <li>{@link com.example.sequences.MixedQuote#getVolume <em>Volume</em>}</li>
+ * <li>{@link com.example.sequences.MixedQuote#getChange1 <em>Change1</em>}</li>
+ * <li>{@link com.example.sequences.MixedQuote#getQuotes <em>Quotes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface MixedQuote
+{
+ /**
+ * Returns the value of the '<em><b>Mixed</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mixed</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>Mixed</em>' attribute list.
+ * @generated
+ */
+ Sequence getMixed();
+
+ /**
+ * Returns the value of the '<em><b>Symbol</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Symbol</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Symbol</em>' attribute.
+ * @see #setSymbol(String)
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * Sets the value of the '{@link com.example.sequences.MixedQuote#getSymbol <em>Symbol</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Symbol</em>' attribute.
+ * @see #getSymbol()
+ * @generated
+ */
+ void setSymbol(String value);
+
+ /**
+ * Returns the value of the '<em><b>Company Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Company 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>Company Name</em>' attribute.
+ * @see #setCompanyName(String)
+ * @generated
+ */
+ String getCompanyName();
+
+ /**
+ * Sets the value of the '{@link com.example.sequences.MixedQuote#getCompanyName <em>Company Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Company Name</em>' attribute.
+ * @see #getCompanyName()
+ * @generated
+ */
+ void setCompanyName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Price</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Price</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Price</em>' attribute.
+ * @see #setPrice(BigDecimal)
+ * @generated
+ */
+ BigDecimal getPrice();
+
+ /**
+ * Sets the value of the '{@link com.example.sequences.MixedQuote#getPrice <em>Price</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Price</em>' attribute.
+ * @see #getPrice()
+ * @generated
+ */
+ void setPrice(BigDecimal value);
+
+ /**
+ * Returns the value of the '<em><b>Open1</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Open1</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Open1</em>' attribute.
+ * @see #setOpen1(BigDecimal)
+ * @generated
+ */
+ BigDecimal getOpen1();
+
+ /**
+ * Sets the value of the '{@link com.example.sequences.MixedQuote#getOpen1 <em>Open1</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Open1</em>' attribute.
+ * @see #getOpen1()
+ * @generated
+ */
+ void setOpen1(BigDecimal value);
+
+ /**
+ * Returns the value of the '<em><b>High</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>High</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>High</em>' attribute.
+ * @see #setHigh(BigDecimal)
+ * @generated
+ */
+ BigDecimal getHigh();
+
+ /**
+ * Sets the value of the '{@link com.example.sequences.MixedQuote#getHigh <em>High</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>High</em>' attribute.
+ * @see #getHigh()
+ * @generated
+ */
+ void setHigh(BigDecimal value);
+
+ /**
+ * Returns the value of the '<em><b>Low</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Low</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Low</em>' attribute.
+ * @see #setLow(BigDecimal)
+ * @generated
+ */
+ BigDecimal getLow();
+
+ /**
+ * Sets the value of the '{@link com.example.sequences.MixedQuote#getLow <em>Low</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Low</em>' attribute.
+ * @see #getLow()
+ * @generated
+ */
+ void setLow(BigDecimal value);
+
+ /**
+ * Returns the value of the '<em><b>Volume</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Volume</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Volume</em>' attribute.
+ * @see #isSetVolume()
+ * @see #unsetVolume()
+ * @see #setVolume(double)
+ * @generated
+ */
+ double getVolume();
+
+ /**
+ * Sets the value of the '{@link com.example.sequences.MixedQuote#getVolume <em>Volume</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Volume</em>' attribute.
+ * @see #isSetVolume()
+ * @see #unsetVolume()
+ * @see #getVolume()
+ * @generated
+ */
+ void setVolume(double value);
+
+ /**
+ * Unsets the value of the '{@link com.example.sequences.MixedQuote#getVolume <em>Volume</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetVolume()
+ * @see #getVolume()
+ * @see #setVolume(double)
+ * @generated
+ */
+ void unsetVolume();
+
+ /**
+ * Returns whether the value of the '{@link com.example.sequences.MixedQuote#getVolume <em>Volume</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Volume</em>' attribute is set.
+ * @see #unsetVolume()
+ * @see #getVolume()
+ * @see #setVolume(double)
+ * @generated
+ */
+ boolean isSetVolume();
+
+ /**
+ * Returns the value of the '<em><b>Change1</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Change1</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Change1</em>' attribute.
+ * @see #isSetChange1()
+ * @see #unsetChange1()
+ * @see #setChange1(double)
+ * @generated
+ */
+ double getChange1();
+
+ /**
+ * Sets the value of the '{@link com.example.sequences.MixedQuote#getChange1 <em>Change1</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Change1</em>' attribute.
+ * @see #isSetChange1()
+ * @see #unsetChange1()
+ * @see #getChange1()
+ * @generated
+ */
+ void setChange1(double value);
+
+ /**
+ * Unsets the value of the '{@link com.example.sequences.MixedQuote#getChange1 <em>Change1</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetChange1()
+ * @see #getChange1()
+ * @see #setChange1(double)
+ * @generated
+ */
+ void unsetChange1();
+
+ /**
+ * Returns whether the value of the '{@link com.example.sequences.MixedQuote#getChange1 <em>Change1</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Change1</em>' attribute is set.
+ * @see #unsetChange1()
+ * @see #getChange1()
+ * @see #setChange1(double)
+ * @generated
+ */
+ boolean isSetChange1();
+
+ /**
+ * Returns the value of the '<em><b>Quotes</b></em>' containment reference list.
+ * The list contents are of type {@link com.example.sequences.MixedQuote}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Quotes</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>Quotes</em>' containment reference list.
+ * @generated
+ */
+ List getQuotes();
+
+} // MixedQuote
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/MixedRepeatingChoice.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/MixedRepeatingChoice.java
new file mode 100644
index 0000000000..f92285c048
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/MixedRepeatingChoice.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 com.example.sequences;
+
+import commonj.sdo.Sequence;
+
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Mixed Repeating Choice</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link com.example.sequences.MixedRepeatingChoice#getMixed <em>Mixed</em>}</li>
+ * <li>{@link com.example.sequences.MixedRepeatingChoice#getGroup <em>Group</em>}</li>
+ * <li>{@link com.example.sequences.MixedRepeatingChoice#getA <em>A</em>}</li>
+ * <li>{@link com.example.sequences.MixedRepeatingChoice#getB <em>B</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface MixedRepeatingChoice
+{
+ /**
+ * Returns the value of the '<em><b>Mixed</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mixed</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>Mixed</em>' attribute list.
+ * @generated
+ */
+ Sequence getMixed();
+
+ /**
+ * Returns the value of the '<em><b>Group</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group</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>Group</em>' attribute list.
+ * @generated
+ */
+ Sequence getGroup();
+
+ /**
+ * Returns the value of the '<em><b>A</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>A</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>A</em>' attribute list.
+ * @generated
+ */
+ List getA();
+
+ /**
+ * Returns the value of the '<em><b>B</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>B</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>B</em>' attribute list.
+ * @generated
+ */
+ List getB();
+
+} // MixedRepeatingChoice
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/RepeatingChoice.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/RepeatingChoice.java
new file mode 100644
index 0000000000..ab5b144e09
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/RepeatingChoice.java
@@ -0,0 +1,82 @@
+/**
+ *
+ * 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 com.example.sequences;
+
+import commonj.sdo.Sequence;
+
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Repeating Choice</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link com.example.sequences.RepeatingChoice#getGroup <em>Group</em>}</li>
+ * <li>{@link com.example.sequences.RepeatingChoice#getA <em>A</em>}</li>
+ * <li>{@link com.example.sequences.RepeatingChoice#getB <em>B</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface RepeatingChoice
+{
+ /**
+ * Returns the value of the '<em><b>Group</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group</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>Group</em>' attribute list.
+ * @generated
+ */
+ Sequence getGroup();
+
+ /**
+ * Returns the value of the '<em><b>A</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>A</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>A</em>' attribute list.
+ * @generated
+ */
+ List getA();
+
+ /**
+ * Returns the value of the '<em><b>B</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>B</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>B</em>' attribute list.
+ * @generated
+ */
+ List getB();
+
+} // RepeatingChoice
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/SequencesFactory.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/SequencesFactory.java
new file mode 100644
index 0000000000..c73310b5b5
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/SequencesFactory.java
@@ -0,0 +1,83 @@
+/**
+ *
+ * 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 com.example.sequences;
+
+
+/**
+ * <!-- 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 SequencesFactory
+{
+
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ SequencesFactory INSTANCE = com.example.sequences.impl.SequencesFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Mixed Quote</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Mixed Quote</em>'.
+ * @generated
+ */
+ MixedQuote createMixedQuote();
+
+ /**
+ * Returns a new object of class '<em>Mixed Repeating Choice</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Mixed Repeating Choice</em>'.
+ * @generated
+ */
+ MixedRepeatingChoice createMixedRepeatingChoice();
+
+ /**
+ * Returns a new object of class '<em>Repeating Choice</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Repeating Choice</em>'.
+ * @generated
+ */
+ RepeatingChoice createRepeatingChoice();
+
+ /**
+ * Returns a new object of class '<em>Two RCs</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Two RCs</em>'.
+ * @generated
+ */
+ TwoRCs createTwoRCs();
+
+ /**
+ * Returns a new object of class '<em>Two RCs Mixed</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Two RCs Mixed</em>'.
+ * @generated
+ */
+ TwoRCsMixed createTwoRCsMixed();
+
+} //SequencesFactory
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/TwoRCs.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/TwoRCs.java
new file mode 100644
index 0000000000..9615d2a0ef
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/TwoRCs.java
@@ -0,0 +1,151 @@
+/**
+ *
+ * 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 com.example.sequences;
+
+import commonj.sdo.Sequence;
+
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Two RCs</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link com.example.sequences.TwoRCs#getGroup <em>Group</em>}</li>
+ * <li>{@link com.example.sequences.TwoRCs#getA <em>A</em>}</li>
+ * <li>{@link com.example.sequences.TwoRCs#getB <em>B</em>}</li>
+ * <li>{@link com.example.sequences.TwoRCs#getSplit <em>Split</em>}</li>
+ * <li>{@link com.example.sequences.TwoRCs#getGroup1 <em>Group1</em>}</li>
+ * <li>{@link com.example.sequences.TwoRCs#getY <em>Y</em>}</li>
+ * <li>{@link com.example.sequences.TwoRCs#getZ <em>Z</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface TwoRCs
+{
+ /**
+ * Returns the value of the '<em><b>Group</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group</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>Group</em>' attribute list.
+ * @generated
+ */
+ Sequence getGroup();
+
+ /**
+ * Returns the value of the '<em><b>A</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>A</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>A</em>' attribute list.
+ * @generated
+ */
+ List getA();
+
+ /**
+ * Returns the value of the '<em><b>B</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>B</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>B</em>' attribute list.
+ * @generated
+ */
+ List getB();
+
+ /**
+ * Returns the value of the '<em><b>Split</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Split</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Split</em>' attribute.
+ * @see #setSplit(String)
+ * @generated
+ */
+ String getSplit();
+
+ /**
+ * Sets the value of the '{@link com.example.sequences.TwoRCs#getSplit <em>Split</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Split</em>' attribute.
+ * @see #getSplit()
+ * @generated
+ */
+ void setSplit(String value);
+
+ /**
+ * Returns the value of the '<em><b>Group1</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group1</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>Group1</em>' attribute list.
+ * @generated
+ */
+ Sequence getGroup1();
+
+ /**
+ * Returns the value of the '<em><b>Y</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Y</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>Y</em>' attribute list.
+ * @generated
+ */
+ List getY();
+
+ /**
+ * Returns the value of the '<em><b>Z</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Z</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>Z</em>' attribute list.
+ * @generated
+ */
+ List getZ();
+
+} // TwoRCs
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/TwoRCsMixed.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/TwoRCsMixed.java
new file mode 100644
index 0000000000..0325e2cd9c
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/TwoRCsMixed.java
@@ -0,0 +1,165 @@
+/**
+ *
+ * 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 com.example.sequences;
+
+import commonj.sdo.Sequence;
+
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Two RCs Mixed</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link com.example.sequences.TwoRCsMixed#getMixed <em>Mixed</em>}</li>
+ * <li>{@link com.example.sequences.TwoRCsMixed#getGroup <em>Group</em>}</li>
+ * <li>{@link com.example.sequences.TwoRCsMixed#getA <em>A</em>}</li>
+ * <li>{@link com.example.sequences.TwoRCsMixed#getB <em>B</em>}</li>
+ * <li>{@link com.example.sequences.TwoRCsMixed#getSplit <em>Split</em>}</li>
+ * <li>{@link com.example.sequences.TwoRCsMixed#getGroup1 <em>Group1</em>}</li>
+ * <li>{@link com.example.sequences.TwoRCsMixed#getY <em>Y</em>}</li>
+ * <li>{@link com.example.sequences.TwoRCsMixed#getZ <em>Z</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface TwoRCsMixed
+{
+ /**
+ * Returns the value of the '<em><b>Mixed</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mixed</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>Mixed</em>' attribute list.
+ * @generated
+ */
+ Sequence getMixed();
+
+ /**
+ * Returns the value of the '<em><b>Group</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group</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>Group</em>' attribute list.
+ * @generated
+ */
+ Sequence getGroup();
+
+ /**
+ * Returns the value of the '<em><b>A</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>A</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>A</em>' attribute list.
+ * @generated
+ */
+ List getA();
+
+ /**
+ * Returns the value of the '<em><b>B</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>B</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>B</em>' attribute list.
+ * @generated
+ */
+ List getB();
+
+ /**
+ * Returns the value of the '<em><b>Split</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Split</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Split</em>' attribute.
+ * @see #setSplit(String)
+ * @generated
+ */
+ String getSplit();
+
+ /**
+ * Sets the value of the '{@link com.example.sequences.TwoRCsMixed#getSplit <em>Split</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Split</em>' attribute.
+ * @see #getSplit()
+ * @generated
+ */
+ void setSplit(String value);
+
+ /**
+ * Returns the value of the '<em><b>Group1</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group1</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>Group1</em>' attribute list.
+ * @generated
+ */
+ Sequence getGroup1();
+
+ /**
+ * Returns the value of the '<em><b>Y</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Y</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>Y</em>' attribute list.
+ * @generated
+ */
+ List getY();
+
+ /**
+ * Returns the value of the '<em><b>Z</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Z</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>Z</em>' attribute list.
+ * @generated
+ */
+ List getZ();
+
+} // TwoRCsMixed
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/MixedQuoteImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/MixedQuoteImpl.java
new file mode 100644
index 0000000000..b3381cda76
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/MixedQuoteImpl.java
@@ -0,0 +1,657 @@
+/**
+ *
+ * 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 com.example.sequences.impl;
+
+import com.example.sequences.MixedQuote;
+
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+
+import commonj.sdo.helper.TypeHelper;
+
+import java.math.BigDecimal;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.tuscany.sdo.impl.DataObjectBase;
+
+import org.apache.tuscany.sdo.util.BasicSequence;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Mixed Quote</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link com.example.sequences.impl.MixedQuoteImpl#getMixed <em>Mixed</em>}</li>
+ * <li>{@link com.example.sequences.impl.MixedQuoteImpl#getSymbol <em>Symbol</em>}</li>
+ * <li>{@link com.example.sequences.impl.MixedQuoteImpl#getCompanyName <em>Company Name</em>}</li>
+ * <li>{@link com.example.sequences.impl.MixedQuoteImpl#getPrice <em>Price</em>}</li>
+ * <li>{@link com.example.sequences.impl.MixedQuoteImpl#getOpen1 <em>Open1</em>}</li>
+ * <li>{@link com.example.sequences.impl.MixedQuoteImpl#getHigh <em>High</em>}</li>
+ * <li>{@link com.example.sequences.impl.MixedQuoteImpl#getLow <em>Low</em>}</li>
+ * <li>{@link com.example.sequences.impl.MixedQuoteImpl#getVolume <em>Volume</em>}</li>
+ * <li>{@link com.example.sequences.impl.MixedQuoteImpl#getChange1 <em>Change1</em>}</li>
+ * <li>{@link com.example.sequences.impl.MixedQuoteImpl#getQuotes <em>Quotes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MixedQuoteImpl extends DataObjectBase implements MixedQuote
+{
+ /**
+ * The feature id for the '<em><b>Mixed</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int MIXED = 0;
+
+ /**
+ * The cached value of the '{@link #getMixed() <em>Mixed</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMixed()
+ * @generated
+ * @ordered
+ */
+
+ // How to get BasicSequence from Sequence?
+
+ protected BasicSequence mixed = null;
+
+ /**
+ * The feature id for the '<em><b>Symbol</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int SYMBOL = 1;
+
+ /**
+ * The default value of the '{@link #getSymbol() <em>Symbol</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSymbol()
+ * @generated
+ * @ordered
+ */
+ protected static final String SYMBOL_DEFAULT_ = null;
+
+ /**
+ * The feature id for the '<em><b>Company Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int COMPANY_NAME = 2;
+
+ /**
+ * The default value of the '{@link #getCompanyName() <em>Company Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompanyName()
+ * @generated
+ * @ordered
+ */
+ protected static final String COMPANY_NAME_DEFAULT_ = null;
+
+ /**
+ * The feature id for the '<em><b>Price</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int PRICE = 3;
+
+ /**
+ * The default value of the '{@link #getPrice() <em>Price</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPrice()
+ * @generated
+ * @ordered
+ */
+ protected static final BigDecimal PRICE_DEFAULT_ = null;
+
+ /**
+ * The feature id for the '<em><b>Open1</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int OPEN1 = 4;
+
+ /**
+ * The default value of the '{@link #getOpen1() <em>Open1</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOpen1()
+ * @generated
+ * @ordered
+ */
+ protected static final BigDecimal OPEN1_DEFAULT_ = null;
+
+ /**
+ * The feature id for the '<em><b>High</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int HIGH = 5;
+
+ /**
+ * The default value of the '{@link #getHigh() <em>High</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHigh()
+ * @generated
+ * @ordered
+ */
+ protected static final BigDecimal HIGH_DEFAULT_ = null;
+
+ /**
+ * The feature id for the '<em><b>Low</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int LOW = 6;
+
+ /**
+ * The default value of the '{@link #getLow() <em>Low</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLow()
+ * @generated
+ * @ordered
+ */
+ protected static final BigDecimal LOW_DEFAULT_ = null;
+
+ /**
+ * The feature id for the '<em><b>Volume</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int VOLUME = 7;
+
+ /**
+ * The feature id for the '<em><b>Change1</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int CHANGE1 = 8;
+
+ /**
+ * The feature id for the '<em><b>Quotes</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int QUOTES = 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MixedQuoteImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type getType()
+ {
+ return TypeHelper.INSTANCE.getType(MixedQuote.class); //TBD Generate a more efficient implementation
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getMixed()
+ {
+ if (mixed == null)
+ {
+ mixed = createSequence(MIXED);
+
+ }
+ return mixed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol()
+ {
+ return (String)get(getMixed(), getType(), SYMBOL);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSymbol(String newSymbol)
+ {
+ set(getMixed(), getType(), SYMBOL, newSymbol);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCompanyName()
+ {
+ return (String)get(getMixed(), getType(), COMPANY_NAME);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCompanyName(String newCompanyName)
+ {
+ set(getMixed(), getType(), COMPANY_NAME, newCompanyName);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BigDecimal getPrice()
+ {
+ return (BigDecimal)get(getMixed(), getType(), PRICE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPrice(BigDecimal newPrice)
+ {
+ set(getMixed(), getType(), PRICE, newPrice);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BigDecimal getOpen1()
+ {
+ return (BigDecimal)get(getMixed(), getType(), OPEN1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOpen1(BigDecimal newOpen1)
+ {
+ set(getMixed(), getType(), OPEN1, newOpen1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BigDecimal getHigh()
+ {
+ return (BigDecimal)get(getMixed(), getType(), HIGH);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHigh(BigDecimal newHigh)
+ {
+ set(getMixed(), getType(), HIGH, newHigh);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BigDecimal getLow()
+ {
+ return (BigDecimal)get(getMixed(), getType(), LOW);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLow(BigDecimal newLow)
+ {
+ set(getMixed(), getType(), LOW, newLow);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getVolume()
+ {
+ return ((Double)get(getMixed(), getType(), VOLUME)).doubleValue();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVolume(double newVolume)
+ {
+ set(getMixed(), getType(), VOLUME, new Double(newVolume));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetVolume()
+ {
+ unset(getMixed(), getType(), VOLUME);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetVolume()
+ {
+ return isSet(getMixed(), getType(), VOLUME);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getChange1()
+ {
+ return ((Double)get(getMixed(), getType(), CHANGE1)).doubleValue();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setChange1(double newChange1)
+ {
+ set(getMixed(), getType(), CHANGE1, new Double(newChange1));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetChange1()
+ {
+ unset(getMixed(), getType(), CHANGE1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetChange1()
+ {
+ return isSet(getMixed(), getType(), CHANGE1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getQuotes()
+ {
+ return getList(getMixed(), getType(), QUOTES);
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeContext inverseRemove(Object otherEnd, int propertyIndex, ChangeContext changeContext)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ return removeFromSequence(getMixed(), otherEnd, changeContext);
+ case QUOTES:
+ return removeFromList(getQuotes(), otherEnd, changeContext);
+ }
+ return super.inverseRemove(otherEnd, propertyIndex, changeContext);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object get(int propertyIndex, boolean resolve)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ // XXX query introduce coreType as an argument? -- semantic = if true -- coreType - return the core EMF object if value is a non-EMF wrapper/view
+ //if (coreType)
+ return getMixed();
+ case SYMBOL:
+ return getSymbol();
+ case COMPANY_NAME:
+ return getCompanyName();
+ case PRICE:
+ return getPrice();
+ case OPEN1:
+ return getOpen1();
+ case HIGH:
+ return getHigh();
+ case LOW:
+ return getLow();
+ case VOLUME:
+ return new Double(getVolume());
+ case CHANGE1:
+ return new Double(getChange1());
+ case QUOTES:
+ return getQuotes();
+ }
+ return super.get(propertyIndex, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void set(int propertyIndex, Object newValue)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ setSequence(getMixed(), newValue);
+ return;
+ case SYMBOL:
+ setSymbol((String)newValue);
+ return;
+ case COMPANY_NAME:
+ setCompanyName((String)newValue);
+ return;
+ case PRICE:
+ setPrice((BigDecimal)newValue);
+ return;
+ case OPEN1:
+ setOpen1((BigDecimal)newValue);
+ return;
+ case HIGH:
+ setHigh((BigDecimal)newValue);
+ return;
+ case LOW:
+ setLow((BigDecimal)newValue);
+ return;
+ case VOLUME:
+ setVolume(((Double)newValue).doubleValue());
+ return;
+ case CHANGE1:
+ setChange1(((Double)newValue).doubleValue());
+ return;
+ case QUOTES:
+ getQuotes().clear();
+ getQuotes().addAll((Collection)newValue);
+ return;
+ }
+ super.set(propertyIndex, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unset(int propertyIndex)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ unsetSequence(getMixed());
+ return;
+ case SYMBOL:
+ setSymbol(SYMBOL_DEFAULT_);
+ return;
+ case COMPANY_NAME:
+ setCompanyName(COMPANY_NAME_DEFAULT_);
+ return;
+ case PRICE:
+ setPrice(PRICE_DEFAULT_);
+ return;
+ case OPEN1:
+ setOpen1(OPEN1_DEFAULT_);
+ return;
+ case HIGH:
+ setHigh(HIGH_DEFAULT_);
+ return;
+ case LOW:
+ setLow(LOW_DEFAULT_);
+ return;
+ case VOLUME:
+ unsetVolume();
+ return;
+ case CHANGE1:
+ unsetChange1();
+ return;
+ case QUOTES:
+ getQuotes().clear();
+ return;
+ }
+ super.unset(propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSet(int propertyIndex)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ // KDK - should this be !isSequenceEmpty?
+ return mixed != null && !isSequenceEmpty(getMixed());
+ case SYMBOL:
+ return SYMBOL_DEFAULT_ == null ? getSymbol() != null : !SYMBOL_DEFAULT_.equals(getSymbol());
+ case COMPANY_NAME:
+ return COMPANY_NAME_DEFAULT_ == null ? getCompanyName() != null : !COMPANY_NAME_DEFAULT_.equals(getCompanyName());
+ case PRICE:
+ return PRICE_DEFAULT_ == null ? getPrice() != null : !PRICE_DEFAULT_.equals(getPrice());
+ case OPEN1:
+ return OPEN1_DEFAULT_ == null ? getOpen1() != null : !OPEN1_DEFAULT_.equals(getOpen1());
+ case HIGH:
+ return HIGH_DEFAULT_ == null ? getHigh() != null : !HIGH_DEFAULT_.equals(getHigh());
+ case LOW:
+ return LOW_DEFAULT_ == null ? getLow() != null : !LOW_DEFAULT_.equals(getLow());
+ case VOLUME:
+ return isSetVolume();
+ case CHANGE1:
+ return isSetChange1();
+ case QUOTES:
+ return !getQuotes().isEmpty();
+ }
+ return super.isSet(propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (isProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (mixed: ");
+ result.append(mixed);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MixedQuoteImpl
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/MixedRepeatingChoiceImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/MixedRepeatingChoiceImpl.java
new file mode 100644
index 0000000000..7e49e448f8
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/MixedRepeatingChoiceImpl.java
@@ -0,0 +1,299 @@
+/**
+ *
+ * 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 com.example.sequences.impl;
+
+import com.example.sequences.MixedRepeatingChoice;
+
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+
+import commonj.sdo.helper.TypeHelper;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.tuscany.sdo.impl.DataObjectBase;
+
+import org.apache.tuscany.sdo.util.BasicSequence;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Mixed Repeating Choice</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link com.example.sequences.impl.MixedRepeatingChoiceImpl#getMixed <em>Mixed</em>}</li>
+ * <li>{@link com.example.sequences.impl.MixedRepeatingChoiceImpl#getGroup <em>Group</em>}</li>
+ * <li>{@link com.example.sequences.impl.MixedRepeatingChoiceImpl#getA <em>A</em>}</li>
+ * <li>{@link com.example.sequences.impl.MixedRepeatingChoiceImpl#getB <em>B</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MixedRepeatingChoiceImpl extends DataObjectBase implements MixedRepeatingChoice
+{
+ /**
+ * The feature id for the '<em><b>Mixed</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int MIXED = 0;
+
+ /**
+ * The cached value of the '{@link #getMixed() <em>Mixed</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMixed()
+ * @generated
+ * @ordered
+ */
+
+ // How to get BasicSequence from Sequence?
+
+ protected BasicSequence mixed = null;
+
+ /**
+ * The feature id for the '<em><b>Group</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int GROUP = 1;
+
+ /**
+ * The feature id for the '<em><b>A</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int A = 2;
+
+ /**
+ * The feature id for the '<em><b>B</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int B = 3;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MixedRepeatingChoiceImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type getType()
+ {
+ return TypeHelper.INSTANCE.getType(MixedRepeatingChoice.class); //TBD Generate a more efficient implementation
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getMixed()
+ {
+ if (mixed == null)
+ {
+ mixed = createSequence(MIXED);
+
+ }
+ return mixed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getGroup()
+ {
+ return createSequence(getMixed(), getType(), GROUP);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getA()
+ {
+ return getList(getGroup(), getType(), A);
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getB()
+ {
+ return getList(getGroup(), getType(), B);
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeContext inverseRemove(Object otherEnd, int propertyIndex, ChangeContext changeContext)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ return removeFromSequence(getMixed(), otherEnd, changeContext);
+ case GROUP:
+ return removeFromSequence(getGroup(), otherEnd, changeContext);
+ }
+ return super.inverseRemove(otherEnd, propertyIndex, changeContext);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object get(int propertyIndex, boolean resolve)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ // XXX query introduce coreType as an argument? -- semantic = if true -- coreType - return the core EMF object if value is a non-EMF wrapper/view
+ //if (coreType)
+ return getMixed();
+ case GROUP:
+ // XXX query introduce coreType as an argument? -- semantic = if true -- coreType - return the core EMF object if value is a non-EMF wrapper/view
+ //if (coreType)
+ return getGroup();
+ case A:
+ return getA();
+ case B:
+ return getB();
+ }
+ return super.get(propertyIndex, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void set(int propertyIndex, Object newValue)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ setSequence(getMixed(), newValue);
+ return;
+ case GROUP:
+ setSequence(getGroup(), newValue);
+ return;
+ case A:
+ getA().clear();
+ getA().addAll((Collection)newValue);
+ return;
+ case B:
+ getB().clear();
+ getB().addAll((Collection)newValue);
+ return;
+ }
+ super.set(propertyIndex, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unset(int propertyIndex)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ unsetSequence(getMixed());
+ return;
+ case GROUP:
+ unsetSequence(getGroup());
+ return;
+ case A:
+ getA().clear();
+ return;
+ case B:
+ getB().clear();
+ return;
+ }
+ super.unset(propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSet(int propertyIndex)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ // KDK - should this be !isSequenceEmpty?
+ return mixed != null && !isSequenceEmpty(getMixed());
+ case GROUP:
+ return !isSequenceEmpty(getGroup());
+ case A:
+ return !getA().isEmpty();
+ case B:
+ return !getB().isEmpty();
+ }
+ return super.isSet(propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (isProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (mixed: ");
+ result.append(mixed);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MixedRepeatingChoiceImpl
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/RepeatingChoiceImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/RepeatingChoiceImpl.java
new file mode 100644
index 0000000000..f4bc2c301f
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/RepeatingChoiceImpl.java
@@ -0,0 +1,265 @@
+/**
+ *
+ * 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 com.example.sequences.impl;
+
+import com.example.sequences.RepeatingChoice;
+
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+
+import commonj.sdo.helper.TypeHelper;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.tuscany.sdo.impl.DataObjectBase;
+
+import org.apache.tuscany.sdo.util.BasicSequence;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Repeating Choice</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link com.example.sequences.impl.RepeatingChoiceImpl#getGroup <em>Group</em>}</li>
+ * <li>{@link com.example.sequences.impl.RepeatingChoiceImpl#getA <em>A</em>}</li>
+ * <li>{@link com.example.sequences.impl.RepeatingChoiceImpl#getB <em>B</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RepeatingChoiceImpl extends DataObjectBase implements RepeatingChoice
+{
+ /**
+ * The feature id for the '<em><b>Group</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int GROUP = 0;
+
+ /**
+ * The cached value of the '{@link #getGroup() <em>Group</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroup()
+ * @generated
+ * @ordered
+ */
+
+ // How to get BasicSequence from Sequence?
+
+ protected BasicSequence group = null;
+
+ /**
+ * The feature id for the '<em><b>A</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int A = 1;
+
+ /**
+ * The feature id for the '<em><b>B</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int B = 2;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RepeatingChoiceImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type getType()
+ {
+ return TypeHelper.INSTANCE.getType(RepeatingChoice.class); //TBD Generate a more efficient implementation
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getGroup()
+ {
+ if (group == null)
+ {
+ group = createSequence(GROUP);
+
+ }
+ return group;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getA()
+ {
+ return getList(getGroup(), getType(), A);
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getB()
+ {
+ return getList(getGroup(), getType(), B);
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeContext inverseRemove(Object otherEnd, int propertyIndex, ChangeContext changeContext)
+ {
+ switch (propertyIndex)
+ {
+ case GROUP:
+ return removeFromSequence(getGroup(), otherEnd, changeContext);
+ }
+ return super.inverseRemove(otherEnd, propertyIndex, changeContext);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object get(int propertyIndex, boolean resolve)
+ {
+ switch (propertyIndex)
+ {
+ case GROUP:
+ // XXX query introduce coreType as an argument? -- semantic = if true -- coreType - return the core EMF object if value is a non-EMF wrapper/view
+ //if (coreType)
+ return getGroup();
+ case A:
+ return getA();
+ case B:
+ return getB();
+ }
+ return super.get(propertyIndex, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void set(int propertyIndex, Object newValue)
+ {
+ switch (propertyIndex)
+ {
+ case GROUP:
+ setSequence(getGroup(), newValue);
+ return;
+ case A:
+ getA().clear();
+ getA().addAll((Collection)newValue);
+ return;
+ case B:
+ getB().clear();
+ getB().addAll((Collection)newValue);
+ return;
+ }
+ super.set(propertyIndex, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unset(int propertyIndex)
+ {
+ switch (propertyIndex)
+ {
+ case GROUP:
+ unsetSequence(getGroup());
+ return;
+ case A:
+ getA().clear();
+ return;
+ case B:
+ getB().clear();
+ return;
+ }
+ super.unset(propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSet(int propertyIndex)
+ {
+ switch (propertyIndex)
+ {
+ case GROUP:
+ // KDK - should this be !isSequenceEmpty?
+ return group != null && !isSequenceEmpty(getGroup());
+ case A:
+ return !getA().isEmpty();
+ case B:
+ return !getB().isEmpty();
+ }
+ return super.isSet(propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (isProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (group: ");
+ result.append(group);
+ result.append(')');
+ return result.toString();
+ }
+
+} //RepeatingChoiceImpl
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/SequencesFactoryImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/SequencesFactoryImpl.java
new file mode 100644
index 0000000000..0cef7a04d1
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/SequencesFactoryImpl.java
@@ -0,0 +1,692 @@
+/**
+ *
+ * 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 com.example.sequences.impl;
+
+import org.apache.tuscany.sdo.impl.FactoryBase;
+import org.apache.tuscany.sdo.impl.SDOFactoryImpl;
+import org.apache.tuscany.sdo.model.impl.ModelFactoryImpl;
+import org.apache.tuscany.sdo.model.impl.ModelPackageImpl;
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import com.example.sequences.MixedQuote;
+import com.example.sequences.MixedRepeatingChoice;
+import com.example.sequences.RepeatingChoice;
+import com.example.sequences.SequencesFactory;
+import com.example.sequences.TwoRCs;
+import com.example.sequences.TwoRCsMixed;
+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 SequencesFactoryImpl extends FactoryBase implements SequencesFactory
+{
+
+/**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public static final String NAMESPACE_URI = "http://www.example.com/sequences";
+
+/**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public static final String NAMESPACE_PREFIX = "sequences";
+
+
+public static final int MIXED_QUOTE = 1;
+public static final int MIXED_REPEATING_CHOICE = 2;
+public static final int REPEATING_CHOICE = 3;
+public static final int TWO_RCS = 4;
+public static final int TWO_RCS_MIXED = 5;
+
+
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequencesFactoryImpl()
+ {
+ super(NAMESPACE_URI, NAMESPACE_PREFIX);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataObject create(int typeNumber)
+ {
+ switch (typeNumber)
+ {
+ // TODO make sure we're supposed to ingore DOCUMENT_ROOT
+ case MIXED_QUOTE: return (DataObject)createMixedQuote();
+ // TODO make sure we're supposed to ingore DOCUMENT_ROOT
+ case MIXED_REPEATING_CHOICE: return (DataObject)createMixedRepeatingChoice();
+ // TODO make sure we're supposed to ingore DOCUMENT_ROOT
+ case REPEATING_CHOICE: return (DataObject)createRepeatingChoice();
+ // TODO make sure we're supposed to ingore DOCUMENT_ROOT
+ case TWO_RCS: return (DataObject)createTwoRCs();
+ // TODO make sure we're supposed to ingore DOCUMENT_ROOT
+ case TWO_RCS_MIXED: return (DataObject)createTwoRCsMixed();
+ default:
+ return super.create(typeNumber);
+ }
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MixedQuote createMixedQuote()
+ {
+ MixedQuoteImpl mixedQuote = new MixedQuoteImpl();
+ return mixedQuote;
+ }
+
+ // Following creates and initializes SDO metadata for the supported types.
+ protected Type mixedQuoteType = null;
+
+ public Type getMixedQuote()
+ {
+ // TODO - kdk - verify how to generate quoteType...mixedQuoteType?
+ return mixedQuoteType;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MixedRepeatingChoice createMixedRepeatingChoice()
+ {
+ MixedRepeatingChoiceImpl mixedRepeatingChoice = new MixedRepeatingChoiceImpl();
+ return mixedRepeatingChoice;
+ }
+
+ // Following creates and initializes SDO metadata for the supported types.
+ protected Type mixedRepeatingChoiceType = null;
+
+ public Type getMixedRepeatingChoice()
+ {
+ // TODO - kdk - verify how to generate quoteType...mixedRepeatingChoiceType?
+ return mixedRepeatingChoiceType;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RepeatingChoice createRepeatingChoice()
+ {
+ RepeatingChoiceImpl repeatingChoice = new RepeatingChoiceImpl();
+ return repeatingChoice;
+ }
+
+ // Following creates and initializes SDO metadata for the supported types.
+ protected Type repeatingChoiceType = null;
+
+ public Type getRepeatingChoice()
+ {
+ // TODO - kdk - verify how to generate quoteType...repeatingChoiceType?
+ return repeatingChoiceType;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TwoRCs createTwoRCs()
+ {
+ TwoRCsImpl twoRCs = new TwoRCsImpl();
+ return twoRCs;
+ }
+
+ // Following creates and initializes SDO metadata for the supported types.
+ protected Type twoRCsType = null;
+
+ public Type getTwoRCs()
+ {
+ // TODO - kdk - verify how to generate quoteType...twoRCsType?
+ return twoRCsType;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TwoRCsMixed createTwoRCsMixed()
+ {
+ TwoRCsMixedImpl twoRCsMixed = new TwoRCsMixedImpl();
+ return twoRCsMixed;
+ }
+
+ // Following creates and initializes SDO metadata for the supported types.
+ protected Type twoRCsMixedType = null;
+
+ public Type getTwoRCsMixed()
+ {
+ // TODO - kdk - verify how to generate quoteType...twoRCsMixedType?
+ return twoRCsMixedType;
+ }
+
+ private static boolean isInited = false;
+
+ public static SequencesFactoryImpl init()
+ {
+ if (isInited) return (SequencesFactoryImpl)FactoryBase.getStaticFactory(SequencesFactoryImpl.NAMESPACE_URI);
+ SequencesFactoryImpl theSequencesFactoryImpl = new SequencesFactoryImpl();
+ isInited = true;
+
+ // Initialize simple dependencies
+ SDOUtil.registerStaticTypes(SDOFactoryImpl.class);
+ SDOUtil.registerStaticTypes(ModelPackageImpl.class);
+
+ // Create package meta-data objects
+ theSequencesFactoryImpl.createMetaData();
+
+ // Initialize created meta-data
+ theSequencesFactoryImpl.initializeMetaData();
+
+ // Mark meta-data to indicate it can't be changed
+ //theSequencesFactoryImpl.freeze(); //FB do we need to freeze / should we freeze ????
+
+ return theSequencesFactoryImpl;
+ }
+
+ private boolean isCreated = false;
+
+ public void createMetaData()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+
+ mixedQuoteType = createType(false, MIXED_QUOTE);
+ createProperty(true, mixedQuoteType, MixedQuoteImpl.MIXED);
+ createProperty(true, mixedQuoteType, MixedQuoteImpl.SYMBOL);
+ createProperty(true, mixedQuoteType, MixedQuoteImpl.COMPANY_NAME);
+ createProperty(true, mixedQuoteType, MixedQuoteImpl.PRICE);
+ createProperty(true, mixedQuoteType, MixedQuoteImpl.OPEN1);
+ createProperty(true, mixedQuoteType, MixedQuoteImpl.HIGH);
+ createProperty(true, mixedQuoteType, MixedQuoteImpl.LOW);
+ createProperty(true, mixedQuoteType, MixedQuoteImpl.VOLUME);
+ createProperty(true, mixedQuoteType, MixedQuoteImpl.CHANGE1);
+ createProperty(false, mixedQuoteType, MixedQuoteImpl.QUOTES);
+
+ mixedRepeatingChoiceType = createType(false, MIXED_REPEATING_CHOICE);
+ createProperty(true, mixedRepeatingChoiceType, MixedRepeatingChoiceImpl.MIXED);
+ createProperty(true, mixedRepeatingChoiceType, MixedRepeatingChoiceImpl.GROUP);
+ createProperty(true, mixedRepeatingChoiceType, MixedRepeatingChoiceImpl.A);
+ createProperty(true, mixedRepeatingChoiceType, MixedRepeatingChoiceImpl.B);
+
+ repeatingChoiceType = createType(false, REPEATING_CHOICE);
+ createProperty(true, repeatingChoiceType, RepeatingChoiceImpl.GROUP);
+ createProperty(true, repeatingChoiceType, RepeatingChoiceImpl.A);
+ createProperty(true, repeatingChoiceType, RepeatingChoiceImpl.B);
+
+ twoRCsType = createType(false, TWO_RCS);
+ createProperty(true, twoRCsType, TwoRCsImpl.GROUP);
+ createProperty(true, twoRCsType, TwoRCsImpl.A);
+ createProperty(true, twoRCsType, TwoRCsImpl.B);
+ createProperty(true, twoRCsType, TwoRCsImpl.SPLIT);
+ createProperty(true, twoRCsType, TwoRCsImpl.GROUP1);
+ createProperty(true, twoRCsType, TwoRCsImpl.Y);
+ createProperty(true, twoRCsType, TwoRCsImpl.Z);
+
+ twoRCsMixedType = createType(false, TWO_RCS_MIXED);
+ createProperty(true, twoRCsMixedType, TwoRCsMixedImpl.MIXED);
+ createProperty(true, twoRCsMixedType, TwoRCsMixedImpl.GROUP);
+ createProperty(true, twoRCsMixedType, TwoRCsMixedImpl.A);
+ createProperty(true, twoRCsMixedType, TwoRCsMixedImpl.B);
+ createProperty(true, twoRCsMixedType, TwoRCsMixedImpl.SPLIT);
+ createProperty(true, twoRCsMixedType, TwoRCsMixedImpl.GROUP1);
+ createProperty(true, twoRCsMixedType, TwoRCsMixedImpl.Y);
+ createProperty(true, twoRCsMixedType, TwoRCsMixedImpl.Z);
+ }
+ private boolean isInitialized = false;
+
+ public void initializeMetaData()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Obtain other dependent packages
+ ModelFactoryImpl theModelPackageImpl = (ModelFactoryImpl)FactoryBase.getStaticFactory(ModelFactoryImpl.NAMESPACE_URI);
+
+ // Add supertypes to classes
+ // Initialize classes and features; add operations and parameters
+
+ initializeType(mixedQuoteType, MixedQuote.class, "MixedQuote");
+ initializeProperty((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.MIXED), getSequence(), "mixed", null, 0, -1, MixedQuote.class, false, false, false);
+ initializeProperty((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.SYMBOL), theModelPackageImpl.getString(), "symbol", null, 1, 1, MixedQuote.class, false, false, true);
+ initializeProperty((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.COMPANY_NAME), theModelPackageImpl.getString(), "companyName", null, 1, 1, MixedQuote.class, false, false, true);
+ initializeProperty((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.PRICE), theModelPackageImpl.getDecimal(), "price", null, 1, 1, MixedQuote.class, false, false, true);
+ initializeProperty((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.OPEN1), theModelPackageImpl.getDecimal(), "open1", null, 1, 1, MixedQuote.class, false, false, true);
+ initializeProperty((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.HIGH), theModelPackageImpl.getDecimal(), "high", null, 1, 1, MixedQuote.class, false, false, true);
+ initializeProperty((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.LOW), theModelPackageImpl.getDecimal(), "low", null, 1, 1, MixedQuote.class, false, false, true);
+ initializeProperty((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.VOLUME), theModelPackageImpl.getDouble(), "volume", null, 1, 1, MixedQuote.class, false, true, true);
+ initializeProperty((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.CHANGE1), theModelPackageImpl.getDouble(), "change1", null, 1, 1, MixedQuote.class, false, true, true);
+ initializeProperty((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.QUOTES), this.getMixedQuote(), "quotes", null, 0, -1, MixedQuote.class, false, false, true, true , null);
+
+ initializeType(mixedRepeatingChoiceType, MixedRepeatingChoice.class, "MixedRepeatingChoice");
+ initializeProperty((Property)mixedRepeatingChoiceType.getProperties().get(MixedRepeatingChoiceImpl.MIXED), getSequence(), "mixed", null, 0, -1, MixedRepeatingChoice.class, false, false, false);
+ initializeProperty((Property)mixedRepeatingChoiceType.getProperties().get(MixedRepeatingChoiceImpl.GROUP), getSequence(), "group", null, 0, -1, MixedRepeatingChoice.class, false, false, true);
+ initializeProperty((Property)mixedRepeatingChoiceType.getProperties().get(MixedRepeatingChoiceImpl.A), theModelPackageImpl.getString(), "a", null, 0, -1, MixedRepeatingChoice.class, false, false, true);
+ initializeProperty((Property)mixedRepeatingChoiceType.getProperties().get(MixedRepeatingChoiceImpl.B), theModelPackageImpl.getInt(), "b", null, 0, -1, MixedRepeatingChoice.class, false, false, true);
+
+ initializeType(repeatingChoiceType, RepeatingChoice.class, "RepeatingChoice");
+ initializeProperty((Property)repeatingChoiceType.getProperties().get(RepeatingChoiceImpl.GROUP), getSequence(), "group", null, 0, -1, RepeatingChoice.class, false, false, false);
+ initializeProperty((Property)repeatingChoiceType.getProperties().get(RepeatingChoiceImpl.A), theModelPackageImpl.getString(), "a", null, 0, -1, RepeatingChoice.class, false, false, true);
+ initializeProperty((Property)repeatingChoiceType.getProperties().get(RepeatingChoiceImpl.B), theModelPackageImpl.getInt(), "b", null, 0, -1, RepeatingChoice.class, false, false, true);
+
+ initializeType(twoRCsType, TwoRCs.class, "TwoRCs");
+ initializeProperty((Property)twoRCsType.getProperties().get(TwoRCsImpl.GROUP), getSequence(), "group", null, 0, -1, TwoRCs.class, false, false, false);
+ initializeProperty((Property)twoRCsType.getProperties().get(TwoRCsImpl.A), theModelPackageImpl.getString(), "a", null, 0, -1, TwoRCs.class, false, false, true);
+ initializeProperty((Property)twoRCsType.getProperties().get(TwoRCsImpl.B), theModelPackageImpl.getInt(), "b", null, 0, -1, TwoRCs.class, false, false, true);
+ initializeProperty((Property)twoRCsType.getProperties().get(TwoRCsImpl.SPLIT), theModelPackageImpl.getString(), "split", null, 1, 1, TwoRCs.class, false, false, false);
+ initializeProperty((Property)twoRCsType.getProperties().get(TwoRCsImpl.GROUP1), getSequence(), "group1", null, 0, -1, TwoRCs.class, false, false, false);
+ initializeProperty((Property)twoRCsType.getProperties().get(TwoRCsImpl.Y), theModelPackageImpl.getString(), "y", null, 0, -1, TwoRCs.class, false, false, true);
+ initializeProperty((Property)twoRCsType.getProperties().get(TwoRCsImpl.Z), theModelPackageImpl.getInt(), "z", null, 0, -1, TwoRCs.class, false, false, true);
+
+ initializeType(twoRCsMixedType, TwoRCsMixed.class, "TwoRCsMixed");
+ initializeProperty((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.MIXED), getSequence(), "mixed", null, 0, -1, TwoRCsMixed.class, false, false, false);
+ initializeProperty((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.GROUP), getSequence(), "group", null, 0, -1, TwoRCsMixed.class, false, false, true);
+ initializeProperty((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.A), theModelPackageImpl.getString(), "a", null, 0, -1, TwoRCsMixed.class, false, false, true);
+ initializeProperty((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.B), theModelPackageImpl.getInt(), "b", null, 0, -1, TwoRCsMixed.class, false, false, true);
+ initializeProperty((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.SPLIT), theModelPackageImpl.getString(), "split", null, 1, 1, TwoRCsMixed.class, false, false, true);
+ initializeProperty((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.GROUP1), getSequence(), "group1", null, 0, -1, TwoRCsMixed.class, false, false, true);
+ initializeProperty((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.Y), theModelPackageImpl.getString(), "y", null, 0, -1, TwoRCsMixed.class, false, false, true);
+ initializeProperty((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.Z), theModelPackageImpl.getInt(), "z", null, 0, -1, TwoRCsMixed.class, false, false, true);createXSDMetaData();
+ }
+
+ protected void createXSDMetaData()
+ {
+ super.createXSDMetaData();
+ // TODO - kdk - is the order right? should kind, elementOnly be first
+ addXSDMapping
+ (mixedQuoteType,
+ new String[]
+ {
+ "name", "MixedQuote",
+ "kind", "elementOnly"
+ });
+ addXSDMapping
+ ((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.MIXED),
+ new String[]
+ {
+ "kind", "element",
+ "name", "mixed"
+ });
+
+ addXSDMapping
+ ((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.SYMBOL),
+ new String[]
+ {
+ "kind", "element",
+ "name", "symbol"
+ });
+
+ addXSDMapping
+ ((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.COMPANY_NAME),
+ new String[]
+ {
+ "kind", "element",
+ "name", "companyName"
+ });
+
+ addXSDMapping
+ ((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.PRICE),
+ new String[]
+ {
+ "kind", "element",
+ "name", "price"
+ });
+
+ addXSDMapping
+ ((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.OPEN1),
+ new String[]
+ {
+ "kind", "element",
+ "name", "open1"
+ });
+
+ addXSDMapping
+ ((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.HIGH),
+ new String[]
+ {
+ "kind", "element",
+ "name", "high"
+ });
+
+ addXSDMapping
+ ((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.LOW),
+ new String[]
+ {
+ "kind", "element",
+ "name", "low"
+ });
+
+ addXSDMapping
+ ((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.VOLUME),
+ new String[]
+ {
+ "kind", "element",
+ "name", "volume"
+ });
+
+ addXSDMapping
+ ((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.CHANGE1),
+ new String[]
+ {
+ "kind", "element",
+ "name", "change1"
+ });
+
+ addXSDMapping
+ ((Property)mixedQuoteType.getProperties().get(MixedQuoteImpl.QUOTES),
+ new String[]
+ {
+ "kind", "element",
+ "name", "quotes"
+ });
+
+ // TODO - kdk - is the order right? should kind, elementOnly be first
+ addXSDMapping
+ (mixedRepeatingChoiceType,
+ new String[]
+ {
+ "name", "MixedRepeatingChoice",
+ "kind", "elementOnly"
+ });
+ addXSDMapping
+ ((Property)mixedRepeatingChoiceType.getProperties().get(MixedRepeatingChoiceImpl.MIXED),
+ new String[]
+ {
+ "kind", "element",
+ "name", "mixed"
+ });
+
+ addXSDMapping
+ ((Property)mixedRepeatingChoiceType.getProperties().get(MixedRepeatingChoiceImpl.GROUP),
+ new String[]
+ {
+ "kind", "element",
+ "name", "group"
+ });
+
+ addXSDMapping
+ ((Property)mixedRepeatingChoiceType.getProperties().get(MixedRepeatingChoiceImpl.A),
+ new String[]
+ {
+ "kind", "element",
+ "name", "a"
+ });
+
+ addXSDMapping
+ ((Property)mixedRepeatingChoiceType.getProperties().get(MixedRepeatingChoiceImpl.B),
+ new String[]
+ {
+ "kind", "element",
+ "name", "b"
+ });
+
+ // TODO - kdk - is the order right? should kind, elementOnly be first
+ addXSDMapping
+ (repeatingChoiceType,
+ new String[]
+ {
+ "name", "RepeatingChoice",
+ "kind", "elementOnly"
+ });
+ addXSDMapping
+ ((Property)repeatingChoiceType.getProperties().get(RepeatingChoiceImpl.GROUP),
+ new String[]
+ {
+ "kind", "element",
+ "name", "group"
+ });
+
+ addXSDMapping
+ ((Property)repeatingChoiceType.getProperties().get(RepeatingChoiceImpl.A),
+ new String[]
+ {
+ "kind", "element",
+ "name", "a"
+ });
+
+ addXSDMapping
+ ((Property)repeatingChoiceType.getProperties().get(RepeatingChoiceImpl.B),
+ new String[]
+ {
+ "kind", "element",
+ "name", "b"
+ });
+
+ // TODO - kdk - is the order right? should kind, elementOnly be first
+ addXSDMapping
+ (twoRCsType,
+ new String[]
+ {
+ "name", "TwoRCs",
+ "kind", "elementOnly"
+ });
+ addXSDMapping
+ ((Property)twoRCsType.getProperties().get(TwoRCsImpl.GROUP),
+ new String[]
+ {
+ "kind", "element",
+ "name", "group"
+ });
+
+ addXSDMapping
+ ((Property)twoRCsType.getProperties().get(TwoRCsImpl.A),
+ new String[]
+ {
+ "kind", "element",
+ "name", "a"
+ });
+
+ addXSDMapping
+ ((Property)twoRCsType.getProperties().get(TwoRCsImpl.B),
+ new String[]
+ {
+ "kind", "element",
+ "name", "b"
+ });
+
+ addXSDMapping
+ ((Property)twoRCsType.getProperties().get(TwoRCsImpl.SPLIT),
+ new String[]
+ {
+ "kind", "element",
+ "name", "split"
+ });
+
+ addXSDMapping
+ ((Property)twoRCsType.getProperties().get(TwoRCsImpl.GROUP1),
+ new String[]
+ {
+ "kind", "element",
+ "name", "group1"
+ });
+
+ addXSDMapping
+ ((Property)twoRCsType.getProperties().get(TwoRCsImpl.Y),
+ new String[]
+ {
+ "kind", "element",
+ "name", "y"
+ });
+
+ addXSDMapping
+ ((Property)twoRCsType.getProperties().get(TwoRCsImpl.Z),
+ new String[]
+ {
+ "kind", "element",
+ "name", "z"
+ });
+
+ // TODO - kdk - is the order right? should kind, elementOnly be first
+ addXSDMapping
+ (twoRCsMixedType,
+ new String[]
+ {
+ "name", "TwoRCsMixed",
+ "kind", "elementOnly"
+ });
+ addXSDMapping
+ ((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.MIXED),
+ new String[]
+ {
+ "kind", "element",
+ "name", "mixed"
+ });
+
+ addXSDMapping
+ ((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.GROUP),
+ new String[]
+ {
+ "kind", "element",
+ "name", "group"
+ });
+
+ addXSDMapping
+ ((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.A),
+ new String[]
+ {
+ "kind", "element",
+ "name", "a"
+ });
+
+ addXSDMapping
+ ((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.B),
+ new String[]
+ {
+ "kind", "element",
+ "name", "b"
+ });
+
+ addXSDMapping
+ ((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.SPLIT),
+ new String[]
+ {
+ "kind", "element",
+ "name", "split"
+ });
+
+ addXSDMapping
+ ((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.GROUP1),
+ new String[]
+ {
+ "kind", "element",
+ "name", "group1"
+ });
+
+ addXSDMapping
+ ((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.Y),
+ new String[]
+ {
+ "kind", "element",
+ "name", "y"
+ });
+
+ addXSDMapping
+ ((Property)twoRCsMixedType.getProperties().get(TwoRCsMixedImpl.Z),
+ new String[]
+ {
+ "kind", "element",
+ "name", "z"
+ });
+
+
+ // TODO - kdk - how do I filter out mixed, xMLNSPrefixMap, and xSISchemaLocation without hardcoding it
+ // TODO - kdk - can I hardcode ##targetNamespace?
+
+ createGlobalProperty
+ ("mixedStockQuote",
+ this.getMixedQuote(),
+ new String[]
+ {
+ "kind", "element",
+ "name", "mixedStockQuote",
+ "namespace", "##targetNamespace"
+ });
+
+ createGlobalProperty
+ ("mrc",
+ this.getMixedRepeatingChoice(),
+ new String[]
+ {
+ "kind", "element",
+ "name", "mrc",
+ "namespace", "##targetNamespace"
+ });
+
+ createGlobalProperty
+ ("mrc2",
+ this.getTwoRCsMixed(),
+ new String[]
+ {
+ "kind", "element",
+ "name", "mrc2",
+ "namespace", "##targetNamespace"
+ });
+
+ createGlobalProperty
+ ("rc",
+ this.getRepeatingChoice(),
+ new String[]
+ {
+ "kind", "element",
+ "name", "rc",
+ "namespace", "##targetNamespace"
+ });
+
+ createGlobalProperty
+ ("rc2",
+ this.getTwoRCs(),
+ new String[]
+ {
+ "kind", "element",
+ "name", "rc2",
+ "namespace", "##targetNamespace"
+ });
+
+ }
+
+} //SequencesFactoryImpl
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/TwoRCsImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/TwoRCsImpl.java
new file mode 100644
index 0000000000..c29eae934d
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/TwoRCsImpl.java
@@ -0,0 +1,449 @@
+/**
+ *
+ * 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 com.example.sequences.impl;
+
+import com.example.sequences.TwoRCs;
+
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+
+import commonj.sdo.helper.TypeHelper;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.tuscany.sdo.impl.DataObjectBase;
+
+import org.apache.tuscany.sdo.util.BasicSequence;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Two RCs</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link com.example.sequences.impl.TwoRCsImpl#getGroup <em>Group</em>}</li>
+ * <li>{@link com.example.sequences.impl.TwoRCsImpl#getA <em>A</em>}</li>
+ * <li>{@link com.example.sequences.impl.TwoRCsImpl#getB <em>B</em>}</li>
+ * <li>{@link com.example.sequences.impl.TwoRCsImpl#getSplit <em>Split</em>}</li>
+ * <li>{@link com.example.sequences.impl.TwoRCsImpl#getGroup1 <em>Group1</em>}</li>
+ * <li>{@link com.example.sequences.impl.TwoRCsImpl#getY <em>Y</em>}</li>
+ * <li>{@link com.example.sequences.impl.TwoRCsImpl#getZ <em>Z</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TwoRCsImpl extends DataObjectBase implements TwoRCs
+{
+ /**
+ * The feature id for the '<em><b>Group</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int GROUP = 0;
+
+ /**
+ * The cached value of the '{@link #getGroup() <em>Group</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroup()
+ * @generated
+ * @ordered
+ */
+
+ // How to get BasicSequence from Sequence?
+
+ protected BasicSequence group = null;
+
+ /**
+ * The feature id for the '<em><b>A</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int A = 1;
+
+ /**
+ * The feature id for the '<em><b>B</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int B = 2;
+
+ /**
+ * The feature id for the '<em><b>Split</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int SPLIT = 3;
+
+ /**
+ * The default value of the '{@link #getSplit() <em>Split</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSplit()
+ * @generated
+ * @ordered
+ */
+ protected static final String SPLIT_DEFAULT_ = null;
+
+ /**
+ * The cached value of the '{@link #getSplit() <em>Split</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSplit()
+ * @generated
+ * @ordered
+ */
+ protected String split = SPLIT_DEFAULT_;
+
+ /**
+ * The feature id for the '<em><b>Group1</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int GROUP1 = 4;
+
+ /**
+ * The cached value of the '{@link #getGroup1() <em>Group1</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroup1()
+ * @generated
+ * @ordered
+ */
+
+ // How to get BasicSequence from Sequence?
+
+ protected BasicSequence group1 = null;
+
+ /**
+ * The feature id for the '<em><b>Y</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int Y = 5;
+
+ /**
+ * The feature id for the '<em><b>Z</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int Z = 6;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TwoRCsImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type getType()
+ {
+ return TypeHelper.INSTANCE.getType(TwoRCs.class); //TBD Generate a more efficient implementation
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getGroup()
+ {
+ if (group == null)
+ {
+ group = createSequence(GROUP);
+
+ }
+ return group;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getA()
+ {
+ return getList(getGroup(), getType(), A);
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getB()
+ {
+ return getList(getGroup(), getType(), B);
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSplit()
+ {
+ return split;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSplit(String newSplit)
+ {
+ String oldSplit = split;
+ split = newSplit;
+ if (isNotifying())
+ notify(ChangeKind.SET, SPLIT, oldSplit, split);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getGroup1()
+ {
+ if (group1 == null)
+ {
+ group1 = createSequence(GROUP1);
+
+ }
+ return group1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getY()
+ {
+ return getList(getGroup1(), getType(), Y);
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getZ()
+ {
+ return getList(getGroup1(), getType(), Z);
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeContext inverseRemove(Object otherEnd, int propertyIndex, ChangeContext changeContext)
+ {
+ switch (propertyIndex)
+ {
+ case GROUP:
+ return removeFromSequence(getGroup(), otherEnd, changeContext);
+ case GROUP1:
+ return removeFromSequence(getGroup1(), otherEnd, changeContext);
+ }
+ return super.inverseRemove(otherEnd, propertyIndex, changeContext);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object get(int propertyIndex, boolean resolve)
+ {
+ switch (propertyIndex)
+ {
+ case GROUP:
+ // XXX query introduce coreType as an argument? -- semantic = if true -- coreType - return the core EMF object if value is a non-EMF wrapper/view
+ //if (coreType)
+ return getGroup();
+ case A:
+ return getA();
+ case B:
+ return getB();
+ case SPLIT:
+ return getSplit();
+ case GROUP1:
+ // XXX query introduce coreType as an argument? -- semantic = if true -- coreType - return the core EMF object if value is a non-EMF wrapper/view
+ //if (coreType)
+ return getGroup1();
+ case Y:
+ return getY();
+ case Z:
+ return getZ();
+ }
+ return super.get(propertyIndex, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void set(int propertyIndex, Object newValue)
+ {
+ switch (propertyIndex)
+ {
+ case GROUP:
+ setSequence(getGroup(), newValue);
+ return;
+ case A:
+ getA().clear();
+ getA().addAll((Collection)newValue);
+ return;
+ case B:
+ getB().clear();
+ getB().addAll((Collection)newValue);
+ return;
+ case SPLIT:
+ setSplit((String)newValue);
+ return;
+ case GROUP1:
+ setSequence(getGroup1(), newValue);
+ return;
+ case Y:
+ getY().clear();
+ getY().addAll((Collection)newValue);
+ return;
+ case Z:
+ getZ().clear();
+ getZ().addAll((Collection)newValue);
+ return;
+ }
+ super.set(propertyIndex, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unset(int propertyIndex)
+ {
+ switch (propertyIndex)
+ {
+ case GROUP:
+ unsetSequence(getGroup());
+ return;
+ case A:
+ getA().clear();
+ return;
+ case B:
+ getB().clear();
+ return;
+ case SPLIT:
+ setSplit(SPLIT_DEFAULT_);
+ return;
+ case GROUP1:
+ unsetSequence(getGroup1());
+ return;
+ case Y:
+ getY().clear();
+ return;
+ case Z:
+ getZ().clear();
+ return;
+ }
+ super.unset(propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSet(int propertyIndex)
+ {
+ switch (propertyIndex)
+ {
+ case GROUP:
+ // KDK - should this be !isSequenceEmpty?
+ return group != null && !isSequenceEmpty(getGroup());
+ case A:
+ return !getA().isEmpty();
+ case B:
+ return !getB().isEmpty();
+ case SPLIT:
+ return SPLIT_DEFAULT_ == null ? split != null : !SPLIT_DEFAULT_.equals(split);
+ case GROUP1:
+ // KDK - should this be !isSequenceEmpty?
+ return group1 != null && !isSequenceEmpty(getGroup1());
+ case Y:
+ return !getY().isEmpty();
+ case Z:
+ return !getZ().isEmpty();
+ }
+ return super.isSet(propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (isProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (group: ");
+ result.append(group);
+ result.append(", split: ");
+ result.append(split);
+ result.append(", group1: ");
+ result.append(group1);
+ result.append(')');
+ return result.toString();
+ }
+
+} //TwoRCsImpl
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/TwoRCsMixedImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/TwoRCsMixedImpl.java
new file mode 100644
index 0000000000..a8c3186088
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/sequences/impl/TwoRCsMixedImpl.java
@@ -0,0 +1,447 @@
+/**
+ *
+ * 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 com.example.sequences.impl;
+
+import com.example.sequences.TwoRCsMixed;
+
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+
+import commonj.sdo.helper.TypeHelper;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.tuscany.sdo.impl.DataObjectBase;
+
+import org.apache.tuscany.sdo.util.BasicSequence;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Two RCs Mixed</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link com.example.sequences.impl.TwoRCsMixedImpl#getMixed <em>Mixed</em>}</li>
+ * <li>{@link com.example.sequences.impl.TwoRCsMixedImpl#getGroup <em>Group</em>}</li>
+ * <li>{@link com.example.sequences.impl.TwoRCsMixedImpl#getA <em>A</em>}</li>
+ * <li>{@link com.example.sequences.impl.TwoRCsMixedImpl#getB <em>B</em>}</li>
+ * <li>{@link com.example.sequences.impl.TwoRCsMixedImpl#getSplit <em>Split</em>}</li>
+ * <li>{@link com.example.sequences.impl.TwoRCsMixedImpl#getGroup1 <em>Group1</em>}</li>
+ * <li>{@link com.example.sequences.impl.TwoRCsMixedImpl#getY <em>Y</em>}</li>
+ * <li>{@link com.example.sequences.impl.TwoRCsMixedImpl#getZ <em>Z</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TwoRCsMixedImpl extends DataObjectBase implements TwoRCsMixed
+{
+ /**
+ * The feature id for the '<em><b>Mixed</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int MIXED = 0;
+
+ /**
+ * The cached value of the '{@link #getMixed() <em>Mixed</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMixed()
+ * @generated
+ * @ordered
+ */
+
+ // How to get BasicSequence from Sequence?
+
+ protected BasicSequence mixed = null;
+
+ /**
+ * The feature id for the '<em><b>Group</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int GROUP = 1;
+
+ /**
+ * The feature id for the '<em><b>A</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int A = 2;
+
+ /**
+ * The feature id for the '<em><b>B</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int B = 3;
+
+ /**
+ * The feature id for the '<em><b>Split</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int SPLIT = 4;
+
+ /**
+ * The default value of the '{@link #getSplit() <em>Split</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSplit()
+ * @generated
+ * @ordered
+ */
+ protected static final String SPLIT_DEFAULT_ = null;
+
+ /**
+ * The feature id for the '<em><b>Group1</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int GROUP1 = 5;
+
+ /**
+ * The feature id for the '<em><b>Y</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int Y = 6;
+
+ /**
+ * The feature id for the '<em><b>Z</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int Z = 7;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TwoRCsMixedImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type getType()
+ {
+ return TypeHelper.INSTANCE.getType(TwoRCsMixed.class); //TBD Generate a more efficient implementation
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getMixed()
+ {
+ if (mixed == null)
+ {
+ mixed = createSequence(MIXED);
+
+ }
+ return mixed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getGroup()
+ {
+ return createSequence(getMixed(), getType(), GROUP);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getA()
+ {
+ return getList(getGroup(), getType(), A);
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getB()
+ {
+ return getList(getGroup(), getType(), B);
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSplit()
+ {
+ return (String)get(getMixed(), getType(), SPLIT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSplit(String newSplit)
+ {
+ set(getMixed(), getType(), SPLIT, newSplit);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sequence getGroup1()
+ {
+ return createSequence(getMixed(), getType(), GROUP1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getY()
+ {
+ return getList(getGroup1(), getType(), Y);
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getZ()
+ {
+ return getList(getGroup1(), getType(), Z);
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeContext inverseRemove(Object otherEnd, int propertyIndex, ChangeContext changeContext)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ return removeFromSequence(getMixed(), otherEnd, changeContext);
+ case GROUP:
+ return removeFromSequence(getGroup(), otherEnd, changeContext);
+ case GROUP1:
+ return removeFromSequence(getGroup1(), otherEnd, changeContext);
+ }
+ return super.inverseRemove(otherEnd, propertyIndex, changeContext);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object get(int propertyIndex, boolean resolve)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ // XXX query introduce coreType as an argument? -- semantic = if true -- coreType - return the core EMF object if value is a non-EMF wrapper/view
+ //if (coreType)
+ return getMixed();
+ case GROUP:
+ // XXX query introduce coreType as an argument? -- semantic = if true -- coreType - return the core EMF object if value is a non-EMF wrapper/view
+ //if (coreType)
+ return getGroup();
+ case A:
+ return getA();
+ case B:
+ return getB();
+ case SPLIT:
+ return getSplit();
+ case GROUP1:
+ // XXX query introduce coreType as an argument? -- semantic = if true -- coreType - return the core EMF object if value is a non-EMF wrapper/view
+ //if (coreType)
+ return getGroup1();
+ case Y:
+ return getY();
+ case Z:
+ return getZ();
+ }
+ return super.get(propertyIndex, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void set(int propertyIndex, Object newValue)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ setSequence(getMixed(), newValue);
+ return;
+ case GROUP:
+ setSequence(getGroup(), newValue);
+ return;
+ case A:
+ getA().clear();
+ getA().addAll((Collection)newValue);
+ return;
+ case B:
+ getB().clear();
+ getB().addAll((Collection)newValue);
+ return;
+ case SPLIT:
+ setSplit((String)newValue);
+ return;
+ case GROUP1:
+ setSequence(getGroup1(), newValue);
+ return;
+ case Y:
+ getY().clear();
+ getY().addAll((Collection)newValue);
+ return;
+ case Z:
+ getZ().clear();
+ getZ().addAll((Collection)newValue);
+ return;
+ }
+ super.set(propertyIndex, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unset(int propertyIndex)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ unsetSequence(getMixed());
+ return;
+ case GROUP:
+ unsetSequence(getGroup());
+ return;
+ case A:
+ getA().clear();
+ return;
+ case B:
+ getB().clear();
+ return;
+ case SPLIT:
+ setSplit(SPLIT_DEFAULT_);
+ return;
+ case GROUP1:
+ unsetSequence(getGroup1());
+ return;
+ case Y:
+ getY().clear();
+ return;
+ case Z:
+ getZ().clear();
+ return;
+ }
+ super.unset(propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSet(int propertyIndex)
+ {
+ switch (propertyIndex)
+ {
+ case MIXED:
+ // KDK - should this be !isSequenceEmpty?
+ return mixed != null && !isSequenceEmpty(getMixed());
+ case GROUP:
+ return !isSequenceEmpty(getGroup());
+ case A:
+ return !getA().isEmpty();
+ case B:
+ return !getB().isEmpty();
+ case SPLIT:
+ return SPLIT_DEFAULT_ == null ? getSplit() != null : !SPLIT_DEFAULT_.equals(getSplit());
+ case GROUP1:
+ return !isSequenceEmpty(getGroup1());
+ case Y:
+ return !getY().isEmpty();
+ case Z:
+ return !getZ().isEmpty();
+ }
+ return super.isSet(propertyIndex);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (isProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (mixed: ");
+ result.append(mixed);
+ result.append(')');
+ return result.toString();
+ }
+
+} //TwoRCsMixedImpl
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/Quote.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/Quote.java
new file mode 100644
index 0000000000..57b12ef331
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/Quote.java
@@ -0,0 +1,307 @@
+/**
+ *
+ * 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 com.example.simple;
+
+import java.math.BigDecimal;
+
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Quote</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link com.example.simple.Quote#getSymbol <em>Symbol</em>}</li>
+ * <li>{@link com.example.simple.Quote#getCompanyName <em>Company Name</em>}</li>
+ * <li>{@link com.example.simple.Quote#getPrice <em>Price</em>}</li>
+ * <li>{@link com.example.simple.Quote#getOpen1 <em>Open1</em>}</li>
+ * <li>{@link com.example.simple.Quote#getHigh <em>High</em>}</li>
+ * <li>{@link com.example.simple.Quote#getLow <em>Low</em>}</li>
+ * <li>{@link com.example.simple.Quote#getVolume <em>Volume</em>}</li>
+ * <li>{@link com.example.simple.Quote#getChange1 <em>Change1</em>}</li>
+ * <li>{@link com.example.simple.Quote#getQuotes <em>Quotes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public interface Quote
+{
+ /**
+ * Returns the value of the '<em><b>Symbol</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Symbol</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Symbol</em>' attribute.
+ * @see #setSymbol(String)
+ * @generated
+ */
+ String getSymbol();
+
+ /**
+ * Sets the value of the '{@link com.example.simple.Quote#getSymbol <em>Symbol</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Symbol</em>' attribute.
+ * @see #getSymbol()
+ * @generated
+ */
+ void setSymbol(String value);
+
+ /**
+ * Returns the value of the '<em><b>Company Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Company 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>Company Name</em>' attribute.
+ * @see #setCompanyName(String)
+ * @generated
+ */
+ String getCompanyName();
+
+ /**
+ * Sets the value of the '{@link com.example.simple.Quote#getCompanyName <em>Company Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Company Name</em>' attribute.
+ * @see #getCompanyName()
+ * @generated
+ */
+ void setCompanyName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Price</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Price</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Price</em>' attribute.
+ * @see #setPrice(BigDecimal)
+ * @generated
+ */
+ BigDecimal getPrice();
+
+ /**
+ * Sets the value of the '{@link com.example.simple.Quote#getPrice <em>Price</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Price</em>' attribute.
+ * @see #getPrice()
+ * @generated
+ */
+ void setPrice(BigDecimal value);
+
+ /**
+ * Returns the value of the '<em><b>Open1</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Open1</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Open1</em>' attribute.
+ * @see #setOpen1(BigDecimal)
+ * @generated
+ */
+ BigDecimal getOpen1();
+
+ /**
+ * Sets the value of the '{@link com.example.simple.Quote#getOpen1 <em>Open1</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Open1</em>' attribute.
+ * @see #getOpen1()
+ * @generated
+ */
+ void setOpen1(BigDecimal value);
+
+ /**
+ * Returns the value of the '<em><b>High</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>High</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>High</em>' attribute.
+ * @see #setHigh(BigDecimal)
+ * @generated
+ */
+ BigDecimal getHigh();
+
+ /**
+ * Sets the value of the '{@link com.example.simple.Quote#getHigh <em>High</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>High</em>' attribute.
+ * @see #getHigh()
+ * @generated
+ */
+ void setHigh(BigDecimal value);
+
+ /**
+ * Returns the value of the '<em><b>Low</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Low</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Low</em>' attribute.
+ * @see #setLow(BigDecimal)
+ * @generated
+ */
+ BigDecimal getLow();
+
+ /**
+ * Sets the value of the '{@link com.example.simple.Quote#getLow <em>Low</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Low</em>' attribute.
+ * @see #getLow()
+ * @generated
+ */
+ void setLow(BigDecimal value);
+
+ /**
+ * Returns the value of the '<em><b>Volume</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Volume</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Volume</em>' attribute.
+ * @see #isSetVolume()
+ * @see #unsetVolume()
+ * @see #setVolume(double)
+ * @generated
+ */
+ double getVolume();
+
+ /**
+ * Sets the value of the '{@link com.example.simple.Quote#getVolume <em>Volume</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Volume</em>' attribute.
+ * @see #isSetVolume()
+ * @see #unsetVolume()
+ * @see #getVolume()
+ * @generated
+ */
+ void setVolume(double value);
+
+ /**
+ * Unsets the value of the '{@link com.example.simple.Quote#getVolume <em>Volume</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetVolume()
+ * @see #getVolume()
+ * @see #setVolume(double)
+ * @generated
+ */
+ void unsetVolume();
+
+ /**
+ * Returns whether the value of the '{@link com.example.simple.Quote#getVolume <em>Volume</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Volume</em>' attribute is set.
+ * @see #unsetVolume()
+ * @see #getVolume()
+ * @see #setVolume(double)
+ * @generated
+ */
+ boolean isSetVolume();
+
+ /**
+ * Returns the value of the '<em><b>Change1</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Change1</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Change1</em>' attribute.
+ * @see #isSetChange1()
+ * @see #unsetChange1()
+ * @see #setChange1(double)
+ * @generated
+ */
+ double getChange1();
+
+ /**
+ * Sets the value of the '{@link com.example.simple.Quote#getChange1 <em>Change1</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Change1</em>' attribute.
+ * @see #isSetChange1()
+ * @see #unsetChange1()
+ * @see #getChange1()
+ * @generated
+ */
+ void setChange1(double value);
+
+ /**
+ * Unsets the value of the '{@link com.example.simple.Quote#getChange1 <em>Change1</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetChange1()
+ * @see #getChange1()
+ * @see #setChange1(double)
+ * @generated
+ */
+ void unsetChange1();
+
+ /**
+ * Returns whether the value of the '{@link com.example.simple.Quote#getChange1 <em>Change1</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Change1</em>' attribute is set.
+ * @see #unsetChange1()
+ * @see #getChange1()
+ * @see #setChange1(double)
+ * @generated
+ */
+ boolean isSetChange1();
+
+ /**
+ * Returns the value of the '<em><b>Quotes</b></em>' containment reference list.
+ * The list contents are of type {@link com.example.simple.Quote}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Quotes</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>Quotes</em>' containment reference list.
+ * @generated
+ */
+ List getQuotes();
+
+} // Quote
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/SimpleFactory.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/SimpleFactory.java
new file mode 100644
index 0000000000..9203976521
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/SimpleFactory.java
@@ -0,0 +1,46 @@
+/**
+ *
+ * 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 com.example.simple;
+
+
+/**
+ * <!-- 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 SimpleFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ SimpleFactory INSTANCE = com.example.simple.impl.SimpleFactoryImpl.eINSTANCE;
+
+ /**
+ * Returns a new object of class '<em>Quote</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Quote</em>'.
+ * @generated
+ */
+ Quote createQuote();
+
+} //SimpleFactory
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/impl/QuoteImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/impl/QuoteImpl.java
new file mode 100644
index 0000000000..5b407dd311
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/impl/QuoteImpl.java
@@ -0,0 +1,712 @@
+/**
+ *
+ * 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 com.example.simple.impl;
+
+import com.example.simple.Quote;
+
+import java.math.BigDecimal;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.tuscany.sdo.impl.DataObjectImpl;
+
+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.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+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>Quote</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link com.example.simple.impl.QuoteImpl#getSymbol <em>Symbol</em>}</li>
+ * <li>{@link com.example.simple.impl.QuoteImpl#getCompanyName <em>Company Name</em>}</li>
+ * <li>{@link com.example.simple.impl.QuoteImpl#getPrice <em>Price</em>}</li>
+ * <li>{@link com.example.simple.impl.QuoteImpl#getOpen1 <em>Open1</em>}</li>
+ * <li>{@link com.example.simple.impl.QuoteImpl#getHigh <em>High</em>}</li>
+ * <li>{@link com.example.simple.impl.QuoteImpl#getLow <em>Low</em>}</li>
+ * <li>{@link com.example.simple.impl.QuoteImpl#getVolume <em>Volume</em>}</li>
+ * <li>{@link com.example.simple.impl.QuoteImpl#getChange1 <em>Change1</em>}</li>
+ * <li>{@link com.example.simple.impl.QuoteImpl#getQuotes <em>Quotes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QuoteImpl extends DataObjectImpl implements Quote
+{
+ /**
+ * The default value of the '{@link #getSymbol() <em>Symbol</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSymbol()
+ * @generated
+ * @ordered
+ */
+ protected static final String SYMBOL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSymbol() <em>Symbol</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSymbol()
+ * @generated
+ * @ordered
+ */
+ protected String symbol = SYMBOL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCompanyName() <em>Company Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompanyName()
+ * @generated
+ * @ordered
+ */
+ protected static final String COMPANY_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCompanyName() <em>Company Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompanyName()
+ * @generated
+ * @ordered
+ */
+ protected String companyName = COMPANY_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPrice() <em>Price</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPrice()
+ * @generated
+ * @ordered
+ */
+ protected static final BigDecimal PRICE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPrice() <em>Price</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPrice()
+ * @generated
+ * @ordered
+ */
+ protected BigDecimal price = PRICE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOpen1() <em>Open1</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOpen1()
+ * @generated
+ * @ordered
+ */
+ protected static final BigDecimal OPEN1_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOpen1() <em>Open1</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOpen1()
+ * @generated
+ * @ordered
+ */
+ protected BigDecimal open1 = OPEN1_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getHigh() <em>High</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHigh()
+ * @generated
+ * @ordered
+ */
+ protected static final BigDecimal HIGH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getHigh() <em>High</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHigh()
+ * @generated
+ * @ordered
+ */
+ protected BigDecimal high = HIGH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLow() <em>Low</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLow()
+ * @generated
+ * @ordered
+ */
+ protected static final BigDecimal LOW_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLow() <em>Low</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLow()
+ * @generated
+ * @ordered
+ */
+ protected BigDecimal low = LOW_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getVolume() <em>Volume</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVolume()
+ * @generated
+ * @ordered
+ */
+ protected static final double VOLUME_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getVolume() <em>Volume</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVolume()
+ * @generated
+ * @ordered
+ */
+ protected double volume = VOLUME_EDEFAULT;
+
+ /**
+ * This is true if the Volume attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean volumeESet = false;
+
+ /**
+ * The default value of the '{@link #getChange1() <em>Change1</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChange1()
+ * @generated
+ * @ordered
+ */
+ protected static final double CHANGE1_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getChange1() <em>Change1</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChange1()
+ * @generated
+ * @ordered
+ */
+ protected double change1 = CHANGE1_EDEFAULT;
+
+ /**
+ * This is true if the Change1 attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean change1ESet = false;
+
+ /**
+ * The cached value of the '{@link #getQuotes() <em>Quotes</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getQuotes()
+ * @generated
+ * @ordered
+ */
+ protected EList quotes = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected QuoteImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass()
+ {
+ return SimplePackageImpl.Literals.QUOTE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol()
+ {
+ return symbol;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSymbol(String newSymbol)
+ {
+ String oldSymbol = symbol;
+ symbol = newSymbol;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SimplePackageImpl.QUOTE__SYMBOL, oldSymbol, symbol));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCompanyName()
+ {
+ return companyName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCompanyName(String newCompanyName)
+ {
+ String oldCompanyName = companyName;
+ companyName = newCompanyName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SimplePackageImpl.QUOTE__COMPANY_NAME, oldCompanyName, companyName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BigDecimal getPrice()
+ {
+ return price;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPrice(BigDecimal newPrice)
+ {
+ BigDecimal oldPrice = price;
+ price = newPrice;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SimplePackageImpl.QUOTE__PRICE, oldPrice, price));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BigDecimal getOpen1()
+ {
+ return open1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOpen1(BigDecimal newOpen1)
+ {
+ BigDecimal oldOpen1 = open1;
+ open1 = newOpen1;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SimplePackageImpl.QUOTE__OPEN1, oldOpen1, open1));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BigDecimal getHigh()
+ {
+ return high;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHigh(BigDecimal newHigh)
+ {
+ BigDecimal oldHigh = high;
+ high = newHigh;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SimplePackageImpl.QUOTE__HIGH, oldHigh, high));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BigDecimal getLow()
+ {
+ return low;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLow(BigDecimal newLow)
+ {
+ BigDecimal oldLow = low;
+ low = newLow;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SimplePackageImpl.QUOTE__LOW, oldLow, low));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getVolume()
+ {
+ return volume;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVolume(double newVolume)
+ {
+ double oldVolume = volume;
+ volume = newVolume;
+ boolean oldVolumeESet = volumeESet;
+ volumeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SimplePackageImpl.QUOTE__VOLUME, oldVolume, volume, !oldVolumeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetVolume()
+ {
+ double oldVolume = volume;
+ boolean oldVolumeESet = volumeESet;
+ volume = VOLUME_EDEFAULT;
+ volumeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SimplePackageImpl.QUOTE__VOLUME, oldVolume, VOLUME_EDEFAULT, oldVolumeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetVolume()
+ {
+ return volumeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getChange1()
+ {
+ return change1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setChange1(double newChange1)
+ {
+ double oldChange1 = change1;
+ change1 = newChange1;
+ boolean oldChange1ESet = change1ESet;
+ change1ESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SimplePackageImpl.QUOTE__CHANGE1, oldChange1, change1, !oldChange1ESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetChange1()
+ {
+ double oldChange1 = change1;
+ boolean oldChange1ESet = change1ESet;
+ change1 = CHANGE1_EDEFAULT;
+ change1ESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, SimplePackageImpl.QUOTE__CHANGE1, oldChange1, CHANGE1_EDEFAULT, oldChange1ESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetChange1()
+ {
+ return change1ESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getQuotes()
+ {
+ if (quotes == null)
+ {
+ quotes = new EObjectContainmentEList(Quote.class, this, SimplePackageImpl.QUOTE__QUOTES);
+ }
+ return quotes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case SimplePackageImpl.QUOTE__QUOTES:
+ return ((InternalEList)getQuotes()).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 SimplePackageImpl.QUOTE__SYMBOL:
+ return getSymbol();
+ case SimplePackageImpl.QUOTE__COMPANY_NAME:
+ return getCompanyName();
+ case SimplePackageImpl.QUOTE__PRICE:
+ return getPrice();
+ case SimplePackageImpl.QUOTE__OPEN1:
+ return getOpen1();
+ case SimplePackageImpl.QUOTE__HIGH:
+ return getHigh();
+ case SimplePackageImpl.QUOTE__LOW:
+ return getLow();
+ case SimplePackageImpl.QUOTE__VOLUME:
+ return new Double(getVolume());
+ case SimplePackageImpl.QUOTE__CHANGE1:
+ return new Double(getChange1());
+ case SimplePackageImpl.QUOTE__QUOTES:
+ return getQuotes();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SimplePackageImpl.QUOTE__SYMBOL:
+ setSymbol((String)newValue);
+ return;
+ case SimplePackageImpl.QUOTE__COMPANY_NAME:
+ setCompanyName((String)newValue);
+ return;
+ case SimplePackageImpl.QUOTE__PRICE:
+ setPrice((BigDecimal)newValue);
+ return;
+ case SimplePackageImpl.QUOTE__OPEN1:
+ setOpen1((BigDecimal)newValue);
+ return;
+ case SimplePackageImpl.QUOTE__HIGH:
+ setHigh((BigDecimal)newValue);
+ return;
+ case SimplePackageImpl.QUOTE__LOW:
+ setLow((BigDecimal)newValue);
+ return;
+ case SimplePackageImpl.QUOTE__VOLUME:
+ setVolume(((Double)newValue).doubleValue());
+ return;
+ case SimplePackageImpl.QUOTE__CHANGE1:
+ setChange1(((Double)newValue).doubleValue());
+ return;
+ case SimplePackageImpl.QUOTE__QUOTES:
+ getQuotes().clear();
+ getQuotes().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SimplePackageImpl.QUOTE__SYMBOL:
+ setSymbol(SYMBOL_EDEFAULT);
+ return;
+ case SimplePackageImpl.QUOTE__COMPANY_NAME:
+ setCompanyName(COMPANY_NAME_EDEFAULT);
+ return;
+ case SimplePackageImpl.QUOTE__PRICE:
+ setPrice(PRICE_EDEFAULT);
+ return;
+ case SimplePackageImpl.QUOTE__OPEN1:
+ setOpen1(OPEN1_EDEFAULT);
+ return;
+ case SimplePackageImpl.QUOTE__HIGH:
+ setHigh(HIGH_EDEFAULT);
+ return;
+ case SimplePackageImpl.QUOTE__LOW:
+ setLow(LOW_EDEFAULT);
+ return;
+ case SimplePackageImpl.QUOTE__VOLUME:
+ unsetVolume();
+ return;
+ case SimplePackageImpl.QUOTE__CHANGE1:
+ unsetChange1();
+ return;
+ case SimplePackageImpl.QUOTE__QUOTES:
+ getQuotes().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SimplePackageImpl.QUOTE__SYMBOL:
+ return SYMBOL_EDEFAULT == null ? symbol != null : !SYMBOL_EDEFAULT.equals(symbol);
+ case SimplePackageImpl.QUOTE__COMPANY_NAME:
+ return COMPANY_NAME_EDEFAULT == null ? companyName != null : !COMPANY_NAME_EDEFAULT.equals(companyName);
+ case SimplePackageImpl.QUOTE__PRICE:
+ return PRICE_EDEFAULT == null ? price != null : !PRICE_EDEFAULT.equals(price);
+ case SimplePackageImpl.QUOTE__OPEN1:
+ return OPEN1_EDEFAULT == null ? open1 != null : !OPEN1_EDEFAULT.equals(open1);
+ case SimplePackageImpl.QUOTE__HIGH:
+ return HIGH_EDEFAULT == null ? high != null : !HIGH_EDEFAULT.equals(high);
+ case SimplePackageImpl.QUOTE__LOW:
+ return LOW_EDEFAULT == null ? low != null : !LOW_EDEFAULT.equals(low);
+ case SimplePackageImpl.QUOTE__VOLUME:
+ return isSetVolume();
+ case SimplePackageImpl.QUOTE__CHANGE1:
+ return isSetChange1();
+ case SimplePackageImpl.QUOTE__QUOTES:
+ return quotes != null && !quotes.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(" (symbol: ");
+ result.append(symbol);
+ result.append(", companyName: ");
+ result.append(companyName);
+ result.append(", price: ");
+ result.append(price);
+ result.append(", open1: ");
+ result.append(open1);
+ result.append(", high: ");
+ result.append(high);
+ result.append(", low: ");
+ result.append(low);
+ result.append(", volume: ");
+ if (volumeESet) result.append(volume); else result.append("<unset>");
+ result.append(", change1: ");
+ if (change1ESet) result.append(change1); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //QuoteImpl
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/impl/SimpleFactoryImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/impl/SimpleFactoryImpl.java
new file mode 100644
index 0000000000..06b0e3891e
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/impl/SimpleFactoryImpl.java
@@ -0,0 +1,138 @@
+/**
+ *
+ * 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 com.example.simple.impl;
+
+import com.example.simple.*;
+
+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 SimpleFactoryImpl extends EFactoryImpl implements SimpleFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final SimpleFactoryImpl eINSTANCE = init();
+
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SimpleFactoryImpl init()
+ {
+ try
+ {
+ SimpleFactoryImpl theSimpleFactory = (SimpleFactoryImpl)EPackage.Registry.INSTANCE.getEFactory("http://www.example.com/simple");
+ if (theSimpleFactory != null)
+ {
+ return theSimpleFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new SimpleFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SimpleFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case SimplePackageImpl.DOCUMENT_ROOT: return (EObject)createDocumentRoot();
+ case SimplePackageImpl.QUOTE: return (EObject)createQuote();
+ 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(SimplePackageImpl.Literals.DOCUMENT_ROOT);
+ return documentRoot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Quote createQuote()
+ {
+ QuoteImpl quote = new QuoteImpl();
+ return quote;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SimplePackageImpl getSimplePackageImpl()
+ {
+ return (SimplePackageImpl)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static SimplePackageImpl getPackage()
+ {
+ return SimplePackageImpl.eINSTANCE;
+ }
+
+} //SimpleFactoryImpl
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/impl/SimplePackageImpl.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/impl/SimplePackageImpl.java
new file mode 100644
index 0000000000..e8fe40c24d
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/com/example/simple/impl/SimplePackageImpl.java
@@ -0,0 +1,908 @@
+/**
+ *
+ * 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 com.example.simple.impl;
+
+import com.example.simple.Quote;
+import com.example.simple.SimpleFactory;
+
+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;
+
+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 com.example.simple.SimpleFactory
+ * @generated
+ */
+public class SimplePackageImpl extends EPackageImpl
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String eNAME = "simple";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String eNS_URI = "http://www.example.com/simple";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String eNS_PREFIX = "simple";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final SimplePackageImpl eINSTANCE = com.example.simple.impl.SimplePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link com.example.simple.impl.DocumentRootImpl <em>Document Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see com.example.simple.impl.DocumentRootImpl
+ * @see com.example.simple.impl.SimplePackageImpl#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>Stock Quote</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int DOCUMENT_ROOT__STOCK_QUOTE = 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 com.example.simple.impl.QuoteImpl <em>Quote</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see com.example.simple.impl.QuoteImpl
+ * @see com.example.simple.impl.SimplePackageImpl#getQuote()
+ * @generated
+ */
+ public static final int QUOTE = 1;
+
+ /**
+ * The feature id for the '<em><b>Symbol</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int QUOTE__SYMBOL = 0;
+
+ /**
+ * The feature id for the '<em><b>Company Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int QUOTE__COMPANY_NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Price</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int QUOTE__PRICE = 2;
+
+ /**
+ * The feature id for the '<em><b>Open1</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int QUOTE__OPEN1 = 3;
+
+ /**
+ * The feature id for the '<em><b>High</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int QUOTE__HIGH = 4;
+
+ /**
+ * The feature id for the '<em><b>Low</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int QUOTE__LOW = 5;
+
+ /**
+ * The feature id for the '<em><b>Volume</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int QUOTE__VOLUME = 6;
+
+ /**
+ * The feature id for the '<em><b>Change1</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int QUOTE__CHANGE1 = 7;
+
+ /**
+ * The feature id for the '<em><b>Quotes</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int QUOTE__QUOTES = 8;
+
+ /**
+ * The number of structural features of the '<em>Quote</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public static final int QUOTE_FEATURE_COUNT = 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass documentRootEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass quoteEClass = 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 com.example.simple.impl.SimplePackageImpl#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private SimplePackageImpl()
+ {
+ super(eNS_URI, ((EFactory)SimpleFactory.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 SimplePackageImpl init()
+ {
+ if (isInited) return (SimplePackageImpl)EPackage.Registry.INSTANCE.getEPackage(SimplePackageImpl.eNS_URI);
+
+ // Obtain or create and register package
+ SimplePackageImpl theSimplePackageImpl = (SimplePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof SimplePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new SimplePackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ XMLTypePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theSimplePackageImpl.createPackageContents();
+
+ // Initialize created meta-data
+ theSimplePackageImpl.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theSimplePackageImpl.freeze();
+
+ return theSimplePackageImpl;
+ }
+
+
+ /**
+ * 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#getStockQuote <em>Stock Quote</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stock Quote</em>'.
+ * @see org.eclipse.emf.ecore.EObject#getStockQuote()
+ * @see #getDocumentRoot()
+ * @generated
+ */
+ public EReference getDocumentRoot_StockQuote()
+ {
+ return (EReference)documentRootEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for class '{@link com.example.simple.Quote <em>Quote</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Quote</em>'.
+ * @see com.example.simple.Quote
+ * @generated
+ */
+ public EClass getQuote()
+ {
+ return quoteEClass;
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link com.example.simple.Quote#getSymbol <em>Symbol</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Symbol</em>'.
+ * @see com.example.simple.Quote#getSymbol()
+ * @see #getQuote()
+ * @generated
+ */
+ public EAttribute getQuote_Symbol()
+ {
+ return (EAttribute)quoteEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link com.example.simple.Quote#getCompanyName <em>Company Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Company Name</em>'.
+ * @see com.example.simple.Quote#getCompanyName()
+ * @see #getQuote()
+ * @generated
+ */
+ public EAttribute getQuote_CompanyName()
+ {
+ return (EAttribute)quoteEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link com.example.simple.Quote#getPrice <em>Price</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Price</em>'.
+ * @see com.example.simple.Quote#getPrice()
+ * @see #getQuote()
+ * @generated
+ */
+ public EAttribute getQuote_Price()
+ {
+ return (EAttribute)quoteEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link com.example.simple.Quote#getOpen1 <em>Open1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Open1</em>'.
+ * @see com.example.simple.Quote#getOpen1()
+ * @see #getQuote()
+ * @generated
+ */
+ public EAttribute getQuote_Open1()
+ {
+ return (EAttribute)quoteEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link com.example.simple.Quote#getHigh <em>High</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>High</em>'.
+ * @see com.example.simple.Quote#getHigh()
+ * @see #getQuote()
+ * @generated
+ */
+ public EAttribute getQuote_High()
+ {
+ return (EAttribute)quoteEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link com.example.simple.Quote#getLow <em>Low</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Low</em>'.
+ * @see com.example.simple.Quote#getLow()
+ * @see #getQuote()
+ * @generated
+ */
+ public EAttribute getQuote_Low()
+ {
+ return (EAttribute)quoteEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link com.example.simple.Quote#getVolume <em>Volume</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Volume</em>'.
+ * @see com.example.simple.Quote#getVolume()
+ * @see #getQuote()
+ * @generated
+ */
+ public EAttribute getQuote_Volume()
+ {
+ return (EAttribute)quoteEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * Returns the meta object for the attribute '{@link com.example.simple.Quote#getChange1 <em>Change1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Change1</em>'.
+ * @see com.example.simple.Quote#getChange1()
+ * @see #getQuote()
+ * @generated
+ */
+ public EAttribute getQuote_Change1()
+ {
+ return (EAttribute)quoteEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * Returns the meta object for the containment reference list '{@link com.example.simple.Quote#getQuotes <em>Quotes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Quotes</em>'.
+ * @see com.example.simple.Quote#getQuotes()
+ * @see #getQuote()
+ * @generated
+ */
+ public EReference getQuote_Quotes()
+ {
+ return (EReference)quoteEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * 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 SimpleFactory getSimpleFactory()
+ {
+ return (SimpleFactory)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__STOCK_QUOTE);
+
+ quoteEClass = createEClass(QUOTE);
+ createEAttribute(quoteEClass, QUOTE__SYMBOL);
+ createEAttribute(quoteEClass, QUOTE__COMPANY_NAME);
+ createEAttribute(quoteEClass, QUOTE__PRICE);
+ createEAttribute(quoteEClass, QUOTE__OPEN1);
+ createEAttribute(quoteEClass, QUOTE__HIGH);
+ createEAttribute(quoteEClass, QUOTE__LOW);
+ createEAttribute(quoteEClass, QUOTE__VOLUME);
+ createEAttribute(quoteEClass, QUOTE__CHANGE1);
+ createEReference(quoteEClass, QUOTE__QUOTES);
+ }
+
+ /**
+ * <!-- 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
+
+ // 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_StockQuote(), this.getQuote(), null, "stockQuote", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+ initEClass(quoteEClass, Quote.class, "Quote", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getQuote_Symbol(), theXMLTypePackage.getString(), "symbol", null, 1, 1, Quote.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getQuote_CompanyName(), theXMLTypePackage.getString(), "companyName", null, 1, 1, Quote.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getQuote_Price(), theXMLTypePackage.getDecimal(), "price", null, 1, 1, Quote.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getQuote_Open1(), theXMLTypePackage.getDecimal(), "open1", null, 1, 1, Quote.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getQuote_High(), theXMLTypePackage.getDecimal(), "high", null, 1, 1, Quote.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getQuote_Low(), theXMLTypePackage.getDecimal(), "low", null, 1, 1, Quote.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getQuote_Volume(), theXMLTypePackage.getDouble(), "volume", null, 1, 1, Quote.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getQuote_Change1(), theXMLTypePackage.getDouble(), "change1", null, 1, 1, Quote.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getQuote_Quotes(), this.getQuote(), null, "quotes", null, 0, -1, Quote.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, 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_StockQuote(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "stockQuote",
+ "namespace", "##targetNamespace"
+ });
+ addAnnotation
+ (quoteEClass,
+ source,
+ new String[]
+ {
+ "name", "Quote",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getQuote_Symbol(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "symbol"
+ });
+ addAnnotation
+ (getQuote_CompanyName(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "companyName"
+ });
+ addAnnotation
+ (getQuote_Price(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "price"
+ });
+ addAnnotation
+ (getQuote_Open1(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "open1"
+ });
+ addAnnotation
+ (getQuote_High(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "high"
+ });
+ addAnnotation
+ (getQuote_Low(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "low"
+ });
+ addAnnotation
+ (getQuote_Volume(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "volume"
+ });
+ addAnnotation
+ (getQuote_Change1(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "change1"
+ });
+ addAnnotation
+ (getQuote_Quotes(),
+ source,
+ new String[]
+ {
+ "kind", "element",
+ "name", "quotes"
+ });
+ }
+
+ /**
+ * <!-- 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 com.example.simple.impl.DocumentRootImpl <em>Document Root</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see com.example.simple.impl.DocumentRootImpl
+ * @see com.example.simple.impl.SimplePackageImpl#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>Stock Quote</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference DOCUMENT_ROOT__STOCK_QUOTE = eINSTANCE.getDocumentRoot_StockQuote();
+
+ /**
+ * The meta object literal for the '{@link com.example.simple.impl.QuoteImpl <em>Quote</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see com.example.simple.impl.QuoteImpl
+ * @see com.example.simple.impl.SimplePackageImpl#getQuote()
+ * @generated
+ */
+ public static final EClass QUOTE = eINSTANCE.getQuote();
+
+ /**
+ * The meta object literal for the '<em><b>Symbol</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute QUOTE__SYMBOL = eINSTANCE.getQuote_Symbol();
+
+ /**
+ * The meta object literal for the '<em><b>Company Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute QUOTE__COMPANY_NAME = eINSTANCE.getQuote_CompanyName();
+
+ /**
+ * The meta object literal for the '<em><b>Price</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute QUOTE__PRICE = eINSTANCE.getQuote_Price();
+
+ /**
+ * The meta object literal for the '<em><b>Open1</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute QUOTE__OPEN1 = eINSTANCE.getQuote_Open1();
+
+ /**
+ * The meta object literal for the '<em><b>High</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute QUOTE__HIGH = eINSTANCE.getQuote_High();
+
+ /**
+ * The meta object literal for the '<em><b>Low</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute QUOTE__LOW = eINSTANCE.getQuote_Low();
+
+ /**
+ * The meta object literal for the '<em><b>Volume</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute QUOTE__VOLUME = eINSTANCE.getQuote_Volume();
+
+ /**
+ * The meta object literal for the '<em><b>Change1</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EAttribute QUOTE__CHANGE1 = eINSTANCE.getQuote_Change1();
+
+ /**
+ * The meta object literal for the '<em><b>Quotes</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EReference QUOTE__QUOTES = eINSTANCE.getQuote_Quotes();
+
+ }
+
+} //SimplePackageImpl
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/SimpleStaticTest.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/SimpleStaticTest.java
new file mode 100644
index 0000000000..520cf707e7
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/SimpleStaticTest.java
@@ -0,0 +1,64 @@
+/**
+ *
+ * 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.test;
+
+import java.math.BigDecimal;
+
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import com.example.simple.Quote;
+import com.example.simple.SimpleFactory;
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.XMLHelper;
+
+
+public class SimpleStaticTest
+{
+ /**
+ * Simple Static SDO 2 test.
+ */
+ public static void main(String[] args)
+ {
+ try
+ {
+ SDOUtil.registerStaticTypes(SimpleFactory.class);
+
+ //Quote quote = (Quote)DataFactory.INSTANCE.create(Quote.class);
+ Quote quote = SimpleFactory.INSTANCE.createQuote();
+
+ quote.setSymbol("fbnt");
+ quote.setCompanyName("FlyByNightTechnology");
+ quote.setPrice(new BigDecimal("1000.0"));
+ quote.setOpen1(new BigDecimal("1000.0"));
+ quote.setHigh(new BigDecimal("1000.0"));
+ quote.setLow(new BigDecimal("1000.0"));
+ quote.setVolume(1000);
+ quote.setChange1(1000);
+
+ //Quote child = (Quote)((DataObject)quote).createDataObject(8);
+ Quote child = SimpleFactory.INSTANCE.createQuote();
+ quote.getQuotes().add(child);
+ child.setPrice(new BigDecimal("2000.0"));
+
+ XMLHelper.INSTANCE.save((DataObject)quote, "http://www.example.com/simple", "stockQuote", System.out);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/StaticSequenceNoEmfTest.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/StaticSequenceNoEmfTest.java
new file mode 100644
index 0000000000..ef6544bdb8
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/StaticSequenceNoEmfTest.java
@@ -0,0 +1,249 @@
+/**
+ *
+ * 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.test;
+
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import com.example.sequences.MixedQuote;
+import com.example.sequences.MixedRepeatingChoice;
+import com.example.sequences.RepeatingChoice;
+import com.example.sequences.SequencesFactory;
+import com.example.sequences.TwoRCs;
+import com.example.sequences.TwoRCsMixed;
+import commonj.sdo.DataObject;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+import commonj.sdo.helper.XMLHelper;
+
+
+public class StaticSequenceNoEmfTest extends TestCase {
+ private final String TEST_NAMESPACE = "http://www.example.com/sequences";
+ private final String MQ_TEST_DATA = "/mixedStaticTestResult.xml";
+ private final String RC_TEST_DATA = "/repeatingChoiceTestResult.xml";
+ private final String MRC_TEST_DATA = "/mixedRepeatingChoiceTestResult.xml";
+ private final String RC2_TEST_DATA = "/twoRepeatingChoicesTestResult.xml";
+ private final String RC2M_TEST_DATA = "/twoRepeatingChoicesMixedTestResult.xml";
+
+ /**
+ * Sequenced type SDO 2 test.
+ */
+ public void testMixedQuoteType() throws IOException {
+ MixedQuote quote = SequencesFactory.INSTANCE.createMixedQuote();
+
+ Type t = ((DataObject)quote).getType();
+ List ps = t.getProperties();
+
+
+ Sequence sequence = quote.getMixed();
+
+ sequence.add("\n ");
+
+ quote.setSymbol("fbnt");
+
+ sequence.add("\n ");
+
+ quote.setCompanyName("FlyByNightTechnology");
+
+ sequence.add("\n some text\n ");
+
+ List quotes = quote.getQuotes();
+ MixedQuote child = SequencesFactory.INSTANCE.createMixedQuote();
+ quotes.add(child);
+
+ child.setPrice(new BigDecimal("2000.0"));
+
+ sequence.add("\n more text\n ");
+
+ sequence.add("price", new BigDecimal("1000.0"));
+
+ sequence.add("\n");
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ XMLHelper.INSTANCE.save((DataObject)quote, TEST_NAMESPACE, "mixedStockQuote", baos);
+ assertTrue(baos.toString(), TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(MQ_TEST_DATA)));
+ }
+
+ public void testRepeatingChoice() throws IOException
+ {
+ RepeatingChoice rc = SequencesFactory.INSTANCE.createRepeatingChoice();
+
+ List as = rc.getA();
+ List bs = rc.getB();
+
+ bs.add(new Integer(1));
+ as.add("foo");
+ as.add("bar");
+ bs.add(new Integer(2));
+
+
+
+
+ Sequence group = rc.getGroup();
+ assertEquals(group.size(), 4);
+ assertEquals(rc.getA().size(), 2);
+ assertEquals(rc.getB().size(),2);
+
+ assertEquals(group.getValue(0), new Integer(1));
+ assertEquals(group.getValue(1), "foo");
+ assertEquals(group.getValue(2), "bar");
+ assertEquals(group.getValue(3), new Integer(2));
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ XMLHelper.INSTANCE.save((DataObject)rc, TEST_NAMESPACE, "rc", baos);
+ assertTrue(baos.toString(), TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(RC_TEST_DATA)));
+ }
+
+ public void testMixedRepeatingChoice() throws Exception {
+ MixedRepeatingChoice mrc = SequencesFactory.INSTANCE.createMixedRepeatingChoice();
+
+ List as = mrc.getA();
+ List bs = mrc.getB();
+
+
+ bs.add(new Integer(1));
+ as.add("foo");
+ Sequence mixed = mrc.getMixed();
+ mixed.add("some mixed text");
+ as.add("bar");
+ bs.add(new Integer(2));
+
+ // FIXME reintroduce check
+ // assertEquals(4, mrc.getGroup().size());
+ assertEquals(5, mrc.getMixed().size());
+ assertEquals(2, mrc.getA().size());
+ assertEquals(2, mrc.getB().size(),2);
+
+
+
+ assertEquals(mixed.getValue(0), new Integer(1));
+ assertEquals(mixed.getValue(1), "foo");
+ assertEquals(mixed.getValue(3), "bar");
+ assertEquals(mixed.getValue(4), new Integer(2));
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+
+ XMLHelper.INSTANCE.save((DataObject)mrc, TEST_NAMESPACE, "mrc", baos);
+ assertTrue(baos.toString(), TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(MRC_TEST_DATA)));
+ }
+
+ public void test2RepeatingChoices() throws Exception {
+ TwoRCs rc2 = SequencesFactory.INSTANCE.createTwoRCs();
+
+ List as = rc2.getA();
+ List bs = rc2.getB();
+ List ys = rc2.getY();
+ List zs = rc2.getZ();
+
+ zs.add(new Integer(99));
+ bs.add(new Integer(1));
+ ys.add("fred");
+ as.add("foo");
+ as.add("bar");
+ bs.add(new Integer(2));
+ rc2.setSplit("banana");
+
+
+ Sequence group = rc2.getGroup();
+ assertEquals(group.size(), 4);
+ assertEquals(rc2.getA().size(), 2);
+ assertEquals(rc2.getB().size(),2);
+
+ Sequence group1 = rc2.getGroup1();
+ assertEquals(group1.size(), 2);
+ assertEquals(rc2.getY().size(), 1);
+ assertEquals(rc2.getZ().size(),1);
+
+ assertEquals(group.getValue(0), new Integer(1));
+ assertEquals(group.getValue(1), "foo");
+ assertEquals(group.getValue(2), "bar");
+ assertEquals(group.getValue(3), new Integer(2));
+ assertEquals(group1.getValue(0), new Integer(99));
+ assertEquals(group1.getValue(1), "fred");
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+
+ XMLHelper.INSTANCE.save((DataObject)rc2, TEST_NAMESPACE, "rc2", baos);
+ assertTrue(baos.toString(), TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(RC2_TEST_DATA)));
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ SDOUtil.registerStaticTypes(SequencesFactory.class);
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void test2RepeatingChoicesMixed() throws Exception {
+ TwoRCsMixed rc2m = SequencesFactory.INSTANCE.createTwoRCsMixed();
+
+ List as = rc2m.getA();
+ List bs = rc2m.getB();
+ List ys = rc2m.getY();
+ List zs = rc2m.getZ();
+ Sequence mixed = rc2m.getMixed();
+
+ bs.add(new Integer(1));
+ mixed.add("where will this appear?");
+ as.add("foo");
+ as.add("bar");
+ bs.add(new Integer(2));
+ rc2m.setSplit("pea");
+ zs.add(new Integer(99));
+ ys.add("fred");
+
+
+ assertEquals(8, mixed.size());
+
+ Sequence group = rc2m.getGroup();
+ // FIXME reintroduce test assertEquals(4, group.size());
+ assertEquals(rc2m.getA().size(), 2);
+ assertEquals(rc2m.getB().size(),2);
+
+ Sequence group1 = rc2m.getGroup1();
+ // FIXME ditto assertEquals(group1.size(), 2);
+ assertEquals(rc2m.getY().size(), 1);
+ assertEquals(rc2m.getZ().size(),1);
+
+ int i = 0;
+ assertEquals(mixed.getValue(i++), new Integer(1));
+ assertEquals(mixed.getValue(i++), "where will this appear?");
+ assertEquals(mixed.getValue(i++), "foo");
+ assertEquals(mixed.getValue(i++), "bar");
+ assertEquals(mixed.getValue(i++), new Integer(2));
+ assertEquals(mixed.getValue(i++), "pea");
+ assertEquals(mixed.getValue(i++), new Integer(99));
+ assertEquals(mixed.getValue(i++), "fred");
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ XMLHelper.INSTANCE.save((DataObject)rc2m, TEST_NAMESPACE, "rc2m", baos);
+ assertTrue(baos.toString(), TestUtil.equalXmlFiles(new ByteArrayInputStream(baos.toByteArray()), getClass().getResource(RC2M_TEST_DATA)));
+ }
+
+
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/TestUtil.java b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/TestUtil.java
new file mode 100644
index 0000000000..c5bc850e16
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/TestUtil.java
@@ -0,0 +1,282 @@
+/**
+ *
+ * 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.test;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.FactoryConfigurationError;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.DocumentType;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+public class TestUtil
+{
+ private static void getAllNodes(NodeList nodeList, List nodes)
+ {
+ int length = nodeList.getLength();
+ if (length == 0)
+ {
+ return;
+ }
+
+ for (int i=0; i<length; i++)
+ {
+ Node node = nodeList.item(i);
+ nodes.add(node);
+ getAllNodes(node.getChildNodes(), nodes);
+ } // for
+ }
+
+ private static boolean equalNamedNodeMap(NamedNodeMap mapA, NamedNodeMap mapB) {
+ if (mapA == null) {
+ if (mapB == null) {
+ return true;
+ }
+ return false;
+ }
+ if (mapA.getLength() != mapB.getLength()) {
+ return false;
+ }
+ for (int i = 0; i < mapA.getLength(); i++) {
+ Node trialNode = mapA.item(i);
+ if (trialNode == null) {
+ return false;
+ }
+ Node checkNode = mapB.getNamedItem(trialNode.getNodeName());
+ if (checkNode == null) {
+ return false;
+ }
+ if (!equalNode(trialNode, checkNode)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private static boolean equalNode(Node nodeA, Node nodeB) {
+ if (nodeA == null) {
+ if (nodeB == null) {
+ return true;
+ }
+ return false;
+ }
+ // following is intended to provide same function as 1.5 isEqualNode()
+ if (nodeA.getNodeType() != nodeB.getNodeType()) {
+ return false;
+ }
+ if (!equalString(nodeA.getNodeName(), nodeB.getNodeName())) {
+ return false;
+ }
+ if (!equalString(nodeA.getLocalName(), nodeB.getLocalName())) {
+ return false;
+ }
+ if (!equalString(nodeA.getNamespaceURI(), nodeB.getNamespaceURI())) {
+ return false;
+ }
+ if (!equalString(nodeA.getNamespaceURI(), nodeB.getNamespaceURI())) {
+ return false;
+ }
+ if (!equalString(nodeA.getPrefix(), nodeB.getPrefix())) {
+ return false;
+ }
+ if (!equalString(nodeA.getNodeValue(), nodeB.getNodeValue())) {
+ return false;
+ }
+ if (!equalNamedNodeMap(nodeA.getAttributes(), nodeB.getAttributes())) {
+ return false;
+ }
+ if (!equalNodeList(nodeA.getChildNodes(), nodeB.getChildNodes())) {
+ return false;
+ }
+ if (nodeA.getNodeType() == Node.DOCUMENT_TYPE_NODE) {
+ DocumentType documentTypeA = (DocumentType) nodeA;
+ DocumentType documentTypeB = (DocumentType) nodeB;
+ if (!equalString(documentTypeA.getPublicId(), documentTypeB.getPublicId())) {
+ return false;
+ }
+ if (!equalString(documentTypeA.getSystemId(), documentTypeB.getSystemId())) {
+ return false;
+ }
+ if (!equalString(documentTypeA.getInternalSubset(), documentTypeB.getInternalSubset())) {
+ return false;
+ }
+ if (!equalNamedNodeMap(documentTypeA.getEntities(), documentTypeB.getEntities())) {
+ return false;
+ }
+ if (!equalNamedNodeMap(documentTypeA.getNotations(), documentTypeB.getNotations())) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private static boolean equalNodeList(NodeList nodeListA, NodeList nodeListB) {
+ if (nodeListA == null) {
+ if (nodeListB == null) {
+ return true;
+ }
+ return false;
+ }
+ return equalNodes(nodeListA, nodeListB);
+ }
+
+ private static boolean equalString(String stringA, String stringB) {
+ if (stringA == null) {
+ if (stringB == null) {
+ return true;
+ }
+ return false;
+ }
+ return stringA.equals(stringB);
+ }
+
+ private static boolean equalNodes(NodeList sourceNodeList, NodeList targetNodeList)
+ {
+ ArrayList sourceNodes = new ArrayList();
+ ArrayList targetNodes = new ArrayList();
+
+ getAllNodes(sourceNodeList, sourceNodes);
+ getAllNodes(targetNodeList, targetNodes);
+
+ int sourceLength = sourceNodes.size();
+ int targetLength = targetNodes.size();
+
+ if (sourceLength != targetLength)
+ {
+ return false;
+ }
+
+ for (int i=0; i<sourceLength; i++)
+ {
+ Node sourceNode = (Node)sourceNodes.get(i);
+ Node targetNode = (Node)targetNodes.get(i);
+
+ /* remove comment when migrated to Java 1.5
+ if (!sourceNode.isEqualNode(targetNode))
+ {
+ return false;
+ }
+ */
+ // following is intended as 1.4 equivalent of isEqualNode()
+ if (!equalNode(sourceNode, targetNode))
+ {
+ return false;
+ }
+ } // for
+
+ return true;
+ }
+
+ public static boolean equalXmlFiles(URL source, URL target)
+ {
+ try {
+ return equalXmlFiles(source.openStream(), target.openStream());
+ }
+ catch (IOException e)
+ {
+ return false;
+ }
+ }
+
+ public static boolean equalXmlFiles(InputStream sourceStream, URL target)
+ {
+ try {
+ return equalXmlFiles(sourceStream, target.openStream());
+ }
+ catch (IOException e)
+ {
+ return false;
+ }
+ }
+
+ public static boolean equalXmlFiles(URL source, InputStream targetStream)
+ {
+ try {
+ return equalXmlFiles(source.openStream(), targetStream);
+ }
+ catch (IOException e)
+ {
+ return false;
+ }
+ }
+
+ public static boolean equalXmlFiles(InputStream sourceStream, InputStream targetStream)
+ {
+ DocumentBuilder builder;
+ Document sourceDocument;
+ Document targetDocument;
+
+ try {
+ builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ sourceDocument = builder.parse(sourceStream);
+ targetDocument = builder.parse(targetStream);
+ }
+ catch (FactoryConfigurationError fce) {
+ return false;
+ }
+ catch (ParserConfigurationException ce) {
+ return false;
+ }
+ catch (SAXException se)
+ {
+ return false;
+ }
+ catch (IOException ie)
+ {
+ return false;
+ }
+
+ sourceDocument.normalize();
+ targetDocument.normalize();
+
+ /* remove comment when migrated to Java 1.5
+ if (!sourceDocument.getXmlVersion().equals(targetDocument.getXmlVersion()))
+ {
+ return false;
+ }
+
+ String sourceXmlEncoding = sourceDocument.getXmlEncoding();
+ String targetXmlEncoding = targetDocument.getXmlEncoding();
+
+ if (sourceXmlEncoding != null && targetXmlEncoding != null &&
+ sourceXmlEncoding.equalsIgnoreCase(targetXmlEncoding))
+ {
+ // continue
+ }
+ else
+ {
+ return false;
+ }
+ */
+
+ NodeList sourceNodes = sourceDocument.getChildNodes();
+ NodeList targetNodes = targetDocument.getChildNodes();
+
+ return equalNodes(sourceNodes, targetNodes);
+ }
+}
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/enum.xsd b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/enum.xsd
new file mode 100644
index 0000000000..efa951c410
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/enum.xsd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 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.
+ -->
+<xsd:schema
+ targetNamespace="http://www.example.com/simple"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:simple="http://www.example.com/simple">
+
+ <xsd:element name="stockQuote" type="simple:Quote"/>
+
+ <xsd:simpleType name="PriceClass">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Large"/>
+ <xsd:enumeration value="Medium"/>
+ <xsd:enumeration value="Small"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="Quote">
+ <xsd:sequence>
+ <xsd:element name="symbol" type="xsd:string"/>
+ <xsd:element name="companyName" type="xsd:string"/>
+ <xsd:element name="priceClass" type="simple:PriceClass"/>
+ <xsd:element name="price" type="xsd:decimal"/>
+ <xsd:element name="open1" type="xsd:decimal"/>
+ <xsd:element name="high" type="xsd:decimal"/>
+ <xsd:element name="low" type="xsd:decimal"/>
+ <xsd:element name="volume" type="xsd:double"/>
+ <xsd:element name="change1" type="xsd:double"/>
+ <xsd:element name="quotes" type="simple:Quote" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/mixedRepeatingChoiceTestResult.xml b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/mixedRepeatingChoiceTestResult.xml
new file mode 100644
index 0000000000..6564fe6112
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/mixedRepeatingChoiceTestResult.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ Copyright (c) 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.
+ -->
+<sequences:mrc xmlns:sequences="http://www.example.com/sequences">
+ <b>1</b>
+ <a>foo</a>
+some mixed text <a>bar</a>
+ <b>2</b>
+</sequences:mrc>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/mixedStaticTestResult.xml b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/mixedStaticTestResult.xml
new file mode 100644
index 0000000000..f68e456a0e
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/mixedStaticTestResult.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ Copyright (c) 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.
+ -->
+<sequences:mixedStockQuote xmlns:sequences="http://www.example.com/sequences">
+
+ <symbol>fbnt</symbol>
+
+ <companyName>FlyByNightTechnology</companyName>
+
+ some text
+ <quotes>
+ <price>2000.0</price>
+ </quotes>
+
+ more text
+ <price>1000.0</price>
+
+</sequences:mixedStockQuote>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/repeatingChoice.xsd b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/repeatingChoice.xsd
new file mode 100644
index 0000000000..b7aef69735
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/repeatingChoice.xsd
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 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.
+ -->
+<xsd:schema xmlns:repchoice="http://www.example.com/repchoice" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.com/repchoice">
+
+ <xsd:element name="rc" type="repchoice:RCType"/>
+
+ <xsd:complexType name="RCType">
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:element name="s" type="xsd:string"/>
+ <xsd:element name="i" type="xsd:int"/>
+ <xsd:element name="f" type="xsd:float"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/repeatingChoiceTestResult.xml b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/repeatingChoiceTestResult.xml
new file mode 100644
index 0000000000..1b2281f7d3
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/repeatingChoiceTestResult.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ Copyright (c) 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.
+ -->
+<sequences:rc xmlns:sequences="http://www.example.com/sequences">
+ <b>1</b>
+ <a>foo</a>
+ <a>bar</a>
+ <b>2</b>
+</sequences:rc>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/sequences.xsd b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/sequences.xsd
new file mode 100644
index 0000000000..6e70ad528c
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/sequences.xsd
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 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.
+ -->
+<xsd:schema xmlns:seq="http://www.example.com/sequences"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.example.com/sequences">
+
+ <xsd:element name="mixedStockQuote" type="seq:MixedQuote" />
+ <xsd:element name="rc" type="seq:RepeatingChoice" />
+ <xsd:element name="mrc" type="seq:MixedRepeatingChoice" />
+ <xsd:element name="rc2" type="seq:TwoRCs" />
+ <xsd:element name="mrc2" type="seq:TwoRCsMixed" />
+
+
+
+ <xsd:complexType mixed="true" name="MixedQuote">
+ <xsd:sequence>
+ <xsd:element name="symbol" type="xsd:string" />
+ <xsd:element name="companyName" type="xsd:string" />
+ <xsd:element name="price" type="xsd:decimal" />
+ <xsd:element name="open1" type="xsd:decimal" />
+ <xsd:element name="high" type="xsd:decimal" />
+ <xsd:element name="low" type="xsd:decimal" />
+ <xsd:element name="volume" type="xsd:double" />
+ <xsd:element name="change1" type="xsd:double" />
+ <xsd:element maxOccurs="unbounded" minOccurs="0"
+ name="quotes" type="seq:MixedQuote" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="RepeatingChoice">
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:element name="a" type="xsd:string" />
+ <xsd:element name="b" type="xsd:int" />
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType mixed="true" name="MixedRepeatingChoice">
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:element name="a" type="xsd:string" />
+ <xsd:element name="b" type="xsd:int" />
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="TwoRCs">
+ <xsd:sequence>
+
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:element name="a" type="xsd:string" />
+ <xsd:element name="b" type="xsd:int" />
+ </xsd:choice>
+
+ <xsd:element name="split" type="xsd:string" />
+
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:element name="y" type="xsd:string" />
+ <xsd:element name="z" type="xsd:int" />
+ </xsd:choice>
+
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType mixed="true" name="TwoRCsMixed">
+ <xsd:sequence>
+
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:element name="a" type="xsd:string" />
+ <xsd:element name="b" type="xsd:int" />
+ </xsd:choice>
+
+ <xsd:element name="split" type="xsd:string" />
+
+ <xsd:choice maxOccurs="unbounded" minOccurs="0">
+ <xsd:element name="y" type="xsd:string" />
+ <xsd:element name="z" type="xsd:int" />
+ </xsd:choice>
+
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/simple.xsd b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/simple.xsd
new file mode 100644
index 0000000000..37b1773859
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/simple.xsd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 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.
+ -->
+<xsd:schema
+ targetNamespace="http://www.example.com/simple"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:simple="http://www.example.com/simple">
+
+ <xsd:element name="stockQuote" type="simple:Quote"/>
+
+ <xsd:complexType name="Quote">
+ <xsd:sequence>
+ <xsd:element name="symbol" type="xsd:string"/>
+ <xsd:element name="companyName" type="xsd:string"/>
+ <xsd:element name="price" type="xsd:decimal"/>
+ <xsd:element name="open1" type="xsd:decimal"/>
+ <xsd:element name="high" type="xsd:decimal"/>
+ <xsd:element name="low" type="xsd:decimal"/>
+ <xsd:element name="volume" type="xsd:double"/>
+ <xsd:element name="change1" type="xsd:double"/>
+ <xsd:element name="quotes" type="simple:Quote" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/twoRepeatingChoicesMixedTestResult.xml b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/twoRepeatingChoicesMixedTestResult.xml
new file mode 100644
index 0000000000..2a53982a8f
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/twoRepeatingChoicesMixedTestResult.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ Copyright (c) 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.
+ -->
+<sequences:rc2m xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sequences="http://www.example.com/sequences" xsi:type="sequences:TwoRCsMixed">
+ <b>1</b>
+where will this appear? <a>foo</a>
+ <a>bar</a>
+ <b>2</b>
+ <split>pea</split>
+ <z>99</z>
+ <y>fred</y>
+</sequences:rc2m>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/twoRepeatingChoicesTestResult.xml b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/twoRepeatingChoicesTestResult.xml
new file mode 100644
index 0000000000..2679d973c5
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/src/test/resources/twoRepeatingChoicesTestResult.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ Copyright (c) 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.
+ -->
+<sequences:rc2 xmlns:sequences="http://www.example.com/sequences">
+ <b>1</b>
+ <a>foo</a>
+ <a>bar</a>
+ <b>2</b>
+ <split>banana</split>
+ <z>99</z>
+ <y>fred</y>
+</sequences:rc2>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/templates/Header.javajetinc b/sca-java-1.x/branches/java-post-M1/sdo/tools/templates/Header.javajetinc
new file mode 100644
index 0000000000..27becf3645
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/templates/Header.javajetinc
@@ -0,0 +1,6 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * <%="$"%>Id<%="$"%>
+ */
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/templates/models/SDOClass.javajet b/sca-java-1.x/branches/java-post-M1/sdo/tools/templates/models/SDOClass.javajet
new file mode 100644
index 0000000000..9acd32751b
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/templates/models/SDOClass.javajet
@@ -0,0 +1,1813 @@
+<%@ jet package="org.apache.tuscany.sdo.generate.templates.model" imports="java.util.* org.eclipse.emf.codegen.ecore.genmodel.*" class="SDOClass" version="$Id: Class.javajet,v 1.41 2006/02/15 19:58:39 emerks Exp $" %>
+<%
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2002-2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ */
+%>
+<%GenClass genClass = (GenClass)((Object[])argument)[0]; GenPackage genPackage = genClass.getGenPackage(); GenModel genModel=genPackage.getGenModel();%>
+<%boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]);%>
+<%String publicStaticFinalFlag = isImplementation ? "public static final " : "";%>
+<%@ include file="../Header.javajetinc"%>
+<%if (isInterface) {%>
+package <%=genPackage.getInterfacePackageName()%>;
+<%} else {%>
+package <%=genPackage.getClassPackageName()%>;
+<%}%>
+
+<%genModel.markImportLocation(stringBuffer, genPackage);%>
+
+<%if (isInterface) {%>
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b><%=genClass.getFormattedName()%></b></em>'.
+ * <!-- end-user-doc -->
+<%if (genClass.hasDocumentation()) {%>
+ *
+ * <!-- begin-model-doc -->
+ * <%=genClass.getDocumentation(genModel.getIndentation(stringBuffer))%>
+ * <!-- end-model-doc -->
+<%}%>
+ *
+<%if (!genClass.getGenFeatures().isEmpty()) {%>
+ * <p>
+ * The following features are supported:
+ * <ul>
+<%for (Iterator i=genClass.getGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();%>
+ <%if (!genFeature.isSuppressedGetVisibility()) {%>
+ * <li>{@link <%=genClass.getQualifiedInterfaceName()%>#<%=genFeature.getGetAccessor()%> <em><%=genFeature.getFormattedName()%></em>}</li>
+ <%}%>
+<%}%>
+ * </ul>
+ * </p>
+<%}%>
+ *
+<%if (!genModel.isSuppressEMFMetaData()) {%>
+ * @see <%=genPackage.getQualifiedPackageInterfaceName()%>#get<%=genClass.getClassifierAccessorName()%>()
+<%}%>
+<%if (!genModel.isSuppressEMFModelTags()) { boolean first = true; for (StringTokenizer stringTokenizer = new StringTokenizer(genClass.getModelInfo(), "\n\r"); stringTokenizer.hasMoreTokens(); ) { String modelInfo = stringTokenizer.nextToken(); if (first) { first = false;%>
+ * @model <%=modelInfo%>
+<%} else {%>
+ * <%=modelInfo%>
+<%}} if (first) {%>
+ * @model
+<%}}%>
+<%if (genClass.needsRootExtendsInterfaceExtendsTag()) {%>
+ * @extends <%=genModel.getImportedName(genModel.getRootExtendsInterface())%>
+<%}%>
+ * @generated
+ */
+<%} else {%>
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b><%=genClass.getFormattedName()%></b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+<%if (!genClass.getImplementedGenFeatures().isEmpty()) {%>
+ * The following features are implemented:
+ * <ul>
+<%for (Iterator i=genClass.getImplementedGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();%>
+ * <li>{@link <%=genClass.getQualifiedClassName()%>#<%=genFeature.getGetAccessor()%> <em><%=genFeature.getFormattedName()%></em>}</li>
+<%}%>
+ * </ul>
+<%}%>
+ * </p>
+ *
+ * @generated
+ */
+<%}%>
+<%if (isImplementation) {%>
+public<%if (genClass.isAbstract()) {%> abstract<%}%> class <%=genClass.getClassName()%><%=genClass.getClassExtends()%><%=genClass.getClassImplements()%>
+<%} else {%>
+public interface <%=genClass.getInterfaceName()%><%=genClass.getInterfaceExtends()%>
+<%}%>
+{
+<%if (genModel.getCopyrightText() != null) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ <%=publicStaticFinalFlag%><%=genModel.getImportedName("java.lang.String")%> copyright = "<%=genModel.getCopyrightText()%>";<%=genModel.getNonNLS()%>
+
+<%}%>
+<%if (isImplementation && genModel.getDriverNumber() != null) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final <%=genModel.getImportedName("java.lang.String")%> mofDriverNumber = "<%=genModel.getDriverNumber()%>";<%=genModel.getNonNLS()%>
+
+<%}%>
+<%if (isImplementation && genClass.isJavaIOSerializable()) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final long serialVersionUID = 1L;
+
+<%}%>
+<%if (isImplementation && genModel.isVirtualDelegation()) { String eVirtualValuesField = genClass.getEVirtualValuesField();%>
+ <%if (eVirtualValuesField != null) {%>
+ /**
+ * An array of objects representing the values of non-primitive features.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Object[] <%=eVirtualValuesField%> = null;
+
+ <%}%>
+ <%{ List eVirtualIndexBitFields = genClass.getEVirtualIndexBitFields(new ArrayList());%>
+ <%if (!eVirtualIndexBitFields.isEmpty()) {%>
+ <%for (Iterator i = eVirtualIndexBitFields.iterator(); i.hasNext();) { String eVirtualIndexBitField = (String)i.next();%>
+ /**
+ * A bit field representing the indices of non-primitive feature values.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int <%=eVirtualIndexBitField%> = 0;
+
+ <%}%>
+ <%}%>
+ <%}%>
+<%}%>
+<%if (isImplementation && genClass.isModelRoot() && genModel.isBooleanFlagsEnabled() && genModel.getBooleanFlagsReservedBits() == -1) {%>
+ /**
+ * A set of bit flags representing the values of boolean attributes and whether unsettable features have been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected int <%=genModel.getBooleanFlagsField()%> = 0;
+
+<%}%>
+<%if (isImplementation && !genModel.isReflectiveDelegation()) {%>
+ <%for (Iterator i=genClass.getDeclaredFieldGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();%>
+<%@ include file="Class/declaredFieldGenFeature.override.javajetinc" fail="alternative" %>
+<%@ start %>
+ /**
+ * The feature id for the '<em><b><%=genFeature.getFormattedName()%></b></em>' <%=genFeature.getFeatureKind()%>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ public final static int <%=genFeature.getUpperName()%> = <%=genClass.getFeatureValue(genFeature)%>;
+
+ <%if (genFeature.isListType() || genFeature.isReferenceType()) {%>
+ <%if (genClass.isField(genFeature)) {%>
+ /**
+ * The cached value of the '{@link #<%=genFeature.getGetAccessor()%>() <em><%=genFeature.getFormattedName()%></em>}' <%=genFeature.getFeatureKind()%>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #<%=genFeature.getGetAccessor()%>()
+ * @generated
+ * @ordered
+ */
+
+ // How to get BasicSequence from Sequence?
+ <%if (genFeature.getImportedType().equals("Sequence")){%>
+ protected <%=genFeature.getImportedEffectiveFeatureMapWrapperClass()%> <%=genFeature.getSafeName()%> = null;
+ <%}else{%>
+ protected <%=genModel.getImportedName(genFeature.getType())%> <%=genFeature.getSafeName()%> = null;
+ <%}%>
+ <%}%>
+ <%if (genModel.isArrayAccessors() && !genFeature.isFeatureMapType() && !genFeature.isMapType()) {%>
+ /**
+ * The empty value for the '{@link #<%=genFeature.getGetArrayAccessor()%>() <em><%=genFeature.getFormattedName()%></em>}' array accessor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #<%=genFeature.getGetArrayAccessor()%>()
+ * @generated
+ * @ordered
+ */
+ protected static final <%=genFeature.getListItemType()%>[] <%=genFeature.getUpperName()%>_EEMPTY_ARRAY = new <%=genFeature.getListItemType()%> [0];
+
+ <%}%>
+ <%} else {%>
+ <%if (!genFeature.isVolatile() || !genModel.isReflectiveDelegation() && (!genFeature.hasDelegateFeature() || !genFeature.isUnsettable())) {%>
+ /**
+ * The default value of the '{@link #<%=genFeature.getGetAccessor()%>() <em><%=genFeature.getFormattedName()%></em>}' <%=genFeature.getFeatureKind()%>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #<%=genFeature.getGetAccessor()%>()
+ * @generated
+ * @ordered
+ */
+ protected static final <%=genFeature.getImportedType()%> <%=genFeature.getUpperName()%>_DEFAULT_ = <%=genFeature.getStaticDefaultValue()%>;<%=genModel.getNonNLS(genFeature.getStaticDefaultValue())%>
+
+ <%}%>
+ <%if (genClass.isField(genFeature)) {%>
+ <%if (genClass.isFlag(genFeature)) {%>
+ <%if (genClass.getFlagIndex(genFeature) > 31 && genClass.getFlagIndex(genFeature) % 32 == 0) {%>
+ /**
+ * An additional set of bit flags representing the values of boolean attributes and whether unsettable features have been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected int <%=genClass.getFlagsField(genFeature)%> = 0;
+
+ <%}%>
+ /**
+ * The flag representing the value of the '{@link #<%=genFeature.getGetAccessor()%>() <em><%=genFeature.getFormattedName()%></em>}' <%=genFeature.getFeatureKind()%>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #<%=genFeature.getGetAccessor()%>()
+ * @generated
+ * @ordered
+ */
+ protected static final int <%=genFeature.getUpperName()%>_EFLAG = 1 <%="<< " + genClass.getFlagIndex(genFeature) % 32 %>;
+
+ <%} else {%>
+ /**
+ * The cached value of the '{@link #<%=genFeature.getGetAccessor()%>() <em><%=genFeature.getFormattedName()%></em>}' <%=genFeature.getFeatureKind()%>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #<%=genFeature.getGetAccessor()%>()
+ * @generated
+ * @ordered
+ */
+ protected <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = <%=genFeature.getUpperName()%>_DEFAULT_;
+
+ <%}%>
+ <%}%>
+ <%}%>
+ <%if (genClass.isESetField(genFeature)) {%>
+ <%if (genClass.isESetFlag(genFeature)) {%>
+ <%if (genClass.getESetFlagIndex(genFeature) > 31 && genClass.getESetFlagIndex(genFeature) % 32 == 0) {%>
+ /**
+ * An additional set of bit flags representing the values of boolean attributes and whether unsettable features have been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected int <%=genClass.getESetFlagsField(genFeature)%> = 0;
+
+ <%}%>
+ /**
+ * The flag representing whether the <%=genFeature.getFormattedName()%> <%=genFeature.getFeatureKind()%> has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected static final int <%=genFeature.getUpperName()%>_ESETFLAG = 1 <%="<< " + genClass.getESetFlagIndex(genFeature) % 32 %>;
+
+ <%} else {%>
+ /**
+ * This is true if the <%=genFeature.getFormattedName()%> <%=genFeature.getFeatureKind()%> has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean <%=genFeature.getUncapName()%>_set_ = false;
+
+ <%}%>
+ <%}%>
+ <%}%>
+<%@ include file="Class/declaredFieldGenFeature.insert.javajetinc" fail="silent" %>
+<%@ end %><%//Class/declaredFieldGenFeature.override.javajetinc%>
+<%}%>
+<%if (isImplementation) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected <%=genClass.getClassName()%>()
+ {
+ super();
+ <%for (Iterator i=genClass.getFlagGenFeatures("true").iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();%>
+ <%=genClass.getFlagsField(genFeature)%> |= <%=genFeature.getUpperName()%>_EFLAG;
+ <%}%>
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public <%=genModel.getImportedName("commonj.sdo.Type")%> getType()
+ {
+ return <%=genModel.getImportedName("commonj.sdo.helper.TypeHelper")%>.INSTANCE.getType(<%=genClass.getImportedInterfaceName()%>.class); //TBD Generate a more efficient implementation
+ }
+
+<%}%>
+<%for (Iterator i=(isImplementation ? genClass.getImplementedGenFeatures() : genClass.getDeclaredGenFeatures()).iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();%>
+<%@ include file="Class/genFeature.override.javajetinc" fail="alternative" %>
+<%@ start %>
+ <%if (genModel.isArrayAccessors() && genFeature.isListType() && !genFeature.isFeatureMapType() && !genFeature.isMapType()) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ <%if (!isImplementation) {%>
+ <%=genFeature.getListItemType()%>[] <%=genFeature.getGetArrayAccessor()%>();
+
+ <%} else {%>
+ public <%=genFeature.getListItemType()%>[] <%=genFeature.getGetArrayAccessor()%>()
+ {
+ <%if (genFeature.isVolatile()) {%>
+ <%=genModel.getImportedName("org.eclipse.emf.common.util.BasicEList")%> list = (<%=genModel.getImportedName("org.eclipse.emf.common.util.BasicEList")%>)<%=genFeature.getGetAccessor()%>();
+ if (list.isEmpty()) return <%=genFeature.getUpperName()%>_EEMPTY_ARRAY;
+ <%} else {%>
+ if (<%=genFeature.getSafeName()%> == null || <%=genFeature.getSafeName()%>.isEmpty()) return <%=genFeature.getUpperName()%>_EEMPTY_ARRAY;
+ <%=genModel.getImportedName("org.eclipse.emf.common.util.BasicEList")%> list = (<%=genModel.getImportedName("org.eclipse.emf.common.util.BasicEList")%>)<%=genFeature.getSafeName()%>;
+ <%}%>
+ list.shrink();
+ return (<%=genFeature.getListItemType()%>[])list.data();
+ }
+
+ <%}%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ <%if (!isImplementation) {%>
+ <%=genFeature.getListItemType()%> get<%=genFeature.getAccessorName()%>(int index);
+
+ <%} else {%>
+ public <%=genFeature.getListItemType()%> get<%=genFeature.getAccessorName()%>(int index)
+ {
+ return (<%=genFeature.getListItemType()%>)<%=genFeature.getGetAccessor()%>().get(index);
+ }
+
+ <%}%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ <%if (!isImplementation) {%>
+ int get<%=genFeature.getAccessorName()%>Length();
+
+ <%} else {%>
+ public int get<%=genFeature.getAccessorName()%>Length()
+ {
+ <%if (genFeature.isVolatile()) {%>
+ return <%=genFeature.getGetAccessor()%>().size();
+ <%} else {%>
+ return <%=genFeature.getSafeName()%> == null ? 0 : <%=genFeature.getSafeName()%>.size();
+ <%}%>
+ }
+
+ <%}%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ <%if (!isImplementation) {%>
+ void set<%=genFeature.getAccessorName()%>(<%=genFeature.getListItemType()%>[] new<%=genFeature.getCapName()%>);
+
+ <%} else {%>
+ public void set<%=genFeature.getAccessorName()%>(<%=genFeature.getListItemType()%>[] new<%=genFeature.getCapName()%>)
+ {
+ ((<%=genModel.getImportedName("org.eclipse.emf.common.util.BasicEList")%>)<%=genFeature.getGetAccessor()%>()).setData(new<%=genFeature.getCapName()%>.length, new<%=genFeature.getCapName()%>);
+ }
+
+ <%}%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ <%if (!isImplementation) {%>
+ void set<%=genFeature.getAccessorName()%>(int index, <%=genFeature.getListItemType()%> element);
+
+ <%} else {%>
+ public void set<%=genFeature.getAccessorName()%>(int index, <%=genFeature.getListItemType()%> element)
+ {
+ <%=genFeature.getGetAccessor()%>().set(index, element);
+ }
+
+ <%}%>
+ <%}%>
+ <%if (genFeature.isGet() && (isImplementation || !genFeature.isSuppressedGetVisibility())) {%>
+<%@ include file="Class/getGenFeature.override.javajetinc" fail="alternative" %>
+<%@ start %>
+<%if (isInterface) {%>
+ /**
+ * Returns the value of the '<em><b><%=genFeature.getFormattedName()%></b></em>' <%=genFeature.getFeatureKind()%>.
+ <%if (genFeature.isListType()) {%>
+ <%if (genFeature.isMapType()) { GenFeature keyFeature = genFeature.getMapEntryTypeGenClass().getMapEntryKeyFeature(); GenFeature valueFeature = genFeature.getMapEntryTypeGenClass().getMapEntryValueFeature(); %>
+ * The key is of type <%if (keyFeature.isListType()) {%>list of {@link <%=keyFeature.getQualifiedListItemType()%>}<%} else {%>{@link <%=keyFeature.getType()%>}<%}%>,
+ * and the value is of type <%if (valueFeature.isListType()) {%>list of {@link <%=valueFeature.getQualifiedListItemType()%>}<%} else {%>{@link <%=valueFeature.getType()%>}<%}%>,
+ <%} else if (!genFeature.isWrappedFeatureMapType() && !(genModel.isSuppressEMFMetaData() && "org.eclipse.emf.ecore.EObject".equals(genFeature.getQualifiedListItemType()))) {%>
+ * The list contents are of type {@link <%=genFeature.getQualifiedListItemType()%>}.
+ <%}%>
+ <%} else if (genFeature.isSetDefaultValue()) {%>
+ * The default value is <code><%=genFeature.getDefaultValue()%></code>.
+ <%}%>
+ <%if (genFeature.getTypeGenEnum() != null) {%>
+ * The literals are from the enumeration {@link <%=genFeature.getTypeGenEnum().getQualifiedName()%>}.
+ <%}%>
+ <%if (genFeature.isBidirectional() && !genFeature.getReverse().getGenClass().isMapEntry()) { GenFeature reverseGenFeature = genFeature.getReverse(); %>
+ <%if (!reverseGenFeature.isSuppressedGetVisibility()) {%>
+ * It is bidirectional and its opposite is '{@link <%=reverseGenFeature.getGenClass().getQualifiedInterfaceName()%>#<%=reverseGenFeature.getGetAccessor()%> <em><%=reverseGenFeature.getFormattedName()%></em>}'.
+ <%}%>
+ <%}%>
+ * <!-- begin-user-doc -->
+ <%if (!genFeature.hasDocumentation()) {%>
+ * <p>
+ * If the meaning of the '<em><%=genFeature.getFormattedName()%></em>' <%=genFeature.getFeatureKind()%> isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ <%}%>
+ * <!-- end-user-doc -->
+ <%if (genFeature.hasDocumentation()) {%>
+ * <!-- begin-model-doc -->
+ * <%=genFeature.getDocumentation(genModel.getIndentation(stringBuffer))%>
+ * <!-- end-model-doc -->
+ <%}%>
+ * @return the value of the '<em><%=genFeature.getFormattedName()%></em>' <%=genFeature.getFeatureKind()%>.
+ <%if (genFeature.getTypeGenEnum() != null) {%>
+ * @see <%=genFeature.getTypeGenEnum().getQualifiedName()%>
+ <%}%>
+ <%if (genFeature.isUnsettable()) {%>
+ <%if (!genFeature.isSuppressedIsSetVisibility()) {%>
+ * @see #isSet<%=genFeature.getAccessorName()%>()
+ <%}%>
+ <%if (genFeature.isChangeable() && !genFeature.isSuppressedUnsetVisibility()) {%>
+ * @see #unset<%=genFeature.getAccessorName()%>()
+ <%}%>
+ <%}%>
+ <%if (genFeature.isChangeable() && !genFeature.isListType() && !genFeature.isSuppressedSetVisibility()) {%>
+ * @see #set<%=genFeature.getAccessorName()%>(<%=genFeature.getImportedType()%>)
+ <%}%>
+ <%if (!genModel.isSuppressEMFMetaData()) {%>
+ * @see <%=genPackage.getQualifiedPackageInterfaceName()%>#get<%=genFeature.getFeatureAccessorName()%>()
+ <%}%>
+ <%if (genFeature.isBidirectional() && !genFeature.getReverse().getGenClass().isMapEntry()) { GenFeature reverseGenFeature = genFeature.getReverse(); %>
+ <%if (!reverseGenFeature.isSuppressedGetVisibility()) {%>
+ * @see <%=reverseGenFeature.getGenClass().getQualifiedInterfaceName()%>#<%=reverseGenFeature.getGetAccessor()%>
+ <%}%>
+ <%}%>
+ <%if (!genModel.isSuppressEMFModelTags()) { boolean first = true; for (StringTokenizer stringTokenizer = new StringTokenizer(genFeature.getModelInfo(), "\n\r"); stringTokenizer.hasMoreTokens(); ) { String modelInfo = stringTokenizer.nextToken(); if (first) { first = false;%>
+ * @model <%=modelInfo%>
+ <%} else {%>
+ * <%=modelInfo%>
+ <%}} if (first) {%>
+ * @model
+ <%}}%>
+ * @generated
+ */
+<%} else {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+<%}%>
+<%if (!isImplementation) {%>
+ <%=genFeature.getImportedType()%> <%=genFeature.getGetAccessor()%>();
+
+<%} else {%>
+ public <%=genFeature.getImportedType()%> <%=genFeature.getGetAccessor()%>()
+ {
+<%@ include file="Class/getGenFeature.pre.insert.javajetinc" fail="silent" %>
+ <%if (genModel.isReflectiveDelegation()) {%>
+ return <%if (genFeature.isPrimitiveType()) {%>(<%}%>(<%=genFeature.getObjectType()%>)get(<%=genFeature.getQualifiedFeatureAccessor()%>, true)<%if (genFeature.isPrimitiveType()) {%>).<%=genFeature.getPrimitiveValueFunction()%>()<%}%>;
+ <%} else if (!genFeature.isVolatile()) {%>
+ <%if (genFeature.isListType()) {%>
+ <%if (genModel.isVirtualDelegation()) {%>
+ <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType()%>)eVirtualGet(<%=genFeature.getUpperName()%>);
+ <%}%>
+ if (<%=genFeature.getSafeName()%> == null)
+ {
+ <%if (genModel.isVirtualDelegation()) {%>
+ eVirtualSet(<%=genFeature.getUpperName()%>, <%=genFeature.getSafeName()%> = new <%=genClass.getListConstructor(genFeature)%>);
+ <%} else {
+ if (genFeature.getImportedType().equals("Sequence")){%>
+ <%=genFeature.getSafeName()%> = createSequence(<%=genFeature.getUpperName()%>);
+ <%} else {%>
+ <%=genFeature.getSafeName()%> = createPropertyList(ListKind.CONTAINMENT, <%=genClass.getName()%>.class, <%=genFeature.getUpperName()%>);
+ <%}%>
+ <%}%>
+ }
+ return <%=genFeature.getSafeName()%><%=genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes() ? ".map()" : ""%>;
+ <%} else if (genFeature.isContainer()) {%>
+ if (eContainerFeatureID != <%=genFeature.getUpperName()%>) return null;
+ return (<%=genFeature.getImportedType()%>)eContainer();
+ <%} else {%>
+ <%if (genFeature.isResolveProxies()) {%>
+ <%if (genModel.isVirtualDelegation()) {%>
+ <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType()%>)eVirtualGet(<%=genFeature.getUpperName()%><%if (!genFeature.isReferenceType()) {%>, <%=genFeature.getUpperName()%>_DEFAULT_<%}%>);
+ <%}%>
+ if (<%=genFeature.getSafeName()%> != null && <%=genFeature.getSafeNameAsEObject()%>.isProxy())
+ {
+ <%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%> old<%=genFeature.getCapName()%> = (<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)<%=genFeature.getSafeName()%>;
+ <%=genFeature.getSafeName()%> = <%=genFeature.getNonEObjectInternalTypeCast()%>eResolveProxy(old<%=genFeature.getCapName()%>);
+ if (<%=genFeature.getSafeName()%> != old<%=genFeature.getCapName()%>)
+ {
+ <%if (genFeature.isEffectiveContains()) {%>
+ <%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%> new<%=genFeature.getCapName()%> = (<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)<%=genFeature.getSafeName()%>;
+ <%if (!genFeature.isBidirectional()) {%>
+ ChangeContext changeContext = old<%=genFeature.getCapName()%>.inverseRemove(this, EOPPOSITE_FEATURE_BASE - <%=genFeature.getUpperName()%>, null, null);
+ <%} else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();%>
+ <%=genModel.getImportedName("org.eclipse.emf.common.notify.ChangeContext")%> changeContext = old<%=genFeature.getCapName()%>.inverseRemove(this, <%=targetClass.getQualifiedFeatureID(reverseFeature)%>, <%=targetClass.getImportedInterfaceName()%>.class, null);
+ <%}%>
+ if (new<%=genFeature.getCapName()%>.eInternalContainer() == null)
+ {
+ <%if (!genFeature.isBidirectional()) {%>
+ changeContext = new<%=genFeature.getCapName()%>.eInverseAdd(this, EOPPOSITE_FEATURE_BASE - <%=genFeature.getUpperName()%>, null, changeContext);
+ <%} else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();%>
+ changeContext = new<%=genFeature.getCapName()%>.eInverseAdd(this, <%=targetClass.getQualifiedFeatureID(reverseFeature)%>, <%=targetClass.getImportedInterfaceName()%>.class, changeContext);
+ <%}%>
+ }
+ if (changeContext != null) changeContext.dispatch();
+ <%} else if (genModel.isVirtualDelegation()) {%>
+ eVirtualSet(<%=genFeature.getUpperName()%>, <%=genFeature.getSafeName()%>);
+ <%}%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ if (isNotifying())
+ notify(ChangeKind.RESOLVE, <%=genFeature.getUpperName()%>, old<%=genFeature.getCapName()%>, <%=genFeature.getSafeName()%>);
+ <%}%>
+ }
+ }
+ <%}%>
+ <%if (!genFeature.isResolveProxies() && genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>
+ return (<%=genFeature.getImportedType()%>)eVirtualGet(<%=genFeature.getUpperName()%><%if (!genFeature.isReferenceType()) {%>, <%=genFeature.getUpperName()%>_DEFAULT_<%}%>);
+ <%} else if (genClass.isFlag(genFeature)) {%>
+ return (<%=genClass.getFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_EFLAG) != 0;
+ <%} else {%>
+ return <%=genFeature.getSafeName()%>;
+ <%}%>
+ <%}%>
+ <%} else {//volatile%>
+ <%if (genFeature.isResolveProxies() && !genFeature.isListType()) {%>
+ <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = basicGet<%=genFeature.getAccessorName()%>();
+ return <%=genFeature.getSafeName()%> != null && <%=genFeature.getSafeName()%>.isProxy() ? <%=genFeature.getNonEObjectInternalTypeCast()%>eResolveProxy((<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)<%=genFeature.getSafeName()%>) : <%=genFeature.getSafeName()%>;
+ <%} else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();%>
+ <%if (genFeature.isFeatureMapType()) {%>
+ <%if (delegateFeature.isWrappedFeatureMapType()) {%>
+ return create<%=genFeature.getImportedType()%>(get<%=delegateFeature.getAccessorName()%>(), getType(), <%=genFeature.getUpperName()%>);
+ <%} else {%>
+ return (<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>)((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>)get<%=delegateFeature.getAccessorName()%>()).list(<%=genFeature.getQualifiedFeatureAccessor()%>);
+ <%}%>
+ <%} else if (genFeature.isListType()) {%>
+ <%if (delegateFeature.isWrappedFeatureMapType()) {%>
+ return get<%=genFeature.getImportedType()%>(get<%=delegateFeature.getAccessorName()%>(), getType(), <%=genFeature.getUpperName()%>);
+
+ <%} else {%>
+ return ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>)get<%=delegateFeature.getAccessorName()%>()).list(<%=genFeature.getQualifiedFeatureAccessor()%>);
+ <%}%>
+ <%} else {%>
+ <%if (delegateFeature.isWrappedFeatureMapType()) {%>
+ return <%if (genFeature.isPrimitiveType()) {%>(<%}%>(<%=genFeature.getObjectType()%>)get(get<%=delegateFeature.getAccessorName()%>(), getType(), <%=genFeature.getUpperName()%>)<%if (genFeature.isPrimitiveType()) {%>).<%=genFeature.getPrimitiveValueFunction()%>()<%}%>;
+ <%} else {%>
+ return <%if (genFeature.isPrimitiveType()) {%>(<%}%>(<%=genFeature.getObjectType()%>)get(get<%=delegateFeature.getAccessorName()%>(), getType(), <%=genFeature.getUpperName()%>);<%if (genFeature.isPrimitiveType()) {%>).<%=genFeature.getPrimitiveValueFunction()%>()<%}%>;
+ <%}%>
+ <%}%>
+ <%} else {%>
+<%@ include file="Class/getGenFeature.TODO.override.javajetinc" fail="alternative" %>
+<%@ start %>
+ // TODO: implement this method to return the '<%=genFeature.getFormattedName()%>' <%=genFeature.getFeatureKind()%>
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+<%@ end %><%//Class/getGenFeature.todo.override.javajetinc%>
+ <%}%>
+ <%}%>
+ }
+
+<%}%>
+<%@ end %><%//Class/getGenFeature.override.javajetinc%>
+ <%}%>
+ <%if (isImplementation && !genModel.isReflectiveDelegation() && genFeature.isBasicGet()) {%>
+<%@ include file="Class/basicGetGenFeature.override.javajetinc" fail="alternative" %>
+<%@ start %>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public <%=genFeature.getImportedType()%> basicGet<%=genFeature.getAccessorName()%>()
+ {
+<%@ include file="Class/basicGetGenFeature.pre.insert.javajetinc" fail="silent" %>
+ <%if (genFeature.isContainer()) {%>
+ if (eContainerFeatureID != <%=genFeature.getUpperName()%>) return null;
+ return (<%=genFeature.getImportedType()%>)eInternalContainer();
+ <%} else if (!genFeature.isVolatile()) {%>
+ <%if (genModel.isVirtualDelegation()) {%>
+ return (<%=genFeature.getImportedType()%>)eVirtualGet(<%=genFeature.getUpperName()%>);
+ <%} else {%>
+ return <%=genFeature.getSafeName()%>;
+ <%}%>
+ <%} else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();%>
+ <%if (delegateFeature.isWrappedFeatureMapType()) {%>
+ return (<%=genFeature.getImportedType()%>)get(get<%=delegateFeature.getAccessorName()%>(), getType(), <%=genFeature.getUpperName()%>);
+ <%} else {%>
+ return (<%=genFeature.getImportedType()%>)get<%=delegateFeature.getAccessorName()%>().get(<%=genFeature.getQualifiedFeatureAccessor()%>, false);
+ <%}%>
+ <%} else {%>
+<%@ include file="Class/basicGetGenFeature.TODO.override.javajetinc" fail="alternative" %>
+<%@ start %>
+ // TODO: implement this method to return the '<%=genFeature.getFormattedName()%>' <%=genFeature.getFeatureKind()%>
+ // -> do not perform proxy resolution
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+<%@ end %><%//Class/basicGetGenFeature.todo.override.javajetinc%>
+ <%}%>
+ }
+
+<%@ end %><%//Class/basicGetGenFeature.override.javajetinc%>
+ <%}%>
+ <%if (isImplementation && !genModel.isReflectiveDelegation() && genFeature.isBasicSet()) {%>
+<%@ include file="Class/basicSetGenFeature.override.javajetinc" fail="alternative" %>
+<%@ start %>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeContext basicSet<%=genFeature.getAccessorName()%>(<%=genFeature.getImportedInternalType()%> new<%=genFeature.getCapName()%>, ChangeContext changeContext)
+ {
+ <%if (!genFeature.isVolatile()) {%>
+<%@ include file="Class/basicSetGenFeature.pre.insert.javajetinc" fail="silent" %>
+ <%if (genModel.isVirtualDelegation()) {%>
+ Object old<%=genFeature.getCapName()%> = eVirtualSet(<%=genFeature.getUpperName()%>, new<%=genFeature.getCapName()%>);
+ <%} else {%>
+ <%=genFeature.getImportedType()%> old<%=genFeature.getCapName()%> = <%=genFeature.getSafeName()%>;
+ <%=genFeature.getSafeName()%> = new<%=genFeature.getCapName()%>;
+ <%}%>
+ <%if (genFeature.isUnsettable()) {%>
+ <%if (genModel.isVirtualDelegation()) {%>
+ boolean isSetChange = old<%=genFeature.getCapName()%> == EVIRTUAL_NO_VALUE;
+ <%} else if (genClass.isESetFlag(genFeature)) {%>
+ boolean old<%=genFeature.getCapName()%>_set_ = (<%=genClass.getESetFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_ESETFLAG) != 0;
+ <%=genClass.getESetFlagsField(genFeature)%> |= <%=genFeature.getUpperName()%>_ESETFLAG;
+ <%} else {%>
+ boolean old<%=genFeature.getCapName()%>_set_ = <%=genFeature.getUncapName()%>_set_;
+ <%=genFeature.getUncapName()%>_set_ = true;
+ <%}%>
+ <%}%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ if (isNotifying())
+ {
+ <%if (genFeature.isUnsettable()) {%>
+ <%=genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl")%> notification = new <%=genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl")%>(this, <%=genModel.getImportedName("org.eclipse.emf.common.notify.Notification")%>.SET, <%=genFeature.getUpperName()%>, <%if (genModel.isVirtualDelegation()) {%>isSetChange ? null : old<%=genFeature.getCapName()%><%} else {%>old<%=genFeature.getCapName()%><%}%>, new<%=genFeature.getCapName()%>, <%if (genModel.isVirtualDelegation()) {%>isSetChange<%} else {%>!old<%=genFeature.getCapName()%>_set_<%}%>);
+ <%} else {%>
+ <%=genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl")%> notification = new <%=genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl")%>(this, <%=genModel.getImportedName("org.eclipse.emf.common.notify.Notification")%>.SET, <%=genFeature.getUpperName()%>, <%if (genModel.isVirtualDelegation()) {%>old<%=genFeature.getCapName()%> == EVIRTUAL_NO_VALUE ? null : old<%=genFeature.getCapName()%><%} else {%>old<%=genFeature.getCapName()%><%}%>, new<%=genFeature.getCapName()%>);
+ <%}%>
+ if (changeContext == null) changeContext = notification; else changeContext.add(notification);
+ }
+ <%}%>
+<%@ include file="Class/basicSetGenFeature.post.insert.javajetinc" fail="silent" %>
+ return changeContext;
+ <%} else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();%>
+ <%if (delegateFeature.isWrappedFeatureMapType()) {%>
+ return ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal)((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal.Wrapper)get<%=delegateFeature.getAccessorName()%>()).featureMap()).basicAdd(<%=genFeature.getQualifiedFeatureAccessor()%>, new<%=genFeature.getCapName()%>, changeContext);
+ <%} else {%>
+ return ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal)get<%=delegateFeature.getAccessorName()%>()).basicAdd(<%=genFeature.getQualifiedFeatureAccessor()%>, new<%=genFeature.getCapName()%>, changeContext);
+ <%}%>
+ <%} else {%>
+<%@ include file="Class/basicSetGenFeature.TODO.override.javajetinc" fail="alternative" %>
+<%@ start %>
+ // TODO: implement this method to set the contained '<%=genFeature.getFormattedName()%>' <%=genFeature.getFeatureKind()%>
+ // -> this method is automatically invoked to keep the containment relationship in synch
+ // -> do not modify other features
+ // -> return changeContext, after adding any generated Notification to it (if it is null, a NotificationChain object must be created first)
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+<%@ end %><%//Class/basicSetGenFeature.todo.override.javajetinc%>
+ <%}%>
+ }
+
+<%@ end %><%//Class/basicSetGenFeature.override.javajetinc%>
+ <%}%>
+ <%if (genFeature.isSet() && (isImplementation || !genFeature.isSuppressedSetVisibility())) {%>
+<%@ include file="Class/setGenFeature.override.javajetinc" fail="alternative" %>
+<%@ start %>
+<%if (isInterface) { %>
+ /**
+ * Sets the value of the '{@link <%=genClass.getQualifiedInterfaceName()%>#<%=genFeature.getGetAccessor()%> <em><%=genFeature.getFormattedName()%></em>}' <%=genFeature.getFeatureKind()%>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em><%=genFeature.getFormattedName()%></em>' <%=genFeature.getFeatureKind()%>.
+ <%if (genFeature.isEnumType()) {%>
+ * @see <%=genFeature.getTypeGenEnum().getQualifiedName()%>
+ <%}%>
+ <%if (genFeature.isUnsettable()) {%>
+ <%if (!genFeature.isSuppressedIsSetVisibility()) {%>
+ * @see #isSet<%=genFeature.getAccessorName()%>()
+ <%}%>
+ <%if (!genFeature.isSuppressedUnsetVisibility()) {%>
+ * @see #unset<%=genFeature.getAccessorName()%>()
+ <%}%>
+ <%}%>
+ * @see #<%=genFeature.getGetAccessor()%>()
+ * @generated
+ */
+<%} else {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+<%}%>
+<%if (!isImplementation) { %>
+ void set<%=genFeature.getAccessorName()%>(<%=genFeature.getImportedType()%> value);
+
+<%} else {%>
+ public void set<%=genFeature.getAccessorName()%>(<%=genFeature.getImportedType()%> new<%=genFeature.getCapName()%>)
+ {
+<%@ include file="Class/setGenFeature.pre.insert.javajetinc" fail="alternative" %>
+ <%if (genModel.isReflectiveDelegation()) {%>
+ _set_(<%=genFeature.getQualifiedFeatureAccessor()%>, <%if (genFeature.isPrimitiveType()) {%>new <%=genFeature.getObjectType()%>(<%}%>new<%=genFeature.getCapName()%><%if (genFeature.isPrimitiveType()) {%>)<%}%>);
+ <%} else if (!genFeature.isVolatile()) {%>
+ <%if (genFeature.isContainer()) { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();%>
+ if (new<%=genFeature.getCapName()%> != eInternalContainer() || (eContainerFeatureID != <%=genFeature.getUpperName()%> && new<%=genFeature.getCapName()%> != null))
+ {
+ if (<%=genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreUtil")%>.isAncestor(this, <%=genFeature.getEObjectCast()%>new<%=genFeature.getCapName()%>))
+ throw new <%=genModel.getImportedName("java.lang.IllegalArgumentException")%>("Recursive containment not allowed for " + toString());<%=genModel.getNonNLS()%>
+ ChangeContext changeContext = null;
+ if (eInternalContainer() != null)
+ changeContext = eBasicRemoveFromContainer(changeContext);
+ if (new<%=genFeature.getCapName()%> != null)
+ changeContext = ((<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)new<%=genFeature.getCapName()%>).eInverseAdd(this, <%=targetClass.getQualifiedFeatureID(reverseFeature)%>, <%=targetClass.getImportedInterfaceName()%>.class, changeContext);
+ changeContext = eBasicSetContainer((<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)new<%=genFeature.getCapName()%>, <%=genFeature.getUpperName()%>, changeContext);
+ if (changeContext != null) changeContext.dispatch();
+ }
+ <%if (!genModel.isSuppressNotification()) {%>
+ else if (isNotifying())
+ notify(ChangeKind.SET, <%=genFeature.getUpperName()%>, new<%=genFeature.getCapName()%>, new<%=genFeature.getCapName()%>);
+ <%}%>
+ <%} else if (genFeature.isBidirectional() || genFeature.isEffectiveContains()) {%>
+ <%if (genModel.isVirtualDelegation()) {%>
+ <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType()%>)eVirtualGet(<%=genFeature.getUpperName()%>);
+ <%}%>
+ if (new<%=genFeature.getCapName()%> != <%=genFeature.getSafeName()%>)
+ {
+ ChangeContext changeContext = null;
+ if (<%=genFeature.getSafeName()%> != null)
+ <%if (!genFeature.isBidirectional()) {%>
+ changeContext = ((<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)<%=genFeature.getSafeName()%>).inverseRemove(this, EOPPOSITE_FEATURE_BASE - <%=genFeature.getUpperName()%>, null, changeContext);
+ if (new<%=genFeature.getCapName()%> != null)
+ changeContext = ((<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)new<%=genFeature.getCapName()%>).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - <%=genFeature.getUpperName()%>, null, changeContext);
+ <%} else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();%>
+ changeContext = ((<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)<%=genFeature.getSafeName()%>).inverseRemove(this, <%=targetClass.getQualifiedFeatureID(reverseFeature)%>, <%=targetClass.getImportedInterfaceName()%>.class, changeContext);
+ if (new<%=genFeature.getCapName()%> != null)
+ changeContext = ((<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)new<%=genFeature.getCapName()%>).eInverseAdd(this, <%=targetClass.getQualifiedFeatureID(reverseFeature)%>, <%=targetClass.getImportedInterfaceName()%>.class, changeContext);
+ <%}%>
+ changeContext = basicSet<%=genFeature.getAccessorName()%>(<%=genFeature.getInternalTypeCast()%>new<%=genFeature.getCapName()%>, changeContext);
+ if (changeContext != null) changeContext.dispatch();
+ }
+ <%if (genFeature.isUnsettable()) {%>
+ else
+ {
+ <%if (genModel.isVirtualDelegation()) {%>
+ boolean old<%=genFeature.getCapName()%>_set_ = eVirtualIsSet(<%=genFeature.getUpperName()%>);
+ <%} else if (genClass.isESetFlag(genFeature)) {%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ boolean old<%=genFeature.getCapName()%>_set_ = (<%=genClass.getESetFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_ESETFLAG) != 0;
+ <%}%>
+ <%=genClass.getESetFlagsField(genFeature)%> |= <%=genFeature.getUpperName()%>_ESETFLAG;
+ <%} else {%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ boolean old<%=genFeature.getCapName()%>_set_ = <%=genFeature.getUncapName()%>_set_;
+ <%}%>
+ <%=genFeature.getUncapName()%>_set_ = true;
+ <%}%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ if (isNotifying())
+ notify(ChangeKind.SET, <%=genFeature.getUpperName()%>, new<%=genFeature.getCapName()%>, new<%=genFeature.getCapName()%>, !old<%=genFeature.getCapName()%>_set_);
+ <%}%>
+ }
+ <%} else {%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ else if (isNotifying())
+ notify(ChangeKind.SET, <%=genFeature.getUpperName()%>, new<%=genFeature.getCapName()%>, new<%=genFeature.getCapName()%>);
+ <%}%>
+ <%}%>
+ <%} else {%>
+ <%if (genClass.isFlag(genFeature)) {%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ <%=genFeature.getImportedType()%> old<%=genFeature.getCapName()%> = (<%=genClass.getFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_EFLAG) != 0;
+ <%}%>
+ if (new<%=genFeature.getCapName()%>) <%=genClass.getFlagsField(genFeature)%> |= <%=genFeature.getUpperName()%>_EFLAG; else <%=genClass.getFlagsField(genFeature)%> &= ~<%=genFeature.getUpperName()%>_EFLAG;
+ <%} else {%>
+ <%if (!genModel.isVirtualDelegation() || genFeature.isPrimitiveType()) {%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ <%=genFeature.getImportedType()%> old<%=genFeature.getCapName()%> = <%=genFeature.getSafeName()%>;
+ <%}%>
+ <%}%>
+ <%if (genFeature.isEnumType()) {%>
+ <%if (genModel.isVirtualDelegation()) {%>
+ <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = new<%=genFeature.getCapName()%> == null ? <%=genFeature.getUpperName()%>_DEFAULT_ : new<%=genFeature.getCapName()%>;
+ <%} else {%>
+ <%=genFeature.getSafeName()%> = new<%=genFeature.getCapName()%> == null ? <%=genFeature.getUpperName()%>_DEFAULT_ : new<%=genFeature.getCapName()%>;
+ <%}%>
+ <%} else {%>
+ <%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>
+ <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = <%=genFeature.getInternalTypeCast()%>new<%=genFeature.getCapName()%>;
+ <%} else {%>
+ <%=genFeature.getSafeName()%> = <%=genFeature.getInternalTypeCast()%>new<%=genFeature.getCapName()%>;
+ <%}%>
+ <%}%>
+ <%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>
+ Object old<%=genFeature.getCapName()%> = eVirtualSet(<%=genFeature.getUpperName()%>, <%=genFeature.getSafeName()%>);
+ <%}%>
+ <%}%>
+ <%if (genFeature.isUnsettable()) {%>
+ <%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>
+ boolean isSetChange = old<%=genFeature.getCapName()%> == EVIRTUAL_NO_VALUE;
+ <%} else if (genClass.isESetFlag(genFeature)) {%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ boolean old<%=genFeature.getCapName()%>_set_ = (<%=genClass.getESetFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_ESETFLAG) != 0;
+ <%}%>
+ <%=genClass.getESetFlagsField(genFeature)%> |= <%=genFeature.getUpperName()%>_ESETFLAG;
+ <%} else {%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ boolean old<%=genFeature.getCapName()%>_set_ = <%=genFeature.getUncapName()%>_set_;
+ <%}%>
+ <%=genFeature.getUncapName()%>_set_ = true;
+ <%}%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ if (isNotifying())
+ notify(ChangeKind.SET, <%=genFeature.getUpperName()%>, <%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>isSetChange ? <%if (genFeature.isReferenceType()) {%>null<%} else {%><%=genFeature.getUpperName()%>_DEFAULT_<%}%> : old<%=genFeature.getCapName()%><%} else {%>old<%=genFeature.getCapName()%><%}%>, <%if (genClass.isFlag(genFeature)) {%>new<%=genFeature.getCapName()%><%} else {%><%=genFeature.getSafeName()%><%}%>, <%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>isSetChange<%} else {%>!old<%=genFeature.getCapName()%>_set_<%}%>);
+ <%}%>
+ <%} else {%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ if (isNotifying())
+ notify(ChangeKind.SET, <%=genFeature.getUpperName()%>, <%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>old<%=genFeature.getCapName()%> == EVIRTUAL_NO_VALUE ? <%if (genFeature.isReferenceType()) {%>null<%} else {%><%=genFeature.getUpperName()%>_DEFAULT_<%}%> : old<%=genFeature.getCapName()%><%} else {%>old<%=genFeature.getCapName()%><%}%>, <%if (genClass.isFlag(genFeature)) {%>new<%=genFeature.getCapName()%><%} else {%><%=genFeature.getSafeName()%><%}%>);
+ <%}%>
+ <%}%>
+ <%}%>
+<%@ include file="Class/setGenFeature.post.insert.javajetinc" fail="silent" %>
+ <%} else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();%>
+ <%if (delegateFeature.isWrappedFeatureMapType()) {%>
+ set(get<%=delegateFeature.getAccessorName()%>(), getType(), <%=genFeature.getUpperName()%>, <%if (genFeature.isPrimitiveType()){%> new <%=genFeature.getObjectType()%>(<%}%>new<%=genFeature.getCapName()%><%if (genFeature.isPrimitiveType()){%>)<%}%>);
+ <%} else {%>
+ ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal)get<%=delegateFeature.getAccessorName()%>()).set(<%=genFeature.getQualifiedFeatureAccessor()%>, <%if (genFeature.isPrimitiveType()) {%>new <%=genFeature.getObjectType()%>(<%}%>new<%=genFeature.getCapName()%><%if (genFeature.isPrimitiveType()){%>)<%}%>);
+ <%}%>
+ <%} else {%>
+<%@ include file="Class/setGenFeature.TODO.override.javajetinc" fail="alternative" %>
+<%@ start %>
+ // TODO: implement this method to set the '<%=genFeature.getFormattedName()%>' <%=genFeature.getFeatureKind()%>
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+<%@ end %><%//Class/setGenFeature.todo.override.javajetinc%>
+ <%}%>
+ }
+
+<%}%>
+<%@ end %><%//Class/setGenFeature.override.javajetinc%>
+ <%}%>
+ <%if (isImplementation && !genModel.isReflectiveDelegation() && genFeature.isBasicUnset()) {%>
+<%@ include file="Class/basicUnsetGenFeature.override.javajetinc" fail="alternative" %>
+<%@ start %>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeContext basicUnset<%=genFeature.getAccessorName()%>(ChangeContext changeContext)
+ {
+ <%if (!genFeature.isVolatile()) {%>
+ <%if (genModel.isVirtualDelegation()) {%>
+ Object old<%=genFeature.getCapName()%> = eVirtualUnset(<%=genFeature.getUpperName()%>);
+ <%} else {%>
+ <%=genFeature.getImportedType()%> old<%=genFeature.getCapName()%> = <%=genFeature.getSafeName()%>;
+ <%=genFeature.getSafeName()%> = null;
+ <%}%>
+ <%if (genModel.isVirtualDelegation()) {%>
+ boolean isSetChange = old<%=genFeature.getCapName()%> != EVIRTUAL_NO_VALUE;
+ <%} else if (genClass.isESetFlag(genFeature)) {%>
+ boolean old<%=genFeature.getCapName()%>_set_ = (<%=genClass.getESetFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_ESETFLAG) != 0;
+ <%=genClass.getESetFlagsField(genFeature)%> &= ~<%=genFeature.getUpperName()%>_ESETFLAG;
+ <%} else {%>
+ boolean old<%=genFeature.getCapName()%>_set_ = <%=genFeature.getUncapName()%>_set_;
+ <%=genFeature.getUncapName()%>_set_ = false;
+ <%}%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ if (isNotifying())
+ {
+ <%=genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl")%> notification = new <%=genModel.getImportedName("org.eclipse.emf.ecore.impl.ENotificationImpl")%>(this, <%=genModel.getImportedName("org.eclipse.emf.common.notify.Notification")%>.UNSET, <%=genFeature.getUpperName()%>, <%if (genModel.isVirtualDelegation()) {%>isSetChange ? old<%=genFeature.getCapName()%> : null<%} else {%>old<%=genFeature.getCapName()%><%}%>, null, <%if (genModel.isVirtualDelegation()) {%>isSetChange<%} else {%>old<%=genFeature.getCapName()%>_set_<%}%>);
+ if (changeContext == null) changeContext = notification; else changeContext.add(notification);
+ }
+ return changeContext;
+ <%}%>
+ <%} else {%>
+<%@ include file="Class/basicUnsetGenFeature.TODO.override.javajetinc" fail="alternative" %>
+<%@ start %>
+ // TODO: implement this method to unset the contained '<%=genFeature.getFormattedName()%>' <%=genFeature.getFeatureKind()%>
+ // -> this method is automatically invoked to keep the containment relationship in synch
+ // -> do not modify other features
+ // -> return changeContext, after adding any generated Notification to it (if it is null, a NotificationChain object must be created first)
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+<%@ end %><%//Class/basicUnsetGenFeature.todo.override.javajetinc%>
+ <%}%>
+ }
+
+<%@ end %><%//Class.basicUnsetGenFeature.override.javajetinc%>
+ <%}%>
+ <%if (genFeature.isUnset() && (isImplementation || !genFeature.isSuppressedUnsetVisibility())) {%>
+<%@ include file="Class/unsetGenFeature.override.javajetinc" fail="alternative" %>
+<%@ start %>
+<%if (isInterface) {%>
+ /**
+ * Unsets the value of the '{@link <%=genClass.getQualifiedInterfaceName()%>#<%=genFeature.getGetAccessor()%> <em><%=genFeature.getFormattedName()%></em>}' <%=genFeature.getFeatureKind()%>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ <%if (!genFeature.isSuppressedIsSetVisibility()) {%>
+ * @see #isSet<%=genFeature.getAccessorName()%>()
+ <%}%>
+ * @see #<%=genFeature.getGetAccessor()%>()
+ <%if (!genFeature.isListType() && !genFeature.isSuppressedSetVisibility()) {%>
+ * @see #set<%=genFeature.getAccessorName()%>(<%=genFeature.getImportedType()%>)
+ <%}%>
+ * @generated
+ */
+<%} else {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+<%}%>
+<%if (!isImplementation) {%>
+ void unset<%=genFeature.getAccessorName()%>();
+
+<%} else {%>
+ public void unset<%=genFeature.getAccessorName()%>()
+ {
+ <%if (genModel.isReflectiveDelegation()) {%>
+ unset(<%=genFeature.getQualifiedFeatureAccessor()%>);
+ <%} else if (!genFeature.isVolatile()) {%>
+ <%if (genFeature.isListType()) {%>
+ ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList")%>.Unsettable)get<%=genFeature.getAccessorName()%>()).unset();
+ <%} else if (genFeature.isBidirectional() || genFeature.isEffectiveContains()) {%>
+ <%if (genModel.isVirtualDelegation()) {%>
+ <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType()%>)eVirtualGet(<%=genFeature.getUpperName()%>);
+ <%}%>
+ if (<%=genFeature.getSafeName()%> != null)
+ {
+ ChangeContext changeContext = null;
+ <%if (!genFeature.isBidirectional()) {%>
+ changeContext = ((<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)<%=genFeature.getSafeName()%>).inverseRemove(this, EOPPOSITE_FEATURE_BASE - <%=genFeature.getUpperName()%>, null, changeContext);
+ <%} else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();%>
+ changeContext = ((<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)<%=genFeature.getSafeName()%>).inverseRemove(this, <%=targetClass.getQualifiedFeatureID(reverseFeature)%>, <%=targetClass.getImportedInterfaceName()%>.class, changeContext);
+ <%}%>
+ changeContext = basicUnset<%=genFeature.getAccessorName()%>(changeContext);
+ if (changeContext != null) changeContext.dispatch();
+ }
+ else
+ {
+ <%if (genModel.isVirtualDelegation()) {%>
+ boolean old<%=genFeature.getCapName()%>_set_ = eVirtualIsSet(<%=genFeature.getUpperName()%>);
+ <%} else if (genClass.isESetFlag(genFeature)) {%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ boolean old<%=genFeature.getCapName()%>_set_ = (<%=genClass.getESetFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_ESETFLAG) != 0;
+ <%}%>
+ <%=genClass.getESetFlagsField(genFeature)%> &= ~<%=genFeature.getUpperName()%>_ESETFLAG;
+ <%} else {%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ boolean old<%=genFeature.getCapName()%>_set_ = <%=genFeature.getUncapName()%>_set_;
+ <%}%>
+ <%=genFeature.getUncapName()%>_set_ = false;
+ <%}%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ if (isNotifying())
+ notify(ChangeKind.UNSET, <%=genFeature.getUpperName()%>, null, null, old<%=genFeature.getCapName()%>_set_);
+ <%}%>
+ }
+ <%} else {%>
+ <%if (genClass.isFlag(genFeature)) {%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ <%=genFeature.getImportedType()%> old<%=genFeature.getCapName()%> = (<%=genClass.getFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_EFLAG) != 0;
+ <%}%>
+ <%} else if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>
+ Object old<%=genFeature.getCapName()%> = eVirtualUnset(<%=genFeature.getUpperName()%>);
+ <%} else {%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ <%=genFeature.getImportedType()%> old<%=genFeature.getCapName()%> = <%=genFeature.getSafeName()%>;
+ <%}%>
+ <%}%>
+ <%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>
+ boolean isSetChange = old<%=genFeature.getCapName()%> != EVIRTUAL_NO_VALUE;
+ <%} else if (genClass.isESetFlag(genFeature)) {%>
+ boolean old<%=genFeature.getCapName()%>_set_ = (<%=genClass.getESetFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_ESETFLAG) != 0;
+ <%} else {%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ boolean old<%=genFeature.getCapName()%>_set_ = <%=genFeature.getUncapName()%>_set_;
+ <%}%>
+ <%}%>
+ <%if (genFeature.isReferenceType()) {%>
+ <%=genFeature.getSafeName()%> = null;
+ <%if (!genModel.isVirtualDelegation()) {%>
+ <%if (genClass.isESetFlag(genFeature)) {%>
+ <%=genClass.getESetFlagsField(genFeature)%> &= ~<%=genFeature.getUpperName()%>_ESETFLAG;
+ <%} else {%>
+ <%=genFeature.getUncapName()%>_set_ = false;
+ <%}%>
+ <%}%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ if (isNotifying())
+ notify(ChangeKind.UNSET, <%=genFeature.getUpperName()%>, <%if (genModel.isVirtualDelegation()) {%>isSetChange ? old<%=genFeature.getCapName()%> : null<%} else {%>old<%=genFeature.getCapName()%><%}%>, null, <%if (genModel.isVirtualDelegation()) {%>isSetChange<%} else {%>old<%=genFeature.getCapName()%>_set_<%}%>);
+ <%}%>
+ <%} else {%>
+ <%if (genClass.isFlag(genFeature)) {%>
+ if (<%=genFeature.getUpperName()%>_DEFAULT_) <%=genClass.getFlagsField(genFeature)%> |= <%=genFeature.getUpperName()%>_EFLAG; else <%=genClass.getFlagsField(genFeature)%> &= ~<%=genFeature.getUpperName()%>_EFLAG;
+ <%} else if (!genModel.isVirtualDelegation() || genFeature.isPrimitiveType()) {%>
+ <%=genFeature.getSafeName()%> = <%=genFeature.getUpperName()%>_DEFAULT_;
+ <%}%>
+ <%if (!genModel.isVirtualDelegation() || genFeature.isPrimitiveType()) {%>
+ <%if (genClass.isESetFlag(genFeature)) {%>
+ <%=genClass.getESetFlagsField(genFeature)%> &= ~<%=genFeature.getUpperName()%>_ESETFLAG;
+ <%} else {%>
+ <%=genFeature.getUncapName()%>_set_ = false;
+ <%}%>
+ <%}%>
+ <%if (!genModel.isSuppressNotification()) {%>
+ if (isNotifying())
+ notify(ChangeKind.UNSET, <%=genFeature.getUpperName()%>, <%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>isSetChange ? old<%=genFeature.getCapName()%> : <%=genFeature.getUpperName()%>_DEFAULT_<%} else {%>old<%=genFeature.getCapName()%><%}%>, <%=genFeature.getUpperName()%>_DEFAULT_, <%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>isSetChange<%} else {%>old<%=genFeature.getCapName()%>_set_<%}%>);
+ <%}%>
+ <%}%>
+ <%}%>
+ <%} else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();%>
+ <%if (delegateFeature.isWrappedFeatureMapType()) {%>
+ unset(get<%=delegateFeature.getAccessorName()%>(), getType(), <%=genFeature.getUpperName()%>);
+ <%} else {%>
+ unset<%=genFeature.getImportedType()%>(get<%=delegateFeature.getAccessorName()%>());
+ <%}%>
+ <%} else {%>
+<%@ include file="Class/unsetGenFeature.TODO.override.javajetinc" fail="alternative" %>
+<%@ start %>
+ // TODO: implement this method to unset the '<%=genFeature.getFormattedName()%>' <%=genFeature.getFeatureKind()%>
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+<%@ end %><%//Class/unsetGenFeature.todo.override.javajetinc%>
+ <%}%>
+ }
+
+<%}%>
+<%@ end %><%//Class/unsetGenFeature.override.javajetinc%>
+ <%}%>
+ <%if (genFeature.isIsSet() && (isImplementation || !genFeature.isSuppressedIsSetVisibility())) {%>
+<%@ include file="Class/isSetGenFeature.override.javajetinc" fail="alternative" %>
+<%@ start %>
+<%if (isInterface) {%>
+ /**
+ * Returns whether the value of the '{@link <%=genClass.getQualifiedInterfaceName()%>#<%=genFeature.getGetAccessor()%> <em><%=genFeature.getFormattedName()%></em>}' <%=genFeature.getFeatureKind()%> is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em><%=genFeature.getFormattedName()%></em>' <%=genFeature.getFeatureKind()%> is set.
+ <%if (genFeature.isChangeable() && !genFeature.isSuppressedUnsetVisibility()) {%>
+ * @see #unset<%=genFeature.getAccessorName()%>()
+ <%}%>
+ * @see #<%=genFeature.getGetAccessor()%>()
+ <%if (!genFeature.isListType() && genFeature.isChangeable() && !genFeature.isSuppressedSetVisibility()) {%>
+ * @see #set<%=genFeature.getAccessorName()%>(<%=genFeature.getImportedType()%>)
+ <%}%>
+ * @generated
+ */
+<%} else {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+<%}%>
+<%if (!isImplementation) {%>
+ boolean isSet<%=genFeature.getAccessorName()%>();
+
+<%} else {%>
+ public boolean isSet<%=genFeature.getAccessorName()%>()
+ {
+ <%if (genModel.isReflectiveDelegation()) {%>
+ return isSet(<%=genFeature.getQualifiedFeatureAccessor()%>);
+ <%} else if (!genFeature.isVolatile()) {%>
+ <%if (genFeature.isListType()) {%>
+ <%if (genModel.isVirtualDelegation()) {%>
+ <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType()%>)eVirtualGet(<%=genFeature.getUpperName()%>);
+ <%}%>
+ return <%=genFeature.getSafeName()%> != null && ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList")%>.Unsettable)<%=genFeature.getSafeName()%>).isSet();
+ <%} else {%>
+ <%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>
+ return eVirtualIsSet(<%=genFeature.getUpperName()%>);
+ <%} else if (genClass.isESetFlag(genFeature)) {%>
+ return (<%=genClass.getESetFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_ESETFLAG) != 0;
+ <%} else {%>
+ return <%=genFeature.getUncapName()%>_set_;
+ <%}%>
+ <%}%>
+ <%} else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();%>
+ <%if (delegateFeature.isWrappedFeatureMapType()) {%>
+ return isSet(get<%=delegateFeature.getAccessorName()%>(), getType(), <%=genFeature.getUpperName()%>);
+ <%} else {%>
+ return !((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal)get<%=delegateFeature.getAccessorName()%>()).isEmpty(<%=genFeature.getQualifiedFeatureAccessor()%>);
+ <%}%>
+ <%} else {%>
+<%@ include file="Class/isSetGenFeature.TODO.override.javajetinc" fail="alternative" %>
+<%@ start %>
+ // TODO: implement this method to return whether the '<%=genFeature.getFormattedName()%>' <%=genFeature.getFeatureKind()%> is set
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+<%@ end %><%//Class/isSetGenFeature.todo.override.javajetinc%>
+ <%}%>
+ }
+
+<%}%>
+<%@ end %><%//Class/isSetGenFeature.override.javajetinc%>
+ <%}%>
+<%@ include file="Class/genFeature.insert.javajetinc" fail="silent" %>
+<%@ end %><%//Class/genFeature.override.javajetinc%>
+<%}//for%>
+<%for (Iterator i= (isImplementation ? genClass.getImplementedGenOperations() : genClass.getDeclaredGenOperations()).iterator(); i.hasNext();) { GenOperation genOperation = (GenOperation)i.next();%>
+<%@ include file="Class/genOperation.override.javajetinc" fail="alternative" %>
+<%@ start %>
+<%if (isInterface) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ <%if (genOperation.hasDocumentation()) {%>
+ * <!-- begin-model-doc -->
+ * <%=genOperation.getDocumentation(genModel.getIndentation(stringBuffer))%>
+ * <!-- end-model-doc -->
+ <%}%>
+ <%if (!genModel.isSuppressEMFModelTags()) { boolean first = true; for (StringTokenizer stringTokenizer = new StringTokenizer(genOperation.getModelInfo(), "\n\r"); stringTokenizer.hasMoreTokens(); ) { String modelInfo = stringTokenizer.nextToken(); if (first) { first = false;%>
+ * @model <%=modelInfo%>
+ <%} else {%>
+ * <%=modelInfo%>
+ <%}} if (first) {%>
+ * @model
+ <%}}%>
+ * @generated
+ */
+<%} else {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+<%}%>
+<%if (!isImplementation) {%>
+ <%=genOperation.getImportedType()%> <%=genOperation.getName()%>(<%=genOperation.getParameters()%>)<%=genOperation.getThrows()%>;
+
+<%} else {%>
+ public <%=genOperation.getImportedType()%> <%=genOperation.getName()%>(<%=genOperation.getParameters()%>)<%=genOperation.getThrows()%>
+ {
+ <%if (genOperation.hasBody()) {%>
+ <%=genOperation.getBody(genModel.getIndentation(stringBuffer))%>
+ <%} else if (genOperation.isInvariant()) {GenClass opClass = genOperation.getGenClass(); String diagnostics = ((GenParameter)genOperation.getGenParameters().get(0)).getName(); String context = ((GenParameter)genOperation.getGenParameters().get(1)).getName();%>
+ // TODO: implement this method
+ // -> specify the condition that violates the invariant
+ // -> verify the details of the diagnostic, including severity and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false)
+ {
+ if (<%=diagnostics%> != null)
+ {
+ <%=diagnostics%>.add
+ (new <%=genModel.getImportedName("org.eclipse.emf.common.util.BasicDiagnostic")%>
+ (<%=genModel.getImportedName("org.eclipse.emf.common.util.Diagnostic")%>.ERROR,
+ <%=opClass.getGenPackage().getImportedValidatorClassName()%>.DIAGNOSTIC_SOURCE,
+ <%=opClass.getGenPackage().getImportedValidatorClassName()%>.<%=opClass.getOperationID(genOperation)%>,
+ <%=genModel.getImportedName("org.eclipse.emf.ecore.plugin.EcorePlugin")%>.INSTANCE.getString("_UI_GenericInvariant_diagnostic", new Object[] { "<%=genOperation.getName()%>", <%=genModel.getImportedName("org.eclipse.emf.ecore.util.EObjectValidator")%>.getObjectLabel(this, <%=context%>) }),<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%>
+ new Object [] { this }));
+ }
+ return false;
+ }
+ return true;
+ <%} else {%>
+<%@ include file="Class/implementedGenOperation.TODO.override.javajetinc" fail="alternative" %>
+<%@ start %>
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+<%@ end %><%//Class/implementedGenOperation.todo.override.javajetinc%>
+ <%}%>
+ }
+
+<%}%>
+<%@ include file="Class/genOperation.insert.javajetinc" fail="silent" %>
+<%@ end %><%//Class/implementedGenOperation.override.javajetinc%>
+<%}//for%>
+<%if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEInverseAddGenFeatures())) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeContext eInverseAdd(<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%> otherEnd, int propertyIndex, ChangeContext changeContext)
+ {
+ switch (propertyIndex)
+ {
+<%for (Iterator i=genClass.getEInverseAddGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();%>
+ <%if (!genModel.isMinimalReflectiveMethods() || genClass.getImplementedGenFeatures().contains(genFeature)) {%>
+ case <%=genFeature.getUpperName()%>:
+ <%if (genFeature.isListType()) {%>
+ <%if (genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes()) {%>
+ return ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList")%>)((<%=genModel.getImportedName("org.eclipse.emf.common.util.EMap")%>.InternalMapView)<%=genFeature.getGetAccessor()%>()).eMap()).basicAdd(otherEnd, changeContext);
+ <%} else {%>
+ return ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList")%>)<%=genFeature.getGetAccessor()%>()).basicAdd(otherEnd, changeContext);
+ <%}%>
+ <%} else if (genFeature.isContainer()) {%>
+ if (eInternalContainer() != null)
+ changeContext = eBasicRemoveFromContainer(changeContext);
+ return eBasicSetContainer(otherEnd, <%=genFeature.getUpperName()%>, changeContext);
+ <%} else {%>
+ <%if (genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {%>
+ <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType()%>)eVirtualGet(<%=genFeature.getUpperName()%>);
+ <%}%>
+ if (<%=genFeature.getSafeName()%> != null)
+ <%if (genFeature.isEffectiveContains()) {%>
+ changeContext = ((<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)<%=genFeature.getSafeName()%>).inverseRemove(this, EOPPOSITE_FEATURE_BASE - <%=genFeature.getUpperName()%>, null, changeContext);
+ <%} else { GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();%>
+ changeContext = ((<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)<%=genFeature.getSafeName()%>).inverseRemove(this, <%=targetClass.getQualifiedFeatureID(reverseFeature)%>, <%=targetClass.getImportedInterfaceName()%>.class, changeContext);
+ <%}%>
+ return basicSet<%=genFeature.getAccessorName()%>((<%=genFeature.getImportedType()%>)otherEnd, changeContext);
+ <%}%>
+ <%}%>
+<%}%>
+ }
+<%if (genModel.isMinimalReflectiveMethods()) {%>
+ return super.eInverseAdd(otherEnd, propertyIndex, changeContext);
+<%} else {%>
+ return eDynamicInverseAdd(otherEnd, propertyIndex, changeContext);
+<%}%>
+ }
+
+<%}%>
+<%if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEInverseRemoveGenFeatures())) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeContext inverseRemove(<%=genModel.getImportedName("java.lang.Object")%> otherEnd, int propertyIndex, ChangeContext changeContext)
+ {
+ switch (propertyIndex)
+ {
+<%for (Iterator i=genClass.getEInverseRemoveGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();%>
+ <%if (!genModel.isMinimalReflectiveMethods() || genClass.getImplementedGenFeatures().contains(genFeature)) {%>
+ case <%=genFeature.getUpperName()%>:
+ <%if (genFeature.isListType()) {%>
+ <%if (genFeature.isMapType() && genFeature.isEffectiveSuppressEMFTypes()) {%>
+ return ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList")%>)((<%=genModel.getImportedName("org.eclipse.emf.common.util.EMap")%>.InternalMapView)<%=genFeature.getGetAccessor()%>()).eMap()).basicRemove(otherEnd, changeContext);
+ <%} else if (genFeature.isWrappedFeatureMapType()) {%>
+ return removeFrom<%=genFeature.getImportedType()%>(<%=genFeature.getGetAccessor()%>(), otherEnd, changeContext);
+ <%} else {%>
+ return removeFromList(<%=genFeature.getGetAccessor()%>(), otherEnd, changeContext);
+ <%}%>
+ <%} else if (genFeature.isContainer()) {%>
+ return eBasicSetContainer(null, <%=genFeature.getUpperName()%>, changeContext);
+ <%} else if (genFeature.isUnsettable()) {%>
+ return basicUnset<%=genFeature.getAccessorName()%>(changeContext);
+ <%} else {%>
+ return basicSet<%=genFeature.getAccessorName()%>(null, changeContext);
+ <%}%>
+ <%}%>
+<%}%>
+ }
+<%if (genModel.isMinimalReflectiveMethods()) {%>
+ return super.inverseRemove(otherEnd, propertyIndex, changeContext);
+<%} else {%>
+ return eDynamicInverseRemove(otherEnd, propertyIndex, changeContext);
+<%}%>
+ }
+
+<%}%>
+<%if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getEBasicRemoveFromContainerGenFeatures())) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeContext eBasicRemoveFromContainerFeature(ChangeContext changeContext)
+ {
+ switch (eContainerFeatureID)
+ {
+<%for (Iterator i=genClass.getEBasicRemoveFromContainerGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();%>
+ <%GenFeature reverseFeature = genFeature.getReverse(); GenClass targetClass = reverseFeature.getGenClass();%>
+ <%if (!genModel.isMinimalReflectiveMethods() || genClass.getImplementedGenFeatures().contains(genFeature)) {%>
+ case <%=genFeature.getUpperName()%>:
+ return eInternalContainer().inverseRemove(this, <%=targetClass.getQualifiedFeatureID(reverseFeature)%>, <%=targetClass.getImportedInterfaceName()%>.class, changeContext);
+ <%}%>
+<%}%>
+ }
+<%if (genModel.isMinimalReflectiveMethods()) {%>
+ return super.eBasicRemoveFromContainerFeature(changeContext);
+<%} else {%>
+ return eDynamicBasicRemoveFromContainer(changeContext);
+<%}%>
+ }
+
+<%}%>
+<%if (isImplementation && !genModel.isReflectiveDelegation() && !genClass.getImplementedGenFeatures().isEmpty()) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object get(int propertyIndex, boolean resolve)
+ {
+ switch (propertyIndex)
+ {
+<%for (Iterator i=genClass.getAllGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();%>
+ <%if (!genModel.isMinimalReflectiveMethods() || genClass.getImplementedGenFeatures().contains(genFeature)) {%>
+ case <%=genFeature.getUpperName()%>:
+ <%if (genFeature.isPrimitiveType()) {%>
+ <%if (genFeature.isBooleanType()) {%>
+ return <%=genFeature.getGetAccessor()%>() ? Boolean.TRUE : Boolean.FALSE;
+ <%} else {%>
+ return new <%=genFeature.getObjectType()%>(<%=genFeature.getGetAccessor()%>());
+ <%}%>
+ <%} else if (genFeature.isResolveProxies() && !genFeature.isListType()) {%>
+ if (resolve) return <%=genFeature.getGetAccessor()%>();
+ return basicGet<%=genFeature.getAccessorName()%>();
+ <%} else if (genFeature.isMapType()) {%>
+ <%if (genFeature.isEffectiveSuppressEMFTypes()) {%>
+ if (coreType) return ((<%=genModel.getImportedName("org.eclipse.emf.common.util.EMap")%>.InternalMapView)<%=genFeature.getGetAccessor()%>()).eMap();
+ else return <%=genFeature.getGetAccessor()%>();
+ <%} else {%>
+ if (coreType) return <%=genFeature.getGetAccessor()%>();
+ else return <%=genFeature.getGetAccessor()%>().map();
+ <%}%>
+ <%} else if (genFeature.isWrappedFeatureMapType()) {%>
+ // XXX query introduce coreType as an argument? -- semantic = if true -- coreType - return the core EMF object if value is a non-EMF wrapper/view
+ //if (coreType)
+ return <%=genFeature.getGetAccessor()%>();
+ <%} else if (genFeature.isFeatureMapType()) {%>
+ if (coreType) return <%=genFeature.getGetAccessor()%>();
+ return ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal)<%=genFeature.getGetAccessor()%>()).getWrapper();
+ <%} else {%>
+ return <%=genFeature.getGetAccessor()%>();
+ <%}%>
+ <%}%>
+<%}%>
+ }
+<%if (genModel.isMinimalReflectiveMethods()) {%>
+ return super.get(propertyIndex, resolve);
+<%} else {%>
+ return eDynamicGet(propertyIndex, resolve, coreType);
+<%}%>
+ }
+
+<%}%>
+<%if (isImplementation && !genModel.isReflectiveDelegation() && genClass.implementsAny(genClass.getESetGenFeatures())) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void set(int propertyIndex, Object newValue)
+ {
+ switch (propertyIndex)
+ {
+<%for (Iterator i=genClass.getESetGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();%>
+ <%if (!genModel.isMinimalReflectiveMethods() || genClass.getImplementedGenFeatures().contains(genFeature)) {%>
+ case <%=genFeature.getUpperName()%>:
+ <%if (genFeature.isListType()) {%>
+ <%if (genFeature.isWrappedFeatureMapType()) {%>
+ set<%=genFeature.getImportedType()%>(<%=genFeature.getGetAccessor()%>(), newValue);
+ <%} else if (genFeature.isFeatureMapType()) {%>
+ ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal)<%=genFeature.getGetAccessor()%>()).set(newValue);
+ <%} else if (genFeature.isMapType()) {%>
+ <%if (genFeature.isEffectiveSuppressEMFTypes()) {%>
+ ((<%=genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%>.Setting)((<%=genModel.getImportedName("org.eclipse.emf.common.util.EMap")%>.InternalMapView)<%=genFeature.getGetAccessor()%>()).eMap()).set(newValue);
+ <%} else {%>
+ ((<%=genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%>.Setting)<%=genFeature.getGetAccessor()%>()).set(newValue);
+ <%}%>
+ <%} else {%>
+ <%=genFeature.getGetAccessor()%>().clear();
+ <%=genFeature.getGetAccessor()%>().addAll((<%=genModel.getImportedName("java.util.Collection")%>)newValue);
+ <%}%>
+ <%} else if (genFeature.isPrimitiveType()) {%>
+ set<%=genFeature.getAccessorName()%>(((<%=genFeature.getObjectType()%>)newValue).<%=genFeature.getPrimitiveValueFunction()%>());
+ <%} else {%>
+ set<%=genFeature.getAccessorName()%>((<%=genFeature.getImportedType()%>)newValue);
+ <%}%>
+ return;
+ <%}%>
+<%}%>
+ }
+<%if (genModel.isMinimalReflectiveMethods()) {%>
+ super.set(propertyIndex, newValue);
+<%} else {%>
+ eDynamicSet(propertyIndex, newValue);
+<%}%>
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unset(int propertyIndex)
+ {
+ switch (propertyIndex)
+ {
+<%for (Iterator i=genClass.getESetGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();%>
+ <%if (!genModel.isMinimalReflectiveMethods() || genClass.getImplementedGenFeatures().contains(genFeature)) {%>
+ case <%=genFeature.getUpperName()%>:
+ <%if (genFeature.isListType() && !genFeature.isUnsettable()) {%>
+ <%if (genFeature.isWrappedFeatureMapType()) {%>
+ unset<%=genFeature.getImportedType()%>(<%=genFeature.getGetAccessor()%>());
+ <%} else {%>
+ <%=genFeature.getGetAccessor()%>().clear();
+ <%}%>
+ <%} else if (genFeature.isUnsettable()) {%>
+ unset<%=genFeature.getAccessorName()%>();
+ <%} else if (genFeature.isReferenceType()) {%>
+ set<%=genFeature.getAccessorName()%>((<%=genFeature.getImportedType()%>)null);
+ <%} else {%>
+ set<%=genFeature.getAccessorName()%>(<%=genFeature.getUpperName()%>_DEFAULT_);
+ <%}%>
+ return;
+ <%}%>
+<%}%>
+ }
+<%if (genModel.isMinimalReflectiveMethods()) {%>
+ super.unset(propertyIndex);
+<%} else {%>
+ eDynamicUnset(propertyIndex);
+<%}%>
+ }
+
+<%}%>
+<%if (isImplementation && !genModel.isReflectiveDelegation() && !genClass.getImplementedGenFeatures().isEmpty()) {%>
+<%@ include file="Class/eIsSet.override.javajetinc" fail="alternative" %>
+<%@ start %>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSet(int propertyIndex)
+ {
+ switch (propertyIndex)
+ {
+<%for (Iterator i=genClass.getAllGenFeatures().iterator(); i.hasNext();) { GenFeature genFeature = (GenFeature)i.next();%>
+ <%if (!genModel.isMinimalReflectiveMethods() || genClass.getImplementedGenFeatures().contains(genFeature)) {%>
+ case <%=genFeature.getUpperName()%>:
+ <%if (genFeature.isListType() && !genFeature.isUnsettable()) {%>
+ <%if (genFeature.isWrappedFeatureMapType()) {%>
+ <%if (genFeature.isVolatile()) {%>
+ return !is<%=genFeature.getImportedType()%>Empty(<%=genFeature.getGetAccessor()%>());
+ <%} else {%>
+ // KDK - should this be !isSequenceEmpty?
+ return <%=genFeature.getSafeName()%> != null && !is<%=genFeature.getImportedType()%>Empty(<%=genFeature.getGetAccessor()%>());
+ <%}%>
+ <%} else {%>
+ <%if (genClass.isField(genFeature)) {%>
+ return <%=genFeature.getSafeName()%> != null && !<%=genFeature.getSafeName()%>.isEmpty();
+ <%} else {%>
+ <%if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {%>
+ <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType()%>)eVirtualGet(<%=genFeature.getUpperName()%>);
+ return <%=genFeature.getSafeName()%> != null && !<%=genFeature.getSafeName()%>.isEmpty();
+ <%} else {%>
+ return !<%=genFeature.getGetAccessor()%>().isEmpty();
+ <%}%>
+ <%}%>
+ <%}%>
+ <%} else if (genFeature.isUnsettable()) {%>
+ return isSet<%=genFeature.getAccessorName()%>();
+ <%} else if (genFeature.isResolveProxies()) {%>
+ <%if (genClass.isField(genFeature)) {%>
+ return <%=genFeature.getSafeName()%> != null;
+ <%} else {%>
+ <%if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {%>
+ return eVirtualGet(<%=genFeature.getUpperName()%>) != null;
+ <%} else {%>
+ return basicGet<%=genFeature.getAccessorName()%>() != null;
+ <%}%>
+ <%}%>
+ <%} else if (genFeature.isReferenceType()) {%>
+ <%if (genClass.isField(genFeature)) {%>
+ return <%=genFeature.getSafeName()%> != null;
+ <%} else {%>
+ <%if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {%>
+ return eVirtualGet(<%=genFeature.getUpperName()%>) != null;
+ <%} else {%>
+ return <%=genFeature.getGetAccessor()%>() != null;
+ <%}%>
+ <%}%>
+ <%} else if (genFeature.isPrimitiveType() || genFeature.isEnumType()) {%>
+ <%if (genClass.isField(genFeature)) {%>
+ <%if (genClass.isFlag(genFeature)) {%>
+ return ((<%=genClass.getFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_EFLAG) != 0) != <%=genFeature.getUpperName()%>_DEFAULT_;
+ <%} else {%>
+ return <%=genFeature.getSafeName()%> != <%=genFeature.getUpperName()%>_DEFAULT_;
+ <%}%>
+ <%} else {%>
+ <%if (genFeature.isEnumType() && genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {%>
+ return eVirtualGet(<%=genFeature.getUpperName()%>, <%=genFeature.getUpperName()%>_DEFAULT_) != <%=genFeature.getUpperName()%>_DEFAULT_;
+ <%} else {%>
+ return <%=genFeature.getGetAccessor()%>() != <%=genFeature.getUpperName()%>_DEFAULT_;
+ <%}%>
+ <%}%>
+ <%} else {//datatype%>
+ <%if (genClass.isField(genFeature)) {%>
+ return <%=genFeature.getUpperName()%>_DEFAULT_ == null ? <%=genFeature.getSafeName()%> != null : !<%=genFeature.getUpperName()%>_DEFAULT_.equals(<%=genFeature.getSafeName()%>);
+ <%} else {%>
+ <%if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {%>
+ <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType()%>)eVirtualGet(<%=genFeature.getUpperName()%>, <%=genFeature.getUpperName()%>_DEFAULT_);
+ return <%=genFeature.getUpperName()%>_DEFAULT_ == null ? <%=genFeature.getSafeName()%> != null : !<%=genFeature.getUpperName()%>_DEFAULT_.equals(<%=genFeature.getSafeName()%>);
+ <%} else {%>
+ return <%=genFeature.getUpperName()%>_DEFAULT_ == null ? <%=genFeature.getGetAccessor()%>() != null : !<%=genFeature.getUpperName()%>_DEFAULT_.equals(<%=genFeature.getGetAccessor()%>());
+ <%}%>
+ <%}%>
+ <%}%>
+ <%}%>
+<%}%>
+ }
+<%if (genModel.isMinimalReflectiveMethods()) {%>
+ return super.isSet(propertyIndex);
+<%} else {%>
+ return eDynamicIsSet(propertyIndex);
+<%}%>
+ }
+
+<%@ end %><%//Class/eIsSet.override.javajetinc%>
+<%}%>
+<%if (isImplementation && !genClass.getMixinGenFeatures().isEmpty()) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass)
+ {
+ <%for (Iterator m=genClass.getMixinGenClasses().iterator(); m.hasNext();) { GenClass mixinGenClass = (GenClass)m.next(); %>
+ if (baseClass == <%=mixinGenClass.getImportedInterfaceName()%>.class)
+ {
+ switch (derivedFeatureID)
+ {
+ <%for (Iterator f=mixinGenClass.getGenFeatures().iterator(); f.hasNext();) { GenFeature genFeature = (GenFeature)f.next(); %>
+ case <%=genFeature.getUpperName()%>: return <%=mixinGenClass.getQualifiedFeatureID(genFeature)%>;
+ <%}%>
+ default: return -1;
+ }
+ }
+ <%}%>
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass)
+ {
+ <%for (Iterator m=genClass.getMixinGenClasses().iterator(); m.hasNext();) { GenClass mixinGenClass = (GenClass)m.next(); %>
+ if (baseClass == <%=mixinGenClass.getImportedInterfaceName()%>.class)
+ {
+ switch (baseFeatureID)
+ {
+ <%for (Iterator f=mixinGenClass.getGenFeatures().iterator(); f.hasNext();) { GenFeature genFeature = (GenFeature)f.next(); %>
+ case <%=mixinGenClass.getQualifiedFeatureID(genFeature)%>: return <%=genFeature.getUpperName()%>;
+ <%}%>
+ default: return -1;
+ }
+ }
+ <%}%>
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+<%}%>
+<%if (isImplementation && genModel.isVirtualDelegation()) { String eVirtualValuesField = genClass.getEVirtualValuesField();%>
+ <%if (eVirtualValuesField != null) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Object[] eVirtualValues()
+ {
+ return <%=eVirtualValuesField%>;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void setVirtualValues(Object[] newValues)
+ {
+ <%=eVirtualValuesField%> = newValues;
+ }
+
+ <%}%>
+ <%{ List eVirtualIndexBitFields = genClass.getEVirtualIndexBitFields(new ArrayList());%>
+ <%if (!eVirtualIndexBitFields.isEmpty()) { List allEVirtualIndexBitFields = genClass.getAllEVirtualIndexBitFields(new ArrayList());%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits(int offset)
+ {
+ switch (offset)
+ {
+ <%for (int i = 0; i < allEVirtualIndexBitFields.size(); i++) {%>
+ case <%=i%> :
+ return <%=allEVirtualIndexBitFields.get(i)%>;
+ <%}%>
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void setVirtualIndexBits(int offset, int newIndexBits)
+ {
+ switch (offset)
+ {
+ <%for (int i = 0; i < allEVirtualIndexBitFields.size(); i++) {%>
+ case <%=i%> :
+ <%=allEVirtualIndexBitFields.get(i)%> = newIndexBits;
+ break;
+ <%}%>
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ <%}%>
+ <%}%>
+<%}%>
+<%if (isImplementation && !genModel.isReflectiveDelegation() && !genClass.getToStringGenFeatures().isEmpty()) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString()
+ {
+ if (isProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ <%{ boolean first = true;%>
+ <%for (Iterator i=genClass.getToStringGenFeatures().iterator(); i.hasNext(); ) { GenFeature genFeature = (GenFeature)i.next();%>
+ <%if (first) { first = false;%>
+ result.append(" (<%=genFeature.getName()%>: ");<%=genModel.getNonNLS()%>
+ <%} else {%>
+ result.append(", <%=genFeature.getName()%>: ");<%=genModel.getNonNLS()%>
+ <%}%>
+ <%if (genFeature.isUnsettable() && !genFeature.isListType()) {%>
+ <%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>
+ if (eVirtualIsSet(<%=genFeature.getUpperName()%>)) result.append(eVirtualGet(<%=genFeature.getUpperName()%>)); else result.append("<unset>");<%=genModel.getNonNLS()%>
+ <%} else {%>
+ <%if (genClass.isFlag(genFeature)) {%>
+ if (<%if (genClass.isESetFlag(genFeature)) {%>(<%=genClass.getESetFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_ESETFLAG) != 0<%} else {%><%=genFeature.getUncapName()%>_set_<%}%>) result.append((<%=genClass.getFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_EFLAG) != 0); else result.append("<unset>");<%=genModel.getNonNLS()%>
+ <%} else {%>
+ if (<%if (genClass.isESetFlag(genFeature)) {%>(<%=genClass.getESetFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_ESETFLAG) != 0<%} else {%><%=genFeature.getUncapName()%>_set_<%}%>) result.append(<%=genFeature.getSafeName()%>); else result.append("<unset>");<%=genModel.getNonNLS()%>
+ <%}%>
+ <%}%>
+ <%} else {%>
+ <%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>
+ result.append(eVirtualGet(<%=genFeature.getUpperName()%><%if (!genFeature.isListType() && !genFeature.isReferenceType()){%>, <%=genFeature.getUpperName()%>_DEFAULT_<%}%>));
+ <%} else {%>
+ <%if (genClass.isFlag(genFeature)) {%>
+ result.append((<%=genClass.getFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_EFLAG) != 0);
+ <%} else {%>
+ result.append(<%=genFeature.getSafeName()%>);
+ <%}%>
+ <%}%>
+ <%}%>
+ <%}%>
+ <%}%>
+ result.append(')');
+ return result.toString();
+ }
+
+<%}%>
+<%if (isImplementation && genClass.isMapEntry()) { GenFeature keyFeature = genClass.getMapEntryKeyFeature(); GenFeature valueFeature = genClass.getMapEntryValueFeature();%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int hash = -1;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getHash()
+ {
+ if (hash == -1)
+ {
+ Object theKey = getKey();
+ hash = (theKey == null ? 0 : theKey.hashCode());
+ }
+ return hash;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHash(int hash)
+ {
+ this.hash = hash;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object getKey()
+ {
+ <%if (keyFeature.isPrimitiveType()) {%>
+ return new <%=keyFeature.getObjectType()%>(getTypedKey());
+ <%} else {%>
+ return getTypedKey();
+ <%}%>
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setKey(Object key)
+ {
+ <%if (keyFeature.isListType()) {%>
+ getTypedKey().addAll((<%=genModel.getImportedName("java.util.Collection")%>)key);
+ <%} else if (keyFeature.isPrimitiveType()) {%>
+ setTypedKey(((<%=keyFeature.getObjectType()%>)key).<%=keyFeature.getPrimitiveValueFunction()%>());
+ <%} else {%>
+ setTypedKey((<%=keyFeature.getImportedType()%>)key);
+ <%}%>
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object getValue()
+ {
+ <%if (valueFeature.isPrimitiveType()) {%>
+ return new <%=valueFeature.getObjectType()%>(getTypedValue());
+ <%} else {%>
+ return getTypedValue();
+ <%}%>
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object setValue(Object value)
+ {
+ Object oldValue = getValue();
+ <%if (valueFeature.isListType()) {%>
+ getTypedValue().clear();
+ getTypedValue().addAll((<%=genModel.getImportedName("java.util.Collection")%>)value);
+ <%} else if (valueFeature.isPrimitiveType()) {%>
+ setTypedValue(((<%=valueFeature.getObjectType()%>)value).<%=valueFeature.getPrimitiveValueFunction()%>());
+ <%} else {%>
+ setTypedValue((<%=valueFeature.getImportedType()%>)value);
+ <%}%>
+ return oldValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public <%=genModel.getImportedName("org.eclipse.emf.common.util.EMap")%> getEMap()
+ {
+ <%=genModel.getImportedName("org.eclipse.emf.ecore.EObject")%> container = eContainer();
+ return container == null ? null : (<%=genModel.getImportedName("org.eclipse.emf.common.util.EMap")%>)container.get(eContainmentFeature());
+ }
+<%}%>
+<%@ include file="Class/insert.javajetinc" fail="silent" %>
+} //<%=isInterface ? " " + genClass.getInterfaceName() : genClass.getClassName()%>
+<%// TODO fix the space above%>
+<%genModel.emitSortedImports();%>
diff --git a/sca-java-1.x/branches/java-post-M1/sdo/tools/templates/models/SDOFactoryClass.javajet b/sca-java-1.x/branches/java-post-M1/sdo/tools/templates/models/SDOFactoryClass.javajet
new file mode 100644
index 0000000000..31794dae3f
--- /dev/null
+++ b/sca-java-1.x/branches/java-post-M1/sdo/tools/templates/models/SDOFactoryClass.javajet
@@ -0,0 +1,727 @@
+<%@ jet package="org.apache.tuscany.sdo.generate.templates.model" imports="java.util.* org.eclipse.emf.codegen.ecore.genmodel.*" class="SDOFactoryClass" version="$Id: SDOFactoryClass.javajet,v 1.23 2005/12/10 13:31:02 emerks Exp $" %>
+<%
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2002-2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ */
+%>
+<%GenPackage genPackage = (GenPackage)((Object[])argument)[0]; GenModel genModel=genPackage.getGenModel();%>
+<%boolean isInterface = Boolean.TRUE.equals(((Object[])argument)[1]); boolean isImplementation = Boolean.TRUE.equals(((Object[])argument)[2]);%>
+<%String publicStaticFinalFlag = isImplementation ? "public static final " : "";%>
+<%@ include file="../Header.javajetinc"%>
+<%if (isInterface || genModel.isSuppressInterfaces()) {%>
+package <%=genPackage.getReflectionPackageName()%>;
+<%} else {%>
+package <%=genPackage.getClassPackageName()%>;
+<%}%>
+
+<%if (isImplementation) {%>
+<%if (!genPackage.hasJavaLangConflict() && !genPackage.hasInterfaceImplConflict() && !genPackage.getClassPackageName().equals(genPackage.getInterfacePackageName())) genModel.addImport(genPackage.getInterfacePackageName() + ".*");%>
+<%}%>
+<%genModel.markImportLocation(stringBuffer);%>
+
+<%if (isInterface) {%>
+/**
+ * <!-- 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 -->
+<%if (!genModel.isSuppressEMFMetaData()) {%>
+ * @see <%=genPackage.getQualifiedPackageInterfaceName()%>
+<%}%>
+ * @generated
+ */
+<%} else {%>
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+<%}%>
+<%if (isImplementation) {%>
+public class <%=genPackage.getFactoryClassName()%> extends <%=genModel.getImportedName("org.apache.tuscany.sdo.impl.FactoryBase")%><%if (!genModel.isSuppressInterfaces()) {%> implements <%=genPackage.getImportedFactoryInterfaceName()%><%}%>
+<%} else {%>
+public interface <%=genPackage.getFactoryInterfaceName()%><%if (!genModel.isSuppressEMFMetaData()) {%> extends <%=genModel.getImportedName("org.eclipse.emf.ecore.EFactory")%><%}%>
+<%}%>
+{
+<%if (genModel.getCopyrightText() != null) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ <%=publicStaticFinalFlag%><%=genModel.getImportedName("java.lang.String")%> copyright = "<%=genModel.getCopyrightText()%>";<%=genModel.getNonNLS()%>
+
+<%}%>
+
+<%if (isInterface && genModel.isSuppressEMFMetaData()) {%>
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ <%=publicStaticFinalFlag%><%=genPackage.getFactoryInterfaceName()%> INSTANCE = <%=genPackage.getQualifiedFactoryClassName()%>.init();
+
+<%} else if (isInterface && !genModel.isSuppressInterfaces()) {%>
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ <%=publicStaticFinalFlag%><%=genPackage.getFactoryInterfaceName()%> eINSTANCE = <%=genPackage.getQualifiedFactoryClassName()%>.init();
+
+<%}%>
+<%if (isImplementation) {%>
+/**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+<%=publicStaticFinalFlag%><%=genModel.getImportedName("java.lang.String")%> NAMESPACE_URI = "<%=genPackage.getNSURI()%>";<%=genModel.getNonNLS()%>
+
+/**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+<%=publicStaticFinalFlag%><%=genModel.getImportedName("java.lang.String")%> NAMESPACE_PREFIX = "<%=genPackage.getNSName()%>";<%=genModel.getNonNLS()%>
+
+
+ <%for (Iterator i=genPackage.getOrderedGenClassifiers().iterator(); i.hasNext();) { GenClassifier genClassifier = (GenClassifier)i.next();%>
+<%if (!genClassifier.getClassifierID().equals("DOCUMENT_ROOT")) { %>
+<%=publicStaticFinalFlag%>int <%=genPackage.getClassifierID(genClassifier)%> = <%=genPackage.getClassifierValue(genClassifier)%>;
+<%} }%>
+
+
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+<%String factoryType = genModel.isSuppressEMFMetaData() ? genPackage.getFactoryClassName() : genPackage.getImportedFactoryInterfaceName();%>
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public <%=genPackage.getFactoryClassName()%>()
+ {
+ super(NAMESPACE_URI, NAMESPACE_PREFIX);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public <%=genModel.getImportedName("commonj.sdo.DataObject")%> create(int typeNumber)
+ {
+ switch (typeNumber)
+ {
+<%for (Iterator i=genPackage.getGenClasses().iterator(); i.hasNext();) { GenClass genClass = (GenClass)i.next();%>
+<%if (!genClass.isAbstract() && !genClass.getClassifierID().equals("DOCUMENT_ROOT")) {%>
+ // TODO make sure we're supposed to ingore DOCUMENT_ROOT
+ case <%=genClass.getClassifierID()%>: return (<%=genModel.getImportedName("commonj.sdo.DataObject")%>)create<%=genClass.getName()%>();
+<%}%>
+<%}%>
+ default:
+ return super.create(typeNumber);
+ }
+ }
+
+
+<%if (!genPackage.getAllGenDataTypes().isEmpty()) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object createFromString(<%=genModel.getImportedName("org.eclipse.emf.ecore.EDataType")%> eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+<%for (Iterator i=genPackage.getAllGenDataTypes().iterator(); i.hasNext();) { GenDataType genDataType = (GenDataType)i.next();%>
+ <%if (genDataType.isSerializable()) {%>
+ case <%=genPackage.getImportedPackageInterfaceName()%>.<%=genDataType.getClassifierID()%>:
+ return create<%=genDataType.getName()%>FromString(eDataType, initialValue);
+ <%}%>
+<%}%>
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%>
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertToString(<%=genModel.getImportedName("org.eclipse.emf.ecore.EDataType")%> eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+<%for (Iterator i=genPackage.getAllGenDataTypes().iterator(); i.hasNext();) { GenDataType genDataType = (GenDataType)i.next();%>
+ <%if (genDataType.isSerializable()) {%>
+ case <%=genPackage.getImportedPackageInterfaceName()%>.<%=genDataType.getClassifierID()%>:
+ return convert<%=genDataType.getName()%>ToString(eDataType, instanceValue);
+ <%}%>
+<%}%>
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%>
+ }
+ }
+
+<%}%>
+<%for (Iterator i=genPackage.getGenClasses().iterator(); i.hasNext();) { GenClass genClass = (GenClass)i.next();%>
+ <%if (!genClass.isAbstract() && !genClass.getClassifierID().equals("DOCUMENT_ROOT")) {%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public <%=genClass.getImportedInterfaceName()%> create<%=genClass.getName()%>()
+ {
+ <%if (genClass.isDynamic()) {%>
+ <%=genClass.getImportedInterfaceName()%> <%=genClass.getSafeUncapName()%> = <%=genClass.getCastFromEObject()%>super.create(<%=genClass.getQualifiedClassifierAccessor()%>);
+ <%} else {%>
+ <%=genClass.getImportedClassName()%> <%=genClass.getSafeUncapName()%> = new <%=genClass.getImportedClassName()%>()<%if (genModel.isSuppressInterfaces() && !genPackage.getReflectionPackageName().equals(genPackage.getInterfacePackageName())) {%>{}<%}%>;
+ <%}%>
+ return <%=genClass.getSafeUncapName()%>;
+ }
+
+ // Following creates and initializes SDO metadata for the supported types.
+ protected <%=genModel.getImportedName("commonj.sdo.Type")%> <%=genClass.getSafeUncapName()%>Type = null;
+
+ public <%=genModel.getImportedName("commonj.sdo.Type")%> get<%=genClass.getName()%>()
+ {
+ // TODO - kdk - verify how to generate quoteType...<%=genClass.getSafeUncapName()%>Type?
+ return <%=genClass.getSafeUncapName()%>Type;
+ }
+ <%}%>
+<%}%>
+
+ private static boolean isInited = false;
+
+ public static <%=factoryType%> init()
+ {
+ if (isInited) return (<%=factoryType%>)FactoryBase.getStaticFactory(<%=factoryType%>.NAMESPACE_URI);
+ <%=factoryType%> the<%=factoryType%> = new <%=factoryType%>();
+ isInited = true;
+
+ // Initialize simple dependencies
+ <%=genModel.getImportedName("org.apache.tuscany.sdo.util.SDOUtil")%>.registerStaticTypes(<%=genModel.getImportedName("org.apache.tuscany.sdo.impl.SDOFactoryImpl")%>.class);
+ <%=genModel.getImportedName("org.apache.tuscany.sdo.util.SDOUtil")%>.registerStaticTypes(<%=genModel.getImportedName("org.apache.tuscany.sdo.model.impl.ModelPackageImpl")%>.class);
+
+ // Create package meta-data objects
+ the<%=factoryType%>.createMetaData();
+
+ // Initialize created meta-data
+ the<%=factoryType%>.initializeMetaData();
+
+ // Mark meta-data to indicate it can't be changed
+ //the<%=factoryType%>.freeze(); //FB do we need to freeze / should we freeze ????
+
+ return the<%=factoryType%>;
+ }
+
+ private boolean isCreated = false;
+
+ public void createMetaData()
+ {
+ if (isCreated) return;
+ isCreated = true;
+<%for (Iterator i=genPackage.getGenClasses().iterator(); i.hasNext();) { GenClass genClass = (GenClass)i.next();%>
+
+ <%if (!genClass.isAbstract() && !genClass.getClassifierID().equals("DOCUMENT_ROOT")) {%>
+ <%=genClass.getSafeUncapName()%>Type = createType(false, <%=genPackage.getClassifierID(genClass)%>);
+ <%for (Iterator j=genClass.getAllGenFeatures().iterator(); j.hasNext();) { GenFeature genFeature = (GenFeature)j.next();%>
+ createProperty(<%=!genFeature.isReferenceType()%>, <%=genClass.getSafeUncapName()%>Type, <%=genClass.getClassName()%>.<%=genFeature.getUpperName()%>);
+ <%}%>
+ <%}%>
+<%}%>
+ }
+ private boolean isInitialized = false;
+
+ public void initializeMetaData()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Obtain other dependent packages
+ <%=genModel.getImportedName("org.apache.tuscany.sdo.model.impl.ModelFactoryImpl")%> theModelPackageImpl = (<%=genModel.getImportedName("org.apache.tuscany.sdo.model.impl.ModelFactoryImpl")%>)FactoryBase.getStaticFactory(<%=genModel.getImportedName("org.apache.tuscany.sdo.model.impl.ModelFactoryImpl")%>.NAMESPACE_URI);
+
+ // Add supertypes to classes
+ // Initialize classes and features; add operations and parameters
+<%for (Iterator i=genPackage.getGenClasses().iterator(); i.hasNext();) { GenClass genClass = (GenClass)i.next();%>
+ <%if (!genClass.isAbstract() && !genClass.getClassifierID().equals("DOCUMENT_ROOT")) {%>
+
+ initializeType(<%=genClass.getSafeUncapName()%>Type, <%=genClass.getImportedInterfaceName()%>.class, "<%=genClass.getName()%>");<%for (Iterator j=genClass.getAllGenFeatures().iterator(); j.hasNext();) {GenFeature genFeature = (GenFeature)j.next();%><%String type = genFeature.getImportedType().equals("Sequence") ? "getSequence()" : genPackage.getPackageInstanceVariable(genFeature.getTypeGenPackage()) + ".get" + genFeature.getTypeClassifierAccessorName() + "()";%><%if (genFeature.isReferenceType()) { GenFeature reverseGenFeature = genFeature.getReverse();%><%String reverse = reverseGenFeature == null ? "null" : genPackage.getPackageInstanceVariable(reverseGenFeature.getGenPackage()) + ".get" + reverseGenFeature.getFeatureAccessorName() + "()";%>
+ initializeProperty((<%=genModel.getImportedName("commonj.sdo.Property")%>)<%=genClass.getSafeUncapName()%>Type.getProperties().get(<%=genClass.getClassName()%>.<%=genFeature.getUpperName()%>), <%=type%>, "<%=genFeature.getSafeName()%>", <%=genFeature.getDefaultValue()%>, <%=genFeature.getLowerBound()%>, <%=genFeature.getUpperBound()%>, <%=genFeature.getContainerClass()%>, <%=genFeature.getChangeableFlag().equals("IS_CHANGEABLE") ? "false" : "true"%>, <%=genFeature.getUnsettableFlag().equals("IS_UNSETTABLE") ? "true": "false"%>, <%=genFeature.getDerivedFlag().equals("IS_DERIVED") ? "true" : "false"%>, <%=genFeature.getContainmentFlag().equals("IS_COMPOSITE")? "true": "false"%> , <%=reverse%>);<%}else{%>
+ initializeProperty((<%=genModel.getImportedName("commonj.sdo.Property")%>)<%=genClass.getSafeUncapName()%>Type.getProperties().get(<%=genClass.getClassName()%>.<%=genFeature.getUpperName()%>), <%=type%>, "<%=genFeature.getSafeName()%>", <%=genFeature.getDefaultValue()%>, <%=genFeature.getLowerBound()%>, <%=genFeature.getUpperBound()%>, <%=genFeature.getContainerClass()%>, <%=genFeature.getChangeableFlag().equals("IS_CHANGEABLE") ? "false" : "true"%>, <%=genFeature.getUnsettableFlag().equals("IS_UNSETTABLE") ? "true": "false"%>, <%=genFeature.getDerivedFlag().equals("IS_DERIVED") ? "true" : "false"%>);<%}%><%}%><%}%><%}%>createXSDMetaData();
+ }
+
+ protected void createXSDMetaData()
+ {
+ super.createXSDMetaData();
+<%for (Iterator i=genPackage.getGenClasses().iterator(); i.hasNext();) { GenClass genClass = (GenClass)i.next();%>
+ <%if (!genClass.isAbstract() && !genClass.getClassifierID().equals("DOCUMENT_ROOT")) {%>
+ // TODO - kdk - is the order right? should kind, elementOnly be first
+ addXSDMapping
+ (<%=genClass.getSafeUncapName()%>Type,
+ new String[]
+ {
+ "name", "<%=genClass.getName()%>",
+ "kind", "elementOnly"
+ });
+<%for (Iterator j=genClass.getAllGenFeatures().iterator(); j.hasNext();) { GenFeature genFeature = (GenFeature)j.next();%>
+ addXSDMapping
+ ((<%=genModel.getImportedName("commonj.sdo.Property")%>)<%=genClass.getSafeUncapName()%>Type.getProperties().get(<%=genClass.getClassName()%>.<%=genFeature.getUpperName()%>),
+ new String[]
+ {
+ "kind", "element",
+ "name", "<%=genFeature.getName()%>"
+ });
+ <%}%>
+ <%}%>
+<%}%>
+
+<%for (Iterator i=genPackage.getGenClasses().iterator(); i.hasNext();) { GenClass genClass = (GenClass)i.next();%>
+ <%if (!genClass.isAbstract() && genClass.getClassifierID().equals("DOCUMENT_ROOT")) {%>
+ // TODO - kdk - how do I filter out mixed, xMLNSPrefixMap, and xSISchemaLocation without hardcoding it
+ // TODO - kdk - can I hardcode ##targetNamespace?
+ <%for (Iterator j=genClass.getAllGenFeatures().iterator(); j.hasNext();) { GenFeature genFeature = (GenFeature)j.next();%>
+ <%if (!genFeature.getName().equals("mixed") && !genFeature.getName().equals("xMLNSPrefixMap") && !genFeature.getName().equals("xSISchemaLocation")){ %>
+ createGlobalProperty
+ ("<%=genFeature.getName()%>",
+ <%=genPackage.getPackageInstanceVariable(genFeature.getTypeGenPackage())%>.get<%=genFeature.getTypeClassifierAccessorName()%>(),
+ new String[]
+ {
+ "kind", "element",
+ "name", "<%=genFeature.getName()%>",
+ "namespace", "##targetNamespace"
+ });
+ <%}%>
+ <%}%>
+<%}%>
+<%}%>
+ }
+
+<%for (Iterator i=genPackage.getAllGenDataTypes().iterator(); i.hasNext();) { GenDataType genDataType = (GenDataType)i.next();%>
+ <%if (genDataType.isSerializable()) {%>
+<%if (genPackage.isDataTypeConverters()) { String eDataType = genDataType.getQualifiedClassifierAccessor();%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public <%=genDataType.getImportedInstanceClassName()%> create<%=genDataType.getName()%>(String literal)
+ {
+ <%if (genDataType instanceof GenEnum) {%>
+ <%=genDataType.getImportedInstanceClassName()%> result = <%=genDataType.getImportedInstanceClassName()%>.get(literal);
+ if (result == null) throw new IllegalArgumentException("The value '" + literal + "' is not a valid enumerator of '" + <%=eDataType%>.getName() + "'");<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%><%=genModel.getNonNLS(3)%>
+ return result;
+ <%} else if (genDataType.getBaseType() != null) { GenDataType genBaseType = genDataType.getBaseType(); boolean isPrimitiveConversion = !genDataType.isPrimitiveType() && genBaseType.isPrimitiveType();%>
+ <%if (genBaseType.getGenPackage() == genPackage) {%>
+ <%if (isPrimitiveConversion) {%>
+ return new <%=genDataType.getObjectInstanceClassName()%>(create<%=genBaseType.getName()%>(literal));
+ <%} else {%>
+ return create<%=genBaseType.getName()%>(literal);
+ <%}%>
+ <%} else if (genBaseType.getGenPackage().isDataTypeConverters()) {%>
+ <%if (isPrimitiveConversion) {%>
+ return new <%=genDataType.getObjectInstanceClassName()%>(<%=genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.create<%=genBaseType.getName()%>(literal));
+ <%} else {%>
+ return <%=genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.create<%=genBaseType.getName()%>(literal);
+ <%}%>
+ <%} else {%>
+ return (<%=genDataType.getObjectInstanceClassName()%>)<%=genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.createFromString(<%=genBaseType.getQualifiedClassifierAccessor()%>, literal);
+ <%}%>
+ <%} else if (genDataType.getItemType() != null) { GenDataType genItemType = genDataType.getItemType(); %>
+ if (literal == null) return null;
+ <%=genModel.getImportedName("java.util.List")%> result = new <%=genModel.getImportedName("java.util.ArrayList")%>();
+ for (<%=genModel.getImportedName("java.util.StringTokenizer")%> stringTokenizer = new <%=genModel.getImportedName("java.util.StringTokenizer")%>(literal); stringTokenizer.hasMoreTokens(); )
+ {
+ String item = stringTokenizer.nextToken();
+ <%if (genItemType.getGenPackage() == genPackage) {%>
+ <%if (genPackage.isDataTypeConverters()) { genItemType = genItemType.getObjectType();%>
+ result.add(create<%=genItemType.getName()%>(item));
+ <%} else {%>
+ result.add(create<%=genItemType.getName()%>FromString(<%=genItemType.getQualifiedClassifierAccessor()%>, item));
+ <%}%>
+ <%} else {%>
+ <%if (genItemType.getGenPackage().isDataTypeConverters()) { genItemType = genItemType.getObjectType();%>
+ result.add(<%=genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.create<%=genItemType.getName()%>(item));
+ <%} else {%>
+ result.add(<%=genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.createFromString(<%=genItemType.getQualifiedClassifierAccessor()%>, item));
+ <%}%>
+ <%}%>
+ }
+ return result;
+ <%} else if (!genDataType.getMemberTypes().isEmpty()) {%>
+ if (literal == null) return <%=genDataType.getStaticValue(null)%>;
+ <%=genDataType.getImportedInstanceClassName()%> result = <%=genDataType.getStaticValue(null)%>;
+ RuntimeException exception = null;
+ <%for (Iterator j = genDataType.getMemberTypes().iterator(); j.hasNext(); ) { GenDataType genMemberType = (GenDataType)j.next();%>
+ try
+ {
+ <%if (genMemberType.getGenPackage() == genPackage) {%>
+ <%if (genPackage.isDataTypeConverters()) { if (!genDataType.isPrimitiveType()) genMemberType = genMemberType.getObjectType();%>
+ result = create<%=genMemberType.getName()%>(literal);
+ <%} else {%>
+ result = (<%=genDataType.getObjectInstanceClassName()%>)create<%=genMemberType.getName()%>FromString(<%=genMemberType.getQualifiedClassifierAccessor()%>, literal);
+ <%}%>
+ <%} else {%>
+ <%if (genPackage.isDataTypeConverters()) { if (!genDataType.isPrimitiveType()) genMemberType = genMemberType.getObjectType();%>
+ result = <%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.create<%=genMemberType.getName()%>(literal);
+ <%} else {%>
+ result = (<%=genDataType.getObjectInstanceClassName()%>)<%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.createFromString(<%=genMemberType.getQualifiedClassifierAccessor()%>, literal);
+ <%}%>
+ <%}%>
+ if (<%if (!genDataType.isPrimitiveType()) {%>result != null && <%}%><%=genModel.getImportedName("org.eclipse.emf.ecore.util.Diagnostician")%>.INSTANCE.validate(<%=eDataType%>, <%if (genDataType.isPrimitiveType()) {%>new <%=genDataType.getObjectInstanceClassName()%>(result)<%} else {%>result<%}%>, null, null))
+ {
+ return result;
+ }
+ }
+ catch (RuntimeException e)
+ {
+ exception = e;
+ }
+ <%}%>
+ if (<%if (!genDataType.isPrimitiveType()) {%>result != null || <%}%>exception == null) return result;
+
+ throw exception;
+ <%} else if (genDataType.isArrayType()) {%>
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new <%=genModel.getImportedName("java.lang.UnsupportedOperationException")%>();
+ <%} else if (genDataType.isPrimitiveType()) {%>
+ return ((<%=genDataType.getObjectInstanceClassName()%>)super.createFromString(<%=eDataType%>, literal)).<%=genDataType.getPrimitiveValueFunction()%>();
+ <%} else {%>
+ return (<%=genDataType.getObjectInstanceClassName()%>)super.createFromString(<%=eDataType%>, literal);
+ <%}%>
+ }
+
+<%}%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public <%=genDataType.getObjectInstanceClassName()%> create<%=genDataType.getName()%>FromString(<%=genModel.getImportedName("org.eclipse.emf.ecore.EDataType")%> eDataType, String initialValue)
+ {
+ <%if (genDataType instanceof GenEnum) {%>
+ <%if (genPackage.isDataTypeConverters()) {%>
+ return create<%=genDataType.getName()%>(initialValue);
+ <%} else {%>
+ <%=((GenEnum)genDataType).getImportedInstanceClassName()%> result = <%=((GenEnum)genDataType).getImportedInstanceClassName()%>.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%><%=genModel.getNonNLS(3)%>
+ return result;
+ <%}%>
+ <%} else if (genDataType.getBaseType() != null) { GenDataType genBaseType = genDataType.getBaseType(); %>
+ <%if (genBaseType.getGenPackage() == genPackage) {%>
+ return (<%=genDataType.getObjectInstanceClassName()%>)create<%=genBaseType.getName()%>FromString(<%=genBaseType.getQualifiedClassifierAccessor()%>, initialValue);
+ <%} else {%>
+ return (<%=genDataType.getObjectInstanceClassName()%>)<%=genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.createFromString(<%=genBaseType.getQualifiedClassifierAccessor()%>, initialValue);
+ <%}%>
+ <%} else if (genDataType.getItemType() != null) { GenDataType genItemType = genDataType.getItemType(); %>
+ <%if (genPackage.isDataTypeConverters()) {%>
+ return create<%=genDataType.getName()%>(initialValue);
+ <%} else {%>
+ if (initialValue == null) return null;
+ <%=genModel.getImportedName("java.util.List")%> result = new <%=genModel.getImportedName("java.util.ArrayList")%>();
+ for (<%=genModel.getImportedName("java.util.StringTokenizer")%> stringTokenizer = new <%=genModel.getImportedName("java.util.StringTokenizer")%>(initialValue); stringTokenizer.hasMoreTokens(); )
+ {
+ String item = stringTokenizer.nextToken();
+ <%if (genItemType.getGenPackage() == genPackage) {%>
+ result.add(create<%=genItemType.getName()%>FromString(<%=genItemType.getQualifiedClassifierAccessor()%>, item));
+ <%} else {%>
+ result.add(<%=genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.createFromString(<%=genItemType.getQualifiedClassifierAccessor()%>, item));
+ <%}%>
+ }
+ return result;
+ <%}%>
+ <%} else if (!genDataType.getMemberTypes().isEmpty()) {%>
+ <%if (genPackage.isDataTypeConverters()) {%>
+ <%if (genDataType.isPrimitiveType()) {%>
+ return new <%=genDataType.getObjectInstanceClassName()%>(create<%=genDataType.getName()%>(initialValue));
+ <%} else {%>
+ return create<%=genDataType.getName()%>(initialValue);
+ <%}%>
+ <%} else {%>
+ if (initialValue == null) return null;
+ <%=genDataType.getObjectInstanceClassName()%> result = null;
+ RuntimeException exception = null;
+ <%for (Iterator j = genDataType.getMemberTypes().iterator(); j.hasNext(); ) { GenDataType genMemberType = (GenDataType)j.next();%>
+ try
+ {
+ <%if (genMemberType.getGenPackage() == genPackage) {%>
+ result = (<%=genDataType.getObjectInstanceClassName()%>)create<%=genMemberType.getName()%>FromString(<%=genMemberType.getQualifiedClassifierAccessor()%>, initialValue);
+ <%} else {%>
+ result = (<%=genDataType.getObjectInstanceClassName()%>)<%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.createFromString(<%=genMemberType.getQualifiedClassifierAccessor()%>, initialValue);
+ <%}%>
+ if (result != null && <%=genModel.getImportedName("org.eclipse.emf.ecore.util.Diagnostician")%>.INSTANCE.validate(eDataType, result, null, null))
+ {
+ return result;
+ }
+ }
+ catch (RuntimeException e)
+ {
+ exception = e;
+ }
+ <%}%>
+ if (result != null || exception == null) return result;
+
+ throw exception;
+ <%}%>
+ <%} else if (genDataType.isArrayType()) {%>
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new <%=genModel.getImportedName("java.lang.UnsupportedOperationException")%>();
+ <%} else {%>
+ return (<%=genDataType.getObjectInstanceClassName()%>)super.createFromString(eDataType, initialValue);
+ <%}%>
+ }
+
+<%if (genPackage.isDataTypeConverters()) { String eDataType = genDataType.getQualifiedClassifierAccessor();%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convert<%=genDataType.getName()%>(<%=genDataType.getImportedInstanceClassName()%> instanceValue)
+ {
+ <%if (genDataType instanceof GenEnum) {%>
+ return instanceValue == null ? null : instanceValue.toString();
+ <%} else if (genDataType.getBaseType() != null) { GenDataType genBaseType = genDataType.getBaseType(); boolean isPrimitiveConversion = !genDataType.isPrimitiveType() && genBaseType.isPrimitiveType();%>
+ <%if (genBaseType.getGenPackage() == genPackage) {%>
+ <%if (isPrimitiveConversion) {%>
+ return instanceValue == null ? null : convert<%=genBaseType.getName()%>(instanceValue.<%=genBaseType.getPrimitiveValueFunction()%>());
+ <%} else {%>
+ return convert<%=genBaseType.getName()%>(instanceValue);
+ <%}%>
+ <%} else if (genBaseType.getGenPackage().isDataTypeConverters()) {%>
+ return <%=genBaseType.getGenPackage().getQualifiedFactoryInstanceAccessor()%>.convert<%=genBaseType.getName()%>(instanceValue);
+ <%} else {%>
+ return <%=genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convertToString(<%=genBaseType.getQualifiedClassifierAccessor()%>, instanceValue);
+ <%}%>
+ <%} else if (genDataType.getItemType() != null) { GenDataType genItemType = genDataType.getItemType(); %>
+ if (instanceValue == null) return null;
+ if (instanceValue.isEmpty()) return "";
+ <%=genModel.getImportedName("java.lang.StringBuffer")%> result = new <%=genModel.getImportedName("java.lang.StringBuffer")%>();
+ for (<%=genModel.getImportedName("java.util.Iterator")%> i = instanceValue.iterator(); i.hasNext(); )
+ {
+ <%if (genItemType.getGenPackage() == genPackage) {%>
+ <%if (genPackage.isDataTypeConverters()) { genItemType = genItemType.getObjectType();%>
+ result.append(convert<%=genItemType.getName()%>((<%=genItemType.getObjectInstanceClassName()%>)i.next()));
+ <%} else {%>
+ result.append(convert<%=genItemType.getName()%>ToString(<%=genItemType.getQualifiedClassifierAccessor()%>, i.next()));
+ <%}%>
+ <%} else {%>
+ <%if (genItemType.getGenPackage().isDataTypeConverters()) { genItemType = genItemType.getObjectType();%>
+ result.append(<%=genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convert<%=genItemType.getName()%>((<%=genItemType.getObjectInstanceClassName()%>)i.next()));
+ <%} else {%>
+ result.append(<%=genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convertToString(<%=genItemType.getQualifiedClassifierAccessor()%>, i.next()));
+ <%}%>
+ <%}%>
+ result.append(' ');
+ }
+ return result.substring(0, result.length() - 1);
+ <%} else if (!genDataType.getMemberTypes().isEmpty()) {%>
+ <%if (!genDataType.isPrimitiveType()) {%>
+ if (instanceValue == null) return null;
+ <%for (Iterator j = genDataType.getMemberTypes().iterator(); j.hasNext(); ) { GenDataType genMemberType = (GenDataType)j.next();%>
+ if (<%=genMemberType.getQualifiedClassifierAccessor()%>.isInstance(instanceValue))
+ {
+ try
+ {
+ <%if (genMemberType.getGenPackage() == genPackage) {%>
+ <%if (genPackage.isDataTypeConverters()) {%>
+ String value = convert<%=genMemberType.getName()%>(instanceValue);
+ <%} else {%>
+ String value = convert<%=genMemberType.getName()%>ToString(<%=genMemberType.getQualifiedClassifierAccessor()%>, instanceValue);
+ <%}%>
+ <%} else {%>
+ <%if (genMemberType.getGenPackage().isDataTypeConverters()) { genMemberType = genMemberType.getObjectType();%>
+ String value = <%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convert<%=genMemberType.getName()%>((<%=genMemberType.getObjectInstanceClassName()%>)instanceValue);
+ <%} else {%>
+ String value = <%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convertToString(<%=genMemberType.getQualifiedClassifierAccessor()%>, instanceValue);
+ <%}%>
+ <%}%>
+ if (value != null) return value;
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ <%}%>
+ <%} else {%>
+ <%for (Iterator j = genDataType.getMemberTypes().iterator(); j.hasNext(); ) { GenDataType genMemberType = (GenDataType)j.next();%>
+ try
+ {
+ <%if (genMemberType.getGenPackage() == genPackage) {%>
+ <%if (genPackage.isDataTypeConverters()) {%>
+ String value = convert<%=genMemberType.getName()%>(instanceValue);
+ <%} else {%>
+ String value = convert<%=genMemberType.getName()%>ToString(<%=genMemberType.getQualifiedClassifierAccessor()%>, new <%=genMemberType.getObjectInstanceClassName()%>(instanceValue));
+ <%}%>
+ <%} else {%>
+ <%if (genMemberType.getGenPackage().isDataTypeConverters()) {%>
+ String value = <%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convert<%=genMemberType.getName()%>(instanceValue);
+ <%} else {%>
+ String value = <%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convertToString(<%=genMemberType.getQualifiedClassifierAccessor()%>, new <%=genMemberType.getObjectInstanceClassName()%>(instanceValue));
+ <%}%>
+ <%}%>
+ if (value != null) return value;
+ }
+ catch (Exception e)
+ {
+ }
+ <%}%>
+ <%}%>
+ throw new IllegalArgumentException("Invalid value: '"+instanceValue+"' for datatype :"+<%=eDataType%>.getName());
+ <%} else if (genDataType.isArrayType()) {%>
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new <%=genModel.getImportedName("java.lang.UnsupportedOperationException")%>();
+ <%} else if (genDataType.isPrimitiveType()) {%>
+ return super.convertToString(<%=eDataType%>, new <%=genDataType.getObjectInstanceClassName()%>(instanceValue));
+ <%} else {%>
+ return super.convertToString(<%=eDataType%>, instanceValue);
+ <%}%>
+ }
+
+<%}%>
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convert<%=genDataType.getName()%>ToString(<%=genModel.getImportedName("org.eclipse.emf.ecore.EDataType")%> eDataType, Object instanceValue)
+ {
+ <%if (genDataType instanceof GenEnum) {%>
+ return instanceValue == null ? null : instanceValue.toString();
+ <%} else if (genDataType.getBaseType() != null) { GenDataType genBaseType = genDataType.getBaseType(); %>
+ <%if (genBaseType.getGenPackage() == genPackage) {%>
+ return convert<%=genBaseType.getName()%>ToString(<%=genBaseType.getQualifiedClassifierAccessor()%>, instanceValue);
+ <%} else {%>
+ return <%=genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convertToString(<%=genBaseType.getQualifiedClassifierAccessor()%>, instanceValue);
+ <%}%>
+ <%} else if (genDataType.getItemType() != null) { GenDataType genItemType = genDataType.getItemType(); %>
+ <%if (genPackage.isDataTypeConverters()) {%>
+ return convert<%=genDataType.getName()%>((<%=genModel.getImportedName("java.util.List")%>)instanceValue);
+ <%} else {%>
+ if (instanceValue == null) return null;
+ <%=genModel.getImportedName("java.util.List")%> list = (<%=genModel.getImportedName("java.util.List")%>)instanceValue;
+ if (list.isEmpty()) return "";
+ <%=genModel.getImportedName("java.lang.StringBuffer")%> result = new <%=genModel.getImportedName("java.lang.StringBuffer")%>();
+ for (<%=genModel.getImportedName("java.util.Iterator")%> i = list.iterator(); i.hasNext(); )
+ {
+ <%if (genItemType.getGenPackage() == genPackage) {%>
+ result.append(convert<%=genItemType.getName()%>ToString(<%=genItemType.getQualifiedClassifierAccessor()%>, i.next()));
+ <%} else {%>
+ result.append(<%=genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convertToString(<%=genItemType.getQualifiedClassifierAccessor()%>, i.next()));
+ <%}%>
+ result.append(' ');
+ }
+ return result.substring(0, result.length() - 1);
+ <%}%>
+ <%} else if (!genDataType.getMemberTypes().isEmpty()) {%>
+ <%if (genPackage.isDataTypeConverters()) {%>
+ <%if (genDataType.isPrimitiveType()) {%>
+ return instanceValue == null ? null : convert<%=genDataType.getName()%>(((<%=genDataType.getObjectInstanceClassName()%>)instanceValue).<%=genDataType.getPrimitiveValueFunction()%>());
+ <%} else {%>
+ return convert<%=genDataType.getName()%>(instanceValue);
+ <%}%>
+ <%} else {%>
+ if (instanceValue == null) return null;
+ <%for (Iterator j = genDataType.getMemberTypes().iterator(); j.hasNext(); ) { GenDataType genMemberType = (GenDataType)j.next();%>
+ if (<%=genMemberType.getQualifiedClassifierAccessor()%>.isInstance(instanceValue))
+ {
+ try
+ {
+ <%if (genMemberType.getGenPackage() == genPackage) {%>
+ String value = convert<%=genMemberType.getName()%>ToString(<%=genMemberType.getQualifiedClassifierAccessor()%>, instanceValue);
+ <%} else {%>
+ String value = <%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convertToString(<%=genMemberType.getQualifiedClassifierAccessor()%>, instanceValue);
+ <%}%>
+ if (value != null) return value;
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ <%}%>
+ throw new IllegalArgumentException("Invalid value: '"+instanceValue+"' for datatype :"+eDataType.getName());
+ <%}%>
+ <%} else if (genDataType.isArrayType()) {%>
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new <%=genModel.getImportedName("java.lang.UnsupportedOperationException")%>();
+ <%} else {%>
+ return super.convertToString(eDataType, instanceValue);
+ <%}%>
+ }
+
+ <%}%>
+<%}%>
+<%} else {%>
+ <%for (Iterator i=genPackage.getGenClasses().iterator(); i.hasNext();) { GenClass genClass = (GenClass)i.next();%>
+ <%if (genClass.hasFactoryInterfaceCreateMethod()) {%>
+ /**
+ * Returns a new object of class '<em><%=genClass.getFormattedName()%></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em><%=genClass.getFormattedName()%></em>'.
+ * @generated
+ */
+ <%=genClass.getImportedInterfaceName()%> create<%=genClass.getName()%>();
+
+ <%}%>
+ <%}%>
+ <%if (genPackage.isDataTypeConverters()) {%>
+ <%for (Iterator i=genPackage.getAllGenDataTypes().iterator(); i.hasNext();) { GenDataType genDataType = (GenDataType)i.next();%>
+ <%if (genDataType.isSerializable()) {%>
+ /**
+ * Returns an instance of data type '<em><%=genDataType.getFormattedName()%></em>' corresponding the given literal.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal a literal of the data type.
+ * @return a new instance value of the data type.
+ * @generated
+ */
+ <%=genDataType.getImportedInstanceClassName()%> create<%=genDataType.getName()%>(String literal);
+
+ /**
+ * Returns a literal representation of an instance of data type '<em><%=genDataType.getFormattedName()%></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param instanceValue an instance value of the data type.
+ * @return a literal representation of the instance value.
+ * @generated
+ */
+ String convert<%=genDataType.getName()%>(<%=genDataType.getImportedInstanceClassName()%> instanceValue);
+
+ <%}%>
+ <%}%>
+ <%}%>
+<%}%>
+} //<%=isInterface ? genPackage.getFactoryInterfaceName() : genPackage.getFactoryClassName()%>
+<%genModel.emitSortedImports();%>