Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/infra/org.eclipse.papyrus.infra.extendedtypes')
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/.classpath16
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/.settings/org.eclipse.core.resources.prefs17
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/META-INF/MANIFEST.MF74
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/build.properties17
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectSemantic.ecore18
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectSemantic.ecorediag150
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectSemantic.genmodel25
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectViewTypeConfiguration.ecore13
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectViewTypeConfiguration.ecorediag113
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.ecore113
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.ecorediag637
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.genmodel87
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantContainerConfiguration.ecore14
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantContainerConfiguration.ecorediag108
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantContainerConfiguration.genmodel23
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantSemanticTypeConfiguration.ecore18
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantSemanticTypeConfiguration.ecorediag178
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantSemanticTypeConfiguration.genmodel25
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/QueryBasedMatcherConfiguration.ecore9
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/QueryBasedMatcherConfiguration.ecorediag80
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/plugin.xml206
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/elementMatcherConfiguration.exsd129
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/extendedElementTypeSet.exsd (renamed from plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/extendedTypesSetConfiguration.exsd)260
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/extendedTypeConfiguration.exsd141
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/invariantRule.exsd142
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/semanticTypeFactory.exsd152
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ActionConfiguration.java143
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ConfigurationElement.java147
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ElementTypeAdviceConfiguration.java24
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ElementTypeConfiguration.java137
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedElementTypeConfiguration.java261
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedElementTypeSet.java149
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedtypesFactory.java127
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedtypesPackage.java2061
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/IconEntry.java170
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/MatcherConfiguration.java26
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/PostActionConfiguration.java21
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/PreActionConfiguration.java21
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/SemanticActionConfiguration.java24
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/SemanticTypeAdviceConfiguration.java30
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/SemanticTypeConfiguration.java28
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ViewActionConfiguration.java24
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ViewTypeAdviceConfiguration.java32
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ViewTypeConfiguration.java63
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticFactory.java61
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticPackage.java313
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticTypeAdviceConfiguration.java82
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticTypeConfiguration.java69
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticFactoryImpl.java120
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticPackageImpl.java283
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticTypeAdviceConfigurationImpl.java220
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticTypeConfigurationImpl.java217
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticAdapterFactory.java269
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticResourceFactoryImpl.java68
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticResourceImpl.java39
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticSwitch.java256
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticXMLProcessor.java63
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ActionConfigurationImpl.java386
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ConfigurationElementImpl.java363
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ElementTypeAdviceConfigurationImpl.java46
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ElementTypeConfigurationImpl.java357
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedElementTypeConfigurationImpl.java614
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedElementTypeSetImpl.java454
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedtypesFactoryImpl.java241
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedtypesPackageImpl.java1026
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/IconEntryImpl.java443
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/MatcherConfigurationImpl.java49
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/PostActionConfigurationImpl.java42
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/PreActionConfigurationImpl.java42
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/SemanticActionConfigurationImpl.java47
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/SemanticTypeAdviceConfigurationImpl.java47
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/SemanticTypeConfigurationImpl.java47
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ViewActionConfigurationImpl.java47
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ViewTypeAdviceConfigurationImpl.java47
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ViewTypeConfigurationImpl.java173
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/HierarchyPermission.java114
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfiguration.java52
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationFactory.java61
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationPackage.java305
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/HierarchyPermissionImpl.java281
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/InvariantContainerConfigurationFactoryImpl.java116
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/InvariantContainerConfigurationImpl.java162
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/InvariantContainerConfigurationPackageImpl.java253
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationAdapterFactory.java168
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationResourceFactoryImpl.java62
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationResourceImpl.java38
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationSwitch.java159
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationXMLProcessor.java60
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRule.java27
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/ComposedRuleConfiguration.java50
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantRuleConfiguration.java28
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeConfiguration.java60
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeConfigurationFactory.java70
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeConfigurationPackage.java464
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRule.java27
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/AndRuleImpl.java49
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/ComposedRuleConfigurationImpl.java142
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantRuleConfigurationImpl.java51
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantSemanticTypeConfigurationFactoryImpl.java127
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantSemanticTypeConfigurationImpl.java187
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantSemanticTypeConfigurationPackageImpl.java294
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/OrRuleImpl.java49
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationAdapterFactory.java260
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationResourceFactoryImpl.java62
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationResourceImpl.java38
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationSwitch.java261
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationXMLProcessor.java60
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesAdapterFactory.java604
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesResourceFactoryImpl.java114
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesResourceImpl.java71
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesSwitch.java669
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesXMLProcessor.java112
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/Activator.java117
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ElementTypeSetUtils.java29
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedEditHelperAdvice.java_bak (renamed from plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedEditHelperAdvice.java)214
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedElementTypeSetRegistry.java459
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedSemanticTypeDescriptor.java134
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedTypeRegistryService.java52
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedTypesRegistry.java276
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ICreationElementValidator.java28
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IElementMatcherConfigurationModelCreation.java22
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IElementMatcherExtensionPoint.java34
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IElementMatcherFactory.java30
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IExtendedElementTypeFactory.java38
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IExtendedElementTypeSetExtensionPoint.java (renamed from plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IExtendedTypeExtensionPoint.java)80
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IExtendedTypeConfigurationExtensionPoint.java39
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/advices/ExtendedTypesOwnerAdvice.java372
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationContainerDescriptor.java117
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationModelCreation.java29
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerEditHelperAdvice.java141
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerMatcher.java148
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AbstractExtendedElementTypeFactory.java111
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRuleCreationElementValidator.java52
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRuleEditHelperAdvice.java56
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRuleElementMatcher.java65
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurableContainerDescriptor.java27
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurableEditHelperAdvice.java27
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurableElementMatcher.java28
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurationModelCreation.java22
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IInvariantCreationElementValidator.java24
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IInvariantRuleExtensionPoint.java38
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantElementTypeFactory.java64
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeContainerDescriptor.java47
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeEditHelperAdvice.java30
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeMatcher.java42
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRuleCreationElementValidator.java52
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRuleEditHelperAdvice.java61
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRuleElementMatcher.java65
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/RuleConfigurationFactoryRegistry.java456
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/providers/ProviderNotFoundException.java72
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/semantic/ISemanticTypeFactory.java23
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/ExtendedHintedElementType.java71
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/ExtendedHintedTypeFactory.java_bak (renamed from plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/ExtendedHintedTypeFactory.java)248
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/IExtendedHintedElementType.java56
-rw-r--r--plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/util/ElementTypeUtils.java_bak (renamed from plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/util/ElementTypeUtils.java)376
155 files changed, 17363 insertions, 5600 deletions
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/.classpath b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/.classpath
index afb9bb46ef3..756f4289006 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/.classpath
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/.classpath
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src-gen"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/.settings/org.eclipse.core.resources.prefs b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/.settings/org.eclipse.core.resources.prefs
index b9eceea0c66..a5889879d4c 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/.settings/org.eclipse.core.resources.prefs
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/.settings/org.eclipse.core.resources.prefs
@@ -1,4 +1,13 @@
-#Thu Mar 24 15:06:10 CET 2011
-eclipse.preferences.version=1
-encoding//model/ExtendedTypes.ecore=UTF-8
-encoding//model/ExtendedTypes.ecorediag=UTF-8
+eclipse.preferences.version=1
+encoding//model/AspectSemantic.ecore=UTF-8
+encoding//model/AspectSemantic.ecorediag=UTF-8
+encoding//model/AspectViewTypeConfiguration.ecore=UTF-8
+encoding//model/AspectViewTypeConfiguration.ecorediag=UTF-8
+encoding//model/ExtendedTypes.ecore=UTF-8
+encoding//model/ExtendedTypes.ecorediag=UTF-8
+encoding//model/InvariantContainerConfiguration.ecore=UTF-8
+encoding//model/InvariantContainerConfiguration.ecorediag=UTF-8
+encoding//model/InvariantSemanticTypeConfiguration.ecore=UTF-8
+encoding//model/InvariantSemanticTypeConfiguration.ecorediag=UTF-8
+encoding//model/QueryBasedMatcherConfiguration.ecore=UTF-8
+encoding//model/QueryBasedMatcherConfiguration.ecorediag=UTF-8
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/META-INF/MANIFEST.MF b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/META-INF/MANIFEST.MF
index 1dfc2a85875..abf9ad05069 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/META-INF/MANIFEST.MF
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/META-INF/MANIFEST.MF
@@ -1,31 +1,43 @@
-Manifest-Version: 1.0
-Export-Package: org.eclipse.papyrus.infra.extendedtypes,
- org.eclipse.papyrus.infra.extendedtypes.advices,
- org.eclipse.papyrus.infra.extendedtypes.impl,
- org.eclipse.papyrus.infra.extendedtypes.preferences,
- org.eclipse.papyrus.infra.extendedtypes.providers,
- org.eclipse.papyrus.infra.extendedtypes.types,
- org.eclipse.papyrus.infra.extendedtypes.util
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Name: %pluginName
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0",
- org.eclipse.emf.ecore;bundle-version="2.7.0";visibility:=reexport,
- org.eclipse.emf.ecore.xmi;bundle-version="2.6.0";visibility:=reexport,
- org.eclipse.papyrus.infra.queries.core.configuration;bundle-version="0.10.1",
- org.eclipse.emf.facet.infra.query;bundle-version="0.1.0",
- org.eclipse.uml2.uml;bundle-version="3.2.0",
- org.eclipse.ui;bundle-version="3.7.0",
- org.eclipse.gmf.runtime.emf.type.core;bundle-version="1.4.0",
- org.eclipse.papyrus.infra.core.log;bundle-version="0.10.1",
- org.eclipse.papyrus.infra.queries.core;bundle-version="0.10.1",
- org.eclipse.gmf.runtime.common.ui.services;bundle-version="1.3.0"
-Bundle-Vendor: %providerName
-Bundle-Version: 0.10.1.qualifier
-Bundle-ManifestVersion: 2
-Bundle-Activator: org.eclipse.papyrus.infra.extendedtypes.Activator
-Bundle-SymbolicName: org.eclipse.papyrus.infra.extendedtypes;singleton
- :=true
-
+Manifest-Version: 1.0
+Export-Package: org.eclipse.papyrus.infra.extendedtypes,
+ org.eclipse.papyrus.infra.extendedtypes.advices,
+ org.eclipse.papyrus.infra.extendedtypes.aspectsemantic,
+ org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl,
+ org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.util,
+ org.eclipse.papyrus.infra.extendedtypes.impl,
+ org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration,
+ org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl,
+ org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.util,
+ org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration,
+ org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl,
+ org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.util,
+ org.eclipse.papyrus.infra.extendedtypes.preferences,
+ org.eclipse.papyrus.infra.extendedtypes.providers,
+ org.eclipse.papyrus.infra.extendedtypes.semantic,
+ org.eclipse.papyrus.infra.extendedtypes.types,
+ org.eclipse.papyrus.infra.extendedtypes.util
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0",
+ org.eclipse.emf.ecore;visibility:=reexport;bundle-version="2.7.0",
+ org.eclipse.emf.ecore.xmi;visibility:=reexport;bundle-version="2.6.0",
+ org.eclipse.papyrus.infra.queries.core.configuration;bundle-version="0.10.1",
+ org.eclipse.emf.facet.infra.query;bundle-version="0.1.0",
+ org.eclipse.uml2.types;visibility:=reexport,
+ org.eclipse.uml2.uml;bundle-version="3.2.0",
+ org.eclipse.ui;bundle-version="3.7.0",
+ org.eclipse.gmf.runtime.emf.type.core;bundle-version="1.4.0",
+ org.eclipse.papyrus.infra.core.log;bundle-version="0.10.0",
+ org.eclipse.papyrus.infra.queries.core;bundle-version="0.10.0",
+ org.eclipse.gmf.runtime.common.ui.services;bundle-version="1.3.0",
+ org.eclipse.papyrus.infra.core,
+ org.eclipse.papyrus.infra.services.edit;bundle-version="0.10.1"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 0.10.1.qualifier
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Bundle-Activator: org.eclipse.papyrus.infra.extendedtypes.Activator
+Bundle-SymbolicName: org.eclipse.papyrus.infra.extendedtypes;singleton:=true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/build.properties b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/build.properties
index 0513499e537..70b011394ef 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/build.properties
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/build.properties
@@ -1,8 +1,9 @@
-#
-#Mon Sep 12 09:29:52 CEST 2011
-output..=bin/
-bin.includes=.,model/,META-INF/,plugin.xml,plugin.properties,schema/,about.html
-jars.compile.order=.
-src.includes = about.html
-source..=src-gen/,src/
-bin..=bin/
+#
+#Mon Sep 12 09:29:52 CEST 2011
+output..=bin/
+bin.includes=.,model/,META-INF/,plugin.xml,plugin.properties,schema/,about.html
+jars.compile.order=.
+src.includes = about.html
+source.. = src-gen/,\
+ src/
+bin..=bin/
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectSemantic.ecore b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectSemantic.ecore
new file mode 100644
index 00000000000..3c053948f39
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectSemantic.ecore
@@ -0,0 +1,18 @@
+<?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="aspectsemantic" nsURI="http://www.eclipse.org/papyrus/infra/extendedtypes/semantic/aspect/1.0"
+ nsPrefix="aspectsemantic">
+ <eClassifiers xsi:type="ecore:EClass" name="AspectSemanticTypeConfiguration" eSuperTypes="ExtendedTypes.ecore#//SemanticTypeConfiguration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="adviceConfiguration" lowerBound="1"
+ eType="#//AspectSemanticTypeAdviceConfiguration" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AspectSemanticTypeAdviceConfiguration"
+ eSuperTypes="ExtendedTypes.ecore#//SemanticTypeAdviceConfiguration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preActionConfiguration"
+ upperBound="-1" eType="ecore:EClass ExtendedTypes.ecore#//SemanticActionConfiguration"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postActionConfiguration"
+ upperBound="-1" eType="ecore:EClass ExtendedTypes.ecore#//SemanticActionConfiguration"
+ containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectSemantic.ecorediag b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectSemantic.ecorediag
new file mode 100644
index 00000000000..2786cd431c6
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectSemantic.ecorediag
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram 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" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_SpODMFgxEeOZc_L6ctfnzA" type="EcoreTools" name="AspectSemanticTypeConfiguration" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_eLQjAFgxEeOZc_L6ctfnzA" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eQpZUFgxEeOZc_L6ctfnzA" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eQpZUVgxEeOZc_L6ctfnzA" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_eLd-YFgxEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_eLd-YVgxEeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_eLelcFgxEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eLelcVgxEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eLelclgxEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eLelc1gxEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_eLeldFgxEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eLeldVgxEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eLeldlgxEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_eLQjAVgxEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12560536" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//SemanticTypeConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eLQjAlgxEeOZc_L6ctfnzA" x="60" y="60" width="283" height="123"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ipMt8FgxEeOZc_L6ctfnzA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_ipUCsFgxEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_ipUCsVgxEeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ipUCslgxEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ipUCs1gxEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ipUCtFgxEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ipUpwFgxEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ipUpwVgxEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ipUpwlgxEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ipUpw1gxEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ipMt8VgxEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="AspectSemantic.ecore#//AspectSemanticTypeConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ipMt8lgxEeOZc_L6ctfnzA" x="60" y="300" width="281" height="121"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RZ8-QFgyEeOZc_L6ctfnzA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_RZ-MYFgyEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_RZ-MYVgyEeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_RZ-MYlgyEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RZ-MY1gyEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RZ-MZFgyEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RZ-zcFgyEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_RZ-zcVgyEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RZ-zclgyEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RZ-zc1gyEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_RZ8-QVgyEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="AspectSemantic.ecore#//AspectSemanticTypeAdviceConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RZ8-QlgyEeOZc_L6ctfnzA" x="560" y="300" width="283" height="123"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZdVl4FgyEeOZc_L6ctfnzA" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZeNIkFgyEeOZc_L6ctfnzA" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZeNIkVgyEeOZc_L6ctfnzA" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_ZdXbEFgyEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_ZdXbEVgyEeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ZdXbElgyEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZdXbE1gyEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZdXbFFgyEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZdYCIFgyEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ZdYCIVgyEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZdYCIlgyEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZdYCI1gyEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ZdVl4VgyEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12560536" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//SemanticTypeAdviceConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZdVl4lgyEeOZc_L6ctfnzA" x="560" y="60" width="283" height="123"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jGqQkFgyEeOZc_L6ctfnzA" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jHjBYFgyEeOZc_L6ctfnzA" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jHjBYVgyEeOZc_L6ctfnzA" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_jG0ooFgyEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_jG0ooVgyEeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_jG0oolgyEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jG0oo1gyEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jG0opFgyEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jG1PsFgyEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_jG1PsVgyEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jG1PslgyEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jG1Ps1gyEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_jGqQkVgyEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12560536" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//SemanticActionConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jGqQklgyEeOZc_L6ctfnzA" x="1140" y="300" width="283" height="123"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_SpODMVgxEeOZc_L6ctfnzA"/>
+ <element xmi:type="ecore:EPackage" href="AspectSemantic.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_lF0hYFgxEeOZc_L6ctfnzA" type="3003" source="_ipMt8FgxEeOZc_L6ctfnzA" target="_eLQjAFgxEeOZc_L6ctfnzA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_lF0hYVgxEeOZc_L6ctfnzA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_lF0hYlgxEeOZc_L6ctfnzA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lF0hY1gxEeOZc_L6ctfnzA" points="[5, -7, -1, 180]$[5, -126, -1, 61]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lF29oFgxEeOZc_L6ctfnzA" id="(0.4804270462633452,0.06611570247933884)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_asHtMFgyEeOZc_L6ctfnzA" type="3003" source="_RZ8-QFgyEeOZc_L6ctfnzA" target="_ZdVl4FgyEeOZc_L6ctfnzA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_asHtMVgyEeOZc_L6ctfnzA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_asHtMlgyEeOZc_L6ctfnzA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_asHtM1gyEeOZc_L6ctfnzA" points="[1, -13, 1, 180]$[21, -132, 21, 61]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_asKwgFgyEeOZc_L6ctfnzA" id="(0.5016501650165016,0.11382113821138211)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_d5dL4FgyEeOZc_L6ctfnzA" type="3002" source="_ipMt8FgxEeOZc_L6ctfnzA" target="_RZ8-QFgyEeOZc_L6ctfnzA">
+ <children xmi:type="notation:Node" xmi:id="_d5dy8FgyEeOZc_L6ctfnzA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_d5dy8VgyEeOZc_L6ctfnzA" x="-25" y="-11"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_d5dy8lgyEeOZc_L6ctfnzA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_d5dy81gyEeOZc_L6ctfnzA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_d5dL4VgyEeOZc_L6ctfnzA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_d5dL4lgyEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="AspectSemantic.ecore#//AspectSemanticTypeConfiguration/adviceConfiguration"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_d5dL41gyEeOZc_L6ctfnzA" points="[28, 3, -282, 1]$[311, -57, 1, -59]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_d5iEYFgyEeOZc_L6ctfnzA" id="(0.900355871886121,0.4793388429752066)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_d5iEYVgyEeOZc_L6ctfnzA" id="(0.21908127208480566,0.4878048780487805)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_nKaZ4FgyEeOZc_L6ctfnzA" type="3002" source="_RZ8-QFgyEeOZc_L6ctfnzA" target="_jGqQkFgyEeOZc_L6ctfnzA">
+ <children xmi:type="notation:Node" xmi:id="_nKbA8FgyEeOZc_L6ctfnzA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nKbA8VgyEeOZc_L6ctfnzA" x="-27" y="-11"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_nKboAFgyEeOZc_L6ctfnzA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nKboAVgyEeOZc_L6ctfnzA" x="35" y="9"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_nKaZ4VgyEeOZc_L6ctfnzA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_nKaZ4lgyEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="AspectSemantic.ecore#//AspectSemanticTypeAdviceConfiguration/preActionConfiguration"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nKaZ41gyEeOZc_L6ctfnzA" points="[22, 2, -355, 1]$[378, -18, 1, -19]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nKhHkFgyEeOZc_L6ctfnzA" id="(0.9222614840989399,0.15447154471544716)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nKhHkVgyEeOZc_L6ctfnzA" id="(0.20141342756183744,0.16260162601626016)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_qATB4FgyEeOZc_L6ctfnzA" type="3002" source="_RZ8-QFgyEeOZc_L6ctfnzA" target="_jGqQkFgyEeOZc_L6ctfnzA">
+ <children xmi:type="notation:Node" xmi:id="_qAUQAFgyEeOZc_L6ctfnzA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qAUQAVgyEeOZc_L6ctfnzA" x="-24" y="-12"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qAU3EFgyEeOZc_L6ctfnzA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qAU3EVgyEeOZc_L6ctfnzA" x="34" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_qATB4VgyEeOZc_L6ctfnzA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_qATB4lgyEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="AspectSemantic.ecore#//AspectSemanticTypeAdviceConfiguration/postActionConfiguration"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qATB41gyEeOZc_L6ctfnzA" points="[38, 20, -309, 21]$[337, 20, -10, 21]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qAcL0FgyEeOZc_L6ctfnzA" id="(0.8657243816254417,0.6666666666666666)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qAcL0VgyEeOZc_L6ctfnzA" id="(0.038869257950530034,0.6585365853658537)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectSemantic.genmodel b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectSemantic.genmodel
new file mode 100644
index 00000000000..208e82443e4
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectSemantic.genmodel
@@ -0,0 +1,25 @@
+<?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" copyrightText="Copyright (c) 2013 CEA LIST.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA; CEA LIST - Initial API and implementation"
+ modelDirectory="/org.eclipse.papyrus.infra.extendedtypes/src-gen" creationSubmenus="true"
+ editDirectory="/org.eclipse.papyrus.infra.extendedtypes.edit/src-gen" editorDirectory="/org.eclipse.papyrus.infra.extendedtypes.editor/src-gen"
+ modelPluginID="org.eclipse.papyrus.infra.extendedtypes" modelName="AspectSemantic"
+ modelPluginClass="" editPluginClass="org.eclipse.papyrus.infra.extendedtypes.provider.ExtendedTypesEditPlugin"
+ editorPluginClass="org.eclipse.papyrus.infra.extendedtypes.presentation.ExtendedTypesEditorPlugin"
+ rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true"
+ commentFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
+ copyrightFields="false" language="" usedGenPackages="../../org.eclipse.papyrus.infra.queries.core.configuration/model/Configuration.genmodel#//configuration ../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ExtendedTypes.genmodel#//extendedtypes platform:/plugin/org.eclipse.emf.facet.infra.query/model/query.genmodel#//query ../../org.eclipse.uml2.types/model/Types.genmodel#//types platform:/plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+ operationReflection="true" importOrganizing="true">
+ <foreignModel>AspectSemantic.ecore</foreignModel>
+ <genPackages prefix="AspectSemantic" basePackage="org.eclipse.papyrus.infra.extendedtypes"
+ resource="XML" disposableProviderFactory="true" literalsInterface="false" contentTypeIdentifier=""
+ ecorePackage="AspectSemantic.ecore#/">
+ <genClasses ecoreClass="AspectSemantic.ecore#//AspectSemanticTypeConfiguration">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference AspectSemantic.ecore#//AspectSemanticTypeConfiguration/adviceConfiguration"/>
+ </genClasses>
+ <genClasses ecoreClass="AspectSemantic.ecore#//AspectSemanticTypeAdviceConfiguration">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference AspectSemantic.ecore#//AspectSemanticTypeAdviceConfiguration/preActionConfiguration"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference AspectSemantic.ecore#//AspectSemanticTypeAdviceConfiguration/postActionConfiguration"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectViewTypeConfiguration.ecore b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectViewTypeConfiguration.ecore
new file mode 100644
index 00000000000..1328852efc7
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectViewTypeConfiguration.ecore
@@ -0,0 +1,13 @@
+<?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="aspectviewtypeconfiguration" nsURI="http://www.eclipse.org/papyrus/infra/extendedtypes/viewtype/aspect/1.0"
+ nsPrefix="aspectviewtypeconfiguration">
+ <eClassifiers xsi:type="ecore:EClass" name="AspectViewTypeConfiguration" eSuperTypes="ExtendedTypes.ecore#//ViewTypeConfiguration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preActionConfiguration"
+ upperBound="-1" eType="ecore:EClass ExtendedTypes.ecore#//ViewActionConfiguration"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postActionConfiguration"
+ upperBound="-1" eType="ecore:EClass ExtendedTypes.ecore#//ViewActionConfiguration"
+ containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectViewTypeConfiguration.ecorediag b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectViewTypeConfiguration.ecorediag
new file mode 100644
index 00000000000..55eed88155f
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/AspectViewTypeConfiguration.ecorediag
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram 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" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_DHpg0FgzEeOZc_L6ctfnzA" type="EcoreTools" name="AspectViewTypeConfiguration" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_KhVEIFgzEeOZc_L6ctfnzA" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KnWzoFgzEeOZc_L6ctfnzA" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KnWzoVgzEeOZc_L6ctfnzA" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_KhhRYFgzEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_KhhRYVgzEeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_KhhRYlgzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KhhRY1gzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KhhRZFgzEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Khh4cFgzEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Khh4cVgzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Khh4clgzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Khh4c1gzEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_KhVEIVgzEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12560536" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ViewTypeConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KhVEIlgzEeOZc_L6ctfnzA" x="80" y="60" width="283" height="123"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KsRI0FgzEeOZc_L6ctfnzA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_KsSW8FgzEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_KsSW8VgzEeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_KsSW8lgzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KsSW81gzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KsSW9FgzEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KsS-AFgzEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_KsS-AVgzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KsS-AlgzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KsS-A1gzEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_KsRI0VgzEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="AspectViewTypeConfiguration.ecore#//AspectViewTypeConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KsRI0lgzEeOZc_L6ctfnzA" x="80" y="300" width="283" height="123"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_WQ1YMFgzEeOZc_L6ctfnzA" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WR2E0FgzEeOZc_L6ctfnzA" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WR2E0VgzEeOZc_L6ctfnzA" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_WQ9UAFgzEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_WQ97EFgzEeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_WQ97EVgzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WQ97ElgzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WQ97E1gzEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_WQ97FFgzEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_WQ97FVgzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WQ97FlgzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WQ97F1gzEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_WQ1YMVgzEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12560536" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ViewTypeAdviceConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WQ1YMlgzEeOZc_L6ctfnzA" x="540" y="60" width="283" height="123"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZOgqQFgzEeOZc_L6ctfnzA" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZPSGUFgzEeOZc_L6ctfnzA" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZPSGUVgzEeOZc_L6ctfnzA" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_ZOhRUFgzEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_ZOh4YFgzEeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ZOh4YVgzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZOh4YlgzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZOh4Y1gzEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ZOh4ZFgzEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ZOh4ZVgzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZOh4ZlgzEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZOh4Z1gzEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ZOgqQVgzEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12560536" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ViewActionConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZOgqQlgzEeOZc_L6ctfnzA" x="1020" y="300" width="283" height="123"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_DHpg0VgzEeOZc_L6ctfnzA"/>
+ <element xmi:type="ecore:EPackage" href="AspectViewTypeConfiguration.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_SsHUQFgzEeOZc_L6ctfnzA" type="3003" source="_KsRI0FgzEeOZc_L6ctfnzA" target="_KhVEIFgzEeOZc_L6ctfnzA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_SsHUQVgzEeOZc_L6ctfnzA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SsHUQlgzEeOZc_L6ctfnzA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SsHUQ1gzEeOZc_L6ctfnzA" points="[7, -10, 0, 180]$[7, -129, 0, 61]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SsOpAFgzEeOZc_L6ctfnzA" id="(0.4752851711026616,0.08943089430894309)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_ooZlYFgzEeOZc_L6ctfnzA" type="3002" source="_KsRI0FgzEeOZc_L6ctfnzA" target="_ZOgqQFgzEeOZc_L6ctfnzA">
+ <children xmi:type="notation:Node" xmi:id="_ooaMcFgzEeOZc_L6ctfnzA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ooaMcVgzEeOZc_L6ctfnzA" x="32" y="-11"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ooaMclgzEeOZc_L6ctfnzA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ooaMc1gzEeOZc_L6ctfnzA" x="68" y="9"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_ooZlYVgzEeOZc_L6ctfnzA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ooZlYlgzEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="AspectViewTypeConfiguration.ecore#//AspectViewTypeConfiguration/preActionConfiguration"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ooZlY1gzEeOZc_L6ctfnzA" points="[33, 3, -161, 1]$[195, -17, 1, -19]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oofE8FgzEeOZc_L6ctfnzA" id="(0.9045936395759717,0.22764227642276422)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oofE8VgzEeOZc_L6ctfnzA" id="(0.01060070671378092,0.16260162601626016)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_r0_dMFgzEeOZc_L6ctfnzA" type="3002" source="_KsRI0FgzEeOZc_L6ctfnzA" target="_ZOgqQFgzEeOZc_L6ctfnzA">
+ <children xmi:type="notation:Node" xmi:id="_r1DuoFgzEeOZc_L6ctfnzA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r1DuoVgzEeOZc_L6ctfnzA" x="30" y="-12"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_r1DuolgzEeOZc_L6ctfnzA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r1Duo1gzEeOZc_L6ctfnzA" x="68" y="12"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_r0_dMVgzEeOZc_L6ctfnzA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_r0_dMlgzEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="AspectViewTypeConfiguration.ecore#//AspectViewTypeConfiguration/postActionConfiguration"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_r0_dM1gzEeOZc_L6ctfnzA" points="[27, 2, -673, 7]$[686, 2, -14, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r1J1QFgzEeOZc_L6ctfnzA" id="(0.9045936395759717,0.8130081300813008)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r1J1QVgzEeOZc_L6ctfnzA" id="(0.053003533568904596,0.7723577235772358)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.ecore b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.ecore
index 84985e67146..aa3ccbb31e1 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.ecore
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.ecore
@@ -1,42 +1,71 @@
-<?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="extendedtypes" nsURI="http://www.eclipse.org/papyrus/diagram/types/extendedtypes/0.7"
- nsPrefix="extendedtypes">
- <eClassifiers xsi:type="ecore:EClass" name="ExtendedElementTypeSet">
- <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" lowerBound="1"
- upperBound="-1" eType="#//ExtendedElementTypeConfiguration" containment="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ExtendedElementTypeConfiguration">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="iconEntry" eType="#//IconEntry"
- containment="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="hint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
- defaultValueLiteral="ExtendedElements"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="kindName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
- defaultValueLiteral="org.eclipse.gmf.runtime.emf.type.core.IHintedType"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="specializedTypesID" lowerBound="1"
- upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="preValidation" upperBound="-1"
- eType="ecore:EClass platform:/plugin/org.eclipse.papyrus.infra.queries.core.configuration/model/Configuration.ecore#//QueryConfiguration"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="preAction" upperBound="-1"
- eType="#//PreActionConfiguration" containment="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="postAction" upperBound="-1"
- eType="#//PostActionConfiguration" containment="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="specializedDiagramTypeID"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="IconEntry">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="bundleId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ActionConfiguration" abstract="true">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="PreActionConfiguration" abstract="true"
- eSuperTypes="#//ActionConfiguration"/>
- <eClassifiers xsi:type="ecore:EClass" name="PostActionConfiguration" abstract="true"
- eSuperTypes="#//ActionConfiguration"/>
-</ecore:EPackage>
+<?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="extendedtypes" nsURI="http://www.eclipse.org/papyrus/infra/extendedtypes/1.0"
+ nsPrefix="extendedtypes">
+ <eClassifiers xsi:type="ecore:EClass" name="ExtendedElementTypeSet" eSuperTypes="#//ConfigurationElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" lowerBound="1"
+ upperBound="-1" eType="#//ElementTypeConfiguration" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="extensible" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementTypeConfiguration" abstract="true"
+ eSuperTypes="#//ConfigurationElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="ExtendedElements"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kindName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="org.eclipse.gmf.runtime.emf.type.core.IHintedType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="specializedTypesID" lowerBound="1"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="matcherConfiguration" eType="#//MatcherConfiguration"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IconEntry">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bundleId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConfigurationElement" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="identifier" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="iconEntry" eType="#//IconEntry"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ViewTypeAdviceConfiguration" abstract="true"
+ eSuperTypes="#//ElementTypeAdviceConfiguration">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Configuration for edit helper advices dedicated to the creation of new elements only.&#xD;&#xA;&#xD;&#xA;This kind of helpers should be used in the palette extensions, modeling assistants, model explorer, property views.&#xD;&#xA;Once the element has been created, it is managed by the edit helper and the advices of the specialized ElementType.&#xD;&#xA; "/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SemanticTypeAdviceConfiguration" abstract="true"
+ eSuperTypes="#//ElementTypeAdviceConfiguration">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Configuration dedicated to edit helper advices that will manage the new kind of element for its entire lifecycle (Creation, Update, Deletion)&#xD;&#xA;&#xD;&#xA;This should be used to define new model elements for a domain specific language "/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MatcherConfiguration" abstract="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ActionConfiguration" abstract="true"
+ eSuperTypes="#//ConfigurationElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preValidationQueryConfiguration"
+ eType="ecore:EClass platform:/plugin/org.eclipse.papyrus.infra.queries.core.configuration/model/Configuration.ecore#//QueryConfiguration"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ViewActionConfiguration" abstract="true"
+ eSuperTypes="#//ActionConfiguration"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SemanticActionConfiguration" abstract="true"
+ eSuperTypes="#//ActionConfiguration"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SemanticTypeConfiguration" abstract="true"
+ eSuperTypes="#//ElementTypeConfiguration">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Configuration specific to element types registered to manipulate Domain Specific elements."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ViewTypeConfiguration" abstract="true"
+ eSuperTypes="#//ElementTypeConfiguration">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Configuration specific to element types registered to manipulate graphical elements in GMF diagrams"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="specializedDiagramTypeID"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementTypeAdviceConfiguration" abstract="true"
+ eSuperTypes="#//ConfigurationElement"/>
+</ecore:EPackage>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.ecorediag b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.ecorediag
index 0757d3c6b7c..7732060f783 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.ecorediag
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.ecorediag
@@ -1,234 +1,403 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<notation:Diagram 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" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_pHTPAOAjEd-0CYOJPs0ewQ" type="EcoreTools" name="ExtendedTypes" measurementUnit="Pixel">
- <children xmi:type="notation:Node" xmi:id="_AtZG0OA1Ed-0CYOJPs0ewQ" type="1001">
- <children xmi:type="notation:Node" xmi:id="_Ati30OA1Ed-0CYOJPs0ewQ" type="4001"/>
- <children xmi:type="notation:Node" xmi:id="_Ati30eA1Ed-0CYOJPs0ewQ" type="5001">
- <children xmi:type="notation:Node" xmi:id="_BpbJ4OA4Ed-0CYOJPs0ewQ" type="2001">
- <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ExtendedElementTypeSet/id"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_BpbJ4eA4Ed-0CYOJPs0ewQ"/>
- </children>
- <styles xmi:type="notation:DrawerStyle" xmi:id="_Ati30uA1Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_Ati30-A1Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_Ati31OA1Ed-0CYOJPs0ewQ"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_Ati31eA1Ed-0CYOJPs0ewQ" type="5002">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_Ati31uA1Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_Ati31-A1Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_Ati32OA1Ed-0CYOJPs0ewQ"/>
- </children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_AtZG0eA1Ed-0CYOJPs0ewQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ExtendedElementTypeSet"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtZG0uA1Ed-0CYOJPs0ewQ" x="95" y="55" width="286" height="178"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_D22yIOA1Ed-0CYOJPs0ewQ" type="1001">
- <children xmi:type="notation:Node" xmi:id="_D22yI-A1Ed-0CYOJPs0ewQ" type="4001"/>
- <children xmi:type="notation:Node" xmi:id="_D22yJOA1Ed-0CYOJPs0ewQ" type="5001">
- <children xmi:type="notation:Node" xmi:id="_hiuTMOA3Ed-0CYOJPs0ewQ" type="2001">
- <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/name"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_hiuTMeA3Ed-0CYOJPs0ewQ"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_bv8RsOA2Ed-0CYOJPs0ewQ" type="2001">
- <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/id"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_bv8RseA2Ed-0CYOJPs0ewQ"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_yKWz0OA3Ed-0CYOJPs0ewQ" type="2001">
- <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/kindName"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_yKWz0eA3Ed-0CYOJPs0ewQ"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_qw89UOA3Ed-0CYOJPs0ewQ" type="2001">
- <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/hint"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_qw89UeA3Ed-0CYOJPs0ewQ"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_4DzTcOA3Ed-0CYOJPs0ewQ" type="2001">
- <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/specializedTypesID"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_4DzTceA3Ed-0CYOJPs0ewQ"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_u04IYIiaEeGlC_7TvaBunA" type="2001">
- <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/specializedDiagramTypeID"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_u04IYYiaEeGlC_7TvaBunA"/>
- </children>
- <styles xmi:type="notation:DrawerStyle" xmi:id="_D22yJeA1Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_D22yJuA1Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_D22yJ-A1Ed-0CYOJPs0ewQ"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_D22yKOA1Ed-0CYOJPs0ewQ" type="5002">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_D22yKeA1Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_D22yKuA1Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_D22yK-A1Ed-0CYOJPs0ewQ"/>
- </children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_D22yIeA1Ed-0CYOJPs0ewQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ExtendedElementTypeConfiguration"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D22yIuA1Ed-0CYOJPs0ewQ" x="580" y="55" width="263" height="578"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_RFg54OA3Ed-0CYOJPs0ewQ" type="1001">
- <children xmi:type="notation:Node" xmi:id="_RFg54-A3Ed-0CYOJPs0ewQ" type="4001"/>
- <children xmi:type="notation:Node" xmi:id="_RFg55OA3Ed-0CYOJPs0ewQ" type="5001">
- <children xmi:type="notation:Node" xmi:id="_U2KhAOA3Ed-0CYOJPs0ewQ" type="2001">
- <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//IconEntry/iconPath"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_U2KhAeA3Ed-0CYOJPs0ewQ"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_TW8xAOA3Ed-0CYOJPs0ewQ" type="2001">
- <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//IconEntry/bundleId"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_TW8xAeA3Ed-0CYOJPs0ewQ"/>
- </children>
- <styles xmi:type="notation:DrawerStyle" xmi:id="_RFg55eA3Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_RFg55uA3Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_RFg55-A3Ed-0CYOJPs0ewQ"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_RFg56OA3Ed-0CYOJPs0ewQ" type="5002">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_RFg56eA3Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_RFg56uA3Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_RFg56-A3Ed-0CYOJPs0ewQ"/>
- </children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_RFg54eA3Ed-0CYOJPs0ewQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//IconEntry"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RFg54uA3Ed-0CYOJPs0ewQ" x="980" y="55" width="208" height="83"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_W1kXgOA4Ed-0CYOJPs0ewQ" type="1001">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_W3DlQOA4Ed-0CYOJPs0ewQ" source="Shortcut">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_W3DlQeA4Ed-0CYOJPs0ewQ" key="modelID" value="EcoreTools"/>
- </eAnnotations>
- <children xmi:type="notation:Node" xmi:id="_W1kXg-A4Ed-0CYOJPs0ewQ" type="4001"/>
- <children xmi:type="notation:Node" xmi:id="_W1kXhOA4Ed-0CYOJPs0ewQ" type="5001">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_W1kXheA4Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_W1kXhuA4Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_W1kXh-A4Ed-0CYOJPs0ewQ"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_W1kXiOA4Ed-0CYOJPs0ewQ" type="5002">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_W1kXieA4Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_W1kXiuA4Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_W1kXi-A4Ed-0CYOJPs0ewQ"/>
- </children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_W1kXgeA4Ed-0CYOJPs0ewQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.papyrus.infra.queries.core.configuration/model/Configuration.ecore#//QueryConfiguration"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W1kXguA4Ed-0CYOJPs0ewQ" x="985" y="155" width="205"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_enajMOA4Ed-0CYOJPs0ewQ" type="1001">
- <children xmi:type="notation:Node" xmi:id="_enjtIOA4Ed-0CYOJPs0ewQ" type="4001"/>
- <children xmi:type="notation:Node" xmi:id="_enjtIeA4Ed-0CYOJPs0ewQ" type="5001">
- <children xmi:type="notation:Node" xmi:id="_uzjsUONGEd-BL-3v69vIsw" type="2001">
- <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ActionConfiguration/label"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_uzjsUeNGEd-BL-3v69vIsw"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_s0TKUONGEd-BL-3v69vIsw" type="2001">
- <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ActionConfiguration/id"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_s0TKUeNGEd-BL-3v69vIsw"/>
- </children>
- <styles xmi:type="notation:DrawerStyle" xmi:id="_enjtIuA4Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_enjtI-A4Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_enjtJOA4Ed-0CYOJPs0ewQ"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_enjtJeA4Ed-0CYOJPs0ewQ" type="5002">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_enjtJuA4Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_enjtJ-A4Ed-0CYOJPs0ewQ"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_enjtKOA4Ed-0CYOJPs0ewQ"/>
- </children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_enajMeA4Ed-0CYOJPs0ewQ" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ActionConfiguration"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_enajMuA4Ed-0CYOJPs0ewQ" x="985" y="250" width="201" height="101"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_NZHV0ONGEd-BL-3v69vIsw" type="1001">
- <children xmi:type="notation:Node" xmi:id="_NZHV0-NGEd-BL-3v69vIsw" type="4001"/>
- <children xmi:type="notation:Node" xmi:id="_NZHV1ONGEd-BL-3v69vIsw" type="5001">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_NZHV1eNGEd-BL-3v69vIsw"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_NZHV1uNGEd-BL-3v69vIsw"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_NZHV1-NGEd-BL-3v69vIsw"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_NZHV2ONGEd-BL-3v69vIsw" type="5002">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_NZHV2eNGEd-BL-3v69vIsw"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_NZHV2uNGEd-BL-3v69vIsw"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_NZHV2-NGEd-BL-3v69vIsw"/>
- </children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_NZHV0eNGEd-BL-3v69vIsw" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//PreActionConfiguration"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NZHV0uNGEd-BL-3v69vIsw" x="885" y="410"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_RVsgIONGEd-BL-3v69vIsw" type="1001">
- <children xmi:type="notation:Node" xmi:id="_RVsgI-NGEd-BL-3v69vIsw" type="4001"/>
- <children xmi:type="notation:Node" xmi:id="_RVsgJONGEd-BL-3v69vIsw" type="5001">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_RVsgJeNGEd-BL-3v69vIsw"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_RVsgJuNGEd-BL-3v69vIsw"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_RVsgJ-NGEd-BL-3v69vIsw"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_RVsgKONGEd-BL-3v69vIsw" type="5002">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_RVsgKeNGEd-BL-3v69vIsw"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_RVsgKuNGEd-BL-3v69vIsw"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_RVsgK-NGEd-BL-3v69vIsw"/>
- </children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_RVsgIeNGEd-BL-3v69vIsw" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//PostActionConfiguration"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RVsgIuNGEd-BL-3v69vIsw" x="1065" y="410" height="148"/>
- </children>
- <styles xmi:type="notation:DiagramStyle" xmi:id="_pHTPAeAjEd-0CYOJPs0ewQ"/>
- <element xmi:type="ecore:EPackage" href="ExtendedTypes.ecore#/"/>
- <edges xmi:type="notation:Edge" xmi:id="_GOjCQOA1Ed-0CYOJPs0ewQ" type="3002" source="_AtZG0OA1Ed-0CYOJPs0ewQ" target="_D22yIOA1Ed-0CYOJPs0ewQ">
- <children xmi:type="notation:Node" xmi:id="_GOjCROA1Ed-0CYOJPs0ewQ" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_GOjCReA1Ed-0CYOJPs0ewQ" x="-10" y="-10"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_GOjCRuA1Ed-0CYOJPs0ewQ" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_GOjCR-A1Ed-0CYOJPs0ewQ" x="10" y="10"/>
- </children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_GOjCQeA1Ed-0CYOJPs0ewQ" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_GOjCQuA1Ed-0CYOJPs0ewQ" fontColor="4210752" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="ExtendedTypes.ecore#//ExtendedElementTypeSet/elementType"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GOjCQ-A1Ed-0CYOJPs0ewQ" points="[142, -7, -321, 17]$[343, -9, -120, 15]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MaUoAOA1Ed-0CYOJPs0ewQ" id="(0.9370629370629371,0.5112359550561798)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_al4SUOA2Ed-0CYOJPs0ewQ" id="(0.030418250950570342,0.15570934256055363)"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_Y42TUOA3Ed-0CYOJPs0ewQ" type="3002" source="_D22yIOA1Ed-0CYOJPs0ewQ" target="_RFg54OA3Ed-0CYOJPs0ewQ">
- <children xmi:type="notation:Node" xmi:id="_Y5AEUOA3Ed-0CYOJPs0ewQ" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Y5AEUeA3Ed-0CYOJPs0ewQ" x="-10" y="-10"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_Y5AEUuA3Ed-0CYOJPs0ewQ" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Y5AEU-A3Ed-0CYOJPs0ewQ" x="10" y="10"/>
- </children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_Y42TUeA3Ed-0CYOJPs0ewQ" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_Y42TUuA3Ed-0CYOJPs0ewQ" fontColor="4210752" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/iconEntry"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Y42TU-A3Ed-0CYOJPs0ewQ" points="[42, 1, -207, 5]$[317, 23, 68, 27]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y5AEVOA3Ed-0CYOJPs0ewQ" id="(0.9391634980988594,0.07093425605536333)"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_gEPtkOA4Ed-0CYOJPs0ewQ" type="3002" source="_D22yIOA1Ed-0CYOJPs0ewQ" target="_NZHV0ONGEd-BL-3v69vIsw">
- <children xmi:type="notation:Node" xmi:id="_gEPtlOA4Ed-0CYOJPs0ewQ" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_gEPtleA4Ed-0CYOJPs0ewQ" x="-10" y="-10"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_gEPtluA4Ed-0CYOJPs0ewQ" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_gEPtl-A4Ed-0CYOJPs0ewQ" x="-7" y="10"/>
- </children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_gEPtkeA4Ed-0CYOJPs0ewQ" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_gEPtkuA4Ed-0CYOJPs0ewQ" fontColor="4210752" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/preAction"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gEPtk-A4Ed-0CYOJPs0ewQ" points="[35, 3, -157, 1]$[193, -13, 1, -15]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gEPtmOA4Ed-0CYOJPs0ewQ" id="(0.9885931558935361,0.6262975778546713)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gEPtmeA4Ed-0CYOJPs0ewQ" id="(0.22077922077922077,0.09523809523809523)"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_iKNUgOA4Ed-0CYOJPs0ewQ" type="3002" source="_D22yIOA1Ed-0CYOJPs0ewQ" target="_RVsgIONGEd-BL-3v69vIsw">
- <children xmi:type="notation:Node" xmi:id="_iKNUhOA4Ed-0CYOJPs0ewQ" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_iKNUheA4Ed-0CYOJPs0ewQ" x="-1" y="-10"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_iKNUhuA4Ed-0CYOJPs0ewQ" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_iKNUh-A4Ed-0CYOJPs0ewQ" x="10" y="10"/>
- </children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_iKNUgeA4Ed-0CYOJPs0ewQ" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_iKNUguA4Ed-0CYOJPs0ewQ" fontColor="4210752" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/postAction"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iKNUg-A4Ed-0CYOJPs0ewQ" points="[21, 0, -172, 2]$[194, 22, 1, 24]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iKNUiOA4Ed-0CYOJPs0ewQ" id="(0.9695817490494296,0.740484429065744)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iKNUieA4Ed-0CYOJPs0ewQ" id="(0.09433962264150944,0.5)"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_vzh0cOA5Ed-0CYOJPs0ewQ" type="3003" source="_NZHV0ONGEd-BL-3v69vIsw" target="_enajMOA4Ed-0CYOJPs0ewQ">
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_vzh0ceA5Ed-0CYOJPs0ewQ" routing="Rectilinear" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_vzh0cuA5Ed-0CYOJPs0ewQ"/>
- <element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vzh0c-A5Ed-0CYOJPs0ewQ" points="[1, -6, -44, 116]$[1, -31, -44, 91]$[101, -31, 56, 91]$[101, -67, 56, 55]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TQeKwONGEd-BL-3v69vIsw" id="(0.5526315789473685,0.16666666666666666)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uWCa8P4CEd-9VfrUWBt1SA" id="(0.14925373134328357,0.44554455445544555)"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_4a3dsOA5Ed-0CYOJPs0ewQ" type="3003" source="_RVsgIONGEd-BL-3v69vIsw" target="_enajMOA4Ed-0CYOJPs0ewQ">
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_4a3dseA5Ed-0CYOJPs0ewQ" routing="Rectilinear" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_4a3dsuA5Ed-0CYOJPs0ewQ"/>
- <element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4a3ds-A5Ed-0CYOJPs0ewQ" points="[12, -17, 66, 111]$[12, -42, 66, 86]$[-68, -42, -14, 86]$[-68, -78, -14, 50]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4a3dtOA5Ed-0CYOJPs0ewQ" id="(0.46496815286624205,0.11904761904761904)"/>
- </edges>
-</notation:Diagram>
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram 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" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_pHTPAOAjEd-0CYOJPs0ewQ" type="EcoreTools" name="ExtendedTypes" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_AtZG0OA1Ed-0CYOJPs0ewQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_Ati30OA1Ed-0CYOJPs0ewQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Ati30eA1Ed-0CYOJPs0ewQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_hEerQF21EeOaP_1Gowzb-Q" type="2001">
+ <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ExtendedElementTypeSet/extensible"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hEerQV21EeOaP_1Gowzb-Q"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Ati30uA1Ed-0CYOJPs0ewQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Ati30-A1Ed-0CYOJPs0ewQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Ati31OA1Ed-0CYOJPs0ewQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ati31eA1Ed-0CYOJPs0ewQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Ati31uA1Ed-0CYOJPs0ewQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Ati31-A1Ed-0CYOJPs0ewQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Ati32OA1Ed-0CYOJPs0ewQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_AtZG0eA1Ed-0CYOJPs0ewQ" fontColor="4210752" fontHeight="10" fillColor="8905185" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ExtendedElementTypeSet"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtZG0uA1Ed-0CYOJPs0ewQ" x="20" y="210" width="263" height="123"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_D22yIOA1Ed-0CYOJPs0ewQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_D22yI-A1Ed-0CYOJPs0ewQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_D22yJOA1Ed-0CYOJPs0ewQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_yKWz0OA3Ed-0CYOJPs0ewQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ElementTypeConfiguration/kindName"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yKWz0eA3Ed-0CYOJPs0ewQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qw89UOA3Ed-0CYOJPs0ewQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ElementTypeConfiguration/hint"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qw89UeA3Ed-0CYOJPs0ewQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4DzTcOA3Ed-0CYOJPs0ewQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ElementTypeConfiguration/specializedTypesID"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4DzTceA3Ed-0CYOJPs0ewQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_D22yJeA1Ed-0CYOJPs0ewQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D22yJuA1Ed-0CYOJPs0ewQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D22yJ-A1Ed-0CYOJPs0ewQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_D22yKOA1Ed-0CYOJPs0ewQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_D22yKeA1Ed-0CYOJPs0ewQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D22yKuA1Ed-0CYOJPs0ewQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D22yK-A1Ed-0CYOJPs0ewQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_D22yIeA1Ed-0CYOJPs0ewQ" fontColor="4210752" fontHeight="10" fillColor="8905185" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ElementTypeConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D22yIuA1Ed-0CYOJPs0ewQ" x="420" y="210" width="243" height="123"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RFg54OA3Ed-0CYOJPs0ewQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_RFg54-A3Ed-0CYOJPs0ewQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_RFg55OA3Ed-0CYOJPs0ewQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_U2KhAOA3Ed-0CYOJPs0ewQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//IconEntry/iconPath"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U2KhAeA3Ed-0CYOJPs0ewQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TW8xAOA3Ed-0CYOJPs0ewQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//IconEntry/bundleId"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TW8xAeA3Ed-0CYOJPs0ewQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_RFg55eA3Ed-0CYOJPs0ewQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RFg55uA3Ed-0CYOJPs0ewQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RFg55-A3Ed-0CYOJPs0ewQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_RFg56OA3Ed-0CYOJPs0ewQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_RFg56eA3Ed-0CYOJPs0ewQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RFg56uA3Ed-0CYOJPs0ewQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RFg56-A3Ed-0CYOJPs0ewQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_RFg54eA3Ed-0CYOJPs0ewQ" fontColor="4210752" fontHeight="10" fillColor="8905185" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//IconEntry"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RFg54uA3Ed-0CYOJPs0ewQ" x="810" y="30" width="243" height="103"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vF928FaMEeOnIbrN_mmRsw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_vGD9kFaMEeOnIbrN_mmRsw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_vGFLsFaMEeOnIbrN_mmRsw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_xXoXkFaMEeOnIbrN_mmRsw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ConfigurationElement/name"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xXoXkVaMEeOnIbrN_mmRsw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__vM6EFaMEeOnIbrN_mmRsw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ConfigurationElement/identifier"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__vM6EVaMEeOnIbrN_mmRsw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_59WQMFaMEeOnIbrN_mmRsw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ConfigurationElement/description"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_59WQMVaMEeOnIbrN_mmRsw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_vGFLsVaMEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vGFLslaMEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vGFLs1aMEeOnIbrN_mmRsw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vGHA4FaMEeOnIbrN_mmRsw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_vGHA4VaMEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vGHA4laMEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vGHA41aMEeOnIbrN_mmRsw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_vF928VaMEeOnIbrN_mmRsw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12632256" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ConfigurationElement"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vF928laMEeOnIbrN_mmRsw" x="420" y="30" width="243" height="103"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eu994FaNEeOnIbrN_mmRsw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_evAaIFaNEeOnIbrN_mmRsw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_evBBMFaNEeOnIbrN_mmRsw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_evBBMVaNEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_evBBMlaNEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_evBBM1aNEeOnIbrN_mmRsw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_evCPUFaNEeOnIbrN_mmRsw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_evCPUVaNEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_evCPUlaNEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_evCPU1aNEeOnIbrN_mmRsw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_eu994VaNEeOnIbrN_mmRsw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="8905185" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ViewTypeAdviceConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eu994laNEeOnIbrN_mmRsw" x="-540" y="390" width="243" height="113"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6fp2kFaNEeOnIbrN_mmRsw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_6fs54FaNEeOnIbrN_mmRsw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_6fvWIFaNEeOnIbrN_mmRsw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_6fvWIVaNEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6fvWIlaNEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6fvWI1aNEeOnIbrN_mmRsw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6fxLUFaNEeOnIbrN_mmRsw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_6fxLUVaNEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6fxLUlaNEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6fxLU1aNEeOnIbrN_mmRsw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_6fp2kVaNEeOnIbrN_mmRsw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="8905185" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//SemanticTypeAdviceConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6fp2klaNEeOnIbrN_mmRsw" x="-270" y="390" width="243" height="113"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_BqvHwFaPEeOnIbrN_mmRsw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_Bq6G4FaPEeOnIbrN_mmRsw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Bq7VAFaPEeOnIbrN_mmRsw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Bq7VAVaPEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Bq7VAlaPEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Bq7VA1aPEeOnIbrN_mmRsw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Bq78EFaPEeOnIbrN_mmRsw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Bq78EVaPEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Bq8jIFaPEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Bq8jIVaPEeOnIbrN_mmRsw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_BqvHwVaPEeOnIbrN_mmRsw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12632256" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//MatcherConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BqvHwlaPEeOnIbrN_mmRsw" x="860" y="210" width="243" height="113"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__MkT0FacEeOnIbrN_mmRsw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="__MmwEFacEeOnIbrN_mmRsw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="__MnXIFacEeOnIbrN_mmRsw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="__MnXIVacEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__MnXIlacEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__MnXI1acEeOnIbrN_mmRsw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__MolQFacEeOnIbrN_mmRsw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="__MolQVacEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__MolQlacEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__MolQ1acEeOnIbrN_mmRsw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="__Mk64FacEeOnIbrN_mmRsw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12632256" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ActionConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__Mk64VacEeOnIbrN_mmRsw" x="1140" y="220" width="223" height="113"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HlSSQFadEeOnIbrN_mmRsw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_HlUHcFadEeOnIbrN_mmRsw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_HlVVkFadEeOnIbrN_mmRsw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_HlVVkVadEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HlVVkladEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HlVVk1adEeOnIbrN_mmRsw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_HlV8oFadEeOnIbrN_mmRsw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_HlV8oVadEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HlV8oladEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HlV8o1adEeOnIbrN_mmRsw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_HlSSQVadEeOnIbrN_mmRsw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="8905185" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ViewActionConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HlSSQladEeOnIbrN_mmRsw" x="1050" y="390" width="183" height="63"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NL1rEFadEeOnIbrN_mmRsw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_NL3gQFadEeOnIbrN_mmRsw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_NL4uYFadEeOnIbrN_mmRsw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_NL4uYVadEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NL4uYladEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NL4uY1adEeOnIbrN_mmRsw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NL58gFadEeOnIbrN_mmRsw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_NL58gVadEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NL58gladEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NL58g1adEeOnIbrN_mmRsw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_NL2SIFadEeOnIbrN_mmRsw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="8905185" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//SemanticActionConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NL2SIVadEeOnIbrN_mmRsw" x="1260" y="390" width="203" height="63"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6Gf6cFazEeOnIbrN_mmRsw" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6HCtAFazEeOnIbrN_mmRsw" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6HCtAVazEeOnIbrN_mmRsw" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_6Gf6c1azEeOnIbrN_mmRsw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_6GghgFazEeOnIbrN_mmRsw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_6GghgVazEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6GghglazEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6Gghg1azEeOnIbrN_mmRsw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_6GghhFazEeOnIbrN_mmRsw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_6GghhVazEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6GghhlazEeOnIbrN_mmRsw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6Gghh1azEeOnIbrN_mmRsw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_6Gf6cVazEeOnIbrN_mmRsw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12632256" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.papyrus.infra.queries.core.configuration/model/Configuration.ecore#//QueryConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6Gf6clazEeOnIbrN_mmRsw" x="1490" y="220" width="183" height="83"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_gQ6R4Fd2EeOMz7r5xDmlGQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_gRAYgFd2EeOMz7r5xDmlGQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_gRC0wFd2EeOMz7r5xDmlGQ" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_gRC0wVd2EeOMz7r5xDmlGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gRC0wld2EeOMz7r5xDmlGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gRC0w1d2EeOMz7r5xDmlGQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_gRFRAFd2EeOMz7r5xDmlGQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_gRFRAVd2EeOMz7r5xDmlGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gRFRAld2EeOMz7r5xDmlGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gRFRA1d2EeOMz7r5xDmlGQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_gQ6R4Vd2EeOMz7r5xDmlGQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//SemanticTypeConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gQ6R4ld2EeOMz7r5xDmlGQ" x="280" y="390" width="243" height="113"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_r2M6AFd2EeOMz7r5xDmlGQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_r2PWQFd2EeOMz7r5xDmlGQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_r2P9UFd2EeOMz7r5xDmlGQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_u04IYIiaEeGlC_7TvaBunA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="ExtendedTypes.ecore#//ViewTypeConfiguration/specializedDiagramTypeID"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_u04IYYiaEeGlC_7TvaBunA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_r2P9UVd2EeOMz7r5xDmlGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_r2P9Uld2EeOMz7r5xDmlGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_r2P9U1d2EeOMz7r5xDmlGQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_r2RLcFd2EeOMz7r5xDmlGQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_r2RLcVd2EeOMz7r5xDmlGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_r2RLcld2EeOMz7r5xDmlGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_r2RLc1d2EeOMz7r5xDmlGQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_r2M6AVd2EeOMz7r5xDmlGQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ViewTypeConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r2M6Ald2EeOMz7r5xDmlGQ" x="560" y="390" width="303" height="113"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LZtoMFg0EeOZc_L6ctfnzA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_LZu2UFg0EeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_LZvdYFg0EeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_LZvdYVg0EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LZvdYlg0EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LZvdY1g0EeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LZwEcFg0EeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_LZwEcVg0EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LZwEclg0EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LZwEc1g0EeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_LZtoMVg0EeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ElementTypeAdviceConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LZtoMlg0EeOZc_L6ctfnzA" x="-400" y="211" width="243" height="122"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_pHTPAeAjEd-0CYOJPs0ewQ"/>
+ <element xmi:type="ecore:EPackage" href="ExtendedTypes.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_GOjCQOA1Ed-0CYOJPs0ewQ" type="3002" source="_AtZG0OA1Ed-0CYOJPs0ewQ" target="_D22yIOA1Ed-0CYOJPs0ewQ">
+ <children xmi:type="notation:Node" xmi:id="_GOjCROA1Ed-0CYOJPs0ewQ" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GOjCReA1Ed-0CYOJPs0ewQ" x="-19" y="-11"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GOjCRuA1Ed-0CYOJPs0ewQ" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GOjCR-A1Ed-0CYOJPs0ewQ" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_GOjCQeA1Ed-0CYOJPs0ewQ" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GOjCQuA1Ed-0CYOJPs0ewQ" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="ExtendedTypes.ecore#//ExtendedElementTypeSet/elementType"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GOjCQ-A1Ed-0CYOJPs0ewQ" points="[142, -7, -321, 17]$[343, -9, -120, 15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MaUoAOA1Ed-0CYOJPs0ewQ" id="(0.993006993006993,0.4152542372881356)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_al4SUOA2Ed-0CYOJPs0ewQ" id="(0.0076045627376425855,0.40707964601769914)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Y42TUOA3Ed-0CYOJPs0ewQ" type="3002" source="_vF928FaMEeOnIbrN_mmRsw" target="_RFg54OA3Ed-0CYOJPs0ewQ">
+ <children xmi:type="notation:Node" xmi:id="_Y5AEUOA3Ed-0CYOJPs0ewQ" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Y5AEUeA3Ed-0CYOJPs0ewQ" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Y5AEUuA3Ed-0CYOJPs0ewQ" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Y5AEU-A3Ed-0CYOJPs0ewQ" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_Y42TUeA3Ed-0CYOJPs0ewQ" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Y42TUuA3Ed-0CYOJPs0ewQ" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="ExtendedTypes.ecore#//ConfigurationElement/iconEntry"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Y42TU-A3Ed-0CYOJPs0ewQ" points="[42, 1, -207, 5]$[317, 23, 68, 27]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y5AEVOA3Ed-0CYOJPs0ewQ" id="(0.9781931464174455,0.5274725274725275)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_PWwdwFaNEeOnIbrN_mmRsw" type="3003" source="_AtZG0OA1Ed-0CYOJPs0ewQ" target="_vF928FaMEeOnIbrN_mmRsw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_PWwdwVaNEeOnIbrN_mmRsw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_PWwdwlaNEeOnIbrN_mmRsw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PWwdw1aNEeOnIbrN_mmRsw" points="[-26, -4, -355, 85]$[-26, -44, -355, 45]$[365, -44, 36, 45]$[365, -83, 36, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PW3LcFaNEeOnIbrN_mmRsw" id="(0.5944055944055944,0.033707865168539325)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QoA_YFaPEeOnIbrN_mmRsw" id="(0.34890965732087226,0.945054945054945)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_P5L1YFaNEeOnIbrN_mmRsw" type="3003" source="_D22yIOA1Ed-0CYOJPs0ewQ" target="_vF928FaMEeOnIbrN_mmRsw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_P5L1YVaNEeOnIbrN_mmRsw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_P5MccFaNEeOnIbrN_mmRsw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_P5MccVaNEeOnIbrN_mmRsw" points="[0, -1, -5, 130]$[0, -80, -5, 51]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_P5U_UFaNEeOnIbrN_mmRsw" id="(0.49794238683127573,0.016260162601626018)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_4W5vcFaPEeOnIbrN_mmRsw" type="3002" source="_D22yIOA1Ed-0CYOJPs0ewQ" target="_BqvHwFaPEeOnIbrN_mmRsw">
+ <children xmi:type="notation:Node" xmi:id="_4W69kFaPEeOnIbrN_mmRsw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4W69kVaPEeOnIbrN_mmRsw" x="-42" y="-11"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4W7koFaPEeOnIbrN_mmRsw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4W8LsFaPEeOnIbrN_mmRsw" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_4W5vcVaPEeOnIbrN_mmRsw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4W5vclaPEeOnIbrN_mmRsw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="ExtendedTypes.ecore#//ElementTypeConfiguration/matcherConfiguration"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4W5vc1aPEeOnIbrN_mmRsw" points="[27, -29, -434, 31]$[226, -29, -235, 31]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4XCSUFaPEeOnIbrN_mmRsw" id="(0.8888888888888888,0.8292682926829268)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4XCSUVaPEeOnIbrN_mmRsw" id="(0.9762845849802372,0.3655913978494624)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_E94LIFadEeOnIbrN_mmRsw" type="3003" source="__MkT0FacEeOnIbrN_mmRsw" target="_vF928FaMEeOnIbrN_mmRsw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_E94LIVadEeOnIbrN_mmRsw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_E94LIladEeOnIbrN_mmRsw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_E94LI1adEeOnIbrN_mmRsw" points="[43, -9, 802, 106]$[43, -59, 802, 56]$[-700, -59, 59, 56]$[-700, -98, 59, 17]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E971gFadEeOnIbrN_mmRsw" id="(0.45493562231759654,0.08433734939759036)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E98ckFadEeOnIbrN_mmRsw" id="(0.25691699604743085,0.8349514563106796)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_cxGvwFadEeOnIbrN_mmRsw" type="3003" source="_HlSSQFadEeOnIbrN_mmRsw" target="__MkT0FacEeOnIbrN_mmRsw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_cxGvwVadEeOnIbrN_mmRsw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cxGvwladEeOnIbrN_mmRsw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cxGvw1adEeOnIbrN_mmRsw" points="[-1, -2, -119, 68]$[-1, -32, -119, 38]$[109, -32, -9, 38]$[109, -61, -9, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cxLBMFadEeOnIbrN_mmRsw" id="(0.5081967213114754,0.04225352112676056)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eZwIkFadEeOnIbrN_mmRsw" id="(0.5407725321888412,0.927710843373494)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_f0YTgFadEeOnIbrN_mmRsw" type="3003" source="_NL1rEFadEeOnIbrN_mmRsw" target="__MkT0FacEeOnIbrN_mmRsw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_f0YTgVadEeOnIbrN_mmRsw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_f0YTgladEeOnIbrN_mmRsw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f0YTg1adEeOnIbrN_mmRsw" points="[2, -5, 110, 115]$[2, -35, 110, 85]$[-108, -35, 0, 85]$[-108, -64, 0, 56]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f0ck8FadEeOnIbrN_mmRsw" id="(0.4918032786885246,0.08641975308641975)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_SSRbkFasEeOnIbrN_mmRsw" type="3002" source="__MkT0FacEeOnIbrN_mmRsw" target="_6Gf6cFazEeOnIbrN_mmRsw">
+ <children xmi:type="notation:Node" xmi:id="_SSZXYFasEeOnIbrN_mmRsw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SSZXYVasEeOnIbrN_mmRsw" x="-59" y="-13"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_SSZ-cFasEeOnIbrN_mmRsw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SSZ-cVasEeOnIbrN_mmRsw" y="12"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_SSRbkVasEeOnIbrN_mmRsw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SSRbklasEeOnIbrN_mmRsw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="ExtendedTypes.ecore#//ActionConfiguration/preValidationQueryConfiguration"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SSRbk1asEeOnIbrN_mmRsw" points="[-33, -9, 240, 5]$[-182, -9, 91, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SSgsIFasEeOnIbrN_mmRsw" id="(0.15246636771300448,0.4939759036144578)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_0TGN0Fd2EeOMz7r5xDmlGQ" type="3003" source="_gQ6R4Fd2EeOMz7r5xDmlGQ" target="_D22yIOA1Ed-0CYOJPs0ewQ">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_0TGN0Vd2EeOMz7r5xDmlGQ" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_0TGN0ld2EeOMz7r5xDmlGQ" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0TGN01d2EeOMz7r5xDmlGQ" points="[16, -13, -144, 89]$[16, -43, -144, 59]$[156, -43, -4, 59]$[156, -72, -4, 30]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0TP-0Fd2EeOMz7r5xDmlGQ" id="(0.43209876543209874,0.12389380530973451)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0TP-0Vd2EeOMz7r5xDmlGQ" id="(0.5185185185185185,0.7560975609756098)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_02Dw8Fd2EeOMz7r5xDmlGQ" type="3003" source="_r2M6AFd2EeOMz7r5xDmlGQ" target="_D22yIOA1Ed-0CYOJPs0ewQ">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_02Dw8Vd2EeOMz7r5xDmlGQ" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_02Dw8ld2EeOMz7r5xDmlGQ" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_02Dw81d2EeOMz7r5xDmlGQ" points="[2, -19, 189, 82]$[2, -49, 189, 52]$[-168, -49, 19, 52]$[-168, -78, 19, 23]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_02JQgFd2EeOMz7r5xDmlGQ" id="(0.49201277955271566,0.17699115044247787)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_02J3kFd2EeOMz7r5xDmlGQ" id="(0.41975308641975306,0.8130081300813008)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_IzApwFeGEeOMz7r5xDmlGQ" type="3003" source="_LZtoMFg0EeOZc_L6ctfnzA" target="_vF928FaMEeOnIbrN_mmRsw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_IzApwVeGEeOMz7r5xDmlGQ" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IzApwleGEeOMz7r5xDmlGQ" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IzApw1eGEeOMz7r5xDmlGQ" points="[62, -20, -794, 131]$[62, -61, -794, 90]$[856, -61, 0, 90]$[856, -100, 0, 51]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IzE7MFeGEeOMz7r5xDmlGQ" id="(0.3497942386831276,0.17117117117117117)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_ese3cFeGEeOMz7r5xDmlGQ" type="3003" source="_6fp2kFaNEeOnIbrN_mmRsw" target="_LZtoMFg0EeOZc_L6ctfnzA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_ese3cVeGEeOMz7r5xDmlGQ" routing="Rectilinear" jumpLinkType="Chamfered" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ese3cleGEeOMz7r5xDmlGQ" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ese3c1eGEeOMz7r5xDmlGQ" points="[-26, -5, 85, 75]$[-26, -35, 85, 45]$[-146, -35, -35, 45]$[-146, -64, -35, 16]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_esjI4FeGEeOMz7r5xDmlGQ" id="(0.5679012345679012,0.05309734513274336)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_P5pXMFg0EeOZc_L6ctfnzA" id="(0.6460905349794238,0.8738738738738738)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_R8SkYFg0EeOZc_L6ctfnzA" type="3003" source="_eu994FaNEeOnIbrN_mmRsw" target="_LZtoMFg0EeOZc_L6ctfnzA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_R8TLcFg0EeOZc_L6ctfnzA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_R8TLcVg0EeOZc_L6ctfnzA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_R8TLclg0EeOZc_L6ctfnzA" points="[48, -27, -136, 78]$[48, -57, -136, 48]$[168, -57, -16, 48]$[168, -86, -16, 19]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_R8WOwFg0EeOZc_L6ctfnzA" id="(0.38271604938271603,0.24778761061946902)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_R8WOwVg0EeOZc_L6ctfnzA" id="(0.5679012345679012,0.8468468468468469)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.genmodel b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.genmodel
index dbaf61ba388..8d260f33f88 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.genmodel
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/ExtendedTypes.genmodel
@@ -1,38 +1,49 @@
-<?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.eclipse.papyrus.infra.extendedtypes/src-gen"
- editDirectory="/org.eclipse.papyrus.infra.extendedtypes.edit/src-gen" editorDirectory="/org.eclipse.papyrus.infra.extendedtypes.editor/src-gen"
- modelPluginID="org.eclipse.papyrus.infra.extendedtypes" modelName="ExtendedTypes"
- testsDirectory="/org.eclipse.papyrus.infra.extendedtypes.tests/src-gen" importerID="org.eclipse.emf.importer.ecore"
- complianceLevel="5.0" copyrightFields="false" usedGenPackages="platform:/plugin/org.eclipse.papyrus.infra.queries.core.configuration/model/Configuration.genmodel#//configuration platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore platform:/plugin/org.eclipse.emf.facet.infra.query/model/query.genmodel#//query platform:/plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml platform:/plugin/org.eclipse.papyrus.infra.queries.core.configuration/model/Configuration.genmodel#//types">
- <foreignModel>ExtendedTypes.ecore</foreignModel>
- <genPackages prefix="Extendedtypes" basePackage="org.eclipse.papyrus.infra" resource="XML"
- disposableProviderFactory="true" ecorePackage="ExtendedTypes.ecore#/">
- <genClasses ecoreClass="ExtendedTypes.ecore#//ExtendedElementTypeSet">
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ExtendedTypes.ecore#//ExtendedElementTypeSet/elementType"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ExtendedElementTypeSet/id"/>
- </genClasses>
- <genClasses ecoreClass="ExtendedTypes.ecore#//ExtendedElementTypeConfiguration">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/name"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/id"/>
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/iconEntry"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/hint"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/kindName"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/specializedTypesID"/>
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/preValidation"/>
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/preAction"/>
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/postAction"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ExtendedElementTypeConfiguration/specializedDiagramTypeID"/>
- </genClasses>
- <genClasses ecoreClass="ExtendedTypes.ecore#//IconEntry">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//IconEntry/iconPath"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//IconEntry/bundleId"/>
- </genClasses>
- <genClasses image="false" ecoreClass="ExtendedTypes.ecore#//ActionConfiguration">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ActionConfiguration/label"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ActionConfiguration/id"/>
- </genClasses>
- <genClasses image="false" ecoreClass="ExtendedTypes.ecore#//PreActionConfiguration"/>
- <genClasses image="false" ecoreClass="ExtendedTypes.ecore#//PostActionConfiguration"/>
- </genPackages>
-</genmodel:GenModel>
+<?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" copyrightText="Copyright (c) 2013 CEA LIST.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA; CEA LIST - Initial API and implementation"
+ modelDirectory="/org.eclipse.papyrus.infra.extendedtypes/src-gen" creationSubmenus="true"
+ editDirectory="/org.eclipse.papyrus.infra.extendedtypes.edit/src-gen" editorDirectory="/org.eclipse.papyrus.infra.extendedtypes.editor/src-gen"
+ modelPluginID="org.eclipse.papyrus.infra.extendedtypes" modelName="ExtendedTypes"
+ nonNLSMarkers="true" codeFormatting="true" commentFormatting="true" testsDirectory="/org.eclipse.papyrus.infra.extendedtypes.tests/src-gen"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
+ language="" usedGenPackages="platform:/plugin/org.eclipse.papyrus.infra.queries.core.configuration/model/Configuration.genmodel#//configuration platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore platform:/plugin/org.eclipse.emf.facet.infra.query/model/query.genmodel#//query ../../org.eclipse.uml2.types/model/Types.genmodel#//types platform:/plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+ importOrganizing="true">
+ <foreignModel>ExtendedTypes.ecore</foreignModel>
+ <genPackages prefix="Extendedtypes" basePackage="org.eclipse.papyrus.infra" resource="XML"
+ disposableProviderFactory="true" literalsInterface="false" contentTypeIdentifier=""
+ ecorePackage="ExtendedTypes.ecore#/">
+ <genClasses ecoreClass="ExtendedTypes.ecore#//ExtendedElementTypeSet">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ExtendedTypes.ecore#//ExtendedElementTypeSet/elementType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ExtendedElementTypeSet/extensible"/>
+ </genClasses>
+ <genClasses ecoreClass="ExtendedTypes.ecore#//ElementTypeConfiguration">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ElementTypeConfiguration/hint"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ElementTypeConfiguration/kindName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ElementTypeConfiguration/specializedTypesID"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ExtendedTypes.ecore#//ElementTypeConfiguration/matcherConfiguration"/>
+ </genClasses>
+ <genClasses ecoreClass="ExtendedTypes.ecore#//IconEntry">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//IconEntry/iconPath"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//IconEntry/bundleId"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="ExtendedTypes.ecore#//ConfigurationElement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ConfigurationElement/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ConfigurationElement/description"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ConfigurationElement/identifier"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ExtendedTypes.ecore#//ConfigurationElement/iconEntry"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="ExtendedTypes.ecore#//ViewTypeAdviceConfiguration"/>
+ <genClasses image="false" ecoreClass="ExtendedTypes.ecore#//SemanticTypeAdviceConfiguration"/>
+ <genClasses image="false" ecoreClass="ExtendedTypes.ecore#//MatcherConfiguration"/>
+ <genClasses image="false" ecoreClass="ExtendedTypes.ecore#//ActionConfiguration">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ExtendedTypes.ecore#//ActionConfiguration/preValidationQueryConfiguration"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="ExtendedTypes.ecore#//ViewActionConfiguration"/>
+ <genClasses image="false" ecoreClass="ExtendedTypes.ecore#//SemanticActionConfiguration"/>
+ <genClasses image="false" ecoreClass="ExtendedTypes.ecore#//SemanticTypeConfiguration"/>
+ <genClasses image="false" ecoreClass="ExtendedTypes.ecore#//ViewTypeConfiguration">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ExtendedTypes.ecore#//ViewTypeConfiguration/specializedDiagramTypeID"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="ExtendedTypes.ecore#//ElementTypeAdviceConfiguration"/>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantContainerConfiguration.ecore b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantContainerConfiguration.ecore
new file mode 100644
index 00000000000..c11a512b311
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantContainerConfiguration.ecore
@@ -0,0 +1,14 @@
+<?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="invariantcontainerconfiguration" nsURI="http://www.eclipse.org/papyrus/infra/extendedtypes/semantictype/invariant/container/1.0"
+ nsPrefix="invariantcontainerconfiguration">
+ <eClassifiers xsi:type="ecore:EClass" name="InvariantContainerConfiguration" eSuperTypes="InvariantSemanticTypeConfiguration.ecore#//InvariantRuleConfiguration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="permissions" upperBound="-1"
+ eType="#//HierarchyPermission" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HierarchyPermission">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="childType" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isPermitted" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStrict" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantContainerConfiguration.ecorediag b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantContainerConfiguration.ecorediag
new file mode 100644
index 00000000000..a7d36d4e800
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantContainerConfiguration.ecorediag
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram 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" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_JJiHkFgvEeOZc_L6ctfnzA" type="EcoreTools" name="InvariantContainerConfiguration" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_cp6W8FgvEeOZc_L6ctfnzA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_cp6-AFgvEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_cp7lEFgvEeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_cp7lEVgvEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cp7lElgvEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cp7lE1gvEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_cp7lFFgvEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_cp7lFVgvEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cp7lFlgvEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cp7lF1gvEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_cp6W8VgvEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="InvariantContainerConfiguration.ecore#//InvariantContainerConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cp6W8lgvEeOZc_L6ctfnzA" x="180" y="300" width="323" height="121"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5pS3YFgvEeOZc_L6ctfnzA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_5pYW8FgvEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_5pY-AFgvEeOZc_L6ctfnzA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_KmuB0FgwEeOZc_L6ctfnzA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="InvariantContainerConfiguration.ecore#//HierarchyPermission/childType"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Kmuo4FgwEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NU4RMFgwEeOZc_L6ctfnzA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="InvariantContainerConfiguration.ecore#//HierarchyPermission/isPermitted"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NU4RMVgwEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-vzskGQUEeOl5OaKZvi8pw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="InvariantContainerConfiguration.ecore#//HierarchyPermission/isStrict"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-vzskWQUEeOl5OaKZvi8pw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_5pY-AVgvEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5pY-AlgvEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5pY-A1gvEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5pY-BFgvEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_5pZlEFgvEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5pZlEVgvEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5pZlElgvEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5pS3YVgvEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="InvariantContainerConfiguration.ecore#//HierarchyPermission"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5pS3YlgvEeOZc_L6ctfnzA" x="700" y="300" width="323" height="121"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kiU48Fz2EeO809zwjpcRug" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ksvZMFz2EeO809zwjpcRug" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ksvZMVz2EeO809zwjpcRug" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_kinz4Fz2EeO809zwjpcRug" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_kinz4Vz2EeO809zwjpcRug" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_kinz4lz2EeO809zwjpcRug"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kinz41z2EeO809zwjpcRug"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kinz5Fz2EeO809zwjpcRug"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kinz5Vz2EeO809zwjpcRug" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_kinz5lz2EeO809zwjpcRug"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kinz51z2EeO809zwjpcRug"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kinz6Fz2EeO809zwjpcRug"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_kiU48Vz2EeO809zwjpcRug" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//ConfigurationElement"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kiU48lz2EeO809zwjpcRug" x="740" y="59" width="218" height="126"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aIUqMGESEeOnIp9uJgA5yw" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aUuugGESEeOnIp9uJgA5yw" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aUuugWESEeOnIp9uJgA5yw" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_aIXtgGESEeOnIp9uJgA5yw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_aIY7oGESEeOnIp9uJgA5yw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_aIY7oWESEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aIY7omESEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aIY7o2ESEeOnIp9uJgA5yw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aIb-8GESEeOnIp9uJgA5yw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_aIb-8WESEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aIb-8mESEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aIb-82ESEeOnIp9uJgA5yw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_aIUqMWESEeOnIp9uJgA5yw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="InvariantSemanticTypeConfiguration.ecore#//InvariantRuleConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aIUqMmESEeOnIp9uJgA5yw" x="205" y="100" width="273"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_JJiHkVgvEeOZc_L6ctfnzA"/>
+ <element xmi:type="ecore:EPackage" href="InvariantContainerConfiguration.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_9G9REFgvEeOZc_L6ctfnzA" type="3002" source="_cp6W8FgvEeOZc_L6ctfnzA" target="_5pS3YFgvEeOZc_L6ctfnzA">
+ <children xmi:type="notation:Node" xmi:id="_9G-fMFgvEeOZc_L6ctfnzA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9G-fMVgvEeOZc_L6ctfnzA" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9G-fMlgvEeOZc_L6ctfnzA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9G-fM1gvEeOZc_L6ctfnzA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_9G9REVgvEeOZc_L6ctfnzA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9G9RElgvEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="InvariantContainerConfiguration.ecore#//InvariantContainerConfiguration/permissions"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9G9RE1gvEeOZc_L6ctfnzA" points="[46, 11, -232, 0]$[245, 11, -33, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9HCJkFgvEeOZc_L6ctfnzA" id="(0.8575851393188855,0.4049586776859504)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9HCJkVgvEeOZc_L6ctfnzA" id="(0.11221122112211221,0.49586776859504134)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_dY9UgGESEeOnIp9uJgA5yw" type="3003" source="_cp6W8FgvEeOZc_L6ctfnzA" target="_aIUqMGESEeOnIp9uJgA5yw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_dY9UgWESEeOnIp9uJgA5yw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dY9UgmESEeOnIp9uJgA5yw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dY9Ug2ESEeOnIp9uJgA5yw" points="[-7, -15, -4, 171]$[-7, -157, -4, 29]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dZh8QGESEeOnIp9uJgA5yw" id="(0.5108359133126935,0.1322314049586777)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantContainerConfiguration.genmodel b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantContainerConfiguration.genmodel
new file mode 100644
index 00000000000..cc2d4285acd
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantContainerConfiguration.genmodel
@@ -0,0 +1,23 @@
+<?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" copyrightText="Copyright (c) 2013 CEA LIST.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA; CEA LIST - Initial API and implementation"
+ modelDirectory="/org.eclipse.papyrus.infra.extendedtypes/src-gen" editDirectory="/org.eclipse.papyrus.infra.extendedtypes.edit/src-gen"
+ editorDirectory="/org.eclipse.papyrus.infra.extendedtypes.editor/src-gen" modelPluginID="org.eclipse.papyrus.infra.extendedtypes"
+ modelName="InvariantContainerConfiguration" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
+ usedGenPackages="../../org.eclipse.papyrus.infra.queries.core.configuration/model/Configuration.genmodel#//configuration ../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ExtendedTypes.genmodel#//extendedtypes InvariantSemanticTypeConfiguration.genmodel#//invariantsemantictypeconfiguration ../../org.eclipse.emf.facet.infra.query/model/query.genmodel#//query ../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+ operationReflection="true" importOrganizing="true">
+ <foreignModel>InvariantContainerConfiguration.ecore</foreignModel>
+ <genPackages prefix="InvariantContainerConfiguration" basePackage="org.eclipse.papyrus.infra.extendedtypes"
+ resource="XML" disposableProviderFactory="true" ecorePackage="InvariantContainerConfiguration.ecore#/">
+ <genClasses ecoreClass="InvariantContainerConfiguration.ecore#//InvariantContainerConfiguration">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference InvariantContainerConfiguration.ecore#//InvariantContainerConfiguration/permissions"/>
+ </genClasses>
+ <genClasses ecoreClass="InvariantContainerConfiguration.ecore#//HierarchyPermission">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute InvariantContainerConfiguration.ecore#//HierarchyPermission/parentType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute InvariantContainerConfiguration.ecore#//HierarchyPermission/isPermitted"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute InvariantContainerConfiguration.ecore#//HierarchyPermission/directContainerLevelOnly"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute InvariantContainerConfiguration.ecore#//HierarchyPermission/isStrict"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantSemanticTypeConfiguration.ecore b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantSemanticTypeConfiguration.ecore
new file mode 100644
index 00000000000..733a4536d89
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantSemanticTypeConfiguration.ecore
@@ -0,0 +1,18 @@
+<?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="invariantsemantictypeconfiguration" nsURI="http://www.eclipse.org/papyrus/infra/extendedtypes/semantictype/invariant/1.0"
+ nsPrefix="invariantsemantictypeconfiguration">
+ <eClassifiers xsi:type="ecore:EClass" name="InvariantSemanticTypeConfiguration"
+ eSuperTypes="ExtendedTypes.ecore#//SemanticTypeConfiguration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="invariantRuleConfiguration"
+ lowerBound="1" eType="#//InvariantRuleConfiguration" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InvariantRuleConfiguration" abstract="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ComposedRuleConfiguration" abstract="true"
+ eSuperTypes="#//InvariantRuleConfiguration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="composedRules" lowerBound="2"
+ upperBound="-1" eType="#//InvariantRuleConfiguration"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AndRule" eSuperTypes="#//ComposedRuleConfiguration"/>
+ <eClassifiers xsi:type="ecore:EClass" name="OrRule" eSuperTypes="#//ComposedRuleConfiguration"/>
+</ecore:EPackage>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantSemanticTypeConfiguration.ecorediag b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantSemanticTypeConfiguration.ecorediag
new file mode 100644
index 00000000000..7da4b3c881c
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantSemanticTypeConfiguration.ecorediag
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram 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" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_198uYFgsEeOZc_L6ctfnzA" type="EcoreTools" name="InvariantSemanticTypeConfiguration" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_U563UFgtEeOZc_L6ctfnzA" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VCu1EFgtEeOZc_L6ctfnzA" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VCu1EVgtEeOZc_L6ctfnzA" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_U59TkFgtEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_U6A98FgtEeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_U6A98VgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_U6A98lgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_U6A981gtEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U6CMEFgtEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_U6CMEVgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_U6CMElgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_U6CME1gtEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_U563UVgtEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12560536" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//SemanticTypeConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U563UlgtEeOZc_L6ctfnzA" x="260" y="60" width="243" height="123"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YznswFgtEeOZc_L6ctfnzA" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y0SbIFgtEeOZc_L6ctfnzA" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y0SbIVgtEeOZc_L6ctfnzA" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_Yzo64FgtEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Yzph8FgtEeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Yzph8VgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Yzph8lgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Yzph81gtEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YzqJAFgtEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_YzqJAVgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YzqJAlgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YzqJA1gtEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_YzoT0FgtEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12560536" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//SemanticTypeAdviceConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YzoT0VgtEeOZc_L6ctfnzA" x="740" y="60" width="243" height="123"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_m4QsMFgtEeOZc_L6ctfnzA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_m4RTQFgtEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_m4RTQVgtEeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_m4RTQlgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_m4RTQ1gtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_m4RTRFgtEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_m4ShYFgtEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_m4ShYVgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_m4ShYlgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_m4ShY1gtEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_m4QsMVgtEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="InvariantSemanticTypeConfiguration.ecore#//InvariantSemanticTypeConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_m4QsMlgtEeOZc_L6ctfnzA" x="260" y="300" width="241" height="283"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9PhpIFgtEeOZc_L6ctfnzA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_9Pw5sFgtEeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_9PyH0FgtEeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_9PyH0VgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9PyH0lgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9PyH01gtEeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_9PzV8FgtEeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_9PzV8VgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9PzV8lgtEeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9PzV81gtEeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_9PhpIVgtEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="InvariantSemanticTypeConfiguration.ecore#//InvariantRuleConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9PhpIlgtEeOZc_L6ctfnzA" x="740" y="295" width="241" height="121"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_WRwtgGEAEeOnIp9uJgA5yw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_WR4CQGEAEeOnIp9uJgA5yw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_WR7FkGEAEeOnIp9uJgA5yw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_WR7FkWEAEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WR7FkmEAEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WR7Fk2EAEeOnIp9uJgA5yw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_WR-v8GEAEeOnIp9uJgA5yw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_WR-v8WEAEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_WR-v8mEAEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_WR-v82EAEeOnIp9uJgA5yw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_WRxUkGEAEeOnIp9uJgA5yw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="InvariantSemanticTypeConfiguration.ecore#//ComposedRuleConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WRxUkWEAEeOnIp9uJgA5yw" x="750" y="500" width="223" height="65"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bwCUEGEAEeOnIp9uJgA5yw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_bwGlgGEAEeOnIp9uJgA5yw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_bwIasGEAEeOnIp9uJgA5yw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_bwIasWEAEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bwIasmEAEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bwIas2EAEeOnIp9uJgA5yw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bwKP4GEAEeOnIp9uJgA5yw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_bwKP4WEAEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bwKP4mEAEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bwKP42EAEeOnIp9uJgA5yw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_bwCUEWEAEeOnIp9uJgA5yw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="InvariantSemanticTypeConfiguration.ecore#//AndRule"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bwCUEmEAEeOnIp9uJgA5yw" x="720" y="635"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_idxXYGEAEeOnIp9uJgA5yw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_id0asGEAEeOnIp9uJgA5yw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_id2P4GEAEeOnIp9uJgA5yw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_id2P4WEAEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_id2P4mEAEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_id2P42EAEeOnIp9uJgA5yw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_id4sIGEAEeOnIp9uJgA5yw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_id4sIWEAEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_id4sImEAEeOnIp9uJgA5yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_id4sI2EAEeOnIp9uJgA5yw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_idxXYWEAEeOnIp9uJgA5yw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="InvariantSemanticTypeConfiguration.ecore#//OrRule"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_idxXYmEAEeOnIp9uJgA5yw" x="910" y="636"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_198uYVgsEeOZc_L6ctfnzA"/>
+ <element xmi:type="ecore:EPackage" href="InvariantSemanticTypeConfiguration.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_pnZL8FgtEeOZc_L6ctfnzA" type="3003" source="_m4QsMFgtEeOZc_L6ctfnzA" target="_U563UFgtEeOZc_L6ctfnzA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_pnZL8VgtEeOZc_L6ctfnzA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_pnZL8lgtEeOZc_L6ctfnzA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pnZL81gtEeOZc_L6ctfnzA" points="[4, -1, 1, 144]$[4, -120, 1, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pnf5oFgtEeOZc_L6ctfnzA" id="(0.4854771784232365,0.01652892561983471)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pnggsFgtEeOZc_L6ctfnzA" id="(0.49382716049382713,0.7967479674796748)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_AyD7wFguEeOZc_L6ctfnzA" type="3002" source="_m4QsMFgtEeOZc_L6ctfnzA" target="_9PhpIFgtEeOZc_L6ctfnzA">
+ <children xmi:type="notation:Node" xmi:id="_AyEi0FguEeOZc_L6ctfnzA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AyEi0VguEeOZc_L6ctfnzA" x="-37" y="-12"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_AyFJ4FguEeOZc_L6ctfnzA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AyFJ4VguEeOZc_L6ctfnzA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_AyD7wVguEeOZc_L6ctfnzA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AyD7wlguEeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="InvariantSemanticTypeConfiguration.ecore#//InvariantSemanticTypeConfiguration/invariantRuleConfiguration"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AyD7w1guEeOZc_L6ctfnzA" points="[38, -156, -288, -17]$[279, -156, -47, -17]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AyKpcFguEeOZc_L6ctfnzA" id="(0.8423236514522822,0.734982332155477)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AyKpcVguEeOZc_L6ctfnzA" id="(0.1991701244813278,0.6115702479338843)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_knk8gGEAEeOnIp9uJgA5yw" type="3003" source="_WRwtgGEAEeOnIp9uJgA5yw" target="_9PhpIFgtEeOZc_L6ctfnzA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_knk8gWEAEeOnIp9uJgA5yw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_knk8gmEAEeOnIp9uJgA5yw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_knk8g2EAEeOnIp9uJgA5yw" points="[-9, -12, 116, 151]$[-85, -103, 40, 60]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_knuGcGEAEeOnIp9uJgA5yw" id="(0.5201793721973094,0.2)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_lKVEQGEAEeOnIp9uJgA5yw" type="3003" source="_bwCUEGEAEeOnIp9uJgA5yw" target="_WRwtgGEAEeOnIp9uJgA5yw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_lKVEQWEAEeOnIp9uJgA5yw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_lKVEQmEAEeOnIp9uJgA5yw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lKVrUGEAEeOnIp9uJgA5yw" points="[11, -20, -79, 104]$[11, -60, -79, 64]$[80, -60, -10, 64]$[80, -92, -10, 32]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_l2N54GEAEeOnIp9uJgA5yw" type="3003" source="_idxXYGEAEeOnIp9uJgA5yw" target="_WRwtgGEAEeOnIp9uJgA5yw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_l2N54WEAEeOnIp9uJgA5yw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_l2N54mEAEeOnIp9uJgA5yw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_l2N542EAEeOnIp9uJgA5yw" points="[-40, -20, 60, 105]$[-40, -61, 60, 64]$[-110, -61, -10, 64]$[-110, -93, -10, 32]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_m3-44GEAEeOnIp9uJgA5yw" type="3002" source="_WRwtgGEAEeOnIp9uJgA5yw" target="_9PhpIFgtEeOZc_L6ctfnzA">
+ <children xmi:type="notation:Node" xmi:id="_m4CjQGEAEeOnIp9uJgA5yw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m4CjQWEAEeOnIp9uJgA5yw" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_m4E_gGEAEeOnIp9uJgA5yw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m4E_gWEAEeOnIp9uJgA5yw" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_m3-44WEAEeOnIp9uJgA5yw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_m3-44mEAEeOnIp9uJgA5yw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="InvariantSemanticTypeConfiguration.ecore#//ComposedRuleConfiguration/composedRules"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_m3-442EAEeOnIp9uJgA5yw" points="[-32, 10, 2, 155]$[-193, 10, -159, 155]$[-193, -135, -159, 10]$[-42, -135, -8, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m4NiYGEAEeOnIp9uJgA5yw" id="(0.14798206278026907,0.4)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m4NiYWEAEeOnIp9uJgA5yw" id="(0.03734439834024896,0.71900826446281)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantSemanticTypeConfiguration.genmodel b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantSemanticTypeConfiguration.genmodel
new file mode 100644
index 00000000000..6e1996e1a4d
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/InvariantSemanticTypeConfiguration.genmodel
@@ -0,0 +1,25 @@
+<?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" copyrightText="Copyright (c) 2013 CEA LIST.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA; CEA LIST - Initial API and implementation"
+ modelDirectory="/org.eclipse.papyrus.infra.extendedtypes/src-gen" creationSubmenus="true"
+ editDirectory="/org.eclipse.papyrus.infra.extendedtypes.edit/src-gen" editorDirectory="/org.eclipse.papyrus.infra.extendedtypes.editor/src-gen"
+ modelPluginID="org.eclipse.papyrus.infra.extendedtypes" modelName="InvariantSemanticTypeConfiguration"
+ rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" testsDirectory="/org.eclipse.papyrus.infra.extendedtypes.tests/src-gen"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
+ usedGenPackages="../../org.eclipse.papyrus.infra.queries.core.configuration/model/Configuration.genmodel#//configuration ../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ExtendedTypes.genmodel#//extendedtypes ../../org.eclipse.emf.facet.infra.query/model/query.genmodel#//query ../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+ operationReflection="true" importOrganizing="true">
+ <foreignModel>InvariantSemanticTypeConfiguration.ecore</foreignModel>
+ <genPackages prefix="InvariantSemanticTypeConfiguration" basePackage="org.eclipse.papyrus.infra.extendedtypes"
+ resource="XML" disposableProviderFactory="true" childCreationExtenders="true"
+ ecorePackage="InvariantSemanticTypeConfiguration.ecore#/">
+ <genClasses ecoreClass="InvariantSemanticTypeConfiguration.ecore#//InvariantSemanticTypeConfiguration">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference InvariantSemanticTypeConfiguration.ecore#//InvariantSemanticTypeConfiguration/invariantRuleConfiguration"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="InvariantSemanticTypeConfiguration.ecore#//InvariantRuleConfiguration"/>
+ <genClasses image="false" ecoreClass="InvariantSemanticTypeConfiguration.ecore#//ComposedRuleConfiguration">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference InvariantSemanticTypeConfiguration.ecore#//ComposedRuleConfiguration/composedRules"/>
+ </genClasses>
+ <genClasses ecoreClass="InvariantSemanticTypeConfiguration.ecore#//AndRule"/>
+ <genClasses ecoreClass="InvariantSemanticTypeConfiguration.ecore#//OrRule"/>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/QueryBasedMatcherConfiguration.ecore b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/QueryBasedMatcherConfiguration.ecore
new file mode 100644
index 00000000000..3eaff0ec21b
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/QueryBasedMatcherConfiguration.ecore
@@ -0,0 +1,9 @@
+<?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="querybasedmatcherconfiguration" nsURI="http://www.eclipse.org/papyrus/infra/extendedtypes/matcher/querybased/1.0"
+ nsPrefix="querybasedmatcherconfiguration">
+ <eClassifiers xsi:type="ecore:EClass" name="QueryBasedMatcherConfiguration" eSuperTypes="ExtendedTypes.ecore#//MatcherConfiguration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="queryConfiguration" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.papyrus.infra.queries.core.configuration/model/Configuration.ecore#//QueryConfiguration"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/QueryBasedMatcherConfiguration.ecorediag b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/QueryBasedMatcherConfiguration.ecorediag
new file mode 100644
index 00000000000..f044bba6659
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/model/QueryBasedMatcherConfiguration.ecorediag
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram 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" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_lYQ_cFg1EeOZc_L6ctfnzA" type="EcoreTools" name="QueryBasedMatcherConfiguration" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_pubucFg1EeOZc_L6ctfnzA" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pysjYFg1EeOZc_L6ctfnzA" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pysjYVg1EeOZc_L6ctfnzA" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_pujqQFg1EeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_pujqQVg1EeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_pujqQlg1EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pujqQ1g1EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pujqRFg1EeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_pukRUFg1EeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_pukRUVg1EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pukRUlg1EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pukRU1g1EeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_pubucVg1EeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12560536" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="ExtendedTypes.ecore#//MatcherConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pubuclg1EeOZc_L6ctfnzA" x="200" y="60" width="283" height="103"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_uWQOIFg1EeOZc_L6ctfnzA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_uWRcQFg1EeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_uWSDUFg1EeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_uWSDUVg1EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uWSDUlg1EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uWSDU1g1EeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_uWSqYFg1EeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_uWSqYVg1EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uWSqYlg1EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uWSqY1g1EeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_uWQOIVg1EeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="QueryBasedMatcherConfiguration.ecore#//QueryBasedMatcherConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uWQOIlg1EeOZc_L6ctfnzA" x="200" y="320" width="283" height="123"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1Jp0kFg1EeOZc_L6ctfnzA" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1KapkFg1EeOZc_L6ctfnzA" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1KapkVg1EeOZc_L6ctfnzA" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_1JqboFg1EeOZc_L6ctfnzA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_1JrCsFg1EeOZc_L6ctfnzA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_1JrCsVg1EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1JrCslg1EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1JrCs1g1EeOZc_L6ctfnzA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1JrCtFg1EeOZc_L6ctfnzA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_1JrCtVg1EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1JrCtlg1EeOZc_L6ctfnzA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1JrCt1g1EeOZc_L6ctfnzA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_1Jp0kVg1EeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="12560536" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.papyrus.infra.queries.core.configuration/model/Configuration.ecore#//QueryConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1Jp0klg1EeOZc_L6ctfnzA" x="740" y="320" width="283" height="123"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_lYQ_cVg1EeOZc_L6ctfnzA"/>
+ <element xmi:type="ecore:EPackage" href="QueryBasedMatcherConfiguration.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_xD0noFg1EeOZc_L6ctfnzA" type="3003" source="_uWQOIFg1EeOZc_L6ctfnzA" target="_pubucFg1EeOZc_L6ctfnzA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_xD0noVg1EeOZc_L6ctfnzA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_xD0nolg1EeOZc_L6ctfnzA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xD0no1g1EeOZc_L6ctfnzA" points="[0, -7, 0, 210]$[0, -166, 0, 51]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xD4SAFg1EeOZc_L6ctfnzA" id="(0.49823321554770317,0.06504065040650407)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="__GAI8Fg1EeOZc_L6ctfnzA" type="3002" source="_uWQOIFg1EeOZc_L6ctfnzA" target="_1Jp0kFg1EeOZc_L6ctfnzA">
+ <children xmi:type="notation:Node" xmi:id="__GAwAFg1EeOZc_L6ctfnzA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__GAwAVg1EeOZc_L6ctfnzA" x="-17" y="-13"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__GAwAlg1EeOZc_L6ctfnzA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__GAwA1g1EeOZc_L6ctfnzA" x="23" y="27"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="__GAI8Vg1EeOZc_L6ctfnzA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="__GAI8lg1EeOZc_L6ctfnzA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="QueryBasedMatcherConfiguration.ecore#//QueryBasedMatcherConfiguration/queryConfiguration"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__GAI81g1EeOZc_L6ctfnzA" points="[53, 14, -295, -1]$[312, 14, -36, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__GEaYFg1EeOZc_L6ctfnzA" id="(0.8127208480565371,0.3902439024390244)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__GEaYVg1EeOZc_L6ctfnzA" id="(0.13074204946996468,0.5203252032520326)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/plugin.xml b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/plugin.xml
index fc82ce61a32..f7bde5ba19e 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/plugin.xml
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/plugin.xml
@@ -1,51 +1,155 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!--
- <copyright>
- </copyright>
-
- $Id$
--->
-
-<plugin>
- <extension-point id="extendedTypesSetConfiguration" name="Configuration for registering Extended Element Types Sets" schema="schema/extendedTypesSetConfiguration.exsd"/>
- <extension-point id="extendedElementTypeActionProvider" name="Extended Element Type Action Provider" schema="schema/extendedElementTypeActionProvider.exsd"/>
-
- <extension point="org.eclipse.emf.ecore.generated_package">
- <package
- uri="http://www.eclipse.org/papyrus/diagram/types/extendedtypes/0.7"
- class="org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage"
- genModel="model/ExtendedTypes.genmodel"/>
- </extension>
-
- <extension point="org.eclipse.emf.ecore.extension_parser">
- <parser
- type="extendedtypes"
- class="org.eclipse.papyrus.infra.extendedtypes.util.ExtendedtypesResourceFactoryImpl"/>
- </extension>
- <extension
- point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
- <metamodel
- nsURI="http://www.eclipse.org/uml2/3.0.0/UML">
- <adviceBinding
- class="org.eclipse.papyrus.infra.extendedtypes.advices.ExtendedTypesOwnerAdvice"
- id="org.eclipse.papyrus.uml.advice.ExtendedTypesOwnerAdvice"
- inheritance="all"
- typeId="org.eclipse.papyrus.uml.Element">
- </adviceBinding>
- </metamodel>
- </extension>
- <extension
- point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings">
- <binding
- context="org.eclipse.papyrus.infra.services.edit.TypeContext">
- <elementType
- pattern="org\.eclipse\.papyrus\.uml\.([^d]|$|d([^i]|$)|di([^a]|$)|dia([^g]|$)|diag([^r]|$)|diagr([^a]|$)|diagra([^m]|$))">
- </elementType>
- <advice
- ref="org.eclipse.papyrus.uml.advice.ExtendedTypesOwnerAdvice">
- </advice>
- </binding>
- </extension>
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+ <extension-point id="extendedElementTypeSet" name="ExtendedElementTypeSet Configuration Model" schema="schema/extendedElementTypeSet.exsd"/>
+ <extension-point id="extendedElementTypeActionProvider" name="Extended Element Type Action Provider" schema="schema/extendedElementTypeActionProvider.exsd"/>
+ <extension-point id="extendedTypeConfiguration" name="extended type configuration" schema="schema/extendedTypeConfiguration.exsd"/>
+ <extension-point id="invariantRule" name="Invariant Rule Extension Point" schema="schema/invariantRule.exsd"/>
+ <extension-point id="elementMatcherConfiguration" name="Element Macher Configuration" schema="schema/elementMatcherConfiguration.exsd"/>
+
+<!--
+ <extension
+ point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
+ <metamodel
+ nsURI="http://www.eclipse.org/uml2/3.0.0/UML">
+ <adviceBinding
+ class="org.eclipse.papyrus.infra.extendedtypes.advices.ExtendedTypesOwnerAdvice"
+ id="org.eclipse.papyrus.uml.advice.ExtendedTypesOwnerAdvice"
+ inheritance="all"
+ typeId="org.eclipse.papyrus.uml.Element">
+ </adviceBinding>
+ </metamodel>
+ </extension>
+ -->
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AspectSemantic -->
+ <package
+ uri="http://www.eclipse.org/papyrus/infra/extendedtypes/semantic/aspect/1.0"
+ class="org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticPackage"
+ genModel="model/AspectSemantic.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.extension_parser">
+ <!-- @generated AspectSemantic -->
+ <parser
+ type="aspectsemantic"
+ class="org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.util.AspectSemanticResourceFactoryImpl"/>
+ </extension>
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated InvariantSemanticTypeConfiguration -->
+ <package
+ uri="http://www.eclipse.org/papyrus/infra/extendedtypes/semantictype/invariant/1.0"
+ class="org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage"
+ genModel="model/InvariantSemanticTypeConfiguration.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.extension_parser">
+ <!-- @generated InvariantSemanticTypeConfiguration -->
+ <parser
+ type="invariantsemantictypeconfiguration"
+ class="org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.util.InvariantSemanticTypeConfigurationResourceFactoryImpl"/>
+ </extension>
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated ExtendedTypes -->
+ <package
+ uri="http://www.eclipse.org/papyrus/infra/extendedtypes/1.0"
+ class="org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage"
+ genModel="model/ExtendedTypes.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.extension_parser">
+ <!-- @generated ExtendedTypes -->
+ <parser
+ type="extendedtypes"
+ class="org.eclipse.papyrus.infra.extendedtypes.util.ExtendedtypesResourceFactoryImpl"/>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.infra.extendedtypes.extendedTypeConfiguration">
+ <configuration
+ configurationClass="org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfiguration"
+ description="Configuration for Semantic element Types that have invariants (always same father, always have a type, etc.)"
+ factoryClass="org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantElementTypeFactory"
+ name="Invariant Semantic Type Configuration">
+ </configuration>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.infra.extendedtypes.invariantRule">
+ <invariantRule
+ configurationClass="org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.AndRule"
+ editHelperAdvice="org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.AndRuleEditHelperAdvice">
+ </invariantRule>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.infra.extendedtypes.invariantRule">
+ <invariantRule
+ configurationClass="org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.OrRule"
+ editHelperAdvice="org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.OrRuleEditHelperAdvice">
+ </invariantRule>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.infra.extendedtypes.invariantRule">
+ <invariantRule
+ configurationClass="org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfiguration"
+ configurationModelCreation="org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationModelCreation"
+ editHelperAdvice="org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerEditHelperAdvice"
+ semanticTypeDescriptor="org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationContainerDescriptor">
+ </invariantRule>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.infra.core.service">
+ <service
+ classname="org.eclipse.papyrus.infra.extendedtypes.ExtendedTypeRegistryService"
+ description="Service used to registrer extended element types in the registry"
+ priority="50"
+ startKind="startup">
+ </service>
+ </extension>
+
+ <extension
+ point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
+ <metamodel
+ nsURI="http://www.eclipse.org/uml2/4.0.0/UML">
+ <adviceBinding
+ class="org.eclipse.papyrus.infra.extendedtypes.advices.ExtendedTypesOwnerAdvice"
+ id="org.eclipse.papyrus.uml.advice.ExtendedTypesOwnerAdvice"
+ inheritance="all"
+ typeId="org.eclipse.papyrus.uml.Element">
+ </adviceBinding>
+ </metamodel>
+ </extension>
+ <extension
+ point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings">
+ <binding
+ context="org.eclipse.papyrus.infra.services.edit.TypeContext">
+ <elementType
+ pattern="org\.eclipse\.papyrus\.uml\.([^d]|$|d([^i]|$)|di([^a]|$)|dia([^g]|$)|diag([^r]|$)|diagr([^a]|$)|diagra([^m]|$))">
+ </elementType>
+ <advice
+ ref="org.eclipse.papyrus.uml.advice.ExtendedTypesOwnerAdvice">
+ </advice>
+ </binding>
+ </extension>
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated InvariantContainerConfiguration -->
+ <package
+ uri="http://www.eclipse.org/papyrus/infra/extendedtypes/semantictype/invariant/container/1.0"
+ class="org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage"
+ genModel="model/InvariantContainerConfiguration.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.extension_parser">
+ <!-- @generated InvariantContainerConfiguration -->
+ <parser
+ type="invariantcontainerconfiguration"
+ class="org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.util.InvariantContainerConfigurationResourceFactoryImpl"/>
+ </extension>
+</plugin>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/elementMatcherConfiguration.exsd b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/elementMatcherConfiguration.exsd
new file mode 100644
index 00000000000..323f4997683
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/elementMatcherConfiguration.exsd
@@ -0,0 +1,129 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.infra.extendedtypes" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.infra.extendedtypes" id="extendedTypeMatcherConfiguration" name="Extended Type Macher Configuration"/>
+ </appInfo>
+ <documentation>
+ Extension point to define new kind of model-based configurable IElementMatcher and their factories
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="configuration"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="configuration">
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="configurationClass" type="string" use="required">
+ <annotation>
+ <documentation>
+ class name of the configuration model implementation
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.extendedtypes.MatcherConfiguration"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="factoryClass" type="string" use="required">
+ <annotation>
+ <documentation>
+ class name of the factory used to create new element matchers based on the given configuration
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.extendedtypes.IElementMatcherFactory"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="configurationModelCreation" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.extendedtypes.IElementMatcherConfigurationModelCreation"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 0.10.1
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/extendedTypesSetConfiguration.exsd b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/extendedElementTypeSet.exsd
index ef2762d198a..4489e6359c7 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/extendedTypesSetConfiguration.exsd
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/extendedElementTypeSet.exsd
@@ -1,130 +1,130 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.papyrus.infra.extendedtypes" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.papyrus.infra.extendedtypes" id="extendedTypesSetConfiguration" name="extendedTypesSetConfiguration"/>
- </appInfo>
- <documentation>
- This extension point is used to registered new extended element types for creation of semantic elements with specific post/pre actions and validation.
- </documentation>
- </annotation>
-
- <element name="extension">
- <annotation>
- <appInfo>
- <meta.element />
- </appInfo>
- </annotation>
- <complexType>
- <sequence>
- <element ref="configuration"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
-
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="configuration">
- <annotation>
- <documentation>
- define a new configuration for an extended element type set
- </documentation>
- </annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
- Name of this model file, used in user interface
- </documentation>
- </annotation>
- </attribute>
- <attribute name="icon" type="string">
- <annotation>
- <documentation>
- Path to an icon, used in user interface
- </documentation>
- <appInfo>
- <meta.attribute kind="resource"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="description" type="string">
- <annotation>
- <documentation>
- Description of the configuration
- </documentation>
- </annotation>
- </attribute>
- <attribute name="path" type="string" use="required">
- <annotation>
- <documentation>
- Path to the model file in the bundle.
-
-Note: Do not forget to add the file in the binary build of the plugin!
- </documentation>
- <appInfo>
- <meta.attribute kind="resource"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="id" type="string" use="required">
- <annotation>
- <documentation>
- The unique identifier of this contribution. To ease debug, it is advised to put the same identifier as the extended type set configuration identifier.
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- 0.7.1
- </documentation>
- </annotation>
-
-
-
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2010 CEA LIST
-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:
-CEA LIST - initial API and implementation
- </documentation>
- </annotation>
-
-</schema>
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.infra.extendedtypes" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.infra.extendedtypes" id="extendedTypesSet" name="extendedTypesSet"/>
+ </appInfo>
+ <documentation>
+ This extension point is used to registered element type sets configuration models
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="extendedTypesSet"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="extendedTypesSet">
+ <annotation>
+ <documentation>
+ define a new configuration for an extended element type set
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ Name of this model file, used in user interface
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ Path to an icon, used in user interface
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="resource"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ Description of the configuration
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="path" type="string" use="required">
+ <annotation>
+ <documentation>
+ Path to the model file in the bundle.
+
+Note: Do not forget to add the file in the binary build of the plugin!
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="resource"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ The unique identifier of this contribution. To ease debug, it is advised to put the same identifier as the extended type set configuration identifier.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 0.10.2
+ </documentation>
+ </annotation>
+
+
+
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2010-2013 CEA LIST
+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:
+CEA LIST - initial API and implementation
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/extendedTypeConfiguration.exsd b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/extendedTypeConfiguration.exsd
new file mode 100644
index 00000000000..bd02f7fe3a8
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/extendedTypeConfiguration.exsd
@@ -0,0 +1,141 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.infra.extendedtypes" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.infra.extendedtypes" id="extendedTypeConfiguration" name="extendedTypeConfiguration"/>
+ </appInfo>
+ <documentation>
+ This extension point is used to registered new kind of extended element types set configuration for creation of semantic/graphical elements
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="configuration"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="configuration">
+ <annotation>
+ <documentation>
+ define a new configuration for an extended element type set
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ Name of this model file, used in user interface
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="icon" type="string">
+ <annotation>
+ <documentation>
+ Path to an icon, used in user interface
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="resource"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+ Description of the configuration
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="factoryClass" type="string" use="required">
+ <annotation>
+ <documentation>
+ factory class that creates new ElementTypes based on the configuration model
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.extendedtypes.IExtendedElementTypeFactory"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="configurationClass" type="string" use="required">
+ <annotation>
+ <documentation>
+ Configuration class of the element type.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="itemProvider" type="string">
+ <annotation>
+ <documentation>
+ optional item provider used to add creation menus in the standard emf editor
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 0.10.2
+ </documentation>
+ </annotation>
+
+
+
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2010-2013 CEA LIST
+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:
+CEA LIST - initial API and implementation
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/invariantRule.exsd b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/invariantRule.exsd
new file mode 100644
index 00000000000..3f64e048204
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/invariantRule.exsd
@@ -0,0 +1,142 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.infra.extendedtypes" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.infra.extendedtypes" id="invariantRule" name="Invariant Rule Extension Point"/>
+ </appInfo>
+ <documentation>
+ Extension point to describe new invariant rules. These rules will be used by configurable element types at runtime
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="invariantRule"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="invariantRule">
+ <complexType>
+ <attribute name="configurationClass" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="elementMatcher" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.IConfigurableElementMatcher"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="semanticTypeDescriptor" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.IConfigurableContainerDescriptor"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="editHelperAdvice" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.IConfigurableEditHelperAdvice"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="configurationModelCreation" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.IConfigurationModelCreation"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/semanticTypeFactory.exsd b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/semanticTypeFactory.exsd
new file mode 100644
index 00000000000..1c9fc0286c6
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/schema/semanticTypeFactory.exsd
@@ -0,0 +1,152 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.infra.extendedtypes" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.papyrus.infra.extendedtypes" id="semanticTypeFactory" name="Semantic Type Factory"/>
+ </appInfo>
+ <documentation>
+ Extension point to describe new semantic type factories that will be configured by some EMF models. These factories will be usd to create new semantic ElementTypes (see GMF framework for more information about ElementTypes)
+
+
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="semanticTypeFactory"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="semanticTypeFactory">
+ <annotation>
+ <documentation>
+ Extension for new factories for semantic element types
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ Name of this factory (used in UIs)
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="factoryClass" type="string" use="required">
+ <annotation>
+ <documentation>
+ Implementation class of this factory.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.extendedtypes.semantic.ISemanticTypeFactory"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="factoryMetamodel" type="string" use="required">
+ <annotation>
+ <documentation>
+ Ecore file of the metamodel used to configure this factory
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="resource"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="rootEObject" type="string">
+ <annotation>
+ <documentation>
+ EClass of the main configuration element. This is used to identify the factory amongst others during element type creation.
+
+This EClass is expected to be defined in the factory metamodel.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.emf.ecore.EObject"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 1.0.0 - Initial API and Contribution by CEA LIST
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2013 CEA LIST
+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:
+CEA LIST - initial API and implementation
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ActionConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ActionConfiguration.java
index df2cf89d490..ce336422b36 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ActionConfiguration.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ActionConfiguration.java
@@ -1,81 +1,62 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Action Configuration</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration#getLabel <em>Label</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration#getId <em>Id</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getActionConfiguration()
- * @model abstract="true"
- * @generated
- */
-public interface ActionConfiguration extends EObject {
- /**
- * Returns the value of the '<em><b>Label</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Label</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Label</em>' attribute.
- * @see #setLabel(String)
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getActionConfiguration_Label()
- * @model
- * @generated
- */
- String getLabel();
-
- /**
- * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration#getLabel <em>Label</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Label</em>' attribute.
- * @see #getLabel()
- * @generated
- */
- void setLabel(String value);
-
- /**
- * Returns the value of the '<em><b>Id</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Id</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Id</em>' attribute.
- * @see #setId(String)
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getActionConfiguration_Id()
- * @model required="true"
- * @generated
- */
- String getId();
-
- /**
- * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration#getId <em>Id</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Id</em>' attribute.
- * @see #getId()
- * @generated
- */
- void setId(String value);
-
-} // ActionConfiguration
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.papyrus.infra.queries.core.configuration.QueryConfiguration;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object ' <em><b>Action Configuration</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration#getPreValidationQueryConfiguration <em>Pre Validation Query Configuration
+ * </em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getActionConfiguration()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ActionConfiguration extends ConfigurationElement {
+
+ /**
+ * Returns the value of the ' <em><b>Pre Validation Query Configuration</b></em>' reference. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pre Validation Query Configuration</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Pre Validation Query Configuration</em>'
+ * reference.
+ * @see #setPreValidationQueryConfiguration(QueryConfiguration)
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getActionConfiguration_PreValidationQueryConfiguration()
+ * @model
+ * @generated
+ */
+ QueryConfiguration getPreValidationQueryConfiguration();
+
+ /**
+ * Sets the value of the ' {@link org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration#getPreValidationQueryConfiguration
+ * <em>Pre Validation Query Configuration</em>}' reference. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the ' <em>Pre Validation Query Configuration</em>' reference.
+ * @see #getPreValidationQueryConfiguration()
+ * @generated
+ */
+ void setPreValidationQueryConfiguration(QueryConfiguration value);
+} // ActionConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ConfigurationElement.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ConfigurationElement.java
new file mode 100644
index 00000000000..69524d9a504
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ConfigurationElement.java
@@ -0,0 +1,147 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object ' <em><b>Configuration Element</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getIdentifier <em>Identifier</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getIconEntry <em>Icon Entry</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getConfigurationElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ConfigurationElement extends EObject {
+
+ /**
+ * 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)
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getConfigurationElement_Name()
+ * @model required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#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>Description</b></em>' attribute. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Description</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Description</em>' attribute.
+ * @see #setDescription(String)
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getConfigurationElement_Description()
+ * @model
+ * @generated
+ */
+ String getDescription();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getDescription <em>Description</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Description</em>' attribute.
+ * @see #getDescription()
+ * @generated
+ */
+ void setDescription(String value);
+
+ /**
+ * Returns the value of the '<em><b>Identifier</b></em>' attribute. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Identifier</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Identifier</em>' attribute.
+ * @see #setIdentifier(String)
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getConfigurationElement_Identifier()
+ * @model required="true"
+ * @generated
+ */
+ String getIdentifier();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getIdentifier <em>Identifier</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Identifier</em>' attribute.
+ * @see #getIdentifier()
+ * @generated
+ */
+ void setIdentifier(String value);
+
+ /**
+ * Returns the value of the '<em><b>Icon Entry</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Icon Entry</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>Icon Entry</em>' containment reference.
+ * @see #setIconEntry(IconEntry)
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getConfigurationElement_IconEntry()
+ * @model containment="true"
+ * @generated
+ */
+ IconEntry getIconEntry();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getIconEntry <em>Icon Entry</em>}' containment
+ * reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Icon Entry</em>' containment reference.
+ * @see #getIconEntry()
+ * @generated
+ */
+ void setIconEntry(IconEntry value);
+} // ConfigurationElement
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ElementTypeAdviceConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ElementTypeAdviceConfiguration.java
new file mode 100644
index 00000000000..d1d32ecdcb5
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ElementTypeAdviceConfiguration.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object ' <em><b>Element Type Advice Configuration</b></em>'. <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getElementTypeAdviceConfiguration()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ElementTypeAdviceConfiguration extends ConfigurationElement {
+} // ElementTypeAdviceConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ElementTypeConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ElementTypeConfiguration.java
new file mode 100644
index 00000000000..3fe60de8ef9
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ElementTypeConfiguration.java
@@ -0,0 +1,137 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object ' <em><b>Element Type Configuration</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getHint <em>Hint</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getKindName <em>Kind Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getSpecializedTypesID <em>Specialized Types ID</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getMatcherConfiguration <em>Matcher Configuration</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getElementTypeConfiguration()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ElementTypeConfiguration extends ConfigurationElement {
+
+ /**
+ * Returns the value of the '<em><b>Hint</b></em>' attribute.
+ * The default value is <code>"ExtendedElements"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hint</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Hint</em>' attribute.
+ * @see #setHint(String)
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getElementTypeConfiguration_Hint()
+ * @model default="ExtendedElements"
+ * @generated
+ */
+ String getHint();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getHint <em>Hint</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Hint</em>' attribute.
+ * @see #getHint()
+ * @generated
+ */
+ void setHint(String value);
+
+ /**
+ * Returns the value of the '<em><b>Kind Name</b></em>' attribute. The
+ * default value is <code>"org.eclipse.gmf.runtime.emf.type.core.IHintedType"</code>. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kind 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>Kind Name</em>' attribute.
+ * @see #setKindName(String)
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getElementTypeConfiguration_KindName()
+ * @model default="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ * @generated
+ */
+ String getKindName();
+
+ /**
+ * Sets the value of the ' {@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getKindName
+ * <em>Kind Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @param value
+ * the new value of the '<em>Kind Name</em>' attribute.
+ * @see #getKindName()
+ * @generated
+ */
+ void setKindName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Specialized Types ID</b></em>' attribute
+ * list. The list contents are of type {@link java.lang.String}. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Specialized Types ID</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>Specialized Types ID</em>' attribute list.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getElementTypeConfiguration_SpecializedTypesID()
+ * @model required="true"
+ * @generated
+ */
+ EList<String> getSpecializedTypesID();
+
+ /**
+ * Returns the value of the '<em><b>Matcher Configuration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Matcher Configuration</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>Matcher Configuration</em>' containment reference.
+ * @see #setMatcherConfiguration(MatcherConfiguration)
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getElementTypeConfiguration_MatcherConfiguration()
+ * @model containment="true"
+ * @generated
+ */
+ MatcherConfiguration getMatcherConfiguration();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getMatcherConfiguration
+ * <em>Matcher Configuration</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Matcher Configuration</em>' containment reference.
+ * @see #getMatcherConfiguration()
+ * @generated
+ */
+ void setMatcherConfiguration(MatcherConfiguration value);
+} // ElementTypeConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedElementTypeConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedElementTypeConfiguration.java
deleted file mode 100644
index 8376a05bbe1..00000000000
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedElementTypeConfiguration.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.papyrus.infra.queries.core.configuration.QueryConfiguration;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Extended Element Type Configuration</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getId <em>Id</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getIconEntry <em>Icon Entry</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getHint <em>Hint</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getKindName <em>Kind Name</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getSpecializedTypesID <em>Specialized Types ID</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getPreValidation <em>Pre Validation</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getPreAction <em>Pre Action</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getPostAction <em>Post Action</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getSpecializedDiagramTypeID <em>Specialized Diagram Type ID</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeConfiguration()
- * @model
- * @generated
- */
-public interface ExtendedElementTypeConfiguration extends EObject {
- /**
- * 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)
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeConfiguration_Name()
- * @model required="true"
- * @generated
- */
- String getName();
-
- /**
- * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#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>Id</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Id</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Id</em>' attribute.
- * @see #setId(String)
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeConfiguration_Id()
- * @model required="true"
- * @generated
- */
- String getId();
-
- /**
- * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getId <em>Id</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Id</em>' attribute.
- * @see #getId()
- * @generated
- */
- void setId(String value);
-
- /**
- * Returns the value of the '<em><b>Icon Entry</b></em>' containment reference.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Icon Entry</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>Icon Entry</em>' containment reference.
- * @see #setIconEntry(IconEntry)
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeConfiguration_IconEntry()
- * @model containment="true"
- * @generated
- */
- IconEntry getIconEntry();
-
- /**
- * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getIconEntry <em>Icon Entry</em>}' containment reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Icon Entry</em>' containment reference.
- * @see #getIconEntry()
- * @generated
- */
- void setIconEntry(IconEntry value);
-
- /**
- * Returns the value of the '<em><b>Hint</b></em>' attribute.
- * The default value is <code>"ExtendedElements"</code>.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Hint</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Hint</em>' attribute.
- * @see #setHint(String)
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeConfiguration_Hint()
- * @model default="ExtendedElements"
- * @generated
- */
- String getHint();
-
- /**
- * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getHint <em>Hint</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Hint</em>' attribute.
- * @see #getHint()
- * @generated
- */
- void setHint(String value);
-
- /**
- * Returns the value of the '<em><b>Kind Name</b></em>' attribute.
- * The default value is <code>"org.eclipse.gmf.runtime.emf.type.core.IHintedType"</code>.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Kind 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>Kind Name</em>' attribute.
- * @see #setKindName(String)
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeConfiguration_KindName()
- * @model default="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
- * @generated
- */
- String getKindName();
-
- /**
- * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getKindName <em>Kind Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Kind Name</em>' attribute.
- * @see #getKindName()
- * @generated
- */
- void setKindName(String value);
-
- /**
- * Returns the value of the '<em><b>Specialized Types ID</b></em>' attribute list.
- * The list contents are of type {@link java.lang.String}.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Specialized Types ID</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>Specialized Types ID</em>' attribute list.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeConfiguration_SpecializedTypesID()
- * @model required="true"
- * @generated
- */
- EList<String> getSpecializedTypesID();
-
- /**
- * Returns the value of the '<em><b>Pre Validation</b></em>' reference list.
- * The list contents are of type {@link org.eclipse.papyrus.infra.queries.core.configuration.QueryConfiguration}.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Pre Validation</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>Pre Validation</em>' reference list.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeConfiguration_PreValidation()
- * @model
- * @generated
- */
- EList<QueryConfiguration> getPreValidation();
-
- /**
- * Returns the value of the '<em><b>Pre Action</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.papyrus.infra.extendedtypes.PreActionConfiguration}.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Pre Action</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>Pre Action</em>' containment reference list.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeConfiguration_PreAction()
- * @model containment="true"
- * @generated
- */
- EList<PreActionConfiguration> getPreAction();
-
- /**
- * Returns the value of the '<em><b>Post Action</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.papyrus.infra.extendedtypes.PostActionConfiguration}.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Post Action</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>Post Action</em>' containment reference list.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeConfiguration_PostAction()
- * @model containment="true"
- * @generated
- */
- EList<PostActionConfiguration> getPostAction();
-
- /**
- * Returns the value of the '<em><b>Specialized Diagram Type ID</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Specialized Diagram Type ID</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Specialized Diagram Type ID</em>' attribute.
- * @see #setSpecializedDiagramTypeID(String)
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeConfiguration_SpecializedDiagramTypeID()
- * @model
- * @generated
- */
- String getSpecializedDiagramTypeID();
-
- /**
- * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getSpecializedDiagramTypeID <em>Specialized Diagram Type ID</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Specialized Diagram Type ID</em>' attribute.
- * @see #getSpecializedDiagramTypeID()
- * @generated
- */
- void setSpecializedDiagramTypeID(String value);
-
-} // ExtendedElementTypeConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedElementTypeSet.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedElementTypeSet.java
index 4eea7c49484..a8075697f79 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedElementTypeSet.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedElementTypeSet.java
@@ -1,72 +1,77 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Extended Element Type Set</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet#getElementType <em>Element Type</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet#getId <em>Id</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeSet()
- * @model
- * @generated
- */
-public interface ExtendedElementTypeSet extends EObject {
- /**
- * Returns the value of the '<em><b>Element Type</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration}.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Element 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>Element Type</em>' containment reference list.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeSet_ElementType()
- * @model containment="true" required="true"
- * @generated
- */
- EList<ExtendedElementTypeConfiguration> getElementType();
-
- /**
- * Returns the value of the '<em><b>Id</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Id</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Id</em>' attribute.
- * @see #setId(String)
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeSet_Id()
- * @model required="true"
- * @generated
- */
- String getId();
-
- /**
- * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet#getId <em>Id</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Id</em>' attribute.
- * @see #getId()
- * @generated
- */
- void setId(String value);
-
-} // ExtendedElementTypeSet
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object ' <em><b>Extended Element Type Set</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet#getElementType <em>Element Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet#isExtensible <em>Extensible</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeSet()
+ * @model
+ * @generated
+ */
+public interface ExtendedElementTypeSet extends ConfigurationElement {
+
+ /**
+ * Returns the value of the '<em><b>Element Type</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element 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>Element Type</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeSet_ElementType()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ EList<ElementTypeConfiguration> getElementType();
+
+ /**
+ * Returns the value of the '<em><b>Extensible</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Extensible</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Extensible</em>' attribute.
+ * @see #setExtensible(boolean)
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getExtendedElementTypeSet_Extensible()
+ * @model
+ * @generated
+ */
+ boolean isExtensible();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet#isExtensible <em>Extensible</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Extensible</em>' attribute.
+ * @see #isExtensible()
+ * @generated
+ */
+ void setExtensible(boolean value);
+} // ExtendedElementTypeSet
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedtypesFactory.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedtypesFactory.java
index f395b7b0c55..3850b629c4f 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedtypesFactory.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedtypesFactory.java
@@ -1,64 +1,63 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes;
-
-import org.eclipse.emf.ecore.EFactory;
-
-/**
- * <!-- 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.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage
- * @generated
- */
-public interface ExtendedtypesFactory extends EFactory {
- /**
- * The singleton instance of the factory.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- ExtendedtypesFactory eINSTANCE = org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesFactoryImpl.init();
-
- /**
- * Returns a new object of class '<em>Extended Element Type Set</em>'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return a new object of class '<em>Extended Element Type Set</em>'.
- * @generated
- */
- ExtendedElementTypeSet createExtendedElementTypeSet();
-
- /**
- * Returns a new object of class '<em>Extended Element Type Configuration</em>'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return a new object of class '<em>Extended Element Type Configuration</em>'.
- * @generated
- */
- ExtendedElementTypeConfiguration createExtendedElementTypeConfiguration();
-
- /**
- * Returns a new object of class '<em>Icon Entry</em>'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return a new object of class '<em>Icon Entry</em>'.
- * @generated
- */
- IconEntry createIconEntry();
-
- /**
- * Returns the package supported by this factory.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the package supported by this factory.
- * @generated
- */
- ExtendedtypesPackage getExtendedtypesPackage();
-
-} //ExtendedtypesFactory
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- 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.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage
+ * @generated
+ */
+public interface ExtendedtypesFactory extends EFactory {
+
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ ExtendedtypesFactory eINSTANCE = org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Extended Element Type Set</em>'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Extended Element Type Set</em>'.
+ * @generated
+ */
+ ExtendedElementTypeSet createExtendedElementTypeSet();
+
+ /**
+ * Returns a new object of class '<em>Icon Entry</em>'.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Icon Entry</em>'.
+ * @generated
+ */
+ IconEntry createIconEntry();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ExtendedtypesPackage getExtendedtypesPackage();
+} // ExtendedtypesFactory
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedtypesPackage.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedtypesPackage.java
index 6dba26a155e..ec02f83d68a 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedtypesPackage.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ExtendedtypesPackage.java
@@ -1,805 +1,1256 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-
-/**
- * <!-- 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.eclipse.papyrus.infra.extendedtypes.ExtendedtypesFactory
- * @model kind="package"
- * @generated
- */
-public interface ExtendedtypesPackage extends EPackage {
- /**
- * The package name.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- String eNAME = "extendedtypes";
-
- /**
- * The package namespace URI.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- String eNS_URI = "http://www.eclipse.org/papyrus/diagram/types/extendedtypes/0.7";
-
- /**
- * The package namespace name.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- String eNS_PREFIX = "extendedtypes";
-
- /**
- * The singleton instance of the package.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- ExtendedtypesPackage eINSTANCE = org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl.init();
-
- /**
- * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeSetImpl <em>Extended Element Type Set</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeSetImpl
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getExtendedElementTypeSet()
- * @generated
- */
- int EXTENDED_ELEMENT_TYPE_SET = 0;
-
- /**
- * The feature id for the '<em><b>Element Type</b></em>' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE = 0;
-
- /**
- * The feature id for the '<em><b>Id</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTENDED_ELEMENT_TYPE_SET__ID = 1;
-
- /**
- * The number of structural features of the '<em>Extended Element Type Set</em>' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTENDED_ELEMENT_TYPE_SET_FEATURE_COUNT = 2;
-
- /**
- * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeConfigurationImpl <em>Extended Element Type Configuration</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeConfigurationImpl
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getExtendedElementTypeConfiguration()
- * @generated
- */
- int EXTENDED_ELEMENT_TYPE_CONFIGURATION = 1;
-
- /**
- * The feature id for the '<em><b>Name</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTENDED_ELEMENT_TYPE_CONFIGURATION__NAME = 0;
-
- /**
- * The feature id for the '<em><b>Id</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTENDED_ELEMENT_TYPE_CONFIGURATION__ID = 1;
-
- /**
- * The feature id for the '<em><b>Icon Entry</b></em>' containment reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTENDED_ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY = 2;
-
- /**
- * The feature id for the '<em><b>Hint</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTENDED_ELEMENT_TYPE_CONFIGURATION__HINT = 3;
-
- /**
- * The feature id for the '<em><b>Kind Name</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTENDED_ELEMENT_TYPE_CONFIGURATION__KIND_NAME = 4;
-
- /**
- * The feature id for the '<em><b>Specialized Types ID</b></em>' attribute list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID = 5;
-
- /**
- * The feature id for the '<em><b>Pre Validation</b></em>' reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_VALIDATION = 6;
-
- /**
- * The feature id for the '<em><b>Pre Action</b></em>' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_ACTION = 7;
-
- /**
- * The feature id for the '<em><b>Post Action</b></em>' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTENDED_ELEMENT_TYPE_CONFIGURATION__POST_ACTION = 8;
-
- /**
- * The feature id for the '<em><b>Specialized Diagram Type ID</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID = 9;
-
- /**
- * The number of structural features of the '<em>Extended Element Type Configuration</em>' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTENDED_ELEMENT_TYPE_CONFIGURATION_FEATURE_COUNT = 10;
-
- /**
- * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.IconEntryImpl <em>Icon Entry</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.IconEntryImpl
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getIconEntry()
- * @generated
- */
- int ICON_ENTRY = 2;
-
- /**
- * The feature id for the '<em><b>Icon Path</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int ICON_ENTRY__ICON_PATH = 0;
-
- /**
- * The feature id for the '<em><b>Bundle Id</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int ICON_ENTRY__BUNDLE_ID = 1;
-
- /**
- * The number of structural features of the '<em>Icon Entry</em>' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int ICON_ENTRY_FEATURE_COUNT = 2;
-
- /**
- * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.ActionConfigurationImpl <em>Action Configuration</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ActionConfigurationImpl
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getActionConfiguration()
- * @generated
- */
- int ACTION_CONFIGURATION = 3;
-
- /**
- * The feature id for the '<em><b>Label</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int ACTION_CONFIGURATION__LABEL = 0;
-
- /**
- * The feature id for the '<em><b>Id</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int ACTION_CONFIGURATION__ID = 1;
-
- /**
- * The number of structural features of the '<em>Action Configuration</em>' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int ACTION_CONFIGURATION_FEATURE_COUNT = 2;
-
- /**
- * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.PreActionConfigurationImpl <em>Pre Action Configuration</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.PreActionConfigurationImpl
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getPreActionConfiguration()
- * @generated
- */
- int PRE_ACTION_CONFIGURATION = 4;
-
- /**
- * The feature id for the '<em><b>Label</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int PRE_ACTION_CONFIGURATION__LABEL = ACTION_CONFIGURATION__LABEL;
-
- /**
- * The feature id for the '<em><b>Id</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int PRE_ACTION_CONFIGURATION__ID = ACTION_CONFIGURATION__ID;
-
- /**
- * The number of structural features of the '<em>Pre Action Configuration</em>' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int PRE_ACTION_CONFIGURATION_FEATURE_COUNT = ACTION_CONFIGURATION_FEATURE_COUNT + 0;
-
- /**
- * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.PostActionConfigurationImpl <em>Post Action Configuration</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.PostActionConfigurationImpl
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getPostActionConfiguration()
- * @generated
- */
- int POST_ACTION_CONFIGURATION = 5;
-
- /**
- * The feature id for the '<em><b>Label</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int POST_ACTION_CONFIGURATION__LABEL = ACTION_CONFIGURATION__LABEL;
-
- /**
- * The feature id for the '<em><b>Id</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int POST_ACTION_CONFIGURATION__ID = ACTION_CONFIGURATION__ID;
-
- /**
- * The number of structural features of the '<em>Post Action Configuration</em>' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int POST_ACTION_CONFIGURATION_FEATURE_COUNT = ACTION_CONFIGURATION_FEATURE_COUNT + 0;
-
-
- /**
- * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet <em>Extended Element Type Set</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for class '<em>Extended Element Type Set</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet
- * @generated
- */
- EClass getExtendedElementTypeSet();
-
- /**
- * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet#getElementType <em>Element Type</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Element Type</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet#getElementType()
- * @see #getExtendedElementTypeSet()
- * @generated
- */
- EReference getExtendedElementTypeSet_ElementType();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet#getId <em>Id</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Id</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet#getId()
- * @see #getExtendedElementTypeSet()
- * @generated
- */
- EAttribute getExtendedElementTypeSet_Id();
-
- /**
- * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration <em>Extended Element Type Configuration</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for class '<em>Extended Element Type Configuration</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration
- * @generated
- */
- EClass getExtendedElementTypeConfiguration();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getName <em>Name</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Name</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getName()
- * @see #getExtendedElementTypeConfiguration()
- * @generated
- */
- EAttribute getExtendedElementTypeConfiguration_Name();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getId <em>Id</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Id</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getId()
- * @see #getExtendedElementTypeConfiguration()
- * @generated
- */
- EAttribute getExtendedElementTypeConfiguration_Id();
-
- /**
- * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getIconEntry <em>Icon Entry</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the containment reference '<em>Icon Entry</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getIconEntry()
- * @see #getExtendedElementTypeConfiguration()
- * @generated
- */
- EReference getExtendedElementTypeConfiguration_IconEntry();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getHint <em>Hint</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Hint</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getHint()
- * @see #getExtendedElementTypeConfiguration()
- * @generated
- */
- EAttribute getExtendedElementTypeConfiguration_Hint();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getKindName <em>Kind Name</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Kind Name</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getKindName()
- * @see #getExtendedElementTypeConfiguration()
- * @generated
- */
- EAttribute getExtendedElementTypeConfiguration_KindName();
-
- /**
- * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getSpecializedTypesID <em>Specialized Types ID</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute list '<em>Specialized Types ID</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getSpecializedTypesID()
- * @see #getExtendedElementTypeConfiguration()
- * @generated
- */
- EAttribute getExtendedElementTypeConfiguration_SpecializedTypesID();
-
- /**
- * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getPreValidation <em>Pre Validation</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the reference list '<em>Pre Validation</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getPreValidation()
- * @see #getExtendedElementTypeConfiguration()
- * @generated
- */
- EReference getExtendedElementTypeConfiguration_PreValidation();
-
- /**
- * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getPreAction <em>Pre Action</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Pre Action</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getPreAction()
- * @see #getExtendedElementTypeConfiguration()
- * @generated
- */
- EReference getExtendedElementTypeConfiguration_PreAction();
-
- /**
- * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getPostAction <em>Post Action</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Post Action</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getPostAction()
- * @see #getExtendedElementTypeConfiguration()
- * @generated
- */
- EReference getExtendedElementTypeConfiguration_PostAction();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getSpecializedDiagramTypeID <em>Specialized Diagram Type ID</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Specialized Diagram Type ID</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration#getSpecializedDiagramTypeID()
- * @see #getExtendedElementTypeConfiguration()
- * @generated
- */
- EAttribute getExtendedElementTypeConfiguration_SpecializedDiagramTypeID();
-
- /**
- * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.IconEntry <em>Icon Entry</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for class '<em>Icon Entry</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.IconEntry
- * @generated
- */
- EClass getIconEntry();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.IconEntry#getIconPath <em>Icon Path</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Icon Path</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.IconEntry#getIconPath()
- * @see #getIconEntry()
- * @generated
- */
- EAttribute getIconEntry_IconPath();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.IconEntry#getBundleId <em>Bundle Id</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Bundle Id</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.IconEntry#getBundleId()
- * @see #getIconEntry()
- * @generated
- */
- EAttribute getIconEntry_BundleId();
-
- /**
- * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration <em>Action Configuration</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for class '<em>Action Configuration</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration
- * @generated
- */
- EClass getActionConfiguration();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration#getLabel <em>Label</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Label</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration#getLabel()
- * @see #getActionConfiguration()
- * @generated
- */
- EAttribute getActionConfiguration_Label();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration#getId <em>Id</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Id</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration#getId()
- * @see #getActionConfiguration()
- * @generated
- */
- EAttribute getActionConfiguration_Id();
-
- /**
- * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.PreActionConfiguration <em>Pre Action Configuration</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for class '<em>Pre Action Configuration</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.PreActionConfiguration
- * @generated
- */
- EClass getPreActionConfiguration();
-
- /**
- * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.PostActionConfiguration <em>Post Action Configuration</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for class '<em>Post Action Configuration</em>'.
- * @see org.eclipse.papyrus.infra.extendedtypes.PostActionConfiguration
- * @generated
- */
- EClass getPostActionConfiguration();
-
- /**
- * 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
- */
- ExtendedtypesFactory getExtendedtypesFactory();
-
- /**
- * <!-- 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
- */
- interface Literals {
- /**
- * The meta object literal for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeSetImpl <em>Extended Element Type Set</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeSetImpl
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getExtendedElementTypeSet()
- * @generated
- */
- EClass EXTENDED_ELEMENT_TYPE_SET = eINSTANCE.getExtendedElementTypeSet();
-
- /**
- * The meta object literal for the '<em><b>Element Type</b></em>' containment reference list feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EReference EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE = eINSTANCE.getExtendedElementTypeSet_ElementType();
-
- /**
- * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute EXTENDED_ELEMENT_TYPE_SET__ID = eINSTANCE.getExtendedElementTypeSet_Id();
-
- /**
- * The meta object literal for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeConfigurationImpl <em>Extended Element Type Configuration</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeConfigurationImpl
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getExtendedElementTypeConfiguration()
- * @generated
- */
- EClass EXTENDED_ELEMENT_TYPE_CONFIGURATION = eINSTANCE.getExtendedElementTypeConfiguration();
-
- /**
- * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute EXTENDED_ELEMENT_TYPE_CONFIGURATION__NAME = eINSTANCE.getExtendedElementTypeConfiguration_Name();
-
- /**
- * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute EXTENDED_ELEMENT_TYPE_CONFIGURATION__ID = eINSTANCE.getExtendedElementTypeConfiguration_Id();
-
- /**
- * The meta object literal for the '<em><b>Icon Entry</b></em>' containment reference feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EReference EXTENDED_ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY = eINSTANCE.getExtendedElementTypeConfiguration_IconEntry();
-
- /**
- * The meta object literal for the '<em><b>Hint</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute EXTENDED_ELEMENT_TYPE_CONFIGURATION__HINT = eINSTANCE.getExtendedElementTypeConfiguration_Hint();
-
- /**
- * The meta object literal for the '<em><b>Kind Name</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute EXTENDED_ELEMENT_TYPE_CONFIGURATION__KIND_NAME = eINSTANCE.getExtendedElementTypeConfiguration_KindName();
-
- /**
- * The meta object literal for the '<em><b>Specialized Types ID</b></em>' attribute list feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID = eINSTANCE.getExtendedElementTypeConfiguration_SpecializedTypesID();
-
- /**
- * The meta object literal for the '<em><b>Pre Validation</b></em>' reference list feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EReference EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_VALIDATION = eINSTANCE.getExtendedElementTypeConfiguration_PreValidation();
-
- /**
- * The meta object literal for the '<em><b>Pre Action</b></em>' containment reference list feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EReference EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_ACTION = eINSTANCE.getExtendedElementTypeConfiguration_PreAction();
-
- /**
- * The meta object literal for the '<em><b>Post Action</b></em>' containment reference list feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EReference EXTENDED_ELEMENT_TYPE_CONFIGURATION__POST_ACTION = eINSTANCE.getExtendedElementTypeConfiguration_PostAction();
-
- /**
- * The meta object literal for the '<em><b>Specialized Diagram Type ID</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID = eINSTANCE.getExtendedElementTypeConfiguration_SpecializedDiagramTypeID();
-
- /**
- * The meta object literal for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.IconEntryImpl <em>Icon Entry</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.IconEntryImpl
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getIconEntry()
- * @generated
- */
- EClass ICON_ENTRY = eINSTANCE.getIconEntry();
-
- /**
- * The meta object literal for the '<em><b>Icon Path</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute ICON_ENTRY__ICON_PATH = eINSTANCE.getIconEntry_IconPath();
-
- /**
- * The meta object literal for the '<em><b>Bundle Id</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute ICON_ENTRY__BUNDLE_ID = eINSTANCE.getIconEntry_BundleId();
-
- /**
- * The meta object literal for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.ActionConfigurationImpl <em>Action Configuration</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ActionConfigurationImpl
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getActionConfiguration()
- * @generated
- */
- EClass ACTION_CONFIGURATION = eINSTANCE.getActionConfiguration();
-
- /**
- * The meta object literal for the '<em><b>Label</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute ACTION_CONFIGURATION__LABEL = eINSTANCE.getActionConfiguration_Label();
-
- /**
- * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute ACTION_CONFIGURATION__ID = eINSTANCE.getActionConfiguration_Id();
-
- /**
- * The meta object literal for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.PreActionConfigurationImpl <em>Pre Action Configuration</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.PreActionConfigurationImpl
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getPreActionConfiguration()
- * @generated
- */
- EClass PRE_ACTION_CONFIGURATION = eINSTANCE.getPreActionConfiguration();
-
- /**
- * The meta object literal for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.PostActionConfigurationImpl <em>Post Action Configuration</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.PostActionConfigurationImpl
- * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getPostActionConfiguration()
- * @generated
- */
- EClass POST_ACTION_CONFIGURATION = eINSTANCE.getPostActionConfiguration();
-
- }
-
-} //ExtendedtypesPackage
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- 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.eclipse.papyrus.infra.extendedtypes.ExtendedtypesFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ExtendedtypesPackage extends EPackage {
+
+ /**
+ * The package name.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNAME = "extendedtypes"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/infra/extendedtypes/1.0"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_PREFIX = "extendedtypes"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ ExtendedtypesPackage eINSTANCE = org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.ConfigurationElementImpl <em>Configuration Element</em>}'
+ * class.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ConfigurationElementImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getConfigurationElement()
+ * @generated
+ */
+ int CONFIGURATION_ELEMENT = 3;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION_ELEMENT__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION_ELEMENT__DESCRIPTION = 1;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION_ELEMENT__IDENTIFIER = 2;
+
+ /**
+ * The feature id for the '<em><b>Icon Entry</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION_ELEMENT__ICON_ENTRY = 3;
+
+ /**
+ * The number of structural features of the '<em>Configuration Element</em>' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION_ELEMENT_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeSetImpl <em>Extended Element Type Set</em>}'
+ * class.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeSetImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getExtendedElementTypeSet()
+ * @generated
+ */
+ int EXTENDED_ELEMENT_TYPE_SET = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_ELEMENT_TYPE_SET__NAME = CONFIGURATION_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_ELEMENT_TYPE_SET__DESCRIPTION = CONFIGURATION_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_ELEMENT_TYPE_SET__IDENTIFIER = CONFIGURATION_ELEMENT__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Icon Entry</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_ELEMENT_TYPE_SET__ICON_ENTRY = CONFIGURATION_ELEMENT__ICON_ENTRY;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' containment reference list.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE = CONFIGURATION_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Extensible</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_ELEMENT_TYPE_SET__EXTENSIBLE = CONFIGURATION_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Extended Element Type Set</em>' class.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_ELEMENT_TYPE_SET_FEATURE_COUNT = CONFIGURATION_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.ElementTypeConfigurationImpl
+ * <em>Element Type Configuration</em>}' class.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ElementTypeConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getElementTypeConfiguration()
+ * @generated
+ */
+ int ELEMENT_TYPE_CONFIGURATION = 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_CONFIGURATION__NAME = CONFIGURATION_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_CONFIGURATION__DESCRIPTION = CONFIGURATION_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_CONFIGURATION__IDENTIFIER = CONFIGURATION_ELEMENT__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Icon Entry</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY = CONFIGURATION_ELEMENT__ICON_ENTRY;
+
+ /**
+ * The feature id for the '<em><b>Hint</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_CONFIGURATION__HINT = CONFIGURATION_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Kind Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_CONFIGURATION__KIND_NAME = CONFIGURATION_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Specialized Types ID</b></em>' attribute list.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID = CONFIGURATION_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Matcher Configuration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_CONFIGURATION__MATCHER_CONFIGURATION = CONFIGURATION_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Element Type Configuration</em>' class.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_CONFIGURATION_FEATURE_COUNT = CONFIGURATION_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the ' {@link org.eclipse.papyrus.infra.extendedtypes.impl.IconEntryImpl
+ * <em>Icon Entry</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.IconEntryImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getIconEntry()
+ * @generated
+ */
+ int ICON_ENTRY = 2;
+
+ /**
+ * The feature id for the '<em><b>Icon Path</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ICON_ENTRY__ICON_PATH = 0;
+
+ /**
+ * The feature id for the '<em><b>Bundle Id</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ICON_ENTRY__BUNDLE_ID = 1;
+
+ /**
+ * The number of structural features of the '<em>Icon Entry</em>' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ICON_ENTRY_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.ElementTypeAdviceConfigurationImpl
+ * <em>Element Type Advice Configuration</em>}' class.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ElementTypeAdviceConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getElementTypeAdviceConfiguration()
+ * @generated
+ */
+ int ELEMENT_TYPE_ADVICE_CONFIGURATION = 12;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_ADVICE_CONFIGURATION__NAME = CONFIGURATION_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_ADVICE_CONFIGURATION__DESCRIPTION = CONFIGURATION_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_ADVICE_CONFIGURATION__IDENTIFIER = CONFIGURATION_ELEMENT__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Icon Entry</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_ADVICE_CONFIGURATION__ICON_ENTRY = CONFIGURATION_ELEMENT__ICON_ENTRY;
+
+ /**
+ * The number of structural features of the '<em>Element Type Advice Configuration</em>' class.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_ADVICE_CONFIGURATION_FEATURE_COUNT = CONFIGURATION_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.ViewTypeAdviceConfigurationImpl
+ * <em>View Type Advice Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ViewTypeAdviceConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getViewTypeAdviceConfiguration()
+ * @generated
+ */
+ int VIEW_TYPE_ADVICE_CONFIGURATION = 4;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_ADVICE_CONFIGURATION__NAME = ELEMENT_TYPE_ADVICE_CONFIGURATION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_ADVICE_CONFIGURATION__DESCRIPTION = ELEMENT_TYPE_ADVICE_CONFIGURATION__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_ADVICE_CONFIGURATION__IDENTIFIER = ELEMENT_TYPE_ADVICE_CONFIGURATION__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Icon Entry</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_ADVICE_CONFIGURATION__ICON_ENTRY = ELEMENT_TYPE_ADVICE_CONFIGURATION__ICON_ENTRY;
+
+ /**
+ * The number of structural features of the '<em>View Type Advice Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_ADVICE_CONFIGURATION_FEATURE_COUNT = ELEMENT_TYPE_ADVICE_CONFIGURATION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.SemanticTypeAdviceConfigurationImpl
+ * <em>Semantic Type Advice Configuration</em>}' class.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.SemanticTypeAdviceConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getSemanticTypeAdviceConfiguration()
+ * @generated
+ */
+ int SEMANTIC_TYPE_ADVICE_CONFIGURATION = 5;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_TYPE_ADVICE_CONFIGURATION__NAME = ELEMENT_TYPE_ADVICE_CONFIGURATION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_TYPE_ADVICE_CONFIGURATION__DESCRIPTION = ELEMENT_TYPE_ADVICE_CONFIGURATION__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_TYPE_ADVICE_CONFIGURATION__IDENTIFIER = ELEMENT_TYPE_ADVICE_CONFIGURATION__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Icon Entry</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_TYPE_ADVICE_CONFIGURATION__ICON_ENTRY = ELEMENT_TYPE_ADVICE_CONFIGURATION__ICON_ENTRY;
+
+ /**
+ * The number of structural features of the '<em>Semantic Type Advice Configuration</em>' class.
+ * <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_TYPE_ADVICE_CONFIGURATION_FEATURE_COUNT = ELEMENT_TYPE_ADVICE_CONFIGURATION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.MatcherConfigurationImpl <em>Matcher Configuration</em>}'
+ * class.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.MatcherConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getMatcherConfiguration()
+ * @generated
+ */
+ int MATCHER_CONFIGURATION = 6;
+
+ /**
+ * The number of structural features of the '<em>Matcher Configuration</em>' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int MATCHER_CONFIGURATION_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.ActionConfigurationImpl <em>Action Configuration</em>}' class.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ActionConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getActionConfiguration()
+ * @generated
+ */
+ int ACTION_CONFIGURATION = 7;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ACTION_CONFIGURATION__NAME = CONFIGURATION_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ACTION_CONFIGURATION__DESCRIPTION = CONFIGURATION_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ACTION_CONFIGURATION__IDENTIFIER = CONFIGURATION_ELEMENT__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Icon Entry</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ACTION_CONFIGURATION__ICON_ENTRY = CONFIGURATION_ELEMENT__ICON_ENTRY;
+
+ /**
+ * The feature id for the ' <em><b>Pre Validation Query Configuration</b></em>' reference. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ACTION_CONFIGURATION__PRE_VALIDATION_QUERY_CONFIGURATION = CONFIGURATION_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Action Configuration</em>' class.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ACTION_CONFIGURATION_FEATURE_COUNT = CONFIGURATION_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.ViewActionConfigurationImpl <em>View Action Configuration</em>}
+ * ' class.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ViewActionConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getViewActionConfiguration()
+ * @generated
+ */
+ int VIEW_ACTION_CONFIGURATION = 8;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_ACTION_CONFIGURATION__NAME = ACTION_CONFIGURATION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_ACTION_CONFIGURATION__DESCRIPTION = ACTION_CONFIGURATION__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_ACTION_CONFIGURATION__IDENTIFIER = ACTION_CONFIGURATION__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Icon Entry</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_ACTION_CONFIGURATION__ICON_ENTRY = ACTION_CONFIGURATION__ICON_ENTRY;
+
+ /**
+ * The feature id for the ' <em><b>Pre Validation Query Configuration</b></em>' reference. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_ACTION_CONFIGURATION__PRE_VALIDATION_QUERY_CONFIGURATION = ACTION_CONFIGURATION__PRE_VALIDATION_QUERY_CONFIGURATION;
+
+ /**
+ * The number of structural features of the '<em>View Action Configuration</em>' class.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_ACTION_CONFIGURATION_FEATURE_COUNT = ACTION_CONFIGURATION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.SemanticActionConfigurationImpl
+ * <em>Semantic Action Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.SemanticActionConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getSemanticActionConfiguration()
+ * @generated
+ */
+ int SEMANTIC_ACTION_CONFIGURATION = 9;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_ACTION_CONFIGURATION__NAME = ACTION_CONFIGURATION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_ACTION_CONFIGURATION__DESCRIPTION = ACTION_CONFIGURATION__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_ACTION_CONFIGURATION__IDENTIFIER = ACTION_CONFIGURATION__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Icon Entry</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_ACTION_CONFIGURATION__ICON_ENTRY = ACTION_CONFIGURATION__ICON_ENTRY;
+
+ /**
+ * The feature id for the ' <em><b>Pre Validation Query Configuration</b></em>' reference. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_ACTION_CONFIGURATION__PRE_VALIDATION_QUERY_CONFIGURATION = ACTION_CONFIGURATION__PRE_VALIDATION_QUERY_CONFIGURATION;
+
+ /**
+ * The number of structural features of the '<em>Semantic Action Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_ACTION_CONFIGURATION_FEATURE_COUNT = ACTION_CONFIGURATION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.SemanticTypeConfigurationImpl
+ * <em>Semantic Type Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.SemanticTypeConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getSemanticTypeConfiguration()
+ * @generated
+ */
+ int SEMANTIC_TYPE_CONFIGURATION = 10;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_TYPE_CONFIGURATION__NAME = ELEMENT_TYPE_CONFIGURATION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_TYPE_CONFIGURATION__DESCRIPTION = ELEMENT_TYPE_CONFIGURATION__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_TYPE_CONFIGURATION__IDENTIFIER = ELEMENT_TYPE_CONFIGURATION__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Icon Entry</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_TYPE_CONFIGURATION__ICON_ENTRY = ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY;
+
+ /**
+ * The feature id for the '<em><b>Hint</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_TYPE_CONFIGURATION__HINT = ELEMENT_TYPE_CONFIGURATION__HINT;
+
+ /**
+ * The feature id for the '<em><b>Kind Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_TYPE_CONFIGURATION__KIND_NAME = ELEMENT_TYPE_CONFIGURATION__KIND_NAME;
+
+ /**
+ * The feature id for the '<em><b>Specialized Types ID</b></em>' attribute list.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID = ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID;
+
+ /**
+ * The feature id for the '<em><b>Matcher Configuration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_TYPE_CONFIGURATION__MATCHER_CONFIGURATION = ELEMENT_TYPE_CONFIGURATION__MATCHER_CONFIGURATION;
+
+ /**
+ * The number of structural features of the '<em>Semantic Type Configuration</em>' class.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int SEMANTIC_TYPE_CONFIGURATION_FEATURE_COUNT = ELEMENT_TYPE_CONFIGURATION_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.impl.ViewTypeConfigurationImpl <em>View Type Configuration</em>}'
+ * class.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ViewTypeConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedtypesPackageImpl#getViewTypeConfiguration()
+ * @generated
+ */
+ int VIEW_TYPE_CONFIGURATION = 11;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_CONFIGURATION__NAME = ELEMENT_TYPE_CONFIGURATION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_CONFIGURATION__DESCRIPTION = ELEMENT_TYPE_CONFIGURATION__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_CONFIGURATION__IDENTIFIER = ELEMENT_TYPE_CONFIGURATION__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Icon Entry</b></em>' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_CONFIGURATION__ICON_ENTRY = ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY;
+
+ /**
+ * The feature id for the '<em><b>Hint</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_CONFIGURATION__HINT = ELEMENT_TYPE_CONFIGURATION__HINT;
+
+ /**
+ * The feature id for the '<em><b>Kind Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_CONFIGURATION__KIND_NAME = ELEMENT_TYPE_CONFIGURATION__KIND_NAME;
+
+ /**
+ * The feature id for the '<em><b>Specialized Types ID</b></em>' attribute list.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID = ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID;
+
+ /**
+ * The feature id for the '<em><b>Matcher Configuration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_CONFIGURATION__MATCHER_CONFIGURATION = ELEMENT_TYPE_CONFIGURATION__MATCHER_CONFIGURATION;
+
+ /**
+ * The feature id for the '<em><b>Specialized Diagram Type ID</b></em>' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID = ELEMENT_TYPE_CONFIGURATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>View Type Configuration</em>' class.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int VIEW_TYPE_CONFIGURATION_FEATURE_COUNT = ELEMENT_TYPE_CONFIGURATION_FEATURE_COUNT + 1;
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet <em>Extended Element Type Set</em>}'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for class '<em>Extended Element Type Set</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet
+ * @generated
+ */
+ EClass getExtendedElementTypeSet();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet#getElementType <em>Element Type</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Element Type</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet#getElementType()
+ * @see #getExtendedElementTypeSet()
+ * @generated
+ */
+ EReference getExtendedElementTypeSet_ElementType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet#isExtensible
+ * <em>Extensible</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Extensible</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet#isExtensible()
+ * @see #getExtendedElementTypeSet()
+ * @generated
+ */
+ EAttribute getExtendedElementTypeSet_Extensible();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration <em>Element Type Configuration</em>}
+ * '.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for class '<em>Element Type Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration
+ * @generated
+ */
+ EClass getElementTypeConfiguration();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getHint <em>Hint</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Hint</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getHint()
+ * @see #getElementTypeConfiguration()
+ * @generated
+ */
+ EAttribute getElementTypeConfiguration_Hint();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getKindName
+ * <em>Kind Name</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Kind Name</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getKindName()
+ * @see #getElementTypeConfiguration()
+ * @generated
+ */
+ EAttribute getElementTypeConfiguration_KindName();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getSpecializedTypesID
+ * <em>Specialized Types ID</em>}'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for the attribute list '<em>Specialized Types ID</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getSpecializedTypesID()
+ * @see #getElementTypeConfiguration()
+ * @generated
+ */
+ EAttribute getElementTypeConfiguration_SpecializedTypesID();
+
+ /**
+ * Returns the meta object for the containment reference '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getMatcherConfiguration <em>Matcher Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference '<em>Matcher Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration#getMatcherConfiguration()
+ * @see #getElementTypeConfiguration()
+ * @generated
+ */
+ EReference getElementTypeConfiguration_MatcherConfiguration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.IconEntry <em>Icon Entry</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Icon Entry</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.IconEntry
+ * @generated
+ */
+ EClass getIconEntry();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.IconEntry#getIconPath <em>Icon Path</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Icon Path</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.IconEntry#getIconPath()
+ * @see #getIconEntry()
+ * @generated
+ */
+ EAttribute getIconEntry_IconPath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.IconEntry#getBundleId <em>Bundle Id</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Bundle Id</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.IconEntry#getBundleId()
+ * @see #getIconEntry()
+ * @generated
+ */
+ EAttribute getIconEntry_BundleId();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement <em>Configuration Element</em>}'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for class '<em>Configuration Element</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement
+ * @generated
+ */
+ EClass getConfigurationElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getName <em>Name</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getName()
+ * @see #getConfigurationElement()
+ * @generated
+ */
+ EAttribute getConfigurationElement_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getDescription
+ * <em>Description</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Description</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getDescription()
+ * @see #getConfigurationElement()
+ * @generated
+ */
+ EAttribute getConfigurationElement_Description();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getIdentifier
+ * <em>Identifier</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Identifier</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getIdentifier()
+ * @see #getConfigurationElement()
+ * @generated
+ */
+ EAttribute getConfigurationElement_Identifier();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getIconEntry
+ * <em>Icon Entry</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference '<em>Icon Entry</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement#getIconEntry()
+ * @see #getConfigurationElement()
+ * @generated
+ */
+ EReference getConfigurationElement_IconEntry();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.ViewTypeAdviceConfiguration
+ * <em>View Type Advice Configuration</em>}'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for class '<em>View Type Advice Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ViewTypeAdviceConfiguration
+ * @generated
+ */
+ EClass getViewTypeAdviceConfiguration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.SemanticTypeAdviceConfiguration
+ * <em>Semantic Type Advice Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Semantic Type Advice Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.SemanticTypeAdviceConfiguration
+ * @generated
+ */
+ EClass getSemanticTypeAdviceConfiguration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.MatcherConfiguration <em>Matcher Configuration</em>}'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for class '<em>Matcher Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.MatcherConfiguration
+ * @generated
+ */
+ EClass getMatcherConfiguration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration <em>Action Configuration</em>}'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for class '<em>Action Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration
+ * @generated
+ */
+ EClass getActionConfiguration();
+
+ /**
+ * Returns the meta object for the reference '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration#getPreValidationQueryConfiguration
+ * <em>Pre Validation Query Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Pre Validation Query Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration#getPreValidationQueryConfiguration()
+ * @see #getActionConfiguration()
+ * @generated
+ */
+ EReference getActionConfiguration_PreValidationQueryConfiguration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.ViewActionConfiguration <em>View Action Configuration</em>}'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for class '<em>View Action Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ViewActionConfiguration
+ * @generated
+ */
+ EClass getViewActionConfiguration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.SemanticActionConfiguration
+ * <em>Semantic Action Configuration</em>}'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for class '<em>Semantic Action Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.SemanticActionConfiguration
+ * @generated
+ */
+ EClass getSemanticActionConfiguration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration
+ * <em>Semantic Type Configuration</em>}'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for class '<em>Semantic Type Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration
+ * @generated
+ */
+ EClass getSemanticTypeConfiguration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.ViewTypeConfiguration <em>View Type Configuration</em>}'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for class '<em>View Type Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ViewTypeConfiguration
+ * @generated
+ */
+ EClass getViewTypeConfiguration();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.ViewTypeConfiguration#getSpecializedDiagramTypeID
+ * <em>Specialized Diagram Type ID</em>}'.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Specialized Diagram Type ID</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ViewTypeConfiguration#getSpecializedDiagramTypeID()
+ * @see #getViewTypeConfiguration()
+ * @generated
+ */
+ EAttribute getViewTypeConfiguration_SpecializedDiagramTypeID();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeAdviceConfiguration
+ * <em>Element Type Advice Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Element Type Advice Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ElementTypeAdviceConfiguration
+ * @generated
+ */
+ EClass getElementTypeAdviceConfiguration();
+
+ /**
+ * 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
+ */
+ ExtendedtypesFactory getExtendedtypesFactory();
+} // ExtendedtypesPackage
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/IconEntry.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/IconEntry.java
index 821a7f03939..d7effbea2e7 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/IconEntry.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/IconEntry.java
@@ -1,81 +1,89 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Icon Entry</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.IconEntry#getIconPath <em>Icon Path</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.IconEntry#getBundleId <em>Bundle Id</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getIconEntry()
- * @model
- * @generated
- */
-public interface IconEntry extends EObject {
- /**
- * Returns the value of the '<em><b>Icon Path</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Icon Path</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Icon Path</em>' attribute.
- * @see #setIconPath(String)
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getIconEntry_IconPath()
- * @model
- * @generated
- */
- String getIconPath();
-
- /**
- * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.IconEntry#getIconPath <em>Icon Path</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Icon Path</em>' attribute.
- * @see #getIconPath()
- * @generated
- */
- void setIconPath(String value);
-
- /**
- * Returns the value of the '<em><b>Bundle Id</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Bundle Id</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Bundle Id</em>' attribute.
- * @see #setBundleId(String)
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getIconEntry_BundleId()
- * @model
- * @generated
- */
- String getBundleId();
-
- /**
- * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.IconEntry#getBundleId <em>Bundle Id</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Bundle Id</em>' attribute.
- * @see #getBundleId()
- * @generated
- */
- void setBundleId(String value);
-
-} // IconEntry
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object ' <em><b>Icon Entry</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.IconEntry#getIconPath <em>Icon Path</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.IconEntry#getBundleId <em>Bundle Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getIconEntry()
+ * @model
+ * @generated
+ */
+public interface IconEntry extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Icon Path</b></em>' attribute. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Icon Path</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Icon Path</em>' attribute.
+ * @see #setIconPath(String)
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getIconEntry_IconPath()
+ * @model
+ * @generated
+ */
+ String getIconPath();
+
+ /**
+ * Sets the value of the ' {@link org.eclipse.papyrus.infra.extendedtypes.IconEntry#getIconPath
+ * <em>Icon Path</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @param value
+ * the new value of the '<em>Icon Path</em>' attribute.
+ * @see #getIconPath()
+ * @generated
+ */
+ void setIconPath(String value);
+
+ /**
+ * Returns the value of the '<em><b>Bundle Id</b></em>' attribute. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bundle Id</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Bundle Id</em>' attribute.
+ * @see #setBundleId(String)
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getIconEntry_BundleId()
+ * @model
+ * @generated
+ */
+ String getBundleId();
+
+ /**
+ * Sets the value of the ' {@link org.eclipse.papyrus.infra.extendedtypes.IconEntry#getBundleId
+ * <em>Bundle Id</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @param value
+ * the new value of the '<em>Bundle Id</em>' attribute.
+ * @see #getBundleId()
+ * @generated
+ */
+ void setBundleId(String value);
+} // IconEntry
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/MatcherConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/MatcherConfiguration.java
new file mode 100644
index 00000000000..bfd718ff44b
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/MatcherConfiguration.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object ' <em><b>Matcher Configuration</b></em>'. <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getMatcherConfiguration()
+ * @model abstract="true"
+ * @generated
+ */
+public interface MatcherConfiguration extends EObject {
+} // MatcherConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/PostActionConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/PostActionConfiguration.java
deleted file mode 100644
index 176d3995b88..00000000000
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/PostActionConfiguration.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Post Action Configuration</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getPostActionConfiguration()
- * @model abstract="true"
- * @generated
- */
-public interface PostActionConfiguration extends ActionConfiguration {
-} // PostActionConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/PreActionConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/PreActionConfiguration.java
deleted file mode 100644
index 23ac073d44b..00000000000
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/PreActionConfiguration.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Pre Action Configuration</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getPreActionConfiguration()
- * @model abstract="true"
- * @generated
- */
-public interface PreActionConfiguration extends ActionConfiguration {
-} // PreActionConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/SemanticActionConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/SemanticActionConfiguration.java
new file mode 100644
index 00000000000..20263b7c1e0
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/SemanticActionConfiguration.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object ' <em><b>Semantic Action Configuration</b></em>'. <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getSemanticActionConfiguration()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SemanticActionConfiguration extends ActionConfiguration {
+} // SemanticActionConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/SemanticTypeAdviceConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/SemanticTypeAdviceConfiguration.java
new file mode 100644
index 00000000000..90413766440
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/SemanticTypeAdviceConfiguration.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object ' <em><b>Semantic Type Advice Configuration</b></em>'. <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Configuration dedicated to edit helper advices that will manage the new kind of element for its entire lifecycle (Creation, Update, Deletion)
+ *
+ * This should be used to define new model elements for a domain specific language
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getSemanticTypeAdviceConfiguration()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SemanticTypeAdviceConfiguration extends ElementTypeAdviceConfiguration {
+} // SemanticTypeAdviceConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/SemanticTypeConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/SemanticTypeConfiguration.java
new file mode 100644
index 00000000000..cd46289448b
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/SemanticTypeConfiguration.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object ' <em><b>Semantic Type Configuration</b></em>'. <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Configuration specific to element types registered to manipulate Domain Specific elements.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getSemanticTypeConfiguration()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SemanticTypeConfiguration extends ElementTypeConfiguration {
+} // SemanticTypeConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ViewActionConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ViewActionConfiguration.java
new file mode 100644
index 00000000000..ac93ed542a7
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ViewActionConfiguration.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object ' <em><b>View Action Configuration</b></em>'. <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getViewActionConfiguration()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ViewActionConfiguration extends ActionConfiguration {
+} // ViewActionConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ViewTypeAdviceConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ViewTypeAdviceConfiguration.java
new file mode 100644
index 00000000000..69fd2cc6134
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ViewTypeAdviceConfiguration.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object ' <em><b>View Type Advice Configuration</b></em>'. <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Configuration for edit helper advices dedicated to the creation of new elements only.
+ *
+ * This kind of helpers should be used in the palette extensions, modeling assistants, model explorer, property views.
+ * Once the element has been created, it is managed by the edit helper and the advices of the specialized ElementType.
+ *
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getViewTypeAdviceConfiguration()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ViewTypeAdviceConfiguration extends ElementTypeAdviceConfiguration {
+} // ViewTypeAdviceConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ViewTypeConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ViewTypeConfiguration.java
new file mode 100644
index 00000000000..74043cd25b9
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/ViewTypeConfiguration.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object ' <em><b>View Type Configuration</b></em>'. <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Configuration specific to element types registered to manipulate graphical elements in GMF diagrams
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.ViewTypeConfiguration#getSpecializedDiagramTypeID <em>Specialized Diagram Type ID</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getViewTypeConfiguration()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ViewTypeConfiguration extends ElementTypeConfiguration {
+
+ /**
+ * Returns the value of the '<em><b>Specialized Diagram Type ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Specialized Diagram Type ID</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Specialized Diagram Type ID</em>' attribute.
+ * @see #setSpecializedDiagramTypeID(String)
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#getViewTypeConfiguration_SpecializedDiagramTypeID()
+ * @model
+ * @generated
+ */
+ String getSpecializedDiagramTypeID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.ViewTypeConfiguration#getSpecializedDiagramTypeID
+ * <em>Specialized Diagram Type ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Specialized Diagram Type ID</em>' attribute.
+ * @see #getSpecializedDiagramTypeID()
+ * @generated
+ */
+ void setSpecializedDiagramTypeID(String value);
+} // ViewTypeConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticFactory.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticFactory.java
new file mode 100644
index 00000000000..57ae3924caf
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticFactory.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.aspectsemantic;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- 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.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticPackage
+ * @generated
+ */
+public interface AspectSemanticFactory extends EFactory {
+ /**
+ * The singleton instance of the factory. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ AspectSemanticFactory eINSTANCE = org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl.AspectSemanticFactoryImpl
+ .init();
+
+ /**
+ * Returns a new object of class '<em>Type Configuration</em>'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Type Configuration</em>'.
+ * @generated
+ */
+ AspectSemanticTypeConfiguration createAspectSemanticTypeConfiguration();
+
+ /**
+ * Returns a new object of class '<em>Type Advice Configuration</em>'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Type Advice Configuration</em>'.
+ * @generated
+ */
+ AspectSemanticTypeAdviceConfiguration createAspectSemanticTypeAdviceConfiguration();
+
+ /**
+ * Returns the package supported by this factory. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the package supported by this factory.
+ * @generated
+ */
+ AspectSemanticPackage getAspectSemanticPackage();
+
+} // AspectSemanticFactory
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticPackage.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticPackage.java
new file mode 100644
index 00000000000..8090de01294
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticPackage.java
@@ -0,0 +1,313 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.aspectsemantic;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+
+/**
+ * <!-- 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 operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface AspectSemanticPackage extends EPackage {
+ /**
+ * The package name. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNAME = "aspectsemantic";
+
+ /**
+ * The package namespace URI. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/infra/extendedtypes/semantic/aspect/1.0";
+
+ /**
+ * The package namespace name. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_PREFIX = "aspectsemantic";
+
+ /**
+ * The singleton instance of the package. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ AspectSemanticPackage eINSTANCE = org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl.AspectSemanticPackageImpl
+ .init();
+
+ /**
+ * The meta object id for the '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl.AspectSemanticTypeConfigurationImpl
+ * <em>Type Configuration</em>}' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl.AspectSemanticTypeConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl.AspectSemanticPackageImpl#getAspectSemanticTypeConfiguration()
+ * @generated
+ */
+ int ASPECT_SEMANTIC_TYPE_CONFIGURATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_CONFIGURATION__NAME = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_CONFIGURATION__DESCRIPTION = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_CONFIGURATION__IDENTIFIER = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Icon Entry</b></em>' containment
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_CONFIGURATION__ICON_ENTRY = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION__ICON_ENTRY;
+
+ /**
+ * The feature id for the '<em><b>Hint</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_CONFIGURATION__HINT = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION__HINT;
+
+ /**
+ * The feature id for the '<em><b>Kind Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_CONFIGURATION__KIND_NAME = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION__KIND_NAME;
+
+ /**
+ * The feature id for the '<em><b>Specialized Types ID</b></em>' attribute
+ * list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID;
+
+ /**
+ * The feature id for the '<em><b>Advice Configuration</b></em>' containment
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_CONFIGURATION__ADVICE_CONFIGURATION = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Type Configuration</em>'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_CONFIGURATION_FEATURE_COUNT = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION_FEATURE_COUNT + 1;
+
+
+ /**
+ * The meta object id for the '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl.AspectSemanticTypeAdviceConfigurationImpl
+ * <em>Type Advice Configuration</em>}' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl.AspectSemanticTypeAdviceConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl.AspectSemanticPackageImpl#getAspectSemanticTypeAdviceConfiguration()
+ * @generated
+ */
+ int ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION = 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__NAME = ExtendedtypesPackage.SEMANTIC_TYPE_ADVICE_CONFIGURATION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__DESCRIPTION = ExtendedtypesPackage.SEMANTIC_TYPE_ADVICE_CONFIGURATION__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__IDENTIFIER = ExtendedtypesPackage.SEMANTIC_TYPE_ADVICE_CONFIGURATION__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Icon Entry</b></em>' containment
+ * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__ICON_ENTRY = ExtendedtypesPackage.SEMANTIC_TYPE_ADVICE_CONFIGURATION__ICON_ENTRY;
+
+ /**
+ * The feature id for the '<em><b>Pre Action Configuration</b></em>'
+ * containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__PRE_ACTION_CONFIGURATION = ExtendedtypesPackage.SEMANTIC_TYPE_ADVICE_CONFIGURATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Post Action Configuration</b></em>'
+ * containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__POST_ACTION_CONFIGURATION = ExtendedtypesPackage.SEMANTIC_TYPE_ADVICE_CONFIGURATION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '
+ * <em>Type Advice Configuration</em>' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION_FEATURE_COUNT = ExtendedtypesPackage.SEMANTIC_TYPE_ADVICE_CONFIGURATION_FEATURE_COUNT + 2;
+
+ /**
+ * Returns the meta object for class '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeConfiguration
+ * <em>Type Configuration</em>}'. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @return the meta object for class '<em>Type Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeConfiguration
+ * @generated
+ */
+ EClass getAspectSemanticTypeConfiguration();
+
+ /**
+ * Returns the meta object for the containment reference '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeConfiguration#getAdviceConfiguration
+ * <em>Advice Configuration</em>}'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for the containment reference '
+ * <em>Advice Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeConfiguration#getAdviceConfiguration()
+ * @see #getAspectSemanticTypeConfiguration()
+ * @generated
+ */
+ EReference getAspectSemanticTypeConfiguration_AdviceConfiguration();
+
+ /**
+ * Returns the meta object for class '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeAdviceConfiguration
+ * <em>Type Advice Configuration</em>}'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for class '<em>Type Advice Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeAdviceConfiguration
+ * @generated
+ */
+ EClass getAspectSemanticTypeAdviceConfiguration();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeAdviceConfiguration#getPreActionConfiguration
+ * <em>Pre Action Configuration</em>}'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '
+ * <em>Pre Action Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeAdviceConfiguration#getPreActionConfiguration()
+ * @see #getAspectSemanticTypeAdviceConfiguration()
+ * @generated
+ */
+ EReference getAspectSemanticTypeAdviceConfiguration_PreActionConfiguration();
+
+ /**
+ * Returns the meta object for the containment reference list '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeAdviceConfiguration#getPostActionConfiguration
+ * <em>Post Action Configuration</em>}'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '
+ * <em>Post Action Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeAdviceConfiguration#getPostActionConfiguration()
+ * @see #getAspectSemanticTypeAdviceConfiguration()
+ * @generated
+ */
+ EReference getAspectSemanticTypeAdviceConfiguration_PostActionConfiguration();
+
+ /**
+ * 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
+ */
+ AspectSemanticFactory getAspectSemanticFactory();
+
+} // AspectSemanticPackage
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticTypeAdviceConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticTypeAdviceConfiguration.java
new file mode 100644
index 00000000000..24977802845
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticTypeAdviceConfiguration.java
@@ -0,0 +1,82 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.aspectsemantic;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.papyrus.infra.extendedtypes.SemanticActionConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.SemanticTypeAdviceConfiguration;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>Type Advice Configuration</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeAdviceConfiguration#getPreActionConfiguration
+ * <em>Pre Action Configuration</em>}</li>
+ * <li>
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeAdviceConfiguration#getPostActionConfiguration
+ * <em>Post Action Configuration</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticPackage#getAspectSemanticTypeAdviceConfiguration()
+ * @model
+ * @generated
+ */
+public interface AspectSemanticTypeAdviceConfiguration extends
+ SemanticTypeAdviceConfiguration {
+ /**
+ * Returns the value of the '<em><b>Pre Action Configuration</b></em>'
+ * containment reference list. The list contents are of type
+ * {@link org.eclipse.papyrus.infra.extendedtypes.SemanticActionConfiguration}
+ * . <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pre Action Configuration</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>Pre Action Configuration</em>' containment
+ * reference list.
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticPackage#getAspectSemanticTypeAdviceConfiguration_PreActionConfiguration()
+ * @model containment="true"
+ * @generated
+ */
+ EList<SemanticActionConfiguration> getPreActionConfiguration();
+
+ /**
+ * Returns the value of the '<em><b>Post Action Configuration</b></em>'
+ * containment reference list. The list contents are of type
+ * {@link org.eclipse.papyrus.infra.extendedtypes.SemanticActionConfiguration}
+ * . <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Post Action Configuration</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>Post Action Configuration</em>' containment
+ * reference list.
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticPackage#getAspectSemanticTypeAdviceConfiguration_PostActionConfiguration()
+ * @model containment="true"
+ * @generated
+ */
+ EList<SemanticActionConfiguration> getPostActionConfiguration();
+
+} // AspectSemanticTypeAdviceConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticTypeConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticTypeConfiguration.java
new file mode 100644
index 00000000000..5e94ca39a44
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/AspectSemanticTypeConfiguration.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.aspectsemantic;
+
+import org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>Type Configuration</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeConfiguration#getAdviceConfiguration
+ * <em>Advice Configuration</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticPackage#getAspectSemanticTypeConfiguration()
+ * @model
+ * @generated
+ */
+public interface AspectSemanticTypeConfiguration extends
+ SemanticTypeConfiguration {
+ /**
+ * Returns the value of the '<em><b>Advice Configuration</b></em>'
+ * containment reference. <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Advice Configuration</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>Advice Configuration</em>' containment
+ * reference.
+ * @see #setAdviceConfiguration(AspectSemanticTypeAdviceConfiguration)
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticPackage#getAspectSemanticTypeConfiguration_AdviceConfiguration()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ AspectSemanticTypeAdviceConfiguration getAdviceConfiguration();
+
+ /**
+ * Sets the value of the '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeConfiguration#getAdviceConfiguration
+ * <em>Advice Configuration</em>}' containment reference. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Advice Configuration</em>'
+ * containment reference.
+ * @see #getAdviceConfiguration()
+ * @generated
+ */
+ void setAdviceConfiguration(AspectSemanticTypeAdviceConfiguration value);
+
+} // AspectSemanticTypeConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticFactoryImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticFactoryImpl.java
new file mode 100644
index 00000000000..5a6d4ae0588
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticFactoryImpl.java
@@ -0,0 +1,120 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl;
+
+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;
+
+import org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.*;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+public class AspectSemanticFactoryImpl extends EFactoryImpl implements
+ AspectSemanticFactory {
+ /**
+ * Creates the default factory implementation. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public static AspectSemanticFactory init() {
+ try {
+ AspectSemanticFactory theAspectSemanticFactory = (AspectSemanticFactory) EPackage.Registry.INSTANCE
+ .getEFactory(AspectSemanticPackage.eNS_URI);
+ if (theAspectSemanticFactory != null) {
+ return theAspectSemanticFactory;
+ }
+ } catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new AspectSemanticFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public AspectSemanticFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_CONFIGURATION:
+ return createAspectSemanticTypeConfiguration();
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION:
+ return createAspectSemanticTypeAdviceConfiguration();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName()
+ + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public AspectSemanticTypeConfiguration createAspectSemanticTypeConfiguration() {
+ AspectSemanticTypeConfigurationImpl aspectSemanticTypeConfiguration = new AspectSemanticTypeConfigurationImpl();
+ return aspectSemanticTypeConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public AspectSemanticTypeAdviceConfiguration createAspectSemanticTypeAdviceConfiguration() {
+ AspectSemanticTypeAdviceConfigurationImpl aspectSemanticTypeAdviceConfiguration = new AspectSemanticTypeAdviceConfigurationImpl();
+ return aspectSemanticTypeAdviceConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public AspectSemanticPackage getAspectSemanticPackage() {
+ return (AspectSemanticPackage) getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static AspectSemanticPackage getPackage() {
+ return AspectSemanticPackage.eINSTANCE;
+ }
+
+} // AspectSemanticFactoryImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticPackageImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticPackageImpl.java
new file mode 100644
index 00000000000..37b9642b9f2
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticPackageImpl.java
@@ -0,0 +1,283 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+
+import org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticFactory;
+import org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticPackage;
+import org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeAdviceConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeConfiguration;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+public class AspectSemanticPackageImpl extends EPackageImpl implements
+ AspectSemanticPackage {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass aspectSemanticTypeConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass aspectSemanticTypeAdviceConfigurationEClass = 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.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private AspectSemanticPackageImpl() {
+ super(eNS_URI, AspectSemanticFactory.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.
+ *
+ * <p>
+ * This method is used to initialize {@link AspectSemanticPackage#eINSTANCE}
+ * when that field is accessed. Clients should not invoke it directly.
+ * Instead, they should simply access that field to obtain the package. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static AspectSemanticPackage init() {
+ if (isInited)
+ return (AspectSemanticPackage) EPackage.Registry.INSTANCE
+ .getEPackage(AspectSemanticPackage.eNS_URI);
+
+ // Obtain or create and register package
+ AspectSemanticPackageImpl theAspectSemanticPackage = (AspectSemanticPackageImpl) (EPackage.Registry.INSTANCE
+ .get(eNS_URI) instanceof AspectSemanticPackageImpl ? EPackage.Registry.INSTANCE
+ .get(eNS_URI) : new AspectSemanticPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ ExtendedtypesPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theAspectSemanticPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theAspectSemanticPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theAspectSemanticPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(AspectSemanticPackage.eNS_URI,
+ theAspectSemanticPackage);
+ return theAspectSemanticPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getAspectSemanticTypeConfiguration() {
+ return aspectSemanticTypeConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getAspectSemanticTypeConfiguration_AdviceConfiguration() {
+ return (EReference) aspectSemanticTypeConfigurationEClass
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getAspectSemanticTypeAdviceConfiguration() {
+ return aspectSemanticTypeAdviceConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getAspectSemanticTypeAdviceConfiguration_PreActionConfiguration() {
+ return (EReference) aspectSemanticTypeAdviceConfigurationEClass
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getAspectSemanticTypeAdviceConfiguration_PostActionConfiguration() {
+ return (EReference) aspectSemanticTypeAdviceConfigurationEClass
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public AspectSemanticFactory getAspectSemanticFactory() {
+ return (AspectSemanticFactory) 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
+ aspectSemanticTypeConfigurationEClass = createEClass(ASPECT_SEMANTIC_TYPE_CONFIGURATION);
+ createEReference(aspectSemanticTypeConfigurationEClass,
+ ASPECT_SEMANTIC_TYPE_CONFIGURATION__ADVICE_CONFIGURATION);
+
+ aspectSemanticTypeAdviceConfigurationEClass = createEClass(ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION);
+ createEReference(aspectSemanticTypeAdviceConfigurationEClass,
+ ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__PRE_ACTION_CONFIGURATION);
+ createEReference(aspectSemanticTypeAdviceConfigurationEClass,
+ ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__POST_ACTION_CONFIGURATION);
+ }
+
+ /**
+ * <!-- 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
+ ExtendedtypesPackage theExtendedtypesPackage = (ExtendedtypesPackage) EPackage.Registry.INSTANCE
+ .getEPackage(ExtendedtypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ aspectSemanticTypeConfigurationEClass.getESuperTypes().add(
+ theExtendedtypesPackage.getSemanticTypeConfiguration());
+ aspectSemanticTypeAdviceConfigurationEClass.getESuperTypes().add(
+ theExtendedtypesPackage.getSemanticTypeAdviceConfiguration());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(aspectSemanticTypeConfigurationEClass,
+ AspectSemanticTypeConfiguration.class,
+ "AspectSemanticTypeConfiguration", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(
+ getAspectSemanticTypeConfiguration_AdviceConfiguration(),
+ this.getAspectSemanticTypeAdviceConfiguration(), null,
+ "adviceConfiguration", null, 1, 1,
+ AspectSemanticTypeConfiguration.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(aspectSemanticTypeAdviceConfigurationEClass,
+ AspectSemanticTypeAdviceConfiguration.class,
+ "AspectSemanticTypeAdviceConfiguration", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(
+ getAspectSemanticTypeAdviceConfiguration_PreActionConfiguration(),
+ theExtendedtypesPackage.getSemanticActionConfiguration(), null,
+ "preActionConfiguration", null, 0, -1,
+ AspectSemanticTypeAdviceConfiguration.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(
+ getAspectSemanticTypeAdviceConfiguration_PostActionConfiguration(),
+ theExtendedtypesPackage.getSemanticActionConfiguration(), null,
+ "postActionConfiguration", null, 0, -1,
+ AspectSemanticTypeAdviceConfiguration.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);
+ }
+
+} // AspectSemanticPackageImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticTypeAdviceConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticTypeAdviceConfigurationImpl.java
new file mode 100644
index 00000000000..34e0c9ce1fd
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticTypeAdviceConfigurationImpl.java
@@ -0,0 +1,220 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl;
+
+import java.util.Collection;
+
+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 org.eclipse.papyrus.infra.extendedtypes.SemanticActionConfiguration;
+
+import org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticPackage;
+import org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeAdviceConfiguration;
+
+import org.eclipse.papyrus.infra.extendedtypes.impl.SemanticTypeAdviceConfigurationImpl;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Type Advice Configuration</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl.AspectSemanticTypeAdviceConfigurationImpl#getPreActionConfiguration
+ * <em>Pre Action Configuration</em>}</li>
+ * <li>
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl.AspectSemanticTypeAdviceConfigurationImpl#getPostActionConfiguration
+ * <em>Post Action Configuration</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AspectSemanticTypeAdviceConfigurationImpl extends
+ SemanticTypeAdviceConfigurationImpl implements
+ AspectSemanticTypeAdviceConfiguration {
+ /**
+ * The cached value of the '{@link #getPreActionConfiguration()
+ * <em>Pre Action Configuration</em>}' containment reference list. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getPreActionConfiguration()
+ * @generated
+ * @ordered
+ */
+ protected EList<SemanticActionConfiguration> preActionConfiguration;
+
+ /**
+ * The cached value of the '{@link #getPostActionConfiguration()
+ * <em>Post Action Configuration</em>}' containment reference list. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getPostActionConfiguration()
+ * @generated
+ * @ordered
+ */
+ protected EList<SemanticActionConfiguration> postActionConfiguration;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected AspectSemanticTypeAdviceConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return AspectSemanticPackage.eINSTANCE
+ .getAspectSemanticTypeAdviceConfiguration();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<SemanticActionConfiguration> getPreActionConfiguration() {
+ if (preActionConfiguration == null) {
+ preActionConfiguration = new EObjectContainmentEList<SemanticActionConfiguration>(
+ SemanticActionConfiguration.class,
+ this,
+ AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__PRE_ACTION_CONFIGURATION);
+ }
+ return preActionConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<SemanticActionConfiguration> getPostActionConfiguration() {
+ if (postActionConfiguration == null) {
+ postActionConfiguration = new EObjectContainmentEList<SemanticActionConfiguration>(
+ SemanticActionConfiguration.class,
+ this,
+ AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__POST_ACTION_CONFIGURATION);
+ }
+ return postActionConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd,
+ int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__PRE_ACTION_CONFIGURATION:
+ return ((InternalEList<?>) getPreActionConfiguration())
+ .basicRemove(otherEnd, msgs);
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__POST_ACTION_CONFIGURATION:
+ return ((InternalEList<?>) getPostActionConfiguration())
+ .basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__PRE_ACTION_CONFIGURATION:
+ return getPreActionConfiguration();
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__POST_ACTION_CONFIGURATION:
+ return getPostActionConfiguration();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__PRE_ACTION_CONFIGURATION:
+ getPreActionConfiguration().clear();
+ getPreActionConfiguration()
+ .addAll((Collection<? extends SemanticActionConfiguration>) newValue);
+ return;
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__POST_ACTION_CONFIGURATION:
+ getPostActionConfiguration().clear();
+ getPostActionConfiguration()
+ .addAll((Collection<? extends SemanticActionConfiguration>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__PRE_ACTION_CONFIGURATION:
+ getPreActionConfiguration().clear();
+ return;
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__POST_ACTION_CONFIGURATION:
+ getPostActionConfiguration().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__PRE_ACTION_CONFIGURATION:
+ return preActionConfiguration != null
+ && !preActionConfiguration.isEmpty();
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION__POST_ACTION_CONFIGURATION:
+ return postActionConfiguration != null
+ && !postActionConfiguration.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // AspectSemanticTypeAdviceConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticTypeConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticTypeConfigurationImpl.java
new file mode 100644
index 00000000000..245a46dd6c5
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/impl/AspectSemanticTypeConfigurationImpl.java
@@ -0,0 +1,217 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl;
+
+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.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticPackage;
+import org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeAdviceConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeConfiguration;
+
+import org.eclipse.papyrus.infra.extendedtypes.impl.SemanticTypeConfigurationImpl;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Type Configuration</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.impl.AspectSemanticTypeConfigurationImpl#getAdviceConfiguration
+ * <em>Advice Configuration</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AspectSemanticTypeConfigurationImpl extends
+ SemanticTypeConfigurationImpl implements
+ AspectSemanticTypeConfiguration {
+ /**
+ * The cached value of the '{@link #getAdviceConfiguration()
+ * <em>Advice Configuration</em>}' containment reference. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getAdviceConfiguration()
+ * @generated
+ * @ordered
+ */
+ protected AspectSemanticTypeAdviceConfiguration adviceConfiguration;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected AspectSemanticTypeConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return AspectSemanticPackage.eINSTANCE
+ .getAspectSemanticTypeConfiguration();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public AspectSemanticTypeAdviceConfiguration getAdviceConfiguration() {
+ return adviceConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetAdviceConfiguration(
+ AspectSemanticTypeAdviceConfiguration newAdviceConfiguration,
+ NotificationChain msgs) {
+ AspectSemanticTypeAdviceConfiguration oldAdviceConfiguration = adviceConfiguration;
+ adviceConfiguration = newAdviceConfiguration;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(
+ this,
+ Notification.SET,
+ AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_CONFIGURATION__ADVICE_CONFIGURATION,
+ oldAdviceConfiguration, newAdviceConfiguration);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setAdviceConfiguration(
+ AspectSemanticTypeAdviceConfiguration newAdviceConfiguration) {
+ if (newAdviceConfiguration != adviceConfiguration) {
+ NotificationChain msgs = null;
+ if (adviceConfiguration != null)
+ msgs = ((InternalEObject) adviceConfiguration)
+ .eInverseRemove(
+ this,
+ EOPPOSITE_FEATURE_BASE
+ - AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_CONFIGURATION__ADVICE_CONFIGURATION,
+ null, msgs);
+ if (newAdviceConfiguration != null)
+ msgs = ((InternalEObject) newAdviceConfiguration)
+ .eInverseAdd(
+ this,
+ EOPPOSITE_FEATURE_BASE
+ - AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_CONFIGURATION__ADVICE_CONFIGURATION,
+ null, msgs);
+ msgs = basicSetAdviceConfiguration(newAdviceConfiguration, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(
+ this,
+ Notification.SET,
+ AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_CONFIGURATION__ADVICE_CONFIGURATION,
+ newAdviceConfiguration, newAdviceConfiguration));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd,
+ int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_CONFIGURATION__ADVICE_CONFIGURATION:
+ return basicSetAdviceConfiguration(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_CONFIGURATION__ADVICE_CONFIGURATION:
+ return getAdviceConfiguration();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_CONFIGURATION__ADVICE_CONFIGURATION:
+ setAdviceConfiguration((AspectSemanticTypeAdviceConfiguration) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_CONFIGURATION__ADVICE_CONFIGURATION:
+ setAdviceConfiguration((AspectSemanticTypeAdviceConfiguration) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_CONFIGURATION__ADVICE_CONFIGURATION:
+ return adviceConfiguration != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // AspectSemanticTypeConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticAdapterFactory.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticAdapterFactory.java
new file mode 100644
index 00000000000..a55b2db462e
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticAdapterFactory.java
@@ -0,0 +1,269 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement;
+import org.eclipse.papyrus.infra.extendedtypes.ElementTypeAdviceConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.SemanticTypeAdviceConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration;
+
+import org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.*;
+
+/**
+ * <!-- begin-user-doc --> The <b>Adapter Factory</b> for the model. It provides
+ * an adapter <code>createXXX</code> method for each class of the model. <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticPackage
+ * @generated
+ */
+public class AspectSemanticAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static AspectSemanticPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public AspectSemanticAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = AspectSemanticPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc --> This implementation returns <code>true</code> if
+ * the object is either the model's package or is an instance object of the
+ * model. <!-- end-user-doc -->
+ *
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject) object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected AspectSemanticSwitch<Adapter> modelSwitch = new AspectSemanticSwitch<Adapter>() {
+ @Override
+ public Adapter caseAspectSemanticTypeConfiguration(
+ AspectSemanticTypeConfiguration object) {
+ return createAspectSemanticTypeConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseAspectSemanticTypeAdviceConfiguration(
+ AspectSemanticTypeAdviceConfiguration object) {
+ return createAspectSemanticTypeAdviceConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseConfigurationElement(ConfigurationElement object) {
+ return createConfigurationElementAdapter();
+ }
+
+ @Override
+ public Adapter caseElementTypeConfiguration(
+ ElementTypeConfiguration object) {
+ return createElementTypeConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseSemanticTypeConfiguration(
+ SemanticTypeConfiguration object) {
+ return createSemanticTypeConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseElementTypeAdviceConfiguration(
+ ElementTypeAdviceConfiguration object) {
+ return createElementTypeAdviceConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseSemanticTypeAdviceConfiguration(
+ SemanticTypeAdviceConfiguration object) {
+ return createSemanticTypeAdviceConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param target
+ * the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject) target);
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeConfiguration
+ * <em>Type Configuration</em>}'. <!-- begin-user-doc --> This default
+ * implementation returns null so that we can easily ignore cases; it's
+ * useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeConfiguration
+ * @generated
+ */
+ public Adapter createAspectSemanticTypeConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeAdviceConfiguration
+ * <em>Type Advice Configuration</em>}'. <!-- begin-user-doc --> This
+ * default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases
+ * anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticTypeAdviceConfiguration
+ * @generated
+ */
+ public Adapter createAspectSemanticTypeAdviceConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement
+ * <em>Configuration Element</em>}'. <!-- begin-user-doc --> This default
+ * implementation returns null so that we can easily ignore cases; it's
+ * useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement
+ * @generated
+ */
+ public Adapter createConfigurationElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration
+ * <em>Element Type Configuration</em>}'. <!-- begin-user-doc --> This
+ * default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases
+ * anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration
+ * @generated
+ */
+ public Adapter createElementTypeConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration
+ * <em>Semantic Type Configuration</em>}'. <!-- begin-user-doc --> This
+ * default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases
+ * anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration
+ * @generated
+ */
+ public Adapter createSemanticTypeConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeAdviceConfiguration
+ * <em>Element Type Advice Configuration</em>}'. <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the
+ * cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ElementTypeAdviceConfiguration
+ * @generated
+ */
+ public Adapter createElementTypeAdviceConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '
+ * {@link org.eclipse.papyrus.infra.extendedtypes.SemanticTypeAdviceConfiguration
+ * <em>Semantic Type Advice Configuration</em>}'. <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the
+ * cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.SemanticTypeAdviceConfiguration
+ * @generated
+ */
+ public Adapter createSemanticTypeAdviceConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case. <!-- begin-user-doc --> This
+ * default implementation returns null. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} // AspectSemanticAdapterFactory
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticResourceFactoryImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticResourceFactoryImpl.java
new file mode 100644
index 00000000000..c064d90e339
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticResourceFactoryImpl.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.util;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+/**
+ * <!-- begin-user-doc --> The <b>Resource Factory</b> associated with the
+ * package. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.util.AspectSemanticResourceImpl
+ * @generated
+ */
+public class AspectSemanticResourceFactoryImpl extends ResourceFactoryImpl {
+ /**
+ * Creates an instance of the resource factory. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public AspectSemanticResourceFactoryImpl() {
+ super();
+ }
+
+ /**
+ * Creates an instance of the resource. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Resource createResource(URI uri) {
+ XMLResource result = new AspectSemanticResourceImpl(uri);
+ result.getDefaultSaveOptions().put(
+ XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+ result.getDefaultLoadOptions().put(
+ XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION,
+ Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(
+ XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+ result.getDefaultSaveOptions().put(
+ XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(
+ XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE);
+ return result;
+ }
+
+} // AspectSemanticResourceFactoryImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticResourceImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticResourceImpl.java
new file mode 100644
index 00000000000..ced4ef6976d
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticResourceImpl.java
@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.util;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+
+/**
+ * <!-- begin-user-doc --> The <b>Resource </b> associated with the package.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.util.AspectSemanticResourceFactoryImpl
+ * @generated
+ */
+public class AspectSemanticResourceImpl extends XMLResourceImpl {
+ /**
+ * Creates an instance of the resource. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @param uri
+ * the URI of the new resource.
+ * @generated
+ */
+ public AspectSemanticResourceImpl(URI uri) {
+ super(uri);
+ }
+
+} // AspectSemanticResourceImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticSwitch.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticSwitch.java
new file mode 100644
index 00000000000..3faecef41a7
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticSwitch.java
@@ -0,0 +1,256 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement;
+import org.eclipse.papyrus.infra.extendedtypes.ElementTypeAdviceConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.SemanticTypeAdviceConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration;
+
+import org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.*;
+
+/**
+ * <!-- begin-user-doc --> The <b>Switch</b> for the model's inheritance
+ * hierarchy. It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object and proceeding up the
+ * inheritance hierarchy until a non-null result is returned, which is the
+ * result of the switch. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticPackage
+ * @generated
+ */
+public class AspectSemanticSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static AspectSemanticPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public AspectSemanticSwitch() {
+ if (modelPackage == null) {
+ modelPackage = AspectSemanticPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns
+ * a non null result; it yields that result. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the first non-null result returned by a <code>caseXXX</code>
+ * call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_CONFIGURATION: {
+ AspectSemanticTypeConfiguration aspectSemanticTypeConfiguration = (AspectSemanticTypeConfiguration) theEObject;
+ T result = caseAspectSemanticTypeConfiguration(aspectSemanticTypeConfiguration);
+ if (result == null)
+ result = caseSemanticTypeConfiguration(aspectSemanticTypeConfiguration);
+ if (result == null)
+ result = caseElementTypeConfiguration(aspectSemanticTypeConfiguration);
+ if (result == null)
+ result = caseConfigurationElement(aspectSemanticTypeConfiguration);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case AspectSemanticPackage.ASPECT_SEMANTIC_TYPE_ADVICE_CONFIGURATION: {
+ AspectSemanticTypeAdviceConfiguration aspectSemanticTypeAdviceConfiguration = (AspectSemanticTypeAdviceConfiguration) theEObject;
+ T result = caseAspectSemanticTypeAdviceConfiguration(aspectSemanticTypeAdviceConfiguration);
+ if (result == null)
+ result = caseSemanticTypeAdviceConfiguration(aspectSemanticTypeAdviceConfiguration);
+ if (result == null)
+ result = caseElementTypeAdviceConfiguration(aspectSemanticTypeAdviceConfiguration);
+ if (result == null)
+ result = caseConfigurationElement(aspectSemanticTypeAdviceConfiguration);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Type Configuration</em>'. <!-- begin-user-doc --> This implementation
+ * returns null; returning a non-null result will terminate the switch. <!--
+ * end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '
+ * <em>Type Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAspectSemanticTypeConfiguration(
+ AspectSemanticTypeConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Type Advice Configuration</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '
+ * <em>Type Advice Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAspectSemanticTypeAdviceConfiguration(
+ AspectSemanticTypeAdviceConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Configuration Element</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '
+ * <em>Configuration Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConfigurationElement(ConfigurationElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Element Type Configuration</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '
+ * <em>Element Type Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseElementTypeConfiguration(ElementTypeConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Semantic Type Configuration</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '
+ * <em>Semantic Type Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSemanticTypeConfiguration(SemanticTypeConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Element Type Advice Configuration</em>'. <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '
+ * <em>Element Type Advice Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseElementTypeAdviceConfiguration(
+ ElementTypeAdviceConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>Semantic Type Advice Configuration</em>'. <!-- begin-user-doc -->
+ * This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '
+ * <em>Semantic Type Advice Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSemanticTypeAdviceConfiguration(
+ SemanticTypeAdviceConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '
+ * <em>EObject</em>'. <!-- begin-user-doc --> This implementation returns
+ * null; returning a non-null result will terminate the switch, but this is
+ * the last case anyway. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '
+ * <em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} // AspectSemanticSwitch
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticXMLProcessor.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticXMLProcessor.java
new file mode 100644
index 00000000000..aa4f7f58625
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/aspectsemantic/util/AspectSemanticXMLProcessor.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+import org.eclipse.emf.ecore.xmi.util.XMLProcessor;
+
+import org.eclipse.papyrus.infra.extendedtypes.aspectsemantic.AspectSemanticPackage;
+
+/**
+ * This class contains helper methods to serialize and deserialize XML documents
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AspectSemanticXMLProcessor extends XMLProcessor {
+
+ /**
+ * Public constructor to instantiate the helper. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public AspectSemanticXMLProcessor() {
+ super((EPackage.Registry.INSTANCE));
+ AspectSemanticPackage.eINSTANCE.eClass();
+ }
+
+ /**
+ * Register for "*" and "xml" file extensions the
+ * AspectSemanticResourceFactoryImpl factory. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected Map<String, Resource.Factory> getRegistrations() {
+ if (registrations == null) {
+ super.getRegistrations();
+ registrations.put(XML_EXTENSION,
+ new AspectSemanticResourceFactoryImpl());
+ registrations.put(STAR_EXTENSION,
+ new AspectSemanticResourceFactoryImpl());
+ }
+ return registrations;
+ }
+
+} // AspectSemanticXMLProcessor
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ActionConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ActionConfigurationImpl.java
index e3ccce2adbb..49817ab5a27 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ActionConfigurationImpl.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ActionConfigurationImpl.java
@@ -1,218 +1,168 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Action Configuration</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ActionConfigurationImpl#getLabel <em>Label</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ActionConfigurationImpl#getId <em>Id</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public abstract class ActionConfigurationImpl extends EObjectImpl implements ActionConfiguration {
- /**
- * The default value of the '{@link #getLabel() <em>Label</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getLabel()
- * @generated
- * @ordered
- */
- protected static final String LABEL_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getLabel() <em>Label</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getLabel()
- * @generated
- * @ordered
- */
- protected String label = LABEL_EDEFAULT;
-
- /**
- * The default value of the '{@link #getId() <em>Id</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getId()
- * @generated
- * @ordered
- */
- protected static final String ID_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getId()
- * @generated
- * @ordered
- */
- protected String id = ID_EDEFAULT;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected ActionConfigurationImpl() {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass() {
- return ExtendedtypesPackage.Literals.ACTION_CONFIGURATION;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getLabel() {
- return label;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setLabel(String newLabel) {
- String oldLabel = label;
- label = newLabel;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.ACTION_CONFIGURATION__LABEL, oldLabel, label));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getId() {
- return id;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setId(String newId) {
- String oldId = id;
- id = newId;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.ACTION_CONFIGURATION__ID, oldId, id));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case ExtendedtypesPackage.ACTION_CONFIGURATION__LABEL:
- return getLabel();
- case ExtendedtypesPackage.ACTION_CONFIGURATION__ID:
- return getId();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case ExtendedtypesPackage.ACTION_CONFIGURATION__LABEL:
- setLabel((String)newValue);
- return;
- case ExtendedtypesPackage.ACTION_CONFIGURATION__ID:
- setId((String)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eUnset(int featureID) {
- switch (featureID) {
- case ExtendedtypesPackage.ACTION_CONFIGURATION__LABEL:
- setLabel(LABEL_EDEFAULT);
- return;
- case ExtendedtypesPackage.ACTION_CONFIGURATION__ID:
- setId(ID_EDEFAULT);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case ExtendedtypesPackage.ACTION_CONFIGURATION__LABEL:
- return LABEL_EDEFAULT == null ? label != null : !LABEL_EDEFAULT.equals(label);
- case ExtendedtypesPackage.ACTION_CONFIGURATION__ID:
- return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
- }
- return super.eIsSet(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public String toString() {
- if (eIsProxy()) return super.toString();
-
- StringBuffer result = new StringBuffer(super.toString());
- result.append(" (label: ");
- result.append(label);
- result.append(", id: ");
- result.append(id);
- result.append(')');
- return result.toString();
- }
-
-} //ActionConfigurationImpl
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+
+import org.eclipse.papyrus.infra.queries.core.configuration.QueryConfiguration;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object ' <em><b>Action Configuration</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ActionConfigurationImpl#getPreValidationQueryConfiguration <em>Pre Validation Query
+ * Configuration</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ActionConfigurationImpl extends ConfigurationElementImpl implements ActionConfiguration {
+
+ /**
+ * The cached value of the '{@link #getPreValidationQueryConfiguration()
+ * <em>Pre Validation Query Configuration</em>}' reference. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getPreValidationQueryConfiguration()
+ * @generated
+ * @ordered
+ */
+ protected QueryConfiguration preValidationQueryConfiguration;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ActionConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ExtendedtypesPackage.eINSTANCE.getActionConfiguration();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public QueryConfiguration getPreValidationQueryConfiguration() {
+ if(preValidationQueryConfiguration != null && preValidationQueryConfiguration.eIsProxy()) {
+ InternalEObject oldPreValidationQueryConfiguration = (InternalEObject)preValidationQueryConfiguration;
+ preValidationQueryConfiguration = (QueryConfiguration)eResolveProxy(oldPreValidationQueryConfiguration);
+ if(preValidationQueryConfiguration != oldPreValidationQueryConfiguration) {
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExtendedtypesPackage.ACTION_CONFIGURATION__PRE_VALIDATION_QUERY_CONFIGURATION, oldPreValidationQueryConfiguration, preValidationQueryConfiguration));
+ }
+ }
+ return preValidationQueryConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public QueryConfiguration basicGetPreValidationQueryConfiguration() {
+ return preValidationQueryConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setPreValidationQueryConfiguration(QueryConfiguration newPreValidationQueryConfiguration) {
+ QueryConfiguration oldPreValidationQueryConfiguration = preValidationQueryConfiguration;
+ preValidationQueryConfiguration = newPreValidationQueryConfiguration;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.ACTION_CONFIGURATION__PRE_VALIDATION_QUERY_CONFIGURATION, oldPreValidationQueryConfiguration, preValidationQueryConfiguration));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch(featureID) {
+ case ExtendedtypesPackage.ACTION_CONFIGURATION__PRE_VALIDATION_QUERY_CONFIGURATION:
+ if(resolve)
+ return getPreValidationQueryConfiguration();
+ return basicGetPreValidationQueryConfiguration();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch(featureID) {
+ case ExtendedtypesPackage.ACTION_CONFIGURATION__PRE_VALIDATION_QUERY_CONFIGURATION:
+ setPreValidationQueryConfiguration((QueryConfiguration)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch(featureID) {
+ case ExtendedtypesPackage.ACTION_CONFIGURATION__PRE_VALIDATION_QUERY_CONFIGURATION:
+ setPreValidationQueryConfiguration((QueryConfiguration)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch(featureID) {
+ case ExtendedtypesPackage.ACTION_CONFIGURATION__PRE_VALIDATION_QUERY_CONFIGURATION:
+ return preValidationQueryConfiguration != null;
+ }
+ return super.eIsSet(featureID);
+ }
+} // ActionConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ConfigurationElementImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ConfigurationElementImpl.java
new file mode 100644
index 00000000000..23377c7243f
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ConfigurationElementImpl.java
@@ -0,0 +1,363 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+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.impl.EObjectImpl;
+
+import org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement;
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+import org.eclipse.papyrus.infra.extendedtypes.IconEntry;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object ' <em><b>Configuration Element</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ConfigurationElementImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ConfigurationElementImpl#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ConfigurationElementImpl#getIdentifier <em>Identifier</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ConfigurationElementImpl#getIconEntry <em>Icon Entry</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ConfigurationElementImpl extends EObjectImpl implements ConfigurationElement {
+
+ /**
+ * 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 #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIdentifier() <em>Identifier</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getIdentifier()
+ * @generated
+ * @ordered
+ */
+ protected static final String IDENTIFIER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getIdentifier() <em>Identifier</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getIdentifier()
+ * @generated
+ * @ordered
+ */
+ protected String identifier = IDENTIFIER_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getIconEntry() <em>Icon Entry</em>}' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getIconEntry()
+ * @generated
+ * @ordered
+ */
+ protected IconEntry iconEntry;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ConfigurationElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ExtendedtypesPackage.eINSTANCE.getConfigurationElement();
+ }
+
+ /**
+ * <!-- 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, ExtendedtypesPackage.CONFIGURATION_ELEMENT__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setDescription(String newDescription) {
+ String oldDescription = description;
+ description = newDescription;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.CONFIGURATION_ELEMENT__DESCRIPTION, oldDescription, description));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getIdentifier() {
+ return identifier;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setIdentifier(String newIdentifier) {
+ String oldIdentifier = identifier;
+ identifier = newIdentifier;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.CONFIGURATION_ELEMENT__IDENTIFIER, oldIdentifier, identifier));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IconEntry getIconEntry() {
+ return iconEntry;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetIconEntry(IconEntry newIconEntry, NotificationChain msgs) {
+ IconEntry oldIconEntry = iconEntry;
+ iconEntry = newIconEntry;
+ if(eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.CONFIGURATION_ELEMENT__ICON_ENTRY, oldIconEntry, newIconEntry);
+ if(msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setIconEntry(IconEntry newIconEntry) {
+ if(newIconEntry != iconEntry) {
+ NotificationChain msgs = null;
+ if(iconEntry != null)
+ msgs = ((InternalEObject)iconEntry).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtendedtypesPackage.CONFIGURATION_ELEMENT__ICON_ENTRY, null, msgs);
+ if(newIconEntry != null)
+ msgs = ((InternalEObject)newIconEntry).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtendedtypesPackage.CONFIGURATION_ELEMENT__ICON_ENTRY, null, msgs);
+ msgs = basicSetIconEntry(newIconEntry, msgs);
+ if(msgs != null)
+ msgs.dispatch();
+ } else if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.CONFIGURATION_ELEMENT__ICON_ENTRY, newIconEntry, newIconEntry));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch(featureID) {
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__ICON_ENTRY:
+ return basicSetIconEntry(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch(featureID) {
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__NAME:
+ return getName();
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__DESCRIPTION:
+ return getDescription();
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__IDENTIFIER:
+ return getIdentifier();
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__ICON_ENTRY:
+ return getIconEntry();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch(featureID) {
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__NAME:
+ setName((String)newValue);
+ return;
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__DESCRIPTION:
+ setDescription((String)newValue);
+ return;
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__IDENTIFIER:
+ setIdentifier((String)newValue);
+ return;
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__ICON_ENTRY:
+ setIconEntry((IconEntry)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch(featureID) {
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__DESCRIPTION:
+ setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__IDENTIFIER:
+ setIdentifier(IDENTIFIER_EDEFAULT);
+ return;
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__ICON_ENTRY:
+ setIconEntry((IconEntry)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch(featureID) {
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__IDENTIFIER:
+ return IDENTIFIER_EDEFAULT == null ? identifier != null : !IDENTIFIER_EDEFAULT.equals(identifier);
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT__ICON_ENTRY:
+ return iconEntry != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if(eIsProxy())
+ return super.toString();
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: "); //$NON-NLS-1$
+ result.append(name);
+ result.append(", description: "); //$NON-NLS-1$
+ result.append(description);
+ result.append(", identifier: "); //$NON-NLS-1$
+ result.append(identifier);
+ result.append(')');
+ return result.toString();
+ }
+} // ConfigurationElementImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ElementTypeAdviceConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ElementTypeAdviceConfigurationImpl.java
new file mode 100644
index 00000000000..e65faf1ac84
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ElementTypeAdviceConfigurationImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.infra.extendedtypes.ElementTypeAdviceConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object ' <em><b>Element Type Advice Configuration</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ElementTypeAdviceConfigurationImpl extends ConfigurationElementImpl implements ElementTypeAdviceConfiguration {
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ElementTypeAdviceConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ExtendedtypesPackage.eINSTANCE.getElementTypeAdviceConfiguration();
+ }
+} // ElementTypeAdviceConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ElementTypeConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ElementTypeConfigurationImpl.java
new file mode 100644
index 00000000000..e00f99f1a03
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ElementTypeConfigurationImpl.java
@@ -0,0 +1,357 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+import java.util.Collection;
+
+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.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+import org.eclipse.papyrus.infra.extendedtypes.MatcherConfiguration;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object ' <em><b>Element Type Configuration</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ElementTypeConfigurationImpl#getHint <em>Hint</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ElementTypeConfigurationImpl#getKindName <em>Kind Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ElementTypeConfigurationImpl#getSpecializedTypesID <em>Specialized Types ID</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ElementTypeConfigurationImpl#getMatcherConfiguration <em>Matcher Configuration</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ElementTypeConfigurationImpl extends ConfigurationElementImpl implements ElementTypeConfiguration {
+
+ /**
+ * The default value of the '{@link #getHint() <em>Hint</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getHint()
+ * @generated
+ * @ordered
+ */
+ protected static final String HINT_EDEFAULT = "ExtendedElements"; //$NON-NLS-1$
+
+ /**
+ * The cached value of the '{@link #getHint() <em>Hint</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getHint()
+ * @generated
+ * @ordered
+ */
+ protected String hint = HINT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getKindName() <em>Kind Name</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getKindName()
+ * @generated
+ * @ordered
+ */
+ protected static final String KIND_NAME_EDEFAULT = "org.eclipse.gmf.runtime.emf.type.core.IHintedType"; //$NON-NLS-1$
+
+ /**
+ * The cached value of the '{@link #getKindName() <em>Kind Name</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getKindName()
+ * @generated
+ * @ordered
+ */
+ protected String kindName = KIND_NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSpecializedTypesID() <em>Specialized Types ID</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSpecializedTypesID()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> specializedTypesID;
+
+ /**
+ * The cached value of the '{@link #getMatcherConfiguration() <em>Matcher Configuration</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getMatcherConfiguration()
+ * @generated
+ * @ordered
+ */
+ protected MatcherConfiguration matcherConfiguration;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ElementTypeConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ExtendedtypesPackage.eINSTANCE.getElementTypeConfiguration();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getHint() {
+ return hint;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setHint(String newHint) {
+ String oldHint = hint;
+ hint = newHint;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__HINT, oldHint, hint));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getKindName() {
+ return kindName;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setKindName(String newKindName) {
+ String oldKindName = kindName;
+ kindName = newKindName;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__KIND_NAME, oldKindName, kindName));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<String> getSpecializedTypesID() {
+ if(specializedTypesID == null) {
+ specializedTypesID = new EDataTypeUniqueEList<String>(String.class, this, ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID);
+ }
+ return specializedTypesID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public MatcherConfiguration getMatcherConfiguration() {
+ return matcherConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetMatcherConfiguration(MatcherConfiguration newMatcherConfiguration, NotificationChain msgs) {
+ MatcherConfiguration oldMatcherConfiguration = matcherConfiguration;
+ matcherConfiguration = newMatcherConfiguration;
+ if(eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__MATCHER_CONFIGURATION, oldMatcherConfiguration, newMatcherConfiguration);
+ if(msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setMatcherConfiguration(MatcherConfiguration newMatcherConfiguration) {
+ if(newMatcherConfiguration != matcherConfiguration) {
+ NotificationChain msgs = null;
+ if(matcherConfiguration != null)
+ msgs = ((InternalEObject)matcherConfiguration).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__MATCHER_CONFIGURATION, null, msgs);
+ if(newMatcherConfiguration != null)
+ msgs = ((InternalEObject)newMatcherConfiguration).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__MATCHER_CONFIGURATION, null, msgs);
+ msgs = basicSetMatcherConfiguration(newMatcherConfiguration, msgs);
+ if(msgs != null)
+ msgs.dispatch();
+ } else if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__MATCHER_CONFIGURATION, newMatcherConfiguration, newMatcherConfiguration));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch(featureID) {
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__MATCHER_CONFIGURATION:
+ return basicSetMatcherConfiguration(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch(featureID) {
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__HINT:
+ return getHint();
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__KIND_NAME:
+ return getKindName();
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID:
+ return getSpecializedTypesID();
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__MATCHER_CONFIGURATION:
+ return getMatcherConfiguration();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch(featureID) {
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__HINT:
+ setHint((String)newValue);
+ return;
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__KIND_NAME:
+ setKindName((String)newValue);
+ return;
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID:
+ getSpecializedTypesID().clear();
+ getSpecializedTypesID().addAll((Collection<? extends String>)newValue);
+ return;
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__MATCHER_CONFIGURATION:
+ setMatcherConfiguration((MatcherConfiguration)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch(featureID) {
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__HINT:
+ setHint(HINT_EDEFAULT);
+ return;
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__KIND_NAME:
+ setKindName(KIND_NAME_EDEFAULT);
+ return;
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID:
+ getSpecializedTypesID().clear();
+ return;
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__MATCHER_CONFIGURATION:
+ setMatcherConfiguration((MatcherConfiguration)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch(featureID) {
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__HINT:
+ return HINT_EDEFAULT == null ? hint != null : !HINT_EDEFAULT.equals(hint);
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__KIND_NAME:
+ return KIND_NAME_EDEFAULT == null ? kindName != null : !KIND_NAME_EDEFAULT.equals(kindName);
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID:
+ return specializedTypesID != null && !specializedTypesID.isEmpty();
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION__MATCHER_CONFIGURATION:
+ return matcherConfiguration != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if(eIsProxy())
+ return super.toString();
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (hint: "); //$NON-NLS-1$
+ result.append(hint);
+ result.append(", kindName: "); //$NON-NLS-1$
+ result.append(kindName);
+ result.append(", specializedTypesID: "); //$NON-NLS-1$
+ result.append(specializedTypesID);
+ result.append(')');
+ return result.toString();
+ }
+} // ElementTypeConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedElementTypeConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedElementTypeConfigurationImpl.java
deleted file mode 100644
index 22fce08b622..00000000000
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedElementTypeConfigurationImpl.java
+++ /dev/null
@@ -1,614 +0,0 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes.impl;
-
-import java.util.Collection;
-
-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.impl.EObjectImpl;
-import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.EObjectResolvingEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
-import org.eclipse.papyrus.infra.extendedtypes.IconEntry;
-import org.eclipse.papyrus.infra.extendedtypes.PostActionConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.PreActionConfiguration;
-import org.eclipse.papyrus.infra.queries.core.configuration.QueryConfiguration;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Extended Element Type Configuration</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeConfigurationImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeConfigurationImpl#getId <em>Id</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeConfigurationImpl#getIconEntry <em>Icon Entry</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeConfigurationImpl#getHint <em>Hint</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeConfigurationImpl#getKindName <em>Kind Name</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeConfigurationImpl#getSpecializedTypesID <em>Specialized Types ID</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeConfigurationImpl#getPreValidation <em>Pre Validation</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeConfigurationImpl#getPreAction <em>Pre Action</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeConfigurationImpl#getPostAction <em>Post Action</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeConfigurationImpl#getSpecializedDiagramTypeID <em>Specialized Diagram Type ID</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class ExtendedElementTypeConfigurationImpl extends EObjectImpl implements ExtendedElementTypeConfiguration {
- /**
- * 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 #getId() <em>Id</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getId()
- * @generated
- * @ordered
- */
- protected static final String ID_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getId()
- * @generated
- * @ordered
- */
- protected String id = ID_EDEFAULT;
-
- /**
- * The cached value of the '{@link #getIconEntry() <em>Icon Entry</em>}' containment reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getIconEntry()
- * @generated
- * @ordered
- */
- protected IconEntry iconEntry;
-
- /**
- * The default value of the '{@link #getHint() <em>Hint</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getHint()
- * @generated
- * @ordered
- */
- protected static final String HINT_EDEFAULT = "ExtendedElements";
-
- /**
- * The cached value of the '{@link #getHint() <em>Hint</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getHint()
- * @generated
- * @ordered
- */
- protected String hint = HINT_EDEFAULT;
-
- /**
- * The default value of the '{@link #getKindName() <em>Kind Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getKindName()
- * @generated
- * @ordered
- */
- protected static final String KIND_NAME_EDEFAULT = "org.eclipse.gmf.runtime.emf.type.core.IHintedType";
-
- /**
- * The cached value of the '{@link #getKindName() <em>Kind Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getKindName()
- * @generated
- * @ordered
- */
- protected String kindName = KIND_NAME_EDEFAULT;
-
- /**
- * The cached value of the '{@link #getSpecializedTypesID() <em>Specialized Types ID</em>}' attribute list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getSpecializedTypesID()
- * @generated
- * @ordered
- */
- protected EList<String> specializedTypesID;
-
- /**
- * The cached value of the '{@link #getPreValidation() <em>Pre Validation</em>}' reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getPreValidation()
- * @generated
- * @ordered
- */
- protected EList<QueryConfiguration> preValidation;
-
- /**
- * The cached value of the '{@link #getPreAction() <em>Pre Action</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getPreAction()
- * @generated
- * @ordered
- */
- protected EList<PreActionConfiguration> preAction;
-
- /**
- * The cached value of the '{@link #getPostAction() <em>Post Action</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getPostAction()
- * @generated
- * @ordered
- */
- protected EList<PostActionConfiguration> postAction;
-
- /**
- * The default value of the '{@link #getSpecializedDiagramTypeID() <em>Specialized Diagram Type ID</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getSpecializedDiagramTypeID()
- * @generated
- * @ordered
- */
- protected static final String SPECIALIZED_DIAGRAM_TYPE_ID_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getSpecializedDiagramTypeID() <em>Specialized Diagram Type ID</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getSpecializedDiagramTypeID()
- * @generated
- * @ordered
- */
- protected String specializedDiagramTypeID = SPECIALIZED_DIAGRAM_TYPE_ID_EDEFAULT;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected ExtendedElementTypeConfigurationImpl() {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass() {
- return ExtendedtypesPackage.Literals.EXTENDED_ELEMENT_TYPE_CONFIGURATION;
- }
-
- /**
- * <!-- 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, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__NAME, oldName, name));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getId() {
- return id;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setId(String newId) {
- String oldId = id;
- id = newId;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__ID, oldId, id));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public IconEntry getIconEntry() {
- return iconEntry;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public NotificationChain basicSetIconEntry(IconEntry newIconEntry, NotificationChain msgs) {
- IconEntry oldIconEntry = iconEntry;
- iconEntry = newIconEntry;
- if (eNotificationRequired()) {
- ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY, oldIconEntry, newIconEntry);
- if (msgs == null) msgs = notification; else msgs.add(notification);
- }
- return msgs;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setIconEntry(IconEntry newIconEntry) {
- if (newIconEntry != iconEntry) {
- NotificationChain msgs = null;
- if (iconEntry != null)
- msgs = ((InternalEObject)iconEntry).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY, null, msgs);
- if (newIconEntry != null)
- msgs = ((InternalEObject)newIconEntry).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY, null, msgs);
- msgs = basicSetIconEntry(newIconEntry, msgs);
- if (msgs != null) msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY, newIconEntry, newIconEntry));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getHint() {
- return hint;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setHint(String newHint) {
- String oldHint = hint;
- hint = newHint;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__HINT, oldHint, hint));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getKindName() {
- return kindName;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setKindName(String newKindName) {
- String oldKindName = kindName;
- kindName = newKindName;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__KIND_NAME, oldKindName, kindName));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<String> getSpecializedTypesID() {
- if (specializedTypesID == null) {
- specializedTypesID = new EDataTypeUniqueEList<String>(String.class, this, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID);
- }
- return specializedTypesID;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<QueryConfiguration> getPreValidation() {
- if (preValidation == null) {
- preValidation = new EObjectResolvingEList<QueryConfiguration>(QueryConfiguration.class, this, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_VALIDATION);
- }
- return preValidation;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<PreActionConfiguration> getPreAction() {
- if (preAction == null) {
- preAction = new EObjectContainmentEList<PreActionConfiguration>(PreActionConfiguration.class, this, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_ACTION);
- }
- return preAction;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<PostActionConfiguration> getPostAction() {
- if (postAction == null) {
- postAction = new EObjectContainmentEList<PostActionConfiguration>(PostActionConfiguration.class, this, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__POST_ACTION);
- }
- return postAction;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getSpecializedDiagramTypeID() {
- return specializedDiagramTypeID;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setSpecializedDiagramTypeID(String newSpecializedDiagramTypeID) {
- String oldSpecializedDiagramTypeID = specializedDiagramTypeID;
- specializedDiagramTypeID = newSpecializedDiagramTypeID;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID, oldSpecializedDiagramTypeID, specializedDiagramTypeID));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY:
- return basicSetIconEntry(null, msgs);
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_ACTION:
- return ((InternalEList<?>)getPreAction()).basicRemove(otherEnd, msgs);
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__POST_ACTION:
- return ((InternalEList<?>)getPostAction()).basicRemove(otherEnd, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__NAME:
- return getName();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__ID:
- return getId();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY:
- return getIconEntry();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__HINT:
- return getHint();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__KIND_NAME:
- return getKindName();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID:
- return getSpecializedTypesID();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_VALIDATION:
- return getPreValidation();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_ACTION:
- return getPreAction();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__POST_ACTION:
- return getPostAction();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID:
- return getSpecializedDiagramTypeID();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
- @Override
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__NAME:
- setName((String)newValue);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__ID:
- setId((String)newValue);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY:
- setIconEntry((IconEntry)newValue);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__HINT:
- setHint((String)newValue);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__KIND_NAME:
- setKindName((String)newValue);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID:
- getSpecializedTypesID().clear();
- getSpecializedTypesID().addAll((Collection<? extends String>)newValue);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_VALIDATION:
- getPreValidation().clear();
- getPreValidation().addAll((Collection<? extends QueryConfiguration>)newValue);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_ACTION:
- getPreAction().clear();
- getPreAction().addAll((Collection<? extends PreActionConfiguration>)newValue);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__POST_ACTION:
- getPostAction().clear();
- getPostAction().addAll((Collection<? extends PostActionConfiguration>)newValue);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID:
- setSpecializedDiagramTypeID((String)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eUnset(int featureID) {
- switch (featureID) {
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__NAME:
- setName(NAME_EDEFAULT);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__ID:
- setId(ID_EDEFAULT);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY:
- setIconEntry((IconEntry)null);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__HINT:
- setHint(HINT_EDEFAULT);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__KIND_NAME:
- setKindName(KIND_NAME_EDEFAULT);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID:
- getSpecializedTypesID().clear();
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_VALIDATION:
- getPreValidation().clear();
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_ACTION:
- getPreAction().clear();
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__POST_ACTION:
- getPostAction().clear();
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID:
- setSpecializedDiagramTypeID(SPECIALIZED_DIAGRAM_TYPE_ID_EDEFAULT);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__NAME:
- return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__ID:
- return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY:
- return iconEntry != null;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__HINT:
- return HINT_EDEFAULT == null ? hint != null : !HINT_EDEFAULT.equals(hint);
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__KIND_NAME:
- return KIND_NAME_EDEFAULT == null ? kindName != null : !KIND_NAME_EDEFAULT.equals(kindName);
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID:
- return specializedTypesID != null && !specializedTypesID.isEmpty();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_VALIDATION:
- return preValidation != null && !preValidation.isEmpty();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_ACTION:
- return preAction != null && !preAction.isEmpty();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__POST_ACTION:
- return postAction != null && !postAction.isEmpty();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID:
- return SPECIALIZED_DIAGRAM_TYPE_ID_EDEFAULT == null ? specializedDiagramTypeID != null : !SPECIALIZED_DIAGRAM_TYPE_ID_EDEFAULT.equals(specializedDiagramTypeID);
- }
- return super.eIsSet(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public String toString() {
- if (eIsProxy()) return super.toString();
-
- StringBuffer result = new StringBuffer(super.toString());
- result.append(" (name: ");
- result.append(name);
- result.append(", id: ");
- result.append(id);
- result.append(", hint: ");
- result.append(hint);
- result.append(", kindName: ");
- result.append(kindName);
- result.append(", specializedTypesID: ");
- result.append(specializedTypesID);
- result.append(", specializedDiagramTypeID: ");
- result.append(specializedDiagramTypeID);
- result.append(')');
- return result.toString();
- }
-
-} //ExtendedElementTypeConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedElementTypeSetImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedElementTypeSetImpl.java
index 5f547c52d23..37fa2d10111 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedElementTypeSetImpl.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedElementTypeSetImpl.java
@@ -1,221 +1,233 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes.impl;
-
-import java.util.Collection;
-
-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.impl.EObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Extended Element Type Set</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeSetImpl#getElementType <em>Element Type</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeSetImpl#getId <em>Id</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class ExtendedElementTypeSetImpl extends EObjectImpl implements ExtendedElementTypeSet {
- /**
- * The cached value of the '{@link #getElementType() <em>Element Type</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getElementType()
- * @generated
- * @ordered
- */
- protected EList<ExtendedElementTypeConfiguration> elementType;
-
- /**
- * The default value of the '{@link #getId() <em>Id</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getId()
- * @generated
- * @ordered
- */
- protected static final String ID_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getId()
- * @generated
- * @ordered
- */
- protected String id = ID_EDEFAULT;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected ExtendedElementTypeSetImpl() {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass() {
- return ExtendedtypesPackage.Literals.EXTENDED_ELEMENT_TYPE_SET;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<ExtendedElementTypeConfiguration> getElementType() {
- if (elementType == null) {
- elementType = new EObjectContainmentEList<ExtendedElementTypeConfiguration>(ExtendedElementTypeConfiguration.class, this, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE);
- }
- return elementType;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getId() {
- return id;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setId(String newId) {
- String oldId = id;
- id = newId;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ID, oldId, id));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE:
- return ((InternalEList<?>)getElementType()).basicRemove(otherEnd, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE:
- return getElementType();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ID:
- return getId();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
- @Override
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE:
- getElementType().clear();
- getElementType().addAll((Collection<? extends ExtendedElementTypeConfiguration>)newValue);
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ID:
- setId((String)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eUnset(int featureID) {
- switch (featureID) {
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE:
- getElementType().clear();
- return;
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ID:
- setId(ID_EDEFAULT);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE:
- return elementType != null && !elementType.isEmpty();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ID:
- return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
- }
- return super.eIsSet(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public String toString() {
- if (eIsProxy()) return super.toString();
-
- StringBuffer result = new StringBuffer(super.toString());
- result.append(" (id: ");
- result.append(id);
- result.append(')');
- return result.toString();
- }
-
-} //ExtendedElementTypeSetImpl
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+import java.util.Collection;
+
+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;
+
+import org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet;
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object ' <em><b>Extended Element Type Set</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeSetImpl#getElementType <em>Element Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ExtendedElementTypeSetImpl#isExtensible <em>Extensible</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ExtendedElementTypeSetImpl extends ConfigurationElementImpl implements ExtendedElementTypeSet {
+
+ /**
+ * The cached value of the '{@link #getElementType() <em>Element Type</em>}' containment reference list.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getElementType()
+ * @generated
+ * @ordered
+ */
+ protected EList<ElementTypeConfiguration> elementType;
+
+ /**
+ * The default value of the '{@link #isExtensible() <em>Extensible</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isExtensible()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean EXTENSIBLE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isExtensible() <em>Extensible</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #isExtensible()
+ * @generated
+ * @ordered
+ */
+ protected boolean extensible = EXTENSIBLE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ExtendedElementTypeSetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ExtendedtypesPackage.eINSTANCE.getExtendedElementTypeSet();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<ElementTypeConfiguration> getElementType() {
+ if(elementType == null) {
+ elementType = new EObjectContainmentEList<ElementTypeConfiguration>(ElementTypeConfiguration.class, this, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE);
+ }
+ return elementType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public boolean isExtensible() {
+ return extensible;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setExtensible(boolean newExtensible) {
+ boolean oldExtensible = extensible;
+ extensible = newExtensible;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__EXTENSIBLE, oldExtensible, extensible));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch(featureID) {
+ case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE:
+ return ((InternalEList<?>)getElementType()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch(featureID) {
+ case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE:
+ return getElementType();
+ case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__EXTENSIBLE:
+ return isExtensible();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch(featureID) {
+ case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE:
+ getElementType().clear();
+ getElementType().addAll((Collection<? extends ElementTypeConfiguration>)newValue);
+ return;
+ case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__EXTENSIBLE:
+ setExtensible((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch(featureID) {
+ case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE:
+ getElementType().clear();
+ return;
+ case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__EXTENSIBLE:
+ setExtensible(EXTENSIBLE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch(featureID) {
+ case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE:
+ return elementType != null && !elementType.isEmpty();
+ case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET__EXTENSIBLE:
+ return extensible != EXTENSIBLE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if(eIsProxy())
+ return super.toString();
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (extensible: "); //$NON-NLS-1$
+ result.append(extensible);
+ result.append(')');
+ return result.toString();
+ }
+} // ExtendedElementTypeSetImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedtypesFactoryImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedtypesFactoryImpl.java
index afa82b60f45..f969353b725 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedtypesFactoryImpl.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedtypesFactoryImpl.java
@@ -1,122 +1,119 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes.impl;
-
-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;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesFactory;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
-import org.eclipse.papyrus.infra.extendedtypes.IconEntry;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class ExtendedtypesFactoryImpl extends EFactoryImpl implements ExtendedtypesFactory {
- /**
- * Creates the default factory implementation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public static ExtendedtypesFactory init() {
- try {
- ExtendedtypesFactory theExtendedtypesFactory = (ExtendedtypesFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/papyrus/diagram/types/extendedtypes/0.7");
- if (theExtendedtypesFactory != null) {
- return theExtendedtypesFactory;
- }
- }
- catch (Exception exception) {
- EcorePlugin.INSTANCE.log(exception);
- }
- return new ExtendedtypesFactoryImpl();
- }
-
- /**
- * Creates an instance of the factory.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public ExtendedtypesFactoryImpl() {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public EObject create(EClass eClass) {
- switch (eClass.getClassifierID()) {
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET: return createExtendedElementTypeSet();
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION: return createExtendedElementTypeConfiguration();
- case ExtendedtypesPackage.ICON_ENTRY: return createIconEntry();
- default:
- throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
- }
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public ExtendedElementTypeSet createExtendedElementTypeSet() {
- ExtendedElementTypeSetImpl extendedElementTypeSet = new ExtendedElementTypeSetImpl();
- return extendedElementTypeSet;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public ExtendedElementTypeConfiguration createExtendedElementTypeConfiguration() {
- ExtendedElementTypeConfigurationImpl extendedElementTypeConfiguration = new ExtendedElementTypeConfigurationImpl();
- return extendedElementTypeConfiguration;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public IconEntry createIconEntry() {
- IconEntryImpl iconEntry = new IconEntryImpl();
- return iconEntry;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public ExtendedtypesPackage getExtendedtypesPackage() {
- return (ExtendedtypesPackage)getEPackage();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @deprecated
- * @generated
- */
- @Deprecated
- public static ExtendedtypesPackage getPackage() {
- return ExtendedtypesPackage.eINSTANCE;
- }
-
-} //ExtendedtypesFactoryImpl
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+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;
+
+import org.eclipse.papyrus.infra.extendedtypes.*;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+public class ExtendedtypesFactoryImpl extends EFactoryImpl implements ExtendedtypesFactory {
+
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public static ExtendedtypesFactory init() {
+ try {
+ ExtendedtypesFactory theExtendedtypesFactory = (ExtendedtypesFactory)EPackage.Registry.INSTANCE.getEFactory(ExtendedtypesPackage.eNS_URI);
+ if(theExtendedtypesFactory != null) {
+ return theExtendedtypesFactory;
+ }
+ } catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ExtendedtypesFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public ExtendedtypesFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch(eClass.getClassifierID()) {
+ case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET:
+ return createExtendedElementTypeSet();
+ case ExtendedtypesPackage.ICON_ENTRY:
+ return createIconEntry();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ExtendedElementTypeSet createExtendedElementTypeSet() {
+ ExtendedElementTypeSetImpl extendedElementTypeSet = new ExtendedElementTypeSetImpl();
+ return extendedElementTypeSet;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public IconEntry createIconEntry() {
+ IconEntryImpl iconEntry = new IconEntryImpl();
+ return iconEntry;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ExtendedtypesPackage getExtendedtypesPackage() {
+ return (ExtendedtypesPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static ExtendedtypesPackage getPackage() {
+ return ExtendedtypesPackage.eINSTANCE;
+ }
+} // ExtendedtypesFactoryImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedtypesPackageImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedtypesPackageImpl.java
index fdbc63cc5f1..16a109f171a 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedtypesPackageImpl.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ExtendedtypesPackageImpl.java
@@ -1,459 +1,567 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes.impl;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesFactory;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
-import org.eclipse.papyrus.infra.extendedtypes.IconEntry;
-import org.eclipse.papyrus.infra.extendedtypes.PostActionConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.PreActionConfiguration;
-import org.eclipse.papyrus.infra.queries.core.configuration.ConfigurationPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class ExtendedtypesPackageImpl extends EPackageImpl implements ExtendedtypesPackage {
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- private EClass extendedElementTypeSetEClass = null;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- private EClass extendedElementTypeConfigurationEClass = null;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- private EClass iconEntryEClass = null;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- private EClass actionConfigurationEClass = null;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- private EClass preActionConfigurationEClass = null;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- private EClass postActionConfigurationEClass = 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.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#eNS_URI
- * @see #init()
- * @generated
- */
- private ExtendedtypesPackageImpl() {
- super(eNS_URI, ExtendedtypesFactory.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.
- *
- * <p>This method is used to initialize {@link ExtendedtypesPackage#eINSTANCE} when that field is accessed.
- * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #eNS_URI
- * @see #createPackageContents()
- * @see #initializePackageContents()
- * @generated
- */
- public static ExtendedtypesPackage init() {
- if (isInited) return (ExtendedtypesPackage)EPackage.Registry.INSTANCE.getEPackage(ExtendedtypesPackage.eNS_URI);
-
- // Obtain or create and register package
- ExtendedtypesPackageImpl theExtendedtypesPackage = (ExtendedtypesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ExtendedtypesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ExtendedtypesPackageImpl());
-
- isInited = true;
-
- // Initialize simple dependencies
- ConfigurationPackage.eINSTANCE.eClass();
-
- // Create package meta-data objects
- theExtendedtypesPackage.createPackageContents();
-
- // Initialize created meta-data
- theExtendedtypesPackage.initializePackageContents();
-
- // Mark meta-data to indicate it can't be changed
- theExtendedtypesPackage.freeze();
-
-
- // Update the registry and return the package
- EPackage.Registry.INSTANCE.put(ExtendedtypesPackage.eNS_URI, theExtendedtypesPackage);
- return theExtendedtypesPackage;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EClass getExtendedElementTypeSet() {
- return extendedElementTypeSetEClass;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EReference getExtendedElementTypeSet_ElementType() {
- return (EReference)extendedElementTypeSetEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EAttribute getExtendedElementTypeSet_Id() {
- return (EAttribute)extendedElementTypeSetEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EClass getExtendedElementTypeConfiguration() {
- return extendedElementTypeConfigurationEClass;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EAttribute getExtendedElementTypeConfiguration_Name() {
- return (EAttribute)extendedElementTypeConfigurationEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EAttribute getExtendedElementTypeConfiguration_Id() {
- return (EAttribute)extendedElementTypeConfigurationEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EReference getExtendedElementTypeConfiguration_IconEntry() {
- return (EReference)extendedElementTypeConfigurationEClass.getEStructuralFeatures().get(2);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EAttribute getExtendedElementTypeConfiguration_Hint() {
- return (EAttribute)extendedElementTypeConfigurationEClass.getEStructuralFeatures().get(3);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EAttribute getExtendedElementTypeConfiguration_KindName() {
- return (EAttribute)extendedElementTypeConfigurationEClass.getEStructuralFeatures().get(4);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EAttribute getExtendedElementTypeConfiguration_SpecializedTypesID() {
- return (EAttribute)extendedElementTypeConfigurationEClass.getEStructuralFeatures().get(5);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EReference getExtendedElementTypeConfiguration_PreValidation() {
- return (EReference)extendedElementTypeConfigurationEClass.getEStructuralFeatures().get(6);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EReference getExtendedElementTypeConfiguration_PreAction() {
- return (EReference)extendedElementTypeConfigurationEClass.getEStructuralFeatures().get(7);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EReference getExtendedElementTypeConfiguration_PostAction() {
- return (EReference)extendedElementTypeConfigurationEClass.getEStructuralFeatures().get(8);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EAttribute getExtendedElementTypeConfiguration_SpecializedDiagramTypeID() {
- return (EAttribute)extendedElementTypeConfigurationEClass.getEStructuralFeatures().get(9);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EClass getIconEntry() {
- return iconEntryEClass;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EAttribute getIconEntry_IconPath() {
- return (EAttribute)iconEntryEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EAttribute getIconEntry_BundleId() {
- return (EAttribute)iconEntryEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EClass getActionConfiguration() {
- return actionConfigurationEClass;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EAttribute getActionConfiguration_Label() {
- return (EAttribute)actionConfigurationEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EAttribute getActionConfiguration_Id() {
- return (EAttribute)actionConfigurationEClass.getEStructuralFeatures().get(1);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EClass getPreActionConfiguration() {
- return preActionConfigurationEClass;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EClass getPostActionConfiguration() {
- return postActionConfigurationEClass;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public ExtendedtypesFactory getExtendedtypesFactory() {
- return (ExtendedtypesFactory)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
- extendedElementTypeSetEClass = createEClass(EXTENDED_ELEMENT_TYPE_SET);
- createEReference(extendedElementTypeSetEClass, EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE);
- createEAttribute(extendedElementTypeSetEClass, EXTENDED_ELEMENT_TYPE_SET__ID);
-
- extendedElementTypeConfigurationEClass = createEClass(EXTENDED_ELEMENT_TYPE_CONFIGURATION);
- createEAttribute(extendedElementTypeConfigurationEClass, EXTENDED_ELEMENT_TYPE_CONFIGURATION__NAME);
- createEAttribute(extendedElementTypeConfigurationEClass, EXTENDED_ELEMENT_TYPE_CONFIGURATION__ID);
- createEReference(extendedElementTypeConfigurationEClass, EXTENDED_ELEMENT_TYPE_CONFIGURATION__ICON_ENTRY);
- createEAttribute(extendedElementTypeConfigurationEClass, EXTENDED_ELEMENT_TYPE_CONFIGURATION__HINT);
- createEAttribute(extendedElementTypeConfigurationEClass, EXTENDED_ELEMENT_TYPE_CONFIGURATION__KIND_NAME);
- createEAttribute(extendedElementTypeConfigurationEClass, EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID);
- createEReference(extendedElementTypeConfigurationEClass, EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_VALIDATION);
- createEReference(extendedElementTypeConfigurationEClass, EXTENDED_ELEMENT_TYPE_CONFIGURATION__PRE_ACTION);
- createEReference(extendedElementTypeConfigurationEClass, EXTENDED_ELEMENT_TYPE_CONFIGURATION__POST_ACTION);
- createEAttribute(extendedElementTypeConfigurationEClass, EXTENDED_ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID);
-
- iconEntryEClass = createEClass(ICON_ENTRY);
- createEAttribute(iconEntryEClass, ICON_ENTRY__ICON_PATH);
- createEAttribute(iconEntryEClass, ICON_ENTRY__BUNDLE_ID);
-
- actionConfigurationEClass = createEClass(ACTION_CONFIGURATION);
- createEAttribute(actionConfigurationEClass, ACTION_CONFIGURATION__LABEL);
- createEAttribute(actionConfigurationEClass, ACTION_CONFIGURATION__ID);
-
- preActionConfigurationEClass = createEClass(PRE_ACTION_CONFIGURATION);
-
- postActionConfigurationEClass = createEClass(POST_ACTION_CONFIGURATION);
- }
-
- /**
- * <!-- 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
- ConfigurationPackage theConfigurationPackage = (ConfigurationPackage)EPackage.Registry.INSTANCE.getEPackage(ConfigurationPackage.eNS_URI);
-
- // Create type parameters
-
- // Set bounds for type parameters
-
- // Add supertypes to classes
- preActionConfigurationEClass.getESuperTypes().add(this.getActionConfiguration());
- postActionConfigurationEClass.getESuperTypes().add(this.getActionConfiguration());
-
- // Initialize classes and features; add operations and parameters
- initEClass(extendedElementTypeSetEClass, ExtendedElementTypeSet.class, "ExtendedElementTypeSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getExtendedElementTypeSet_ElementType(), this.getExtendedElementTypeConfiguration(), null, "elementType", null, 1, -1, ExtendedElementTypeSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getExtendedElementTypeSet_Id(), ecorePackage.getEString(), "id", null, 1, 1, ExtendedElementTypeSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(extendedElementTypeConfigurationEClass, ExtendedElementTypeConfiguration.class, "ExtendedElementTypeConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getExtendedElementTypeConfiguration_Name(), ecorePackage.getEString(), "name", null, 1, 1, ExtendedElementTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getExtendedElementTypeConfiguration_Id(), ecorePackage.getEString(), "id", null, 1, 1, ExtendedElementTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getExtendedElementTypeConfiguration_IconEntry(), this.getIconEntry(), null, "iconEntry", null, 0, 1, ExtendedElementTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getExtendedElementTypeConfiguration_Hint(), ecorePackage.getEString(), "hint", "ExtendedElements", 0, 1, ExtendedElementTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getExtendedElementTypeConfiguration_KindName(), ecorePackage.getEString(), "kindName", "org.eclipse.gmf.runtime.emf.type.core.IHintedType", 0, 1, ExtendedElementTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getExtendedElementTypeConfiguration_SpecializedTypesID(), ecorePackage.getEString(), "specializedTypesID", null, 1, -1, ExtendedElementTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getExtendedElementTypeConfiguration_PreValidation(), theConfigurationPackage.getQueryConfiguration(), null, "preValidation", null, 0, -1, ExtendedElementTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getExtendedElementTypeConfiguration_PreAction(), this.getPreActionConfiguration(), null, "preAction", null, 0, -1, ExtendedElementTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getExtendedElementTypeConfiguration_PostAction(), this.getPostActionConfiguration(), null, "postAction", null, 0, -1, ExtendedElementTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getExtendedElementTypeConfiguration_SpecializedDiagramTypeID(), ecorePackage.getEString(), "specializedDiagramTypeID", null, 0, 1, ExtendedElementTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(iconEntryEClass, IconEntry.class, "IconEntry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getIconEntry_IconPath(), ecorePackage.getEString(), "iconPath", null, 0, 1, IconEntry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getIconEntry_BundleId(), ecorePackage.getEString(), "bundleId", null, 0, 1, IconEntry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(actionConfigurationEClass, ActionConfiguration.class, "ActionConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getActionConfiguration_Label(), ecorePackage.getEString(), "label", null, 0, 1, ActionConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getActionConfiguration_Id(), ecorePackage.getEString(), "id", null, 1, 1, ActionConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
- initEClass(preActionConfigurationEClass, PreActionConfiguration.class, "PreActionConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
- initEClass(postActionConfigurationEClass, PostActionConfiguration.class, "PostActionConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
- // Create resource
- createResource(eNS_URI);
- }
-
-} //ExtendedtypesPackageImpl
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement;
+import org.eclipse.papyrus.infra.extendedtypes.ElementTypeAdviceConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet;
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesFactory;
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+import org.eclipse.papyrus.infra.extendedtypes.IconEntry;
+import org.eclipse.papyrus.infra.extendedtypes.MatcherConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.SemanticActionConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.SemanticTypeAdviceConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.ViewActionConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.ViewTypeAdviceConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.ViewTypeConfiguration;
+
+import org.eclipse.papyrus.infra.queries.core.configuration.ConfigurationPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+public class ExtendedtypesPackageImpl extends EPackageImpl implements ExtendedtypesPackage {
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass extendedElementTypeSetEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass elementTypeConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass iconEntryEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass configurationElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass viewTypeAdviceConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass semanticTypeAdviceConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass matcherConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass actionConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass viewActionConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass semanticActionConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass semanticTypeConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass viewTypeConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass elementTypeAdviceConfigurationEClass = 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.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ExtendedtypesPackageImpl() {
+ super(eNS_URI, ExtendedtypesFactory.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.
+ *
+ * <p>
+ * This method is used to initialize {@link ExtendedtypesPackage#eINSTANCE} when that field is accessed. Clients should not invoke it directly.
+ * Instead, they should simply access that field to obtain the package. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ExtendedtypesPackage init() {
+ if(isInited)
+ return (ExtendedtypesPackage)EPackage.Registry.INSTANCE.getEPackage(ExtendedtypesPackage.eNS_URI);
+ // Obtain or create and register package
+ ExtendedtypesPackageImpl theExtendedtypesPackage = (ExtendedtypesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ExtendedtypesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ExtendedtypesPackageImpl());
+ isInited = true;
+ // Initialize simple dependencies
+ ConfigurationPackage.eINSTANCE.eClass();
+ // Create package meta-data objects
+ theExtendedtypesPackage.createPackageContents();
+ // Initialize created meta-data
+ theExtendedtypesPackage.initializePackageContents();
+ // Mark meta-data to indicate it can't be changed
+ theExtendedtypesPackage.freeze();
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(ExtendedtypesPackage.eNS_URI, theExtendedtypesPackage);
+ return theExtendedtypesPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getExtendedElementTypeSet() {
+ return extendedElementTypeSetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getExtendedElementTypeSet_ElementType() {
+ return (EReference)extendedElementTypeSetEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getExtendedElementTypeSet_Extensible() {
+ return (EAttribute)extendedElementTypeSetEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getElementTypeConfiguration() {
+ return elementTypeConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getElementTypeConfiguration_Hint() {
+ return (EAttribute)elementTypeConfigurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getElementTypeConfiguration_KindName() {
+ return (EAttribute)elementTypeConfigurationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getElementTypeConfiguration_SpecializedTypesID() {
+ return (EAttribute)elementTypeConfigurationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getElementTypeConfiguration_MatcherConfiguration() {
+ return (EReference)elementTypeConfigurationEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getIconEntry() {
+ return iconEntryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getIconEntry_IconPath() {
+ return (EAttribute)iconEntryEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getIconEntry_BundleId() {
+ return (EAttribute)iconEntryEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getConfigurationElement() {
+ return configurationElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getConfigurationElement_Name() {
+ return (EAttribute)configurationElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getConfigurationElement_Description() {
+ return (EAttribute)configurationElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getConfigurationElement_Identifier() {
+ return (EAttribute)configurationElementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getConfigurationElement_IconEntry() {
+ return (EReference)configurationElementEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getViewTypeAdviceConfiguration() {
+ return viewTypeAdviceConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getSemanticTypeAdviceConfiguration() {
+ return semanticTypeAdviceConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getMatcherConfiguration() {
+ return matcherConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getActionConfiguration() {
+ return actionConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getActionConfiguration_PreValidationQueryConfiguration() {
+ return (EReference)actionConfigurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getViewActionConfiguration() {
+ return viewActionConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getSemanticActionConfiguration() {
+ return semanticActionConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getSemanticTypeConfiguration() {
+ return semanticTypeConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getViewTypeConfiguration() {
+ return viewTypeConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getViewTypeConfiguration_SpecializedDiagramTypeID() {
+ return (EAttribute)viewTypeConfigurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getElementTypeAdviceConfiguration() {
+ return elementTypeAdviceConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ExtendedtypesFactory getExtendedtypesFactory() {
+ return (ExtendedtypesFactory)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
+ extendedElementTypeSetEClass = createEClass(EXTENDED_ELEMENT_TYPE_SET);
+ createEReference(extendedElementTypeSetEClass, EXTENDED_ELEMENT_TYPE_SET__ELEMENT_TYPE);
+ createEAttribute(extendedElementTypeSetEClass, EXTENDED_ELEMENT_TYPE_SET__EXTENSIBLE);
+ elementTypeConfigurationEClass = createEClass(ELEMENT_TYPE_CONFIGURATION);
+ createEAttribute(elementTypeConfigurationEClass, ELEMENT_TYPE_CONFIGURATION__HINT);
+ createEAttribute(elementTypeConfigurationEClass, ELEMENT_TYPE_CONFIGURATION__KIND_NAME);
+ createEAttribute(elementTypeConfigurationEClass, ELEMENT_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID);
+ createEReference(elementTypeConfigurationEClass, ELEMENT_TYPE_CONFIGURATION__MATCHER_CONFIGURATION);
+ iconEntryEClass = createEClass(ICON_ENTRY);
+ createEAttribute(iconEntryEClass, ICON_ENTRY__ICON_PATH);
+ createEAttribute(iconEntryEClass, ICON_ENTRY__BUNDLE_ID);
+ configurationElementEClass = createEClass(CONFIGURATION_ELEMENT);
+ createEAttribute(configurationElementEClass, CONFIGURATION_ELEMENT__NAME);
+ createEAttribute(configurationElementEClass, CONFIGURATION_ELEMENT__DESCRIPTION);
+ createEAttribute(configurationElementEClass, CONFIGURATION_ELEMENT__IDENTIFIER);
+ createEReference(configurationElementEClass, CONFIGURATION_ELEMENT__ICON_ENTRY);
+ viewTypeAdviceConfigurationEClass = createEClass(VIEW_TYPE_ADVICE_CONFIGURATION);
+ semanticTypeAdviceConfigurationEClass = createEClass(SEMANTIC_TYPE_ADVICE_CONFIGURATION);
+ matcherConfigurationEClass = createEClass(MATCHER_CONFIGURATION);
+ actionConfigurationEClass = createEClass(ACTION_CONFIGURATION);
+ createEReference(actionConfigurationEClass, ACTION_CONFIGURATION__PRE_VALIDATION_QUERY_CONFIGURATION);
+ viewActionConfigurationEClass = createEClass(VIEW_ACTION_CONFIGURATION);
+ semanticActionConfigurationEClass = createEClass(SEMANTIC_ACTION_CONFIGURATION);
+ semanticTypeConfigurationEClass = createEClass(SEMANTIC_TYPE_CONFIGURATION);
+ viewTypeConfigurationEClass = createEClass(VIEW_TYPE_CONFIGURATION);
+ createEAttribute(viewTypeConfigurationEClass, VIEW_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID);
+ elementTypeAdviceConfigurationEClass = createEClass(ELEMENT_TYPE_ADVICE_CONFIGURATION);
+ }
+
+ /**
+ * <!-- 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
+ EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+ ConfigurationPackage theConfigurationPackage = (ConfigurationPackage)EPackage.Registry.INSTANCE.getEPackage(ConfigurationPackage.eNS_URI);
+ // Create type parameters
+ // Set bounds for type parameters
+ // Add supertypes to classes
+ extendedElementTypeSetEClass.getESuperTypes().add(this.getConfigurationElement());
+ elementTypeConfigurationEClass.getESuperTypes().add(this.getConfigurationElement());
+ viewTypeAdviceConfigurationEClass.getESuperTypes().add(this.getElementTypeAdviceConfiguration());
+ semanticTypeAdviceConfigurationEClass.getESuperTypes().add(this.getElementTypeAdviceConfiguration());
+ actionConfigurationEClass.getESuperTypes().add(this.getConfigurationElement());
+ viewActionConfigurationEClass.getESuperTypes().add(this.getActionConfiguration());
+ semanticActionConfigurationEClass.getESuperTypes().add(this.getActionConfiguration());
+ semanticTypeConfigurationEClass.getESuperTypes().add(this.getElementTypeConfiguration());
+ viewTypeConfigurationEClass.getESuperTypes().add(this.getElementTypeConfiguration());
+ elementTypeAdviceConfigurationEClass.getESuperTypes().add(this.getConfigurationElement());
+ // Initialize classes and features; add operations and parameters
+ initEClass(extendedElementTypeSetEClass, ExtendedElementTypeSet.class, "ExtendedElementTypeSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getExtendedElementTypeSet_ElementType(), this.getElementTypeConfiguration(), null, "elementType", null, 1, -1, ExtendedElementTypeSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getExtendedElementTypeSet_Extensible(), theEcorePackage.getEBoolean(), "extensible", null, 0, 1, ExtendedElementTypeSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEClass(elementTypeConfigurationEClass, ElementTypeConfiguration.class, "ElementTypeConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getElementTypeConfiguration_Hint(), ecorePackage.getEString(), "hint", "ExtendedElements", 0, 1, ElementTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getElementTypeConfiguration_KindName(), ecorePackage.getEString(), "kindName", "org.eclipse.gmf.runtime.emf.type.core.IHintedType", 0, 1, ElementTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getElementTypeConfiguration_SpecializedTypesID(), ecorePackage.getEString(), "specializedTypesID", null, 1, -1, ElementTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getElementTypeConfiguration_MatcherConfiguration(), this.getMatcherConfiguration(), null, "matcherConfiguration", null, 0, 1, ElementTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEClass(iconEntryEClass, IconEntry.class, "IconEntry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getIconEntry_IconPath(), ecorePackage.getEString(), "iconPath", null, 0, 1, IconEntry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getIconEntry_BundleId(), ecorePackage.getEString(), "bundleId", null, 0, 1, IconEntry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEClass(configurationElementEClass, ConfigurationElement.class, "ConfigurationElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getConfigurationElement_Name(), theEcorePackage.getEString(), "name", null, 1, 1, ConfigurationElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConfigurationElement_Description(), theEcorePackage.getEString(), "description", null, 0, 1, ConfigurationElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConfigurationElement_Identifier(), theEcorePackage.getEString(), "identifier", null, 1, 1, ConfigurationElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getConfigurationElement_IconEntry(), this.getIconEntry(), null, "iconEntry", null, 0, 1, ConfigurationElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEClass(viewTypeAdviceConfigurationEClass, ViewTypeAdviceConfiguration.class, "ViewTypeAdviceConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEClass(semanticTypeAdviceConfigurationEClass, SemanticTypeAdviceConfiguration.class, "SemanticTypeAdviceConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEClass(matcherConfigurationEClass, MatcherConfiguration.class, "MatcherConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEClass(actionConfigurationEClass, ActionConfiguration.class, "ActionConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getActionConfiguration_PreValidationQueryConfiguration(), theConfigurationPackage.getQueryConfiguration(), null, "preValidationQueryConfiguration", null, 0, 1, ActionConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEClass(viewActionConfigurationEClass, ViewActionConfiguration.class, "ViewActionConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEClass(semanticActionConfigurationEClass, SemanticActionConfiguration.class, "SemanticActionConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEClass(semanticTypeConfigurationEClass, SemanticTypeConfiguration.class, "SemanticTypeConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEClass(viewTypeConfigurationEClass, ViewTypeConfiguration.class, "ViewTypeConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getViewTypeConfiguration_SpecializedDiagramTypeID(), ecorePackage.getEString(), "specializedDiagramTypeID", null, 0, 1, ViewTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEClass(elementTypeAdviceConfigurationEClass, ElementTypeAdviceConfiguration.class, "ElementTypeAdviceConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ // Create resource
+ createResource(eNS_URI);
+ }
+} // ExtendedtypesPackageImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/IconEntryImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/IconEntryImpl.java
index c060449d21e..ce712a71da7 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/IconEntryImpl.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/IconEntryImpl.java
@@ -1,218 +1,225 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
-import org.eclipse.papyrus.infra.extendedtypes.IconEntry;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Icon Entry</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.IconEntryImpl#getIconPath <em>Icon Path</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.IconEntryImpl#getBundleId <em>Bundle Id</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class IconEntryImpl extends EObjectImpl implements IconEntry {
- /**
- * The default value of the '{@link #getIconPath() <em>Icon Path</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getIconPath()
- * @generated
- * @ordered
- */
- protected static final String ICON_PATH_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getIconPath() <em>Icon Path</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getIconPath()
- * @generated
- * @ordered
- */
- protected String iconPath = ICON_PATH_EDEFAULT;
-
- /**
- * The default value of the '{@link #getBundleId() <em>Bundle Id</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getBundleId()
- * @generated
- * @ordered
- */
- protected static final String BUNDLE_ID_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getBundleId() <em>Bundle Id</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getBundleId()
- * @generated
- * @ordered
- */
- protected String bundleId = BUNDLE_ID_EDEFAULT;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected IconEntryImpl() {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass() {
- return ExtendedtypesPackage.Literals.ICON_ENTRY;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getIconPath() {
- return iconPath;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setIconPath(String newIconPath) {
- String oldIconPath = iconPath;
- iconPath = newIconPath;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.ICON_ENTRY__ICON_PATH, oldIconPath, iconPath));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getBundleId() {
- return bundleId;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setBundleId(String newBundleId) {
- String oldBundleId = bundleId;
- bundleId = newBundleId;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.ICON_ENTRY__BUNDLE_ID, oldBundleId, bundleId));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case ExtendedtypesPackage.ICON_ENTRY__ICON_PATH:
- return getIconPath();
- case ExtendedtypesPackage.ICON_ENTRY__BUNDLE_ID:
- return getBundleId();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case ExtendedtypesPackage.ICON_ENTRY__ICON_PATH:
- setIconPath((String)newValue);
- return;
- case ExtendedtypesPackage.ICON_ENTRY__BUNDLE_ID:
- setBundleId((String)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eUnset(int featureID) {
- switch (featureID) {
- case ExtendedtypesPackage.ICON_ENTRY__ICON_PATH:
- setIconPath(ICON_PATH_EDEFAULT);
- return;
- case ExtendedtypesPackage.ICON_ENTRY__BUNDLE_ID:
- setBundleId(BUNDLE_ID_EDEFAULT);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case ExtendedtypesPackage.ICON_ENTRY__ICON_PATH:
- return ICON_PATH_EDEFAULT == null ? iconPath != null : !ICON_PATH_EDEFAULT.equals(iconPath);
- case ExtendedtypesPackage.ICON_ENTRY__BUNDLE_ID:
- return BUNDLE_ID_EDEFAULT == null ? bundleId != null : !BUNDLE_ID_EDEFAULT.equals(bundleId);
- }
- return super.eIsSet(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public String toString() {
- if (eIsProxy()) return super.toString();
-
- StringBuffer result = new StringBuffer(super.toString());
- result.append(" (iconPath: ");
- result.append(iconPath);
- result.append(", bundleId: ");
- result.append(bundleId);
- result.append(')');
- return result.toString();
- }
-
-} //IconEntryImpl
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+import org.eclipse.papyrus.infra.extendedtypes.IconEntry;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object ' <em><b>Icon Entry</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.IconEntryImpl#getIconPath <em>Icon Path</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.IconEntryImpl#getBundleId <em>Bundle Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IconEntryImpl extends EObjectImpl implements IconEntry {
+
+ /**
+ * The default value of the '{@link #getIconPath() <em>Icon Path</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getIconPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String ICON_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getIconPath() <em>Icon Path</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getIconPath()
+ * @generated
+ * @ordered
+ */
+ protected String iconPath = ICON_PATH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getBundleId() <em>Bundle Id</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getBundleId()
+ * @generated
+ * @ordered
+ */
+ protected static final String BUNDLE_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBundleId() <em>Bundle Id</em>}' attribute.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getBundleId()
+ * @generated
+ * @ordered
+ */
+ protected String bundleId = BUNDLE_ID_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected IconEntryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ExtendedtypesPackage.eINSTANCE.getIconEntry();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getIconPath() {
+ return iconPath;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setIconPath(String newIconPath) {
+ String oldIconPath = iconPath;
+ iconPath = newIconPath;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.ICON_ENTRY__ICON_PATH, oldIconPath, iconPath));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getBundleId() {
+ return bundleId;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setBundleId(String newBundleId) {
+ String oldBundleId = bundleId;
+ bundleId = newBundleId;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.ICON_ENTRY__BUNDLE_ID, oldBundleId, bundleId));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch(featureID) {
+ case ExtendedtypesPackage.ICON_ENTRY__ICON_PATH:
+ return getIconPath();
+ case ExtendedtypesPackage.ICON_ENTRY__BUNDLE_ID:
+ return getBundleId();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch(featureID) {
+ case ExtendedtypesPackage.ICON_ENTRY__ICON_PATH:
+ setIconPath((String)newValue);
+ return;
+ case ExtendedtypesPackage.ICON_ENTRY__BUNDLE_ID:
+ setBundleId((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch(featureID) {
+ case ExtendedtypesPackage.ICON_ENTRY__ICON_PATH:
+ setIconPath(ICON_PATH_EDEFAULT);
+ return;
+ case ExtendedtypesPackage.ICON_ENTRY__BUNDLE_ID:
+ setBundleId(BUNDLE_ID_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch(featureID) {
+ case ExtendedtypesPackage.ICON_ENTRY__ICON_PATH:
+ return ICON_PATH_EDEFAULT == null ? iconPath != null : !ICON_PATH_EDEFAULT.equals(iconPath);
+ case ExtendedtypesPackage.ICON_ENTRY__BUNDLE_ID:
+ return BUNDLE_ID_EDEFAULT == null ? bundleId != null : !BUNDLE_ID_EDEFAULT.equals(bundleId);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if(eIsProxy())
+ return super.toString();
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (iconPath: "); //$NON-NLS-1$
+ result.append(iconPath);
+ result.append(", bundleId: "); //$NON-NLS-1$
+ result.append(bundleId);
+ result.append(')');
+ return result.toString();
+ }
+} // IconEntryImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/MatcherConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/MatcherConfigurationImpl.java
new file mode 100644
index 00000000000..8be5d36d924
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/MatcherConfigurationImpl.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+import org.eclipse.papyrus.infra.extendedtypes.MatcherConfiguration;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object ' <em><b>Matcher Configuration</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class MatcherConfigurationImpl extends EObjectImpl implements MatcherConfiguration {
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected MatcherConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ExtendedtypesPackage.eINSTANCE.getMatcherConfiguration();
+ }
+} // MatcherConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/PostActionConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/PostActionConfigurationImpl.java
deleted file mode 100644
index 2a2e4bf2547..00000000000
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/PostActionConfigurationImpl.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
-import org.eclipse.papyrus.infra.extendedtypes.PostActionConfiguration;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Post Action Configuration</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * </p>
- *
- * @generated
- */
-public abstract class PostActionConfigurationImpl extends ActionConfigurationImpl implements PostActionConfiguration {
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected PostActionConfigurationImpl() {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass() {
- return ExtendedtypesPackage.Literals.POST_ACTION_CONFIGURATION;
- }
-
-} //PostActionConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/PreActionConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/PreActionConfigurationImpl.java
deleted file mode 100644
index f75fe87c05a..00000000000
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/PreActionConfigurationImpl.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
-import org.eclipse.papyrus.infra.extendedtypes.PreActionConfiguration;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Pre Action Configuration</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * </p>
- *
- * @generated
- */
-public abstract class PreActionConfigurationImpl extends ActionConfigurationImpl implements PreActionConfiguration {
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected PreActionConfigurationImpl() {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass() {
- return ExtendedtypesPackage.Literals.PRE_ACTION_CONFIGURATION;
- }
-
-} //PreActionConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/SemanticActionConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/SemanticActionConfigurationImpl.java
new file mode 100644
index 00000000000..43ac0e1c854
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/SemanticActionConfigurationImpl.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+import org.eclipse.papyrus.infra.extendedtypes.SemanticActionConfiguration;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object ' <em><b>Semantic Action Configuration</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class SemanticActionConfigurationImpl extends ActionConfigurationImpl implements SemanticActionConfiguration {
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected SemanticActionConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ExtendedtypesPackage.eINSTANCE.getSemanticActionConfiguration();
+ }
+} // SemanticActionConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/SemanticTypeAdviceConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/SemanticTypeAdviceConfigurationImpl.java
new file mode 100644
index 00000000000..fd381f1fa24
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/SemanticTypeAdviceConfigurationImpl.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+import org.eclipse.papyrus.infra.extendedtypes.SemanticTypeAdviceConfiguration;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object ' <em><b>Semantic Type Advice Configuration</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class SemanticTypeAdviceConfigurationImpl extends ElementTypeAdviceConfigurationImpl implements SemanticTypeAdviceConfiguration {
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected SemanticTypeAdviceConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ExtendedtypesPackage.eINSTANCE.getSemanticTypeAdviceConfiguration();
+ }
+} // SemanticTypeAdviceConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/SemanticTypeConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/SemanticTypeConfigurationImpl.java
new file mode 100644
index 00000000000..70f5a9a7956
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/SemanticTypeConfigurationImpl.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+import org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object ' <em><b>Semantic Type Configuration</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class SemanticTypeConfigurationImpl extends ElementTypeConfigurationImpl implements SemanticTypeConfiguration {
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected SemanticTypeConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ExtendedtypesPackage.eINSTANCE.getSemanticTypeConfiguration();
+ }
+} // SemanticTypeConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ViewActionConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ViewActionConfigurationImpl.java
new file mode 100644
index 00000000000..fd6c6718a95
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ViewActionConfigurationImpl.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+import org.eclipse.papyrus.infra.extendedtypes.ViewActionConfiguration;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object ' <em><b>View Action Configuration</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ViewActionConfigurationImpl extends ActionConfigurationImpl implements ViewActionConfiguration {
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ViewActionConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ExtendedtypesPackage.eINSTANCE.getViewActionConfiguration();
+ }
+} // ViewActionConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ViewTypeAdviceConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ViewTypeAdviceConfigurationImpl.java
new file mode 100644
index 00000000000..c8a16d6c9eb
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ViewTypeAdviceConfigurationImpl.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+import org.eclipse.papyrus.infra.extendedtypes.ViewTypeAdviceConfiguration;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object ' <em><b>View Type Advice Configuration</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ViewTypeAdviceConfigurationImpl extends ElementTypeAdviceConfigurationImpl implements ViewTypeAdviceConfiguration {
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ViewTypeAdviceConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ExtendedtypesPackage.eINSTANCE.getViewTypeAdviceConfiguration();
+ }
+} // ViewTypeAdviceConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ViewTypeConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ViewTypeConfigurationImpl.java
new file mode 100644
index 00000000000..3d1a2709f33
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/impl/ViewTypeConfigurationImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+import org.eclipse.papyrus.infra.extendedtypes.ViewTypeConfiguration;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object ' <em><b>View Type Configuration</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.impl.ViewTypeConfigurationImpl#getSpecializedDiagramTypeID <em>Specialized Diagram Type ID</em>}
+ * </li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ViewTypeConfigurationImpl extends ElementTypeConfigurationImpl implements ViewTypeConfiguration {
+
+ /**
+ * The default value of the '{@link #getSpecializedDiagramTypeID() <em>Specialized Diagram Type ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSpecializedDiagramTypeID()
+ * @generated
+ * @ordered
+ */
+ protected static final String SPECIALIZED_DIAGRAM_TYPE_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSpecializedDiagramTypeID() <em>Specialized Diagram Type ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSpecializedDiagramTypeID()
+ * @generated
+ * @ordered
+ */
+ protected String specializedDiagramTypeID = SPECIALIZED_DIAGRAM_TYPE_ID_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ViewTypeConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ExtendedtypesPackage.eINSTANCE.getViewTypeConfiguration();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getSpecializedDiagramTypeID() {
+ return specializedDiagramTypeID;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setSpecializedDiagramTypeID(String newSpecializedDiagramTypeID) {
+ String oldSpecializedDiagramTypeID = specializedDiagramTypeID;
+ specializedDiagramTypeID = newSpecializedDiagramTypeID;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtendedtypesPackage.VIEW_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID, oldSpecializedDiagramTypeID, specializedDiagramTypeID));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch(featureID) {
+ case ExtendedtypesPackage.VIEW_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID:
+ return getSpecializedDiagramTypeID();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch(featureID) {
+ case ExtendedtypesPackage.VIEW_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID:
+ setSpecializedDiagramTypeID((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch(featureID) {
+ case ExtendedtypesPackage.VIEW_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID:
+ setSpecializedDiagramTypeID(SPECIALIZED_DIAGRAM_TYPE_ID_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch(featureID) {
+ case ExtendedtypesPackage.VIEW_TYPE_CONFIGURATION__SPECIALIZED_DIAGRAM_TYPE_ID:
+ return SPECIALIZED_DIAGRAM_TYPE_ID_EDEFAULT == null ? specializedDiagramTypeID != null : !SPECIALIZED_DIAGRAM_TYPE_ID_EDEFAULT.equals(specializedDiagramTypeID);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if(eIsProxy())
+ return super.toString();
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (specializedDiagramTypeID: "); //$NON-NLS-1$
+ result.append(specializedDiagramTypeID);
+ result.append(')');
+ return result.toString();
+ }
+} // ViewTypeConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/HierarchyPermission.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/HierarchyPermission.java
new file mode 100644
index 00000000000..1d13fa23447
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/HierarchyPermission.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Hierarchy Permission</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission#getChildType <em>Child Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission#isIsPermitted <em>Is Permitted</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission#isIsStrict <em>Is Strict</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage#getHierarchyPermission()
+ * @model
+ * @generated
+ */
+public interface HierarchyPermission extends EObject {
+ /**
+ * Returns the value of the '<em><b>Child Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Child 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>Child Type</em>' attribute.
+ * @see #setChildType(String)
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage#getHierarchyPermission_ChildType()
+ * @model
+ * @generated
+ */
+ String getChildType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission#getChildType <em>Child Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Child Type</em>' attribute.
+ * @see #getChildType()
+ * @generated
+ */
+ void setChildType(String value);
+
+ /**
+ * Returns the value of the '<em><b>Is Permitted</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Permitted</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Is Permitted</em>' attribute.
+ * @see #setIsPermitted(boolean)
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage#getHierarchyPermission_IsPermitted()
+ * @model
+ * @generated
+ */
+ boolean isIsPermitted();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission#isIsPermitted <em>Is Permitted</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Is Permitted</em>' attribute.
+ * @see #isIsPermitted()
+ * @generated
+ */
+ void setIsPermitted(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Strict</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Strict</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Is Strict</em>' attribute.
+ * @see #setIsStrict(boolean)
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage#getHierarchyPermission_IsStrict()
+ * @model
+ * @generated
+ */
+ boolean isIsStrict();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission#isIsStrict <em>Is Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Is Strict</em>' attribute.
+ * @see #isIsStrict()
+ * @generated
+ */
+ void setIsStrict(boolean value);
+
+} // HierarchyPermission
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfiguration.java
new file mode 100644
index 00000000000..595b6c9b35d
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfiguration.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Invariant Container Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfiguration#getPermissions <em>Permissions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage#getInvariantContainerConfiguration()
+ * @model
+ * @generated
+ */
+public interface InvariantContainerConfiguration extends InvariantRuleConfiguration {
+ /**
+ * Returns the value of the '<em><b>Permissions</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Permissions</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>Permissions</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage#getInvariantContainerConfiguration_Permissions()
+ * @model containment="true"
+ * @generated
+ */
+ EList<HierarchyPermission> getPermissions();
+
+} // InvariantContainerConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationFactory.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationFactory.java
new file mode 100644
index 00000000000..178da820141
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationFactory.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- 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.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage
+ * @generated
+ */
+public interface InvariantContainerConfigurationFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ InvariantContainerConfigurationFactory eINSTANCE = org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.InvariantContainerConfigurationFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Invariant Container Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Invariant Container Configuration</em>'.
+ * @generated
+ */
+ InvariantContainerConfiguration createInvariantContainerConfiguration();
+
+ /**
+ * Returns a new object of class '<em>Hierarchy Permission</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hierarchy Permission</em>'.
+ * @generated
+ */
+ HierarchyPermission createHierarchyPermission();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ InvariantContainerConfigurationPackage getInvariantContainerConfigurationPackage();
+
+} //InvariantContainerConfigurationFactory
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationPackage.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationPackage.java
new file mode 100644
index 00000000000..5433a3e21a9
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationPackage.java
@@ -0,0 +1,305 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage;
+
+/**
+ * <!-- 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 operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface InvariantContainerConfigurationPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "invariantcontainerconfiguration";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/infra/extendedtypes/semantictype/invariant/container/1.0";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "invariantcontainerconfiguration";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ InvariantContainerConfigurationPackage eINSTANCE = org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.InvariantContainerConfigurationPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.InvariantContainerConfigurationImpl <em>Invariant Container Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.InvariantContainerConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.InvariantContainerConfigurationPackageImpl#getInvariantContainerConfiguration()
+ * @generated
+ */
+ int INVARIANT_CONTAINER_CONFIGURATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Permissions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVARIANT_CONTAINER_CONFIGURATION__PERMISSIONS = InvariantSemanticTypeConfigurationPackage.INVARIANT_RULE_CONFIGURATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Invariant Container Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVARIANT_CONTAINER_CONFIGURATION_FEATURE_COUNT = InvariantSemanticTypeConfigurationPackage.INVARIANT_RULE_CONFIGURATION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Invariant Container Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVARIANT_CONTAINER_CONFIGURATION_OPERATION_COUNT = InvariantSemanticTypeConfigurationPackage.INVARIANT_RULE_CONFIGURATION_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.HierarchyPermissionImpl <em>Hierarchy Permission</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.HierarchyPermissionImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.InvariantContainerConfigurationPackageImpl#getHierarchyPermission()
+ * @generated
+ */
+ int HIERARCHY_PERMISSION = 1;
+
+ /**
+ * The feature id for the '<em><b>Child Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIERARCHY_PERMISSION__CHILD_TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Is Permitted</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIERARCHY_PERMISSION__IS_PERMITTED = 1;
+
+ /**
+ * The feature id for the '<em><b>Is Strict</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIERARCHY_PERMISSION__IS_STRICT = 2;
+
+ /**
+ * The number of structural features of the '<em>Hierarchy Permission</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIERARCHY_PERMISSION_FEATURE_COUNT = 3;
+
+ /**
+ * The number of operations of the '<em>Hierarchy Permission</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HIERARCHY_PERMISSION_OPERATION_COUNT = 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfiguration <em>Invariant Container Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Invariant Container Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfiguration
+ * @generated
+ */
+ EClass getInvariantContainerConfiguration();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfiguration#getPermissions <em>Permissions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Permissions</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfiguration#getPermissions()
+ * @see #getInvariantContainerConfiguration()
+ * @generated
+ */
+ EReference getInvariantContainerConfiguration_Permissions();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission <em>Hierarchy Permission</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hierarchy Permission</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission
+ * @generated
+ */
+ EClass getHierarchyPermission();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission#getChildType <em>Child Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Child Type</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission#getChildType()
+ * @see #getHierarchyPermission()
+ * @generated
+ */
+ EAttribute getHierarchyPermission_ChildType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission#isIsPermitted <em>Is Permitted</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Is Permitted</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission#isIsPermitted()
+ * @see #getHierarchyPermission()
+ * @generated
+ */
+ EAttribute getHierarchyPermission_IsPermitted();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission#isIsStrict <em>Is Strict</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Is Strict</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission#isIsStrict()
+ * @see #getHierarchyPermission()
+ * @generated
+ */
+ EAttribute getHierarchyPermission_IsStrict();
+
+ /**
+ * 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
+ */
+ InvariantContainerConfigurationFactory getInvariantContainerConfigurationFactory();
+
+ /**
+ * <!-- 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 operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.InvariantContainerConfigurationImpl <em>Invariant Container Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.InvariantContainerConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.InvariantContainerConfigurationPackageImpl#getInvariantContainerConfiguration()
+ * @generated
+ */
+ EClass INVARIANT_CONTAINER_CONFIGURATION = eINSTANCE.getInvariantContainerConfiguration();
+
+ /**
+ * The meta object literal for the '<em><b>Permissions</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INVARIANT_CONTAINER_CONFIGURATION__PERMISSIONS = eINSTANCE.getInvariantContainerConfiguration_Permissions();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.HierarchyPermissionImpl <em>Hierarchy Permission</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.HierarchyPermissionImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.InvariantContainerConfigurationPackageImpl#getHierarchyPermission()
+ * @generated
+ */
+ EClass HIERARCHY_PERMISSION = eINSTANCE.getHierarchyPermission();
+
+ /**
+ * The meta object literal for the '<em><b>Child Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HIERARCHY_PERMISSION__CHILD_TYPE = eINSTANCE.getHierarchyPermission_ChildType();
+
+ /**
+ * The meta object literal for the '<em><b>Is Permitted</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HIERARCHY_PERMISSION__IS_PERMITTED = eINSTANCE.getHierarchyPermission_IsPermitted();
+
+ /**
+ * The meta object literal for the '<em><b>Is Strict</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HIERARCHY_PERMISSION__IS_STRICT = eINSTANCE.getHierarchyPermission_IsStrict();
+
+ }
+
+} //InvariantContainerConfigurationPackage
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/HierarchyPermissionImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/HierarchyPermissionImpl.java
new file mode 100644
index 00000000000..5df75360afc
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/HierarchyPermissionImpl.java
@@ -0,0 +1,281 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission;
+import org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Hierarchy Permission</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.HierarchyPermissionImpl#getChildType <em>Child Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.HierarchyPermissionImpl#isIsPermitted <em>Is Permitted</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.HierarchyPermissionImpl#isIsStrict <em>Is Strict</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class HierarchyPermissionImpl extends MinimalEObjectImpl.Container implements HierarchyPermission {
+ /**
+ * The default value of the '{@link #getChildType() <em>Child Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChildType()
+ * @generated
+ * @ordered
+ */
+ protected static final String CHILD_TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getChildType() <em>Child Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChildType()
+ * @generated
+ * @ordered
+ */
+ protected String childType = CHILD_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsPermitted() <em>Is Permitted</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsPermitted()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_PERMITTED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIsPermitted() <em>Is Permitted</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsPermitted()
+ * @generated
+ * @ordered
+ */
+ protected boolean isPermitted = IS_PERMITTED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsStrict() <em>Is Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsStrict()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_STRICT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIsStrict() <em>Is Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsStrict()
+ * @generated
+ * @ordered
+ */
+ protected boolean isStrict = IS_STRICT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HierarchyPermissionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return InvariantContainerConfigurationPackage.Literals.HIERARCHY_PERMISSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getChildType() {
+ return childType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setChildType(String newChildType) {
+ String oldChildType = childType;
+ childType = newChildType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__CHILD_TYPE, oldChildType, childType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isIsPermitted() {
+ return isPermitted;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIsPermitted(boolean newIsPermitted) {
+ boolean oldIsPermitted = isPermitted;
+ isPermitted = newIsPermitted;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__IS_PERMITTED, oldIsPermitted, isPermitted));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isIsStrict() {
+ return isStrict;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIsStrict(boolean newIsStrict) {
+ boolean oldIsStrict = isStrict;
+ isStrict = newIsStrict;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__IS_STRICT, oldIsStrict, isStrict));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__CHILD_TYPE:
+ return getChildType();
+ case InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__IS_PERMITTED:
+ return isIsPermitted();
+ case InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__IS_STRICT:
+ return isIsStrict();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__CHILD_TYPE:
+ setChildType((String)newValue);
+ return;
+ case InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__IS_PERMITTED:
+ setIsPermitted((Boolean)newValue);
+ return;
+ case InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__IS_STRICT:
+ setIsStrict((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__CHILD_TYPE:
+ setChildType(CHILD_TYPE_EDEFAULT);
+ return;
+ case InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__IS_PERMITTED:
+ setIsPermitted(IS_PERMITTED_EDEFAULT);
+ return;
+ case InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__IS_STRICT:
+ setIsStrict(IS_STRICT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__CHILD_TYPE:
+ return CHILD_TYPE_EDEFAULT == null ? childType != null : !CHILD_TYPE_EDEFAULT.equals(childType);
+ case InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__IS_PERMITTED:
+ return isPermitted != IS_PERMITTED_EDEFAULT;
+ case InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION__IS_STRICT:
+ return isStrict != IS_STRICT_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (childType: ");
+ result.append(childType);
+ result.append(", isPermitted: ");
+ result.append(isPermitted);
+ result.append(", isStrict: ");
+ result.append(isStrict);
+ result.append(')');
+ return result.toString();
+ }
+
+} //HierarchyPermissionImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/InvariantContainerConfigurationFactoryImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/InvariantContainerConfigurationFactoryImpl.java
new file mode 100644
index 00000000000..37c573f0264
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/InvariantContainerConfigurationFactoryImpl.java
@@ -0,0 +1,116 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl;
+
+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;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class InvariantContainerConfigurationFactoryImpl extends EFactoryImpl implements InvariantContainerConfigurationFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static InvariantContainerConfigurationFactory init() {
+ try {
+ InvariantContainerConfigurationFactory theInvariantContainerConfigurationFactory = (InvariantContainerConfigurationFactory)EPackage.Registry.INSTANCE.getEFactory(InvariantContainerConfigurationPackage.eNS_URI);
+ if (theInvariantContainerConfigurationFactory != null) {
+ return theInvariantContainerConfigurationFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new InvariantContainerConfigurationFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantContainerConfigurationFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case InvariantContainerConfigurationPackage.INVARIANT_CONTAINER_CONFIGURATION: return createInvariantContainerConfiguration();
+ case InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION: return createHierarchyPermission();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantContainerConfiguration createInvariantContainerConfiguration() {
+ InvariantContainerConfigurationImpl invariantContainerConfiguration = new InvariantContainerConfigurationImpl();
+ return invariantContainerConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HierarchyPermission createHierarchyPermission() {
+ HierarchyPermissionImpl hierarchyPermission = new HierarchyPermissionImpl();
+ return hierarchyPermission;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantContainerConfigurationPackage getInvariantContainerConfigurationPackage() {
+ return (InvariantContainerConfigurationPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static InvariantContainerConfigurationPackage getPackage() {
+ return InvariantContainerConfigurationPackage.eINSTANCE;
+ }
+
+} //InvariantContainerConfigurationFactoryImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/InvariantContainerConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/InvariantContainerConfigurationImpl.java
new file mode 100644
index 00000000000..f0122b91805
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/InvariantContainerConfigurationImpl.java
@@ -0,0 +1,162 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl;
+
+import java.util.Collection;
+
+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 org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission;
+import org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantRuleConfigurationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Invariant Container Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl.InvariantContainerConfigurationImpl#getPermissions <em>Permissions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InvariantContainerConfigurationImpl extends InvariantRuleConfigurationImpl implements InvariantContainerConfiguration {
+ /**
+ * The cached value of the '{@link #getPermissions() <em>Permissions</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPermissions()
+ * @generated
+ * @ordered
+ */
+ protected EList<HierarchyPermission> permissions;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InvariantContainerConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return InvariantContainerConfigurationPackage.Literals.INVARIANT_CONTAINER_CONFIGURATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<HierarchyPermission> getPermissions() {
+ if (permissions == null) {
+ permissions = new EObjectContainmentEList<HierarchyPermission>(HierarchyPermission.class, this, InvariantContainerConfigurationPackage.INVARIANT_CONTAINER_CONFIGURATION__PERMISSIONS);
+ }
+ return permissions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case InvariantContainerConfigurationPackage.INVARIANT_CONTAINER_CONFIGURATION__PERMISSIONS:
+ return ((InternalEList<?>)getPermissions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case InvariantContainerConfigurationPackage.INVARIANT_CONTAINER_CONFIGURATION__PERMISSIONS:
+ return getPermissions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case InvariantContainerConfigurationPackage.INVARIANT_CONTAINER_CONFIGURATION__PERMISSIONS:
+ getPermissions().clear();
+ getPermissions().addAll((Collection<? extends HierarchyPermission>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case InvariantContainerConfigurationPackage.INVARIANT_CONTAINER_CONFIGURATION__PERMISSIONS:
+ getPermissions().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case InvariantContainerConfigurationPackage.INVARIANT_CONTAINER_CONFIGURATION__PERMISSIONS:
+ return permissions != null && !permissions.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //InvariantContainerConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/InvariantContainerConfigurationPackageImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/InvariantContainerConfigurationPackageImpl.java
new file mode 100644
index 00000000000..b3b1563ee8c
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/impl/InvariantContainerConfigurationPackageImpl.java
@@ -0,0 +1,253 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission;
+import org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationFactory;
+import org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class InvariantContainerConfigurationPackageImpl extends EPackageImpl implements InvariantContainerConfigurationPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass invariantContainerConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hierarchyPermissionEClass = 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.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private InvariantContainerConfigurationPackageImpl() {
+ super(eNS_URI, InvariantContainerConfigurationFactory.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.
+ *
+ * <p>This method is used to initialize {@link InvariantContainerConfigurationPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static InvariantContainerConfigurationPackage init() {
+ if (isInited) return (InvariantContainerConfigurationPackage)EPackage.Registry.INSTANCE.getEPackage(InvariantContainerConfigurationPackage.eNS_URI);
+
+ // Obtain or create and register package
+ InvariantContainerConfigurationPackageImpl theInvariantContainerConfigurationPackage = (InvariantContainerConfigurationPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof InvariantContainerConfigurationPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new InvariantContainerConfigurationPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ InvariantSemanticTypeConfigurationPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theInvariantContainerConfigurationPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theInvariantContainerConfigurationPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theInvariantContainerConfigurationPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(InvariantContainerConfigurationPackage.eNS_URI, theInvariantContainerConfigurationPackage);
+ return theInvariantContainerConfigurationPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInvariantContainerConfiguration() {
+ return invariantContainerConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInvariantContainerConfiguration_Permissions() {
+ return (EReference)invariantContainerConfigurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHierarchyPermission() {
+ return hierarchyPermissionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHierarchyPermission_ChildType() {
+ return (EAttribute)hierarchyPermissionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHierarchyPermission_IsPermitted() {
+ return (EAttribute)hierarchyPermissionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHierarchyPermission_IsStrict() {
+ return (EAttribute)hierarchyPermissionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantContainerConfigurationFactory getInvariantContainerConfigurationFactory() {
+ return (InvariantContainerConfigurationFactory)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
+ invariantContainerConfigurationEClass = createEClass(INVARIANT_CONTAINER_CONFIGURATION);
+ createEReference(invariantContainerConfigurationEClass, INVARIANT_CONTAINER_CONFIGURATION__PERMISSIONS);
+
+ hierarchyPermissionEClass = createEClass(HIERARCHY_PERMISSION);
+ createEAttribute(hierarchyPermissionEClass, HIERARCHY_PERMISSION__CHILD_TYPE);
+ createEAttribute(hierarchyPermissionEClass, HIERARCHY_PERMISSION__IS_PERMITTED);
+ createEAttribute(hierarchyPermissionEClass, HIERARCHY_PERMISSION__IS_STRICT);
+ }
+
+ /**
+ * <!-- 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
+ InvariantSemanticTypeConfigurationPackage theInvariantSemanticTypeConfigurationPackage = (InvariantSemanticTypeConfigurationPackage)EPackage.Registry.INSTANCE.getEPackage(InvariantSemanticTypeConfigurationPackage.eNS_URI);
+ EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ invariantContainerConfigurationEClass.getESuperTypes().add(theInvariantSemanticTypeConfigurationPackage.getInvariantRuleConfiguration());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(invariantContainerConfigurationEClass, InvariantContainerConfiguration.class, "InvariantContainerConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getInvariantContainerConfiguration_Permissions(), this.getHierarchyPermission(), null, "permissions", null, 0, -1, InvariantContainerConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(hierarchyPermissionEClass, HierarchyPermission.class, "HierarchyPermission", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getHierarchyPermission_ChildType(), theEcorePackage.getEString(), "childType", null, 0, 1, HierarchyPermission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHierarchyPermission_IsPermitted(), theEcorePackage.getEBoolean(), "isPermitted", null, 0, 1, HierarchyPermission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHierarchyPermission_IsStrict(), theEcorePackage.getEBoolean(), "isStrict", null, 0, 1, HierarchyPermission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //InvariantContainerConfigurationPackageImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationAdapterFactory.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationAdapterFactory.java
new file mode 100644
index 00000000000..84bb89c1c72
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationAdapterFactory.java
@@ -0,0 +1,168 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.*;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage
+ * @generated
+ */
+public class InvariantContainerConfigurationAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static InvariantContainerConfigurationPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantContainerConfigurationAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = InvariantContainerConfigurationPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InvariantContainerConfigurationSwitch<Adapter> modelSwitch =
+ new InvariantContainerConfigurationSwitch<Adapter>() {
+ @Override
+ public Adapter caseInvariantContainerConfiguration(InvariantContainerConfiguration object) {
+ return createInvariantContainerConfigurationAdapter();
+ }
+ @Override
+ public Adapter caseHierarchyPermission(HierarchyPermission object) {
+ return createHierarchyPermissionAdapter();
+ }
+ @Override
+ public Adapter caseInvariantRuleConfiguration(InvariantRuleConfiguration object) {
+ return createInvariantRuleConfigurationAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfiguration <em>Invariant Container Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfiguration
+ * @generated
+ */
+ public Adapter createInvariantContainerConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission <em>Hierarchy Permission</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.HierarchyPermission
+ * @generated
+ */
+ public Adapter createHierarchyPermissionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration <em>Invariant Rule Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration
+ * @generated
+ */
+ public Adapter createInvariantRuleConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //InvariantContainerConfigurationAdapterFactory
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationResourceFactoryImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationResourceFactoryImpl.java
new file mode 100644
index 00000000000..a9fbd4a3c4c
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationResourceFactoryImpl.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.util;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource Factory</b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.util.InvariantContainerConfigurationResourceImpl
+ * @generated
+ */
+public class InvariantContainerConfigurationResourceFactoryImpl extends ResourceFactoryImpl {
+ /**
+ * Creates an instance of the resource factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantContainerConfigurationResourceFactoryImpl() {
+ super();
+ }
+
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Resource createResource(URI uri) {
+ XMLResource result = new InvariantContainerConfigurationResourceImpl(uri);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE);
+ return result;
+ }
+
+} //InvariantContainerConfigurationResourceFactoryImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationResourceImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationResourceImpl.java
new file mode 100644
index 00000000000..46c332df4a3
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationResourceImpl.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.util;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource </b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.util.InvariantContainerConfigurationResourceFactoryImpl
+ * @generated
+ */
+public class InvariantContainerConfigurationResourceImpl extends XMLResourceImpl {
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param uri the URI of the new resource.
+ * @generated
+ */
+ public InvariantContainerConfigurationResourceImpl(URI uri) {
+ super(uri);
+ }
+
+} //InvariantContainerConfigurationResourceImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationSwitch.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationSwitch.java
new file mode 100644
index 00000000000..906617e130d
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationSwitch.java
@@ -0,0 +1,159 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.*;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage
+ * @generated
+ */
+public class InvariantContainerConfigurationSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static InvariantContainerConfigurationPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantContainerConfigurationSwitch() {
+ if (modelPackage == null) {
+ modelPackage = InvariantContainerConfigurationPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case InvariantContainerConfigurationPackage.INVARIANT_CONTAINER_CONFIGURATION: {
+ InvariantContainerConfiguration invariantContainerConfiguration = (InvariantContainerConfiguration)theEObject;
+ T result = caseInvariantContainerConfiguration(invariantContainerConfiguration);
+ if (result == null) result = caseInvariantRuleConfiguration(invariantContainerConfiguration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case InvariantContainerConfigurationPackage.HIERARCHY_PERMISSION: {
+ HierarchyPermission hierarchyPermission = (HierarchyPermission)theEObject;
+ T result = caseHierarchyPermission(hierarchyPermission);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Invariant Container Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Invariant Container Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInvariantContainerConfiguration(InvariantContainerConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hierarchy Permission</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Hierarchy Permission</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHierarchyPermission(HierarchyPermission object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Invariant Rule Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Invariant Rule Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInvariantRuleConfiguration(InvariantRuleConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //InvariantContainerConfigurationSwitch
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationXMLProcessor.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationXMLProcessor.java
new file mode 100644
index 00000000000..f3b639653b8
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/util/InvariantContainerConfigurationXMLProcessor.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+import org.eclipse.emf.ecore.xmi.util.XMLProcessor;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration.InvariantContainerConfigurationPackage;
+
+/**
+ * This class contains helper methods to serialize and deserialize XML documents
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class InvariantContainerConfigurationXMLProcessor extends XMLProcessor {
+
+ /**
+ * Public constructor to instantiate the helper.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantContainerConfigurationXMLProcessor() {
+ super((EPackage.Registry.INSTANCE));
+ InvariantContainerConfigurationPackage.eINSTANCE.eClass();
+ }
+
+ /**
+ * Register for "*" and "xml" file extensions the InvariantContainerConfigurationResourceFactoryImpl factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Map<String, Resource.Factory> getRegistrations() {
+ if (registrations == null) {
+ super.getRegistrations();
+ registrations.put(XML_EXTENSION, new InvariantContainerConfigurationResourceFactoryImpl());
+ registrations.put(STAR_EXTENSION, new InvariantContainerConfigurationResourceFactoryImpl());
+ }
+ return registrations;
+ }
+
+} //InvariantContainerConfigurationXMLProcessor
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRule.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRule.java
new file mode 100644
index 00000000000..06d1e075728
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRule.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>And Rule</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage#getAndRule()
+ * @model
+ * @generated
+ */
+public interface AndRule extends ComposedRuleConfiguration {
+} // AndRule
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/ComposedRuleConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/ComposedRuleConfiguration.java
new file mode 100644
index 00000000000..2c7cda4cccc
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/ComposedRuleConfiguration.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Composed Rule Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.ComposedRuleConfiguration#getComposedRules <em>Composed Rules</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage#getComposedRuleConfiguration()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ComposedRuleConfiguration extends InvariantRuleConfiguration {
+ /**
+ * Returns the value of the '<em><b>Composed Rules</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Composed Rules</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>Composed Rules</em>' reference list.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage#getComposedRuleConfiguration_ComposedRules()
+ * @model lower="2"
+ * @generated
+ */
+ EList<InvariantRuleConfiguration> getComposedRules();
+
+} // ComposedRuleConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantRuleConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantRuleConfiguration.java
new file mode 100644
index 00000000000..fcc65ae8d8f
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantRuleConfiguration.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Invariant Rule Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage#getInvariantRuleConfiguration()
+ * @model abstract="true"
+ * @generated
+ */
+public interface InvariantRuleConfiguration extends EObject {
+} // InvariantRuleConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeConfiguration.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeConfiguration.java
new file mode 100644
index 00000000000..996f243cbad
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeConfiguration.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Invariant Semantic Type Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfiguration#getInvariantRuleConfiguration <em>Invariant Rule Configuration</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage#getInvariantSemanticTypeConfiguration()
+ * @model
+ * @generated
+ */
+public interface InvariantSemanticTypeConfiguration extends SemanticTypeConfiguration {
+ /**
+ * Returns the value of the '<em><b>Invariant Rule Configuration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Invariant Rule Configuration</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>Invariant Rule Configuration</em>' containment reference.
+ * @see #setInvariantRuleConfiguration(InvariantRuleConfiguration)
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage#getInvariantSemanticTypeConfiguration_InvariantRuleConfiguration()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ InvariantRuleConfiguration getInvariantRuleConfiguration();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfiguration#getInvariantRuleConfiguration <em>Invariant Rule Configuration</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Invariant Rule Configuration</em>' containment reference.
+ * @see #getInvariantRuleConfiguration()
+ * @generated
+ */
+ void setInvariantRuleConfiguration(InvariantRuleConfiguration value);
+
+} // InvariantSemanticTypeConfiguration
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeConfigurationFactory.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeConfigurationFactory.java
new file mode 100644
index 00000000000..fb6ec1c327d
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeConfigurationFactory.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- 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.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage
+ * @generated
+ */
+public interface InvariantSemanticTypeConfigurationFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ InvariantSemanticTypeConfigurationFactory eINSTANCE = org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Invariant Semantic Type Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Invariant Semantic Type Configuration</em>'.
+ * @generated
+ */
+ InvariantSemanticTypeConfiguration createInvariantSemanticTypeConfiguration();
+
+ /**
+ * Returns a new object of class '<em>And Rule</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>And Rule</em>'.
+ * @generated
+ */
+ AndRule createAndRule();
+
+ /**
+ * Returns a new object of class '<em>Or Rule</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Or Rule</em>'.
+ * @generated
+ */
+ OrRule createOrRule();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ InvariantSemanticTypeConfigurationPackage getInvariantSemanticTypeConfigurationPackage();
+
+} //InvariantSemanticTypeConfigurationFactory
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeConfigurationPackage.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeConfigurationPackage.java
new file mode 100644
index 00000000000..83412feb380
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeConfigurationPackage.java
@@ -0,0 +1,464 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+
+/**
+ * <!-- 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 operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface InvariantSemanticTypeConfigurationPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "invariantsemantictypeconfiguration";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/infra/extendedtypes/semantictype/invariant/1.0";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "invariantsemantictypeconfiguration";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ InvariantSemanticTypeConfigurationPackage eINSTANCE = org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationImpl <em>Invariant Semantic Type Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationPackageImpl#getInvariantSemanticTypeConfiguration()
+ * @generated
+ */
+ int INVARIANT_SEMANTIC_TYPE_CONFIGURATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVARIANT_SEMANTIC_TYPE_CONFIGURATION__NAME = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVARIANT_SEMANTIC_TYPE_CONFIGURATION__DESCRIPTION = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVARIANT_SEMANTIC_TYPE_CONFIGURATION__IDENTIFIER = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Icon Entry</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVARIANT_SEMANTIC_TYPE_CONFIGURATION__ICON_ENTRY = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION__ICON_ENTRY;
+
+ /**
+ * The feature id for the '<em><b>Hint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVARIANT_SEMANTIC_TYPE_CONFIGURATION__HINT = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION__HINT;
+
+ /**
+ * The feature id for the '<em><b>Kind Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVARIANT_SEMANTIC_TYPE_CONFIGURATION__KIND_NAME = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION__KIND_NAME;
+
+ /**
+ * The feature id for the '<em><b>Specialized Types ID</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVARIANT_SEMANTIC_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION__SPECIALIZED_TYPES_ID;
+
+ /**
+ * The feature id for the '<em><b>Invariant Rule Configuration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVARIANT_SEMANTIC_TYPE_CONFIGURATION__INVARIANT_RULE_CONFIGURATION = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Invariant Semantic Type Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVARIANT_SEMANTIC_TYPE_CONFIGURATION_FEATURE_COUNT = ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantRuleConfigurationImpl <em>Invariant Rule Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantRuleConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationPackageImpl#getInvariantRuleConfiguration()
+ * @generated
+ */
+ int INVARIANT_RULE_CONFIGURATION = 1;
+
+ /**
+ * The number of structural features of the '<em>Invariant Rule Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVARIANT_RULE_CONFIGURATION_FEATURE_COUNT = 0;
+
+ /**
+ * The number of operations of the '<em>Invariant Rule Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INVARIANT_RULE_CONFIGURATION_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.ComposedRuleConfigurationImpl <em>Composed Rule Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.ComposedRuleConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationPackageImpl#getComposedRuleConfiguration()
+ * @generated
+ */
+ int COMPOSED_RULE_CONFIGURATION = 2;
+
+ /**
+ * The feature id for the '<em><b>Composed Rules</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSED_RULE_CONFIGURATION__COMPOSED_RULES = INVARIANT_RULE_CONFIGURATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Composed Rule Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSED_RULE_CONFIGURATION_FEATURE_COUNT = INVARIANT_RULE_CONFIGURATION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Composed Rule Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSED_RULE_CONFIGURATION_OPERATION_COUNT = INVARIANT_RULE_CONFIGURATION_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.AndRuleImpl <em>And Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.AndRuleImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationPackageImpl#getAndRule()
+ * @generated
+ */
+ int AND_RULE = 3;
+
+ /**
+ * The feature id for the '<em><b>Composed Rules</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_RULE__COMPOSED_RULES = COMPOSED_RULE_CONFIGURATION__COMPOSED_RULES;
+
+ /**
+ * The number of structural features of the '<em>And Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_RULE_FEATURE_COUNT = COMPOSED_RULE_CONFIGURATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>And Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_RULE_OPERATION_COUNT = COMPOSED_RULE_CONFIGURATION_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.OrRuleImpl <em>Or Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.OrRuleImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationPackageImpl#getOrRule()
+ * @generated
+ */
+ int OR_RULE = 4;
+
+ /**
+ * The feature id for the '<em><b>Composed Rules</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_RULE__COMPOSED_RULES = COMPOSED_RULE_CONFIGURATION__COMPOSED_RULES;
+
+ /**
+ * The number of structural features of the '<em>Or Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_RULE_FEATURE_COUNT = COMPOSED_RULE_CONFIGURATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Or Rule</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_RULE_OPERATION_COUNT = COMPOSED_RULE_CONFIGURATION_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfiguration <em>Invariant Semantic Type Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Invariant Semantic Type Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfiguration
+ * @generated
+ */
+ EClass getInvariantSemanticTypeConfiguration();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfiguration#getInvariantRuleConfiguration <em>Invariant Rule Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Invariant Rule Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfiguration#getInvariantRuleConfiguration()
+ * @see #getInvariantSemanticTypeConfiguration()
+ * @generated
+ */
+ EReference getInvariantSemanticTypeConfiguration_InvariantRuleConfiguration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration <em>Invariant Rule Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Invariant Rule Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration
+ * @generated
+ */
+ EClass getInvariantRuleConfiguration();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.ComposedRuleConfiguration <em>Composed Rule Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Composed Rule Configuration</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.ComposedRuleConfiguration
+ * @generated
+ */
+ EClass getComposedRuleConfiguration();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.ComposedRuleConfiguration#getComposedRules <em>Composed Rules</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Composed Rules</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.ComposedRuleConfiguration#getComposedRules()
+ * @see #getComposedRuleConfiguration()
+ * @generated
+ */
+ EReference getComposedRuleConfiguration_ComposedRules();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.AndRule <em>And Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>And Rule</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.AndRule
+ * @generated
+ */
+ EClass getAndRule();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.OrRule <em>Or Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Or Rule</em>'.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.OrRule
+ * @generated
+ */
+ EClass getOrRule();
+
+ /**
+ * 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
+ */
+ InvariantSemanticTypeConfigurationFactory getInvariantSemanticTypeConfigurationFactory();
+
+ /**
+ * <!-- 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 operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationImpl <em>Invariant Semantic Type Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationPackageImpl#getInvariantSemanticTypeConfiguration()
+ * @generated
+ */
+ EClass INVARIANT_SEMANTIC_TYPE_CONFIGURATION = eINSTANCE.getInvariantSemanticTypeConfiguration();
+
+ /**
+ * The meta object literal for the '<em><b>Invariant Rule Configuration</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference INVARIANT_SEMANTIC_TYPE_CONFIGURATION__INVARIANT_RULE_CONFIGURATION = eINSTANCE.getInvariantSemanticTypeConfiguration_InvariantRuleConfiguration();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantRuleConfigurationImpl <em>Invariant Rule Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantRuleConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationPackageImpl#getInvariantRuleConfiguration()
+ * @generated
+ */
+ EClass INVARIANT_RULE_CONFIGURATION = eINSTANCE.getInvariantRuleConfiguration();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.ComposedRuleConfigurationImpl <em>Composed Rule Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.ComposedRuleConfigurationImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationPackageImpl#getComposedRuleConfiguration()
+ * @generated
+ */
+ EClass COMPOSED_RULE_CONFIGURATION = eINSTANCE.getComposedRuleConfiguration();
+
+ /**
+ * The meta object literal for the '<em><b>Composed Rules</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPOSED_RULE_CONFIGURATION__COMPOSED_RULES = eINSTANCE.getComposedRuleConfiguration_ComposedRules();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.AndRuleImpl <em>And Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.AndRuleImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationPackageImpl#getAndRule()
+ * @generated
+ */
+ EClass AND_RULE = eINSTANCE.getAndRule();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.OrRuleImpl <em>Or Rule</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.OrRuleImpl
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationPackageImpl#getOrRule()
+ * @generated
+ */
+ EClass OR_RULE = eINSTANCE.getOrRule();
+
+ }
+
+} //InvariantSemanticTypeConfigurationPackage
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRule.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRule.java
new file mode 100644
index 00000000000..68b84ccacf8
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRule.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Or Rule</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage#getOrRule()
+ * @model
+ * @generated
+ */
+public interface OrRule extends ComposedRuleConfiguration {
+} // OrRule
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/AndRuleImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/AndRuleImpl.java
new file mode 100644
index 00000000000..fc96b51c8f0
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/AndRuleImpl.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.AndRule;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>And Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class AndRuleImpl extends ComposedRuleConfigurationImpl implements AndRule {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AndRuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return InvariantSemanticTypeConfigurationPackage.Literals.AND_RULE;
+ }
+
+} //AndRuleImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/ComposedRuleConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/ComposedRuleConfigurationImpl.java
new file mode 100644
index 00000000000..de4301c4939
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/ComposedRuleConfigurationImpl.java
@@ -0,0 +1,142 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.ComposedRuleConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Composed Rule Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.ComposedRuleConfigurationImpl#getComposedRules <em>Composed Rules</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ComposedRuleConfigurationImpl extends InvariantRuleConfigurationImpl implements ComposedRuleConfiguration {
+ /**
+ * The cached value of the '{@link #getComposedRules() <em>Composed Rules</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getComposedRules()
+ * @generated
+ * @ordered
+ */
+ protected EList<InvariantRuleConfiguration> composedRules;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedRuleConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return InvariantSemanticTypeConfigurationPackage.Literals.COMPOSED_RULE_CONFIGURATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<InvariantRuleConfiguration> getComposedRules() {
+ if (composedRules == null) {
+ composedRules = new EObjectResolvingEList<InvariantRuleConfiguration>(InvariantRuleConfiguration.class, this, InvariantSemanticTypeConfigurationPackage.COMPOSED_RULE_CONFIGURATION__COMPOSED_RULES);
+ }
+ return composedRules;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case InvariantSemanticTypeConfigurationPackage.COMPOSED_RULE_CONFIGURATION__COMPOSED_RULES:
+ return getComposedRules();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case InvariantSemanticTypeConfigurationPackage.COMPOSED_RULE_CONFIGURATION__COMPOSED_RULES:
+ getComposedRules().clear();
+ getComposedRules().addAll((Collection<? extends InvariantRuleConfiguration>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case InvariantSemanticTypeConfigurationPackage.COMPOSED_RULE_CONFIGURATION__COMPOSED_RULES:
+ getComposedRules().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case InvariantSemanticTypeConfigurationPackage.COMPOSED_RULE_CONFIGURATION__COMPOSED_RULES:
+ return composedRules != null && !composedRules.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ComposedRuleConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantRuleConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantRuleConfigurationImpl.java
new file mode 100644
index 00000000000..a903ba9ceb6
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantRuleConfigurationImpl.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Invariant Rule Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class InvariantRuleConfigurationImpl extends MinimalEObjectImpl.Container implements InvariantRuleConfiguration {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InvariantRuleConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return InvariantSemanticTypeConfigurationPackage.Literals.INVARIANT_RULE_CONFIGURATION;
+ }
+
+} //InvariantRuleConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantSemanticTypeConfigurationFactoryImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantSemanticTypeConfigurationFactoryImpl.java
new file mode 100644
index 00000000000..acb1d71845e
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantSemanticTypeConfigurationFactoryImpl.java
@@ -0,0 +1,127 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl;
+
+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;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class InvariantSemanticTypeConfigurationFactoryImpl extends EFactoryImpl implements InvariantSemanticTypeConfigurationFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static InvariantSemanticTypeConfigurationFactory init() {
+ try {
+ InvariantSemanticTypeConfigurationFactory theInvariantSemanticTypeConfigurationFactory = (InvariantSemanticTypeConfigurationFactory)EPackage.Registry.INSTANCE.getEFactory(InvariantSemanticTypeConfigurationPackage.eNS_URI);
+ if (theInvariantSemanticTypeConfigurationFactory != null) {
+ return theInvariantSemanticTypeConfigurationFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new InvariantSemanticTypeConfigurationFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantSemanticTypeConfigurationFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case InvariantSemanticTypeConfigurationPackage.INVARIANT_SEMANTIC_TYPE_CONFIGURATION: return createInvariantSemanticTypeConfiguration();
+ case InvariantSemanticTypeConfigurationPackage.AND_RULE: return createAndRule();
+ case InvariantSemanticTypeConfigurationPackage.OR_RULE: return createOrRule();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantSemanticTypeConfiguration createInvariantSemanticTypeConfiguration() {
+ InvariantSemanticTypeConfigurationImpl invariantSemanticTypeConfiguration = new InvariantSemanticTypeConfigurationImpl();
+ return invariantSemanticTypeConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AndRule createAndRule() {
+ AndRuleImpl andRule = new AndRuleImpl();
+ return andRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OrRule createOrRule() {
+ OrRuleImpl orRule = new OrRuleImpl();
+ return orRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantSemanticTypeConfigurationPackage getInvariantSemanticTypeConfigurationPackage() {
+ return (InvariantSemanticTypeConfigurationPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static InvariantSemanticTypeConfigurationPackage getPackage() {
+ return InvariantSemanticTypeConfigurationPackage.eINSTANCE;
+ }
+
+} //InvariantSemanticTypeConfigurationFactoryImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantSemanticTypeConfigurationImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantSemanticTypeConfigurationImpl.java
new file mode 100644
index 00000000000..a0ad1d2d228
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantSemanticTypeConfigurationImpl.java
@@ -0,0 +1,187 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl;
+
+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.papyrus.infra.extendedtypes.impl.SemanticTypeConfigurationImpl;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Invariant Semantic Type Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl.InvariantSemanticTypeConfigurationImpl#getInvariantRuleConfiguration <em>Invariant Rule Configuration</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InvariantSemanticTypeConfigurationImpl extends SemanticTypeConfigurationImpl implements InvariantSemanticTypeConfiguration {
+ /**
+ * The cached value of the '{@link #getInvariantRuleConfiguration() <em>Invariant Rule Configuration</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInvariantRuleConfiguration()
+ * @generated
+ * @ordered
+ */
+ protected InvariantRuleConfiguration invariantRuleConfiguration;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InvariantSemanticTypeConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return InvariantSemanticTypeConfigurationPackage.Literals.INVARIANT_SEMANTIC_TYPE_CONFIGURATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantRuleConfiguration getInvariantRuleConfiguration() {
+ return invariantRuleConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInvariantRuleConfiguration(InvariantRuleConfiguration newInvariantRuleConfiguration, NotificationChain msgs) {
+ InvariantRuleConfiguration oldInvariantRuleConfiguration = invariantRuleConfiguration;
+ invariantRuleConfiguration = newInvariantRuleConfiguration;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, InvariantSemanticTypeConfigurationPackage.INVARIANT_SEMANTIC_TYPE_CONFIGURATION__INVARIANT_RULE_CONFIGURATION, oldInvariantRuleConfiguration, newInvariantRuleConfiguration);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInvariantRuleConfiguration(InvariantRuleConfiguration newInvariantRuleConfiguration) {
+ if (newInvariantRuleConfiguration != invariantRuleConfiguration) {
+ NotificationChain msgs = null;
+ if (invariantRuleConfiguration != null)
+ msgs = ((InternalEObject)invariantRuleConfiguration).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - InvariantSemanticTypeConfigurationPackage.INVARIANT_SEMANTIC_TYPE_CONFIGURATION__INVARIANT_RULE_CONFIGURATION, null, msgs);
+ if (newInvariantRuleConfiguration != null)
+ msgs = ((InternalEObject)newInvariantRuleConfiguration).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - InvariantSemanticTypeConfigurationPackage.INVARIANT_SEMANTIC_TYPE_CONFIGURATION__INVARIANT_RULE_CONFIGURATION, null, msgs);
+ msgs = basicSetInvariantRuleConfiguration(newInvariantRuleConfiguration, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, InvariantSemanticTypeConfigurationPackage.INVARIANT_SEMANTIC_TYPE_CONFIGURATION__INVARIANT_RULE_CONFIGURATION, newInvariantRuleConfiguration, newInvariantRuleConfiguration));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case InvariantSemanticTypeConfigurationPackage.INVARIANT_SEMANTIC_TYPE_CONFIGURATION__INVARIANT_RULE_CONFIGURATION:
+ return basicSetInvariantRuleConfiguration(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case InvariantSemanticTypeConfigurationPackage.INVARIANT_SEMANTIC_TYPE_CONFIGURATION__INVARIANT_RULE_CONFIGURATION:
+ return getInvariantRuleConfiguration();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case InvariantSemanticTypeConfigurationPackage.INVARIANT_SEMANTIC_TYPE_CONFIGURATION__INVARIANT_RULE_CONFIGURATION:
+ setInvariantRuleConfiguration((InvariantRuleConfiguration)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case InvariantSemanticTypeConfigurationPackage.INVARIANT_SEMANTIC_TYPE_CONFIGURATION__INVARIANT_RULE_CONFIGURATION:
+ setInvariantRuleConfiguration((InvariantRuleConfiguration)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case InvariantSemanticTypeConfigurationPackage.INVARIANT_SEMANTIC_TYPE_CONFIGURATION__INVARIANT_RULE_CONFIGURATION:
+ return invariantRuleConfiguration != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //InvariantSemanticTypeConfigurationImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantSemanticTypeConfigurationPackageImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantSemanticTypeConfigurationPackageImpl.java
new file mode 100644
index 00000000000..6b962508862
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/InvariantSemanticTypeConfigurationPackageImpl.java
@@ -0,0 +1,294 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.AndRule;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.ComposedRuleConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationFactory;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.OrRule;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class InvariantSemanticTypeConfigurationPackageImpl extends EPackageImpl implements InvariantSemanticTypeConfigurationPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass invariantSemanticTypeConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass invariantRuleConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass composedRuleConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass andRuleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass orRuleEClass = 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.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private InvariantSemanticTypeConfigurationPackageImpl() {
+ super(eNS_URI, InvariantSemanticTypeConfigurationFactory.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.
+ *
+ * <p>This method is used to initialize {@link InvariantSemanticTypeConfigurationPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static InvariantSemanticTypeConfigurationPackage init() {
+ if (isInited) return (InvariantSemanticTypeConfigurationPackage)EPackage.Registry.INSTANCE.getEPackage(InvariantSemanticTypeConfigurationPackage.eNS_URI);
+
+ // Obtain or create and register package
+ InvariantSemanticTypeConfigurationPackageImpl theInvariantSemanticTypeConfigurationPackage = (InvariantSemanticTypeConfigurationPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof InvariantSemanticTypeConfigurationPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new InvariantSemanticTypeConfigurationPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ ExtendedtypesPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theInvariantSemanticTypeConfigurationPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theInvariantSemanticTypeConfigurationPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theInvariantSemanticTypeConfigurationPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(InvariantSemanticTypeConfigurationPackage.eNS_URI, theInvariantSemanticTypeConfigurationPackage);
+ return theInvariantSemanticTypeConfigurationPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInvariantSemanticTypeConfiguration() {
+ return invariantSemanticTypeConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInvariantSemanticTypeConfiguration_InvariantRuleConfiguration() {
+ return (EReference)invariantSemanticTypeConfigurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInvariantRuleConfiguration() {
+ return invariantRuleConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getComposedRuleConfiguration() {
+ return composedRuleConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getComposedRuleConfiguration_ComposedRules() {
+ return (EReference)composedRuleConfigurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAndRule() {
+ return andRuleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOrRule() {
+ return orRuleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantSemanticTypeConfigurationFactory getInvariantSemanticTypeConfigurationFactory() {
+ return (InvariantSemanticTypeConfigurationFactory)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
+ invariantSemanticTypeConfigurationEClass = createEClass(INVARIANT_SEMANTIC_TYPE_CONFIGURATION);
+ createEReference(invariantSemanticTypeConfigurationEClass, INVARIANT_SEMANTIC_TYPE_CONFIGURATION__INVARIANT_RULE_CONFIGURATION);
+
+ invariantRuleConfigurationEClass = createEClass(INVARIANT_RULE_CONFIGURATION);
+
+ composedRuleConfigurationEClass = createEClass(COMPOSED_RULE_CONFIGURATION);
+ createEReference(composedRuleConfigurationEClass, COMPOSED_RULE_CONFIGURATION__COMPOSED_RULES);
+
+ andRuleEClass = createEClass(AND_RULE);
+
+ orRuleEClass = createEClass(OR_RULE);
+ }
+
+ /**
+ * <!-- 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
+ ExtendedtypesPackage theExtendedtypesPackage = (ExtendedtypesPackage)EPackage.Registry.INSTANCE.getEPackage(ExtendedtypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ invariantSemanticTypeConfigurationEClass.getESuperTypes().add(theExtendedtypesPackage.getSemanticTypeConfiguration());
+ composedRuleConfigurationEClass.getESuperTypes().add(this.getInvariantRuleConfiguration());
+ andRuleEClass.getESuperTypes().add(this.getComposedRuleConfiguration());
+ orRuleEClass.getESuperTypes().add(this.getComposedRuleConfiguration());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(invariantSemanticTypeConfigurationEClass, InvariantSemanticTypeConfiguration.class, "InvariantSemanticTypeConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getInvariantSemanticTypeConfiguration_InvariantRuleConfiguration(), this.getInvariantRuleConfiguration(), null, "invariantRuleConfiguration", null, 1, 1, InvariantSemanticTypeConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(invariantRuleConfigurationEClass, InvariantRuleConfiguration.class, "InvariantRuleConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(composedRuleConfigurationEClass, ComposedRuleConfiguration.class, "ComposedRuleConfiguration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getComposedRuleConfiguration_ComposedRules(), this.getInvariantRuleConfiguration(), null, "composedRules", null, 2, -1, ComposedRuleConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(andRuleEClass, AndRule.class, "AndRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(orRuleEClass, OrRule.class, "OrRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //InvariantSemanticTypeConfigurationPackageImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/OrRuleImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/OrRuleImpl.java
new file mode 100644
index 00000000000..70be112867d
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/impl/OrRuleImpl.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.OrRule;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Or Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class OrRuleImpl extends ComposedRuleConfigurationImpl implements OrRule {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OrRuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return InvariantSemanticTypeConfigurationPackage.Literals.OR_RULE;
+ }
+
+} //OrRuleImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationAdapterFactory.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationAdapterFactory.java
new file mode 100644
index 00000000000..51f9cf1bba8
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationAdapterFactory.java
@@ -0,0 +1,260 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement;
+import org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage
+ * @generated
+ */
+public class InvariantSemanticTypeConfigurationAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static InvariantSemanticTypeConfigurationPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantSemanticTypeConfigurationAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = InvariantSemanticTypeConfigurationPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InvariantSemanticTypeConfigurationSwitch<Adapter> modelSwitch =
+ new InvariantSemanticTypeConfigurationSwitch<Adapter>() {
+ @Override
+ public Adapter caseInvariantSemanticTypeConfiguration(InvariantSemanticTypeConfiguration object) {
+ return createInvariantSemanticTypeConfigurationAdapter();
+ }
+ @Override
+ public Adapter caseInvariantRuleConfiguration(InvariantRuleConfiguration object) {
+ return createInvariantRuleConfigurationAdapter();
+ }
+ @Override
+ public Adapter caseComposedRuleConfiguration(ComposedRuleConfiguration object) {
+ return createComposedRuleConfigurationAdapter();
+ }
+ @Override
+ public Adapter caseAndRule(AndRule object) {
+ return createAndRuleAdapter();
+ }
+ @Override
+ public Adapter caseOrRule(OrRule object) {
+ return createOrRuleAdapter();
+ }
+ @Override
+ public Adapter caseConfigurationElement(ConfigurationElement object) {
+ return createConfigurationElementAdapter();
+ }
+ @Override
+ public Adapter caseElementTypeConfiguration(ElementTypeConfiguration object) {
+ return createElementTypeConfigurationAdapter();
+ }
+ @Override
+ public Adapter caseSemanticTypeConfiguration(SemanticTypeConfiguration object) {
+ return createSemanticTypeConfigurationAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfiguration <em>Invariant Semantic Type Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfiguration
+ * @generated
+ */
+ public Adapter createInvariantSemanticTypeConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration <em>Invariant Rule Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantRuleConfiguration
+ * @generated
+ */
+ public Adapter createInvariantRuleConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.ComposedRuleConfiguration <em>Composed Rule Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.ComposedRuleConfiguration
+ * @generated
+ */
+ public Adapter createComposedRuleConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.AndRule <em>And Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.AndRule
+ * @generated
+ */
+ public Adapter createAndRuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.OrRule <em>Or Rule</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.OrRule
+ * @generated
+ */
+ public Adapter createOrRuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement <em>Configuration Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement
+ * @generated
+ */
+ public Adapter createConfigurationElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration <em>Element Type Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration
+ * @generated
+ */
+ public Adapter createElementTypeConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration <em>Semantic Type Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration
+ * @generated
+ */
+ public Adapter createSemanticTypeConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //InvariantSemanticTypeConfigurationAdapterFactory
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationResourceFactoryImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationResourceFactoryImpl.java
new file mode 100644
index 00000000000..7bb75b7016d
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationResourceFactoryImpl.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.util;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource Factory</b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.util.InvariantSemanticTypeConfigurationResourceImpl
+ * @generated
+ */
+public class InvariantSemanticTypeConfigurationResourceFactoryImpl extends ResourceFactoryImpl {
+ /**
+ * Creates an instance of the resource factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantSemanticTypeConfigurationResourceFactoryImpl() {
+ super();
+ }
+
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Resource createResource(URI uri) {
+ XMLResource result = new InvariantSemanticTypeConfigurationResourceImpl(uri);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE);
+ return result;
+ }
+
+} //InvariantSemanticTypeConfigurationResourceFactoryImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationResourceImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationResourceImpl.java
new file mode 100644
index 00000000000..241bee3a58f
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationResourceImpl.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.util;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource </b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.util.InvariantSemanticTypeConfigurationResourceFactoryImpl
+ * @generated
+ */
+public class InvariantSemanticTypeConfigurationResourceImpl extends XMLResourceImpl {
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param uri the URI of the new resource.
+ * @generated
+ */
+ public InvariantSemanticTypeConfigurationResourceImpl(URI uri) {
+ super(uri);
+ }
+
+} //InvariantSemanticTypeConfigurationResourceImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationSwitch.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationSwitch.java
new file mode 100644
index 00000000000..37420a55b0b
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationSwitch.java
@@ -0,0 +1,261 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement;
+import org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage
+ * @generated
+ */
+public class InvariantSemanticTypeConfigurationSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static InvariantSemanticTypeConfigurationPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantSemanticTypeConfigurationSwitch() {
+ if (modelPackage == null) {
+ modelPackage = InvariantSemanticTypeConfigurationPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case InvariantSemanticTypeConfigurationPackage.INVARIANT_SEMANTIC_TYPE_CONFIGURATION: {
+ InvariantSemanticTypeConfiguration invariantSemanticTypeConfiguration = (InvariantSemanticTypeConfiguration)theEObject;
+ T result = caseInvariantSemanticTypeConfiguration(invariantSemanticTypeConfiguration);
+ if (result == null) result = caseSemanticTypeConfiguration(invariantSemanticTypeConfiguration);
+ if (result == null) result = caseElementTypeConfiguration(invariantSemanticTypeConfiguration);
+ if (result == null) result = caseConfigurationElement(invariantSemanticTypeConfiguration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case InvariantSemanticTypeConfigurationPackage.INVARIANT_RULE_CONFIGURATION: {
+ InvariantRuleConfiguration invariantRuleConfiguration = (InvariantRuleConfiguration)theEObject;
+ T result = caseInvariantRuleConfiguration(invariantRuleConfiguration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case InvariantSemanticTypeConfigurationPackage.COMPOSED_RULE_CONFIGURATION: {
+ ComposedRuleConfiguration composedRuleConfiguration = (ComposedRuleConfiguration)theEObject;
+ T result = caseComposedRuleConfiguration(composedRuleConfiguration);
+ if (result == null) result = caseInvariantRuleConfiguration(composedRuleConfiguration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case InvariantSemanticTypeConfigurationPackage.AND_RULE: {
+ AndRule andRule = (AndRule)theEObject;
+ T result = caseAndRule(andRule);
+ if (result == null) result = caseComposedRuleConfiguration(andRule);
+ if (result == null) result = caseInvariantRuleConfiguration(andRule);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case InvariantSemanticTypeConfigurationPackage.OR_RULE: {
+ OrRule orRule = (OrRule)theEObject;
+ T result = caseOrRule(orRule);
+ if (result == null) result = caseComposedRuleConfiguration(orRule);
+ if (result == null) result = caseInvariantRuleConfiguration(orRule);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Invariant Semantic Type Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Invariant Semantic Type Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInvariantSemanticTypeConfiguration(InvariantSemanticTypeConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Invariant Rule Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Invariant Rule Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInvariantRuleConfiguration(InvariantRuleConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Composed Rule Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Composed Rule Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseComposedRuleConfiguration(ComposedRuleConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>And Rule</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>And Rule</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAndRule(AndRule object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Or Rule</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Or Rule</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOrRule(OrRule object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Configuration Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Configuration Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConfigurationElement(ConfigurationElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Element Type Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Element Type Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseElementTypeConfiguration(ElementTypeConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Semantic Type Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Semantic Type Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSemanticTypeConfiguration(SemanticTypeConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //InvariantSemanticTypeConfigurationSwitch
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationXMLProcessor.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationXMLProcessor.java
new file mode 100644
index 00000000000..29c85ba6520
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/util/InvariantSemanticTypeConfigurationXMLProcessor.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+import org.eclipse.emf.ecore.xmi.util.XMLProcessor;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.InvariantSemanticTypeConfigurationPackage;
+
+/**
+ * This class contains helper methods to serialize and deserialize XML documents
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class InvariantSemanticTypeConfigurationXMLProcessor extends XMLProcessor {
+
+ /**
+ * Public constructor to instantiate the helper.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InvariantSemanticTypeConfigurationXMLProcessor() {
+ super((EPackage.Registry.INSTANCE));
+ InvariantSemanticTypeConfigurationPackage.eINSTANCE.eClass();
+ }
+
+ /**
+ * Register for "*" and "xml" file extensions the InvariantSemanticTypeConfigurationResourceFactoryImpl factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Map<String, Resource.Factory> getRegistrations() {
+ if (registrations == null) {
+ super.getRegistrations();
+ registrations.put(XML_EXTENSION, new InvariantSemanticTypeConfigurationResourceFactoryImpl());
+ registrations.put(STAR_EXTENSION, new InvariantSemanticTypeConfigurationResourceFactoryImpl());
+ }
+ return registrations;
+ }
+
+} //InvariantSemanticTypeConfigurationXMLProcessor
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesAdapterFactory.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesAdapterFactory.java
index bc9ac57f2ee..dae39a45162 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesAdapterFactory.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesAdapterFactory.java
@@ -1,217 +1,387 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes.util;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
-import org.eclipse.papyrus.infra.extendedtypes.IconEntry;
-import org.eclipse.papyrus.infra.extendedtypes.PostActionConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.PreActionConfiguration;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Adapter Factory</b> for the model.
- * It provides an adapter <code>createXXX</code> method for each class of the model.
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage
- * @generated
- */
-public class ExtendedtypesAdapterFactory extends AdapterFactoryImpl {
- /**
- * The cached model package.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected static ExtendedtypesPackage modelPackage;
-
- /**
- * Creates an instance of the adapter factory.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public ExtendedtypesAdapterFactory() {
- if (modelPackage == null) {
- modelPackage = ExtendedtypesPackage.eINSTANCE;
- }
- }
-
- /**
- * Returns whether this factory is applicable for the type of the object.
- * <!-- begin-user-doc -->
- * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
- * <!-- end-user-doc -->
- * @return whether this factory is applicable for the type of the object.
- * @generated
- */
- @Override
- public boolean isFactoryForType(Object object) {
- if (object == modelPackage) {
- return true;
- }
- if (object instanceof EObject) {
- return ((EObject)object).eClass().getEPackage() == modelPackage;
- }
- return false;
- }
-
- /**
- * The switch that delegates to the <code>createXXX</code> methods.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected ExtendedtypesSwitch<Adapter> modelSwitch =
- new ExtendedtypesSwitch<Adapter>() {
- @Override
- public Adapter caseExtendedElementTypeSet(ExtendedElementTypeSet object) {
- return createExtendedElementTypeSetAdapter();
- }
- @Override
- public Adapter caseExtendedElementTypeConfiguration(ExtendedElementTypeConfiguration object) {
- return createExtendedElementTypeConfigurationAdapter();
- }
- @Override
- public Adapter caseIconEntry(IconEntry object) {
- return createIconEntryAdapter();
- }
- @Override
- public Adapter caseActionConfiguration(ActionConfiguration object) {
- return createActionConfigurationAdapter();
- }
- @Override
- public Adapter casePreActionConfiguration(PreActionConfiguration object) {
- return createPreActionConfigurationAdapter();
- }
- @Override
- public Adapter casePostActionConfiguration(PostActionConfiguration object) {
- return createPostActionConfigurationAdapter();
- }
- @Override
- public Adapter defaultCase(EObject object) {
- return createEObjectAdapter();
- }
- };
-
- /**
- * Creates an adapter for the <code>target</code>.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param target the object to adapt.
- * @return the adapter for the <code>target</code>.
- * @generated
- */
- @Override
- public Adapter createAdapter(Notifier target) {
- return modelSwitch.doSwitch((EObject)target);
- }
-
-
- /**
- * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet <em>Extended Element Type Set</em>}'.
- * <!-- begin-user-doc -->
- * This default implementation returns null so that we can easily ignore cases;
- * it's useful to ignore a case when inheritance will catch all the cases anyway.
- * <!-- end-user-doc -->
- * @return the new adapter.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet
- * @generated
- */
- public Adapter createExtendedElementTypeSetAdapter() {
- return null;
- }
-
- /**
- * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration <em>Extended Element Type Configuration</em>}'.
- * <!-- begin-user-doc -->
- * This default implementation returns null so that we can easily ignore cases;
- * it's useful to ignore a case when inheritance will catch all the cases anyway.
- * <!-- end-user-doc -->
- * @return the new adapter.
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration
- * @generated
- */
- public Adapter createExtendedElementTypeConfigurationAdapter() {
- return null;
- }
-
- /**
- * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.IconEntry <em>Icon Entry</em>}'.
- * <!-- begin-user-doc -->
- * This default implementation returns null so that we can easily ignore cases;
- * it's useful to ignore a case when inheritance will catch all the cases anyway.
- * <!-- end-user-doc -->
- * @return the new adapter.
- * @see org.eclipse.papyrus.infra.extendedtypes.IconEntry
- * @generated
- */
- public Adapter createIconEntryAdapter() {
- return null;
- }
-
- /**
- * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration <em>Action Configuration</em>}'.
- * <!-- begin-user-doc -->
- * This default implementation returns null so that we can easily ignore cases;
- * it's useful to ignore a case when inheritance will catch all the cases anyway.
- * <!-- end-user-doc -->
- * @return the new adapter.
- * @see org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration
- * @generated
- */
- public Adapter createActionConfigurationAdapter() {
- return null;
- }
-
- /**
- * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.PreActionConfiguration <em>Pre Action Configuration</em>}'.
- * <!-- begin-user-doc -->
- * This default implementation returns null so that we can easily ignore cases;
- * it's useful to ignore a case when inheritance will catch all the cases anyway.
- * <!-- end-user-doc -->
- * @return the new adapter.
- * @see org.eclipse.papyrus.infra.extendedtypes.PreActionConfiguration
- * @generated
- */
- public Adapter createPreActionConfigurationAdapter() {
- return null;
- }
-
- /**
- * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.PostActionConfiguration <em>Post Action Configuration</em>}'.
- * <!-- begin-user-doc -->
- * This default implementation returns null so that we can easily ignore cases;
- * it's useful to ignore a case when inheritance will catch all the cases anyway.
- * <!-- end-user-doc -->
- * @return the new adapter.
- * @see org.eclipse.papyrus.infra.extendedtypes.PostActionConfiguration
- * @generated
- */
- public Adapter createPostActionConfigurationAdapter() {
- return null;
- }
-
- /**
- * Creates a new adapter for the default case.
- * <!-- begin-user-doc -->
- * This default implementation returns null.
- * <!-- end-user-doc -->
- * @return the new adapter.
- * @generated
- */
- public Adapter createEObjectAdapter() {
- return null;
- }
-
-} //ExtendedtypesAdapterFactory
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.infra.extendedtypes.*;
+
+/**
+ * <!-- begin-user-doc --> The <b>Adapter Factory</b> for the model. It provides
+ * an adapter <code>createXXX</code> method for each class of the model. <!--
+ * end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage
+ * @generated
+ */
+public class ExtendedtypesAdapterFactory extends AdapterFactoryImpl {
+
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static ExtendedtypesPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public ExtendedtypesAdapterFactory() {
+ if(modelPackage == null) {
+ modelPackage = ExtendedtypesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc --> This implementation returns <code>true</code> if
+ * the object is either the model's package or is an instance object of the
+ * model. <!-- end-user-doc -->
+ *
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if(object == modelPackage) {
+ return true;
+ }
+ if(object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ExtendedtypesSwitch<Adapter> modelSwitch = new ExtendedtypesSwitch<Adapter>() {
+
+ @Override
+ public Adapter caseExtendedElementTypeSet(ExtendedElementTypeSet object) {
+ return createExtendedElementTypeSetAdapter();
+ }
+
+ @Override
+ public Adapter caseElementTypeConfiguration(ElementTypeConfiguration object) {
+ return createElementTypeConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseIconEntry(IconEntry object) {
+ return createIconEntryAdapter();
+ }
+
+ @Override
+ public Adapter caseConfigurationElement(ConfigurationElement object) {
+ return createConfigurationElementAdapter();
+ }
+
+ @Override
+ public Adapter caseViewTypeAdviceConfiguration(ViewTypeAdviceConfiguration object) {
+ return createViewTypeAdviceConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseSemanticTypeAdviceConfiguration(SemanticTypeAdviceConfiguration object) {
+ return createSemanticTypeAdviceConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseMatcherConfiguration(MatcherConfiguration object) {
+ return createMatcherConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseActionConfiguration(ActionConfiguration object) {
+ return createActionConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseViewActionConfiguration(ViewActionConfiguration object) {
+ return createViewActionConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseSemanticActionConfiguration(SemanticActionConfiguration object) {
+ return createSemanticActionConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseSemanticTypeConfiguration(SemanticTypeConfiguration object) {
+ return createSemanticTypeConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseViewTypeConfiguration(ViewTypeConfiguration object) {
+ return createViewTypeConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseElementTypeAdviceConfiguration(ElementTypeAdviceConfiguration object) {
+ return createElementTypeAdviceConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param target
+ * the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet
+ * <em>Extended Element Type Set</em>}'.
+ * <!-- begin-user-doc --> This
+ * default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases
+ * anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet
+ * @generated
+ */
+ public Adapter createExtendedElementTypeSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration
+ * <em>Element Type Configuration</em>}'.
+ * <!-- begin-user-doc --> This
+ * default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases
+ * anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration
+ * @generated
+ */
+ public Adapter createElementTypeConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.IconEntry <em>Icon Entry</em>}'.
+ * <!-- begin-user-doc --> This default
+ * implementation returns null so that we can easily ignore cases; it's
+ * useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.IconEntry
+ * @generated
+ */
+ public Adapter createIconEntryAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement
+ * <em>Configuration Element</em>}'.
+ * <!-- begin-user-doc --> This default
+ * implementation returns null so that we can easily ignore cases; it's
+ * useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ConfigurationElement
+ * @generated
+ */
+ public Adapter createConfigurationElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.ViewTypeAdviceConfiguration
+ * <em>View Type Advice Configuration</em>}'.
+ * <!-- begin-user-doc --> This
+ * default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases
+ * anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ViewTypeAdviceConfiguration
+ * @generated
+ */
+ public Adapter createViewTypeAdviceConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.SemanticTypeAdviceConfiguration
+ * <em>Semantic Type Advice Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the
+ * cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.SemanticTypeAdviceConfiguration
+ * @generated
+ */
+ public Adapter createSemanticTypeAdviceConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.MatcherConfiguration
+ * <em>Matcher Configuration</em>}'.
+ * <!-- begin-user-doc --> This default
+ * implementation returns null so that we can easily ignore cases; it's
+ * useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.MatcherConfiguration
+ * @generated
+ */
+ public Adapter createMatcherConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration <em>Action Configuration</em>}
+ * '.
+ * <!-- begin-user-doc --> This default
+ * implementation returns null so that we can easily ignore cases; it's
+ * useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration
+ * @generated
+ */
+ public Adapter createActionConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.ViewActionConfiguration
+ * <em>View Action Configuration</em>}'.
+ * <!-- begin-user-doc --> This
+ * default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases
+ * anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ViewActionConfiguration
+ * @generated
+ */
+ public Adapter createViewActionConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.SemanticActionConfiguration
+ * <em>Semantic Action Configuration</em>}'.
+ * <!-- begin-user-doc --> This
+ * default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases
+ * anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.SemanticActionConfiguration
+ * @generated
+ */
+ public Adapter createSemanticActionConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration
+ * <em>Semantic Type Configuration</em>}'.
+ * <!-- begin-user-doc --> This
+ * default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases
+ * anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.SemanticTypeConfiguration
+ * @generated
+ */
+ public Adapter createSemanticTypeConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.ViewTypeConfiguration
+ * <em>View Type Configuration</em>}'.
+ * <!-- begin-user-doc --> This default
+ * implementation returns null so that we can easily ignore cases; it's
+ * useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ViewTypeConfiguration
+ * @generated
+ */
+ public Adapter createViewTypeConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.extendedtypes.ElementTypeAdviceConfiguration
+ * <em>Element Type Advice Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the
+ * cases anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.extendedtypes.ElementTypeAdviceConfiguration
+ * @generated
+ */
+ public Adapter createElementTypeAdviceConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc --> This
+ * default implementation returns null. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+} // ExtendedtypesAdapterFactory
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesResourceFactoryImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesResourceFactoryImpl.java
index 0fda74342f9..42f229fadbe 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesResourceFactoryImpl.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesResourceFactoryImpl.java
@@ -1,53 +1,61 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes.util;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
-import org.eclipse.emf.ecore.xmi.XMLResource;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Resource Factory</b> associated with the package.
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.util.ExtendedtypesResourceImpl
- * @generated
- */
-public class ExtendedtypesResourceFactoryImpl extends ResourceFactoryImpl {
- /**
- * Creates an instance of the resource factory.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public ExtendedtypesResourceFactoryImpl() {
- super();
- }
-
- /**
- * Creates an instance of the resource.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Resource createResource(URI uri) {
- XMLResource result = new ExtendedtypesResourceImpl(uri);
- result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
- result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
-
- result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
-
- result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
- result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
-
- result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE);
- return result;
- }
-
-} //ExtendedtypesResourceFactoryImpl
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.util;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+/**
+ * <!-- begin-user-doc --> The <b>Resource Factory</b> associated with the
+ * package. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.util.ExtendedtypesResourceImpl
+ * @generated
+ */
+public class ExtendedtypesResourceFactoryImpl extends ResourceFactoryImpl {
+
+ /**
+ * Creates an instance of the resource factory.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public ExtendedtypesResourceFactoryImpl() {
+ super();
+ }
+
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Resource createResource(URI uri) {
+ XMLResource result = new ExtendedtypesResourceImpl(uri);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE);
+ return result;
+ }
+} // ExtendedtypesResourceFactoryImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesResourceImpl.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesResourceImpl.java
index eb895d14091..7b9d82f84b2 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesResourceImpl.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesResourceImpl.java
@@ -1,31 +1,40 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes.util;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Resource </b> associated with the package.
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.util.ExtendedtypesResourceFactoryImpl
- * @generated
- */
-public class ExtendedtypesResourceImpl extends XMLResourceImpl {
- /**
- * Creates an instance of the resource.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param uri the URI of the new resource.
- * @generated
- */
- public ExtendedtypesResourceImpl(URI uri) {
- super(uri);
- }
-
-} //ExtendedtypesResourceImpl
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.util;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+
+/**
+ * <!-- begin-user-doc --> The <b>Resource </b> associated with the package.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.util.ExtendedtypesResourceFactoryImpl
+ * @generated
+ */
+public class ExtendedtypesResourceImpl extends XMLResourceImpl {
+
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @param uri
+ * the URI of the new resource.
+ * @generated
+ */
+ public ExtendedtypesResourceImpl(URI uri) {
+ super(uri);
+ }
+} // ExtendedtypesResourceImpl
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesSwitch.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesSwitch.java
index e38f3a7a666..9df036a72c8 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesSwitch.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesSwitch.java
@@ -1,225 +1,444 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes.util;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.util.Switch;
-import org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeSet;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
-import org.eclipse.papyrus.infra.extendedtypes.IconEntry;
-import org.eclipse.papyrus.infra.extendedtypes.PostActionConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.PreActionConfiguration;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
- * to invoke the <code>caseXXX</code> method for each class of the model,
- * starting with the actual class of the object
- * and proceeding up the inheritance hierarchy
- * until a non-null result is returned,
- * which is the result of the switch.
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage
- * @generated
- */
-public class ExtendedtypesSwitch<T> extends Switch<T> {
- /**
- * The cached model package
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected static ExtendedtypesPackage modelPackage;
-
- /**
- * Creates an instance of the switch.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public ExtendedtypesSwitch() {
- if (modelPackage == null) {
- modelPackage = ExtendedtypesPackage.eINSTANCE;
- }
- }
-
- /**
- * Checks whether this is a switch for the given package.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @parameter ePackage the package in question.
- * @return whether this is a switch for the given package.
- * @generated
- */
- @Override
- protected boolean isSwitchFor(EPackage ePackage) {
- return ePackage == modelPackage;
- }
-
- /**
- * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the first non-null result returned by a <code>caseXXX</code> call.
- * @generated
- */
- @Override
- protected T doSwitch(int classifierID, EObject theEObject) {
- switch (classifierID) {
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET: {
- ExtendedElementTypeSet extendedElementTypeSet = (ExtendedElementTypeSet)theEObject;
- T result = caseExtendedElementTypeSet(extendedElementTypeSet);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_CONFIGURATION: {
- ExtendedElementTypeConfiguration extendedElementTypeConfiguration = (ExtendedElementTypeConfiguration)theEObject;
- T result = caseExtendedElementTypeConfiguration(extendedElementTypeConfiguration);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case ExtendedtypesPackage.ICON_ENTRY: {
- IconEntry iconEntry = (IconEntry)theEObject;
- T result = caseIconEntry(iconEntry);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case ExtendedtypesPackage.ACTION_CONFIGURATION: {
- ActionConfiguration actionConfiguration = (ActionConfiguration)theEObject;
- T result = caseActionConfiguration(actionConfiguration);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case ExtendedtypesPackage.PRE_ACTION_CONFIGURATION: {
- PreActionConfiguration preActionConfiguration = (PreActionConfiguration)theEObject;
- T result = casePreActionConfiguration(preActionConfiguration);
- if (result == null) result = caseActionConfiguration(preActionConfiguration);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- case ExtendedtypesPackage.POST_ACTION_CONFIGURATION: {
- PostActionConfiguration postActionConfiguration = (PostActionConfiguration)theEObject;
- T result = casePostActionConfiguration(postActionConfiguration);
- if (result == null) result = caseActionConfiguration(postActionConfiguration);
- if (result == null) result = defaultCase(theEObject);
- return result;
- }
- default: return defaultCase(theEObject);
- }
- }
-
- /**
- * Returns the result of interpreting the object as an instance of '<em>Extended Element Type Set</em>'.
- * <!-- begin-user-doc -->
- * This implementation returns null;
- * returning a non-null result will terminate the switch.
- * <!-- end-user-doc -->
- * @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Extended Element Type Set</em>'.
- * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
- * @generated
- */
- public T caseExtendedElementTypeSet(ExtendedElementTypeSet object) {
- return null;
- }
-
- /**
- * Returns the result of interpreting the object as an instance of '<em>Extended Element Type Configuration</em>'.
- * <!-- begin-user-doc -->
- * This implementation returns null;
- * returning a non-null result will terminate the switch.
- * <!-- end-user-doc -->
- * @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Extended Element Type Configuration</em>'.
- * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
- * @generated
- */
- public T caseExtendedElementTypeConfiguration(ExtendedElementTypeConfiguration object) {
- return null;
- }
-
- /**
- * Returns the result of interpreting the object as an instance of '<em>Icon Entry</em>'.
- * <!-- begin-user-doc -->
- * This implementation returns null;
- * returning a non-null result will terminate the switch.
- * <!-- end-user-doc -->
- * @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Icon Entry</em>'.
- * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
- * @generated
- */
- public T caseIconEntry(IconEntry object) {
- return null;
- }
-
- /**
- * Returns the result of interpreting the object as an instance of '<em>Action Configuration</em>'.
- * <!-- begin-user-doc -->
- * This implementation returns null;
- * returning a non-null result will terminate the switch.
- * <!-- end-user-doc -->
- * @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Action Configuration</em>'.
- * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
- * @generated
- */
- public T caseActionConfiguration(ActionConfiguration object) {
- return null;
- }
-
- /**
- * Returns the result of interpreting the object as an instance of '<em>Pre Action Configuration</em>'.
- * <!-- begin-user-doc -->
- * This implementation returns null;
- * returning a non-null result will terminate the switch.
- * <!-- end-user-doc -->
- * @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Pre Action Configuration</em>'.
- * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
- * @generated
- */
- public T casePreActionConfiguration(PreActionConfiguration object) {
- return null;
- }
-
- /**
- * Returns the result of interpreting the object as an instance of '<em>Post Action Configuration</em>'.
- * <!-- begin-user-doc -->
- * This implementation returns null;
- * returning a non-null result will terminate the switch.
- * <!-- end-user-doc -->
- * @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Post Action Configuration</em>'.
- * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
- * @generated
- */
- public T casePostActionConfiguration(PostActionConfiguration object) {
- return null;
- }
-
- /**
- * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
- * <!-- begin-user-doc -->
- * This implementation returns null;
- * returning a non-null result will terminate the switch, but this is the last case anyway.
- * <!-- end-user-doc -->
- * @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
- * @see #doSwitch(org.eclipse.emf.ecore.EObject)
- * @generated
- */
- @Override
- public T defaultCase(EObject object) {
- return null;
- }
-
-} //ExtendedtypesSwitch
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.infra.extendedtypes.*;
+
+/**
+ * <!-- begin-user-doc --> The <b>Switch</b> for the model's inheritance
+ * hierarchy. It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object and proceeding up the
+ * inheritance hierarchy until a non-null result is returned, which is the
+ * result of the switch. <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage
+ * @generated
+ */
+public class ExtendedtypesSwitch<T> extends Switch<T> {
+
+ /**
+ * The cached model package
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static ExtendedtypesPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ public ExtendedtypesSwitch() {
+ if(modelPackage == null) {
+ modelPackage = ExtendedtypesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch(classifierID) {
+ case ExtendedtypesPackage.EXTENDED_ELEMENT_TYPE_SET:
+ {
+ ExtendedElementTypeSet extendedElementTypeSet = (ExtendedElementTypeSet)theEObject;
+ T result = caseExtendedElementTypeSet(extendedElementTypeSet);
+ if(result == null)
+ result = caseConfigurationElement(extendedElementTypeSet);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtendedtypesPackage.ELEMENT_TYPE_CONFIGURATION:
+ {
+ ElementTypeConfiguration elementTypeConfiguration = (ElementTypeConfiguration)theEObject;
+ T result = caseElementTypeConfiguration(elementTypeConfiguration);
+ if(result == null)
+ result = caseConfigurationElement(elementTypeConfiguration);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtendedtypesPackage.ICON_ENTRY:
+ {
+ IconEntry iconEntry = (IconEntry)theEObject;
+ T result = caseIconEntry(iconEntry);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtendedtypesPackage.CONFIGURATION_ELEMENT:
+ {
+ ConfigurationElement configurationElement = (ConfigurationElement)theEObject;
+ T result = caseConfigurationElement(configurationElement);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtendedtypesPackage.VIEW_TYPE_ADVICE_CONFIGURATION:
+ {
+ ViewTypeAdviceConfiguration viewTypeAdviceConfiguration = (ViewTypeAdviceConfiguration)theEObject;
+ T result = caseViewTypeAdviceConfiguration(viewTypeAdviceConfiguration);
+ if(result == null)
+ result = caseElementTypeAdviceConfiguration(viewTypeAdviceConfiguration);
+ if(result == null)
+ result = caseConfigurationElement(viewTypeAdviceConfiguration);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtendedtypesPackage.SEMANTIC_TYPE_ADVICE_CONFIGURATION:
+ {
+ SemanticTypeAdviceConfiguration semanticTypeAdviceConfiguration = (SemanticTypeAdviceConfiguration)theEObject;
+ T result = caseSemanticTypeAdviceConfiguration(semanticTypeAdviceConfiguration);
+ if(result == null)
+ result = caseElementTypeAdviceConfiguration(semanticTypeAdviceConfiguration);
+ if(result == null)
+ result = caseConfigurationElement(semanticTypeAdviceConfiguration);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtendedtypesPackage.MATCHER_CONFIGURATION:
+ {
+ MatcherConfiguration matcherConfiguration = (MatcherConfiguration)theEObject;
+ T result = caseMatcherConfiguration(matcherConfiguration);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtendedtypesPackage.ACTION_CONFIGURATION:
+ {
+ ActionConfiguration actionConfiguration = (ActionConfiguration)theEObject;
+ T result = caseActionConfiguration(actionConfiguration);
+ if(result == null)
+ result = caseConfigurationElement(actionConfiguration);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtendedtypesPackage.VIEW_ACTION_CONFIGURATION:
+ {
+ ViewActionConfiguration viewActionConfiguration = (ViewActionConfiguration)theEObject;
+ T result = caseViewActionConfiguration(viewActionConfiguration);
+ if(result == null)
+ result = caseActionConfiguration(viewActionConfiguration);
+ if(result == null)
+ result = caseConfigurationElement(viewActionConfiguration);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtendedtypesPackage.SEMANTIC_ACTION_CONFIGURATION:
+ {
+ SemanticActionConfiguration semanticActionConfiguration = (SemanticActionConfiguration)theEObject;
+ T result = caseSemanticActionConfiguration(semanticActionConfiguration);
+ if(result == null)
+ result = caseActionConfiguration(semanticActionConfiguration);
+ if(result == null)
+ result = caseConfigurationElement(semanticActionConfiguration);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtendedtypesPackage.SEMANTIC_TYPE_CONFIGURATION:
+ {
+ SemanticTypeConfiguration semanticTypeConfiguration = (SemanticTypeConfiguration)theEObject;
+ T result = caseSemanticTypeConfiguration(semanticTypeConfiguration);
+ if(result == null)
+ result = caseElementTypeConfiguration(semanticTypeConfiguration);
+ if(result == null)
+ result = caseConfigurationElement(semanticTypeConfiguration);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtendedtypesPackage.VIEW_TYPE_CONFIGURATION:
+ {
+ ViewTypeConfiguration viewTypeConfiguration = (ViewTypeConfiguration)theEObject;
+ T result = caseViewTypeConfiguration(viewTypeConfiguration);
+ if(result == null)
+ result = caseElementTypeConfiguration(viewTypeConfiguration);
+ if(result == null)
+ result = caseConfigurationElement(viewTypeConfiguration);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtendedtypesPackage.ELEMENT_TYPE_ADVICE_CONFIGURATION:
+ {
+ ElementTypeAdviceConfiguration elementTypeAdviceConfiguration = (ElementTypeAdviceConfiguration)theEObject;
+ T result = caseElementTypeAdviceConfiguration(elementTypeAdviceConfiguration);
+ if(result == null)
+ result = caseConfigurationElement(elementTypeAdviceConfiguration);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Extended Element Type Set</em>'.
+ * <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Extended Element Type Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExtendedElementTypeSet(ExtendedElementTypeSet object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Element Type Configuration</em>'.
+ * <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Element Type Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseElementTypeConfiguration(ElementTypeConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Icon Entry</em>'.
+ * <!-- begin-user-doc --> This implementation returns
+ * null; returning a non-null result will terminate the switch. <!--
+ * end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Icon Entry</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIconEntry(IconEntry object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Configuration Element</em>'.
+ * <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Configuration Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConfigurationElement(ConfigurationElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>View Type Advice Configuration</em>'.
+ * <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>View Type Advice Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseViewTypeAdviceConfiguration(ViewTypeAdviceConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Semantic Type Advice Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null; returning a non-null result will
+ * terminate the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Semantic Type Advice Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSemanticTypeAdviceConfiguration(SemanticTypeAdviceConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Matcher Configuration</em>'.
+ * <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Matcher Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMatcherConfiguration(MatcherConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Action Configuration</em>'.
+ * <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Action Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseActionConfiguration(ActionConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>View Action Configuration</em>'.
+ * <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>View Action Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseViewActionConfiguration(ViewActionConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Semantic Action Configuration</em>'.
+ * <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Semantic Action Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSemanticActionConfiguration(SemanticActionConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Semantic Type Configuration</em>'.
+ * <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Semantic Type Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSemanticTypeConfiguration(SemanticTypeConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>View Type Configuration</em>'.
+ * <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>View Type Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseViewTypeConfiguration(ViewTypeConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Element Type Advice Configuration</em>'.
+ * <!-- begin-user-doc --> This
+ * implementation returns null; returning a non-null result will terminate
+ * the switch. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Element Type Advice Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseElementTypeAdviceConfiguration(ElementTypeAdviceConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc --> This implementation returns
+ * null; returning a non-null result will terminate the switch, but this is
+ * the last case anyway. <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+} // ExtendedtypesSwitch
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesXMLProcessor.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesXMLProcessor.java
index 96c0319a58c..697e270b66a 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesXMLProcessor.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src-gen/org/eclipse/papyrus/infra/extendedtypes/util/ExtendedtypesXMLProcessor.java
@@ -1,51 +1,61 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.eclipse.papyrus.infra.extendedtypes.util;
-
-import java.util.Map;
-
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.xmi.util.XMLProcessor;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
-
-/**
- * This class contains helper methods to serialize and deserialize XML documents
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class ExtendedtypesXMLProcessor extends XMLProcessor {
-
- /**
- * Public constructor to instantiate the helper.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public ExtendedtypesXMLProcessor() {
- super((EPackage.Registry.INSTANCE));
- ExtendedtypesPackage.eINSTANCE.eClass();
- }
-
- /**
- * Register for "*" and "xml" file extensions the ExtendedtypesResourceFactoryImpl factory.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected Map<String, Resource.Factory> getRegistrations() {
- if (registrations == null) {
- super.getRegistrations();
- registrations.put(XML_EXTENSION, new ExtendedtypesResourceFactoryImpl());
- registrations.put(STAR_EXTENSION, new ExtendedtypesResourceFactoryImpl());
- }
- return registrations;
- }
-
-} //ExtendedtypesXMLProcessor
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.extendedtypes.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+import org.eclipse.emf.ecore.xmi.util.XMLProcessor;
+
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedtypesPackage;
+
+/**
+ * This class contains helper methods to serialize and deserialize XML documents
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ExtendedtypesXMLProcessor extends XMLProcessor {
+
+ /**
+ * Public constructor to instantiate the helper.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ExtendedtypesXMLProcessor() {
+ super((EPackage.Registry.INSTANCE));
+ ExtendedtypesPackage.eINSTANCE.eClass();
+ }
+
+ /**
+ * Register for "*" and "xml" file extensions the ExtendedtypesResourceFactoryImpl factory.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected Map<String, Resource.Factory> getRegistrations() {
+ if(registrations == null) {
+ super.getRegistrations();
+ registrations.put(XML_EXTENSION, new ExtendedtypesResourceFactoryImpl());
+ registrations.put(STAR_EXTENSION, new ExtendedtypesResourceFactoryImpl());
+ }
+ return registrations;
+ }
+} // ExtendedtypesXMLProcessor
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/Activator.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/Activator.java
index 6a325c5357d..712e63367a5 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/Activator.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/Activator.java
@@ -1,58 +1,59 @@
-package org.eclipse.papyrus.infra.extendedtypes;
-
-import org.eclipse.papyrus.infra.core.log.LogHelper;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
- // The plug-in ID
- public static final String PLUGIN_ID = "org.eclipse.papyrus.infra.extendedtypes"; //$NON-NLS-1$
-
- // The shared instance
- private static Activator plugin;
-
- /** Logging helper */
- public static LogHelper log;
-
- /**
- * The constructor
- */
- public Activator() {
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
- */
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- plugin = this;
- log = new LogHelper(this);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
- */
- @Override
- public void stop(BundleContext context) throws Exception {
- log = null;
- plugin = null;
- super.stop(context);
- }
-
- /**
- * Returns the shared instance
- *
- * @return the shared instance
- */
- public static Activator getDefault() {
- return plugin;
- }
-
-}
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.infra.extendedtypes"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /** Logging helper */
+ public static LogHelper log;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ log = new LogHelper(this);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ log = null;
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ElementTypeSetUtils.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ElementTypeSetUtils.java
new file mode 100644
index 00000000000..762f42e18ae
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ElementTypeSetUtils.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes;
+
+
+/**
+ * Utility class to manipulate {@link ExtendedElementTypeSet}.
+ */
+public class ElementTypeSetUtils {
+
+ /**
+ * Loads
+ * @param extendedElementTypeSet
+ */
+ public static void load(ExtendedElementTypeSet extendedElementTypeSet) {
+
+ }
+
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedEditHelperAdvice.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedEditHelperAdvice.java_bak
index c9d4e184520..a91f9ecb899 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedEditHelperAdvice.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedEditHelperAdvice.java_bak
@@ -1,107 +1,107 @@
-/*****************************************************************************
- * Copyright (c) 2010 CEA LIST.
- *
- * 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:
- * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.infra.extendedtypes;
-
-import org.eclipse.gmf.runtime.common.core.command.CompositeCommand;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.GetEditContextRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
-import org.eclipse.papyrus.infra.extendedtypes.providers.ExtendedElementTypeActionService;
-import org.eclipse.papyrus.infra.extendedtypes.providers.ProviderNotFoundException;
-import org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType;
-
-/**
- * Edit helper Advice for extended element types. This allows modification of the configure request executed right after the creation of the element
- */
-public class ExtendedEditHelperAdvice extends AbstractEditHelperAdvice {
-
- /**
- * Constructor.
- *
- */
- public ExtendedEditHelperAdvice() {
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean approveRequest(IEditCommandRequest request) {
- return super.approveRequest(request);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected ICommand getBeforeEditContextCommand(GetEditContextRequest request) {
- return super.getBeforeEditContextCommand(request);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected ICommand getBeforeCreateCommand(CreateElementRequest request) {
- return super.getBeforeCreateCommand(request);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected ICommand getAfterConfigureCommand(ConfigureRequest request) {
- // for the list of post actions, returns a list of commands.
- // there should be a factory that delivers commands from the model
-
- CompositeCommand compositeCommand = new CompositeCommand("AfterConfigureCommand");
- IElementType type = request.getTypeToConfigure();
- if(type instanceof IExtendedHintedElementType) {
- IExtendedHintedElementType extendedHintedElementType = (IExtendedHintedElementType)type;
- ExtendedElementTypeConfiguration configuration = extendedHintedElementType.getConfiguration();
- for(PostActionConfiguration postActionConfiguration : configuration.getPostAction()) {
- ICommand command = null;
- try {
- command = ExtendedElementTypeActionService.getInstance().getICommand(request.getElementsToEdit(), postActionConfiguration);
- } catch (ProviderNotFoundException e) {
- Activator.log.error(e);
- }
- if(command != null) {
- compositeCommand.add(command);
- }
- }
-
- // return the composite command only if it is not empty
- if(!compositeCommand.isEmpty()) {
- return compositeCommand;
- }
- }
-
-
- // post-action. Here, this is null.
- return super.getAfterConfigureCommand(request);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected ICommand getAfterCreateCommand(CreateElementRequest request) {
- return super.getAfterCreateCommand(request);
- }
-
-
-}
+/*****************************************************************************
+ * Copyright (c) 2010 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.gmf.runtime.common.core.command.CompositeCommand;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.GetEditContextRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
+import org.eclipse.papyrus.infra.extendedtypes.providers.ExtendedElementTypeActionService;
+import org.eclipse.papyrus.infra.extendedtypes.providers.ProviderNotFoundException;
+import org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType;
+
+/**
+ * Edit helper Advice for extended element types. This allows modification of the configure request executed right after the creation of the element
+ */
+public class ExtendedEditHelperAdvice extends AbstractEditHelperAdvice {
+
+ /**
+ * Constructor.
+ *
+ */
+ public ExtendedEditHelperAdvice() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean approveRequest(IEditCommandRequest request) {
+ return super.approveRequest(request);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected ICommand getBeforeEditContextCommand(GetEditContextRequest request) {
+ return super.getBeforeEditContextCommand(request);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected ICommand getBeforeCreateCommand(CreateElementRequest request) {
+ return super.getBeforeCreateCommand(request);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected ICommand getAfterConfigureCommand(ConfigureRequest request) {
+ // for the list of post actions, returns a list of commands.
+ // there should be a factory that delivers commands from the model
+
+ CompositeCommand compositeCommand = new CompositeCommand("AfterConfigureCommand");
+ IElementType type = request.getTypeToConfigure();
+ if(type instanceof IExtendedHintedElementType) {
+ IExtendedHintedElementType extendedHintedElementType = (IExtendedHintedElementType)type;
+ ExtendedElementTypeConfiguration configuration = extendedHintedElementType.getConfiguration();
+ for(PostActionConfiguration postActionConfiguration : configuration.getPostAction()) {
+ ICommand command = null;
+ try {
+ command = ExtendedElementTypeActionService.getInstance().getICommand(request.getElementsToEdit(), postActionConfiguration);
+ } catch (ProviderNotFoundException e) {
+ Activator.log.error(e);
+ }
+ if(command != null) {
+ compositeCommand.add(command);
+ }
+ }
+
+ // return the composite command only if it is not empty
+ if(!compositeCommand.isEmpty()) {
+ return compositeCommand;
+ }
+ }
+
+
+ // post-action. Here, this is null.
+ return super.getAfterConfigureCommand(request);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected ICommand getAfterCreateCommand(CreateElementRequest request) {
+ return super.getAfterCreateCommand(request);
+ }
+
+
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedElementTypeSetRegistry.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedElementTypeSetRegistry.java
new file mode 100644
index 00000000000..cacc88b2c66
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedElementTypeSetRegistry.java
@@ -0,0 +1,459 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import java.io.IOException;
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+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.gmf.runtime.emf.type.core.ClientContextManager;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IClientContext;
+import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.extendedtypes.preferences.ExtendedTypesPreferences;
+import org.eclipse.papyrus.infra.services.edit.internal.context.TypeContext;
+import org.osgi.framework.Bundle;
+
+
+/**
+ * Registry to manage load/unloaded {@link ExtendedElementTypeSet}.
+ */
+public class ExtendedElementTypeSetRegistry {
+
+ /** private singleton instance */
+ private static ExtendedElementTypeSetRegistry registry;
+
+ /** list of retrieved extended type sets */
+ protected List<ExtendedElementTypeSet> extendedTypeSets = null;
+
+ /** unique resource set to load all extended types models */
+ protected ResourceSet extendedTypesResourceSet = null;
+
+ protected List<ExtendedElementTypeSet> loadedExtendedElementTypeSets = null;
+
+ protected Map<String, IExtendedElementTypeFactory<ElementTypeConfiguration>> configurationTypeToElementTypeFactory = null;
+
+ protected List<String> configurationTypeFactoryExceptions = null;
+
+ /**
+ * returns the singleton instance of this registry
+ *
+ * @return the singleton instance of this registry
+ */
+ public static synchronized ExtendedElementTypeSetRegistry getInstance() {
+ if(registry == null) {
+ registry = new ExtendedElementTypeSetRegistry();
+ registry.init();
+ }
+ return registry;
+ }
+
+ /**
+ * Inits the registry.
+ */
+ protected void init() {
+ // 0. Resets values
+ extendedTypesResourceSet = null;
+ extendedTypeSets = null;
+ configurationTypeToElementTypeFactory = new HashMap<String, IExtendedElementTypeFactory<ElementTypeConfiguration>>();
+
+ // 1. creates the resource set
+ extendedTypesResourceSet = createResourceSet();
+
+ // 2. creates the list only when registry is acceded for the first time, (or on reload?)
+ extendedTypeSets = loadExtendedTypeSets();
+
+// // 3. loads each extended types sets, and creates types
+// for(ExtendedElementTypeSet extendedElementTypeSet : extendedTypeSets) {
+// loadExtendedElementTypeSet(extendedElementTypeSet);
+// }
+ }
+
+ /**
+ * Loads the specified extended element type set.
+ * This does not take care to unload a similar set (a set with the same id) before loading. This should be handled before calling this method.
+ * @param extendedElementTypeSet {@link ExtendedElementTypeSet} to load.
+ */
+ public void loadExtendedElementTypeSet(ExtendedElementTypeSet extendedElementTypeSet) {
+ IClientContext context;
+ try {
+ context = TypeContext.getContext();
+ } catch (ServiceException e1) {
+ Activator.log.error(e1);
+ return;
+ }
+
+ List<ElementTypeConfiguration> elementTypeConfigurations = extendedElementTypeSet.getElementType();
+
+ for(ElementTypeConfiguration configuration : elementTypeConfigurations) {
+ // load class associated to the configuration model => read extension point that defines this kind of configuration.
+ String configurationType = configuration.eClass().getInstanceTypeName();
+ // retrieve the factory for a given kind of configuration
+ IExtendedElementTypeFactory factory = configurationTypeToElementTypeFactory.get(configurationType);
+ // check factory is not on the exception table
+
+
+ if(factory ==null && isNotInFactoryExceptionList(configurationType)) {
+ Class<IExtendedElementTypeFactory> factoryClass = retrieveFactoryClassFromExtensionPoint(configurationType);
+ if(factoryClass !=null) {
+ try {
+ factory = factoryClass.newInstance();
+ } catch (InstantiationException e) {
+ if(configurationTypeFactoryExceptions== null) {
+ configurationTypeFactoryExceptions = new ArrayList<String>();
+ }
+ configurationTypeFactoryExceptions.add(configurationType);
+ } catch (IllegalAccessException e) {
+ if(configurationTypeFactoryExceptions== null) {
+ configurationTypeFactoryExceptions = new ArrayList<String>();
+ }
+ configurationTypeFactoryExceptions.add(configurationType);
+ }
+ configurationTypeToElementTypeFactory.put(configurationType, factory);
+ }
+ }
+ if(factory != null) {
+ ISpecializationType type = factory.createElementType(configuration);
+ // register element Type
+ ElementTypeRegistry.getInstance().register(type);
+ context.bindId(type.getId());
+ }
+ // TODO handle errors here: no factory, impossible to create element type from configuration, impossible to register, etc.
+ }
+ }
+
+
+
+ /**
+ * check this configuration type has not already caused issues du
+ * @param configurationType
+ * @return
+ */
+ protected boolean isNotInFactoryExceptionList(String configurationType) {
+ if(configurationTypeFactoryExceptions ==null) {
+ return true;
+ }
+ // this is not null, check the configuration type is not in the list
+ return !configurationTypeFactoryExceptions.contains(configurationType);
+
+ }
+
+ /**
+ * Returns the {@link IExtendedElementTypeFactory} class used to instantiate element type for the given configuration
+ * @return the {@link IExtendedElementTypeFactory} found or <code>null</code> if none was found
+ */
+ @SuppressWarnings("unchecked")
+ protected Class<IExtendedElementTypeFactory> retrieveFactoryClassFromExtensionPoint(String configurationType) {
+ IConfigurationElement[] elements = Platform.getExtensionRegistry().getConfigurationElementsFor(IExtendedTypeConfigurationExtensionPoint.EXTENSION_POINT_ID);
+ for(IConfigurationElement configurationElement : elements) {
+
+ String eCoreClassName = configurationElement.getAttribute(IExtendedTypeConfigurationExtensionPoint.CONFIGURATION_CLASS);
+
+ if(configurationType.equals(eCoreClassName)) {
+
+ // retrieve factory to load
+ String factoryClassName = configurationElement.getAttribute(IExtendedTypeConfigurationExtensionPoint.FACTORY_CLASS);
+ return (Class<IExtendedElementTypeFactory>)loadClass(factoryClassName, configurationElement.getContributor().getName());
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Retrieves and loads extended type sets registered in the platform. It should also load configuration sets from the workspace.
+ */
+ protected List<ExtendedElementTypeSet> loadExtendedTypeSets() {
+ List<ExtendedElementTypeSet> extendedElementTypeSets = new ArrayList<ExtendedElementTypeSet>();
+
+ // 1. retrieve from the workspace
+ // TODO implement retrieve from workspace. could be an activated/deactivated set of additions selected in the workspace
+
+ // 2. retrieve from the platform.
+ List<ExtendedElementTypeSet> registeredSets = loadExtendedTypeSetsFromPlatform();
+ if(registeredSets != null && !registeredSets.isEmpty()) {
+ extendedElementTypeSets.addAll(registeredSets);
+ }
+
+ // load each extended element type set
+ for(ExtendedElementTypeSet extendedElementTypeSet : extendedElementTypeSets) {
+ loadExtendedElementTypeSet(extendedElementTypeSet);
+ }
+
+ return extendedElementTypeSets;
+ }
+
+ /**
+ * Loads the extensions in the platform
+ *
+ * @return the list of extension registered in the platform
+ */
+ protected List<ExtendedElementTypeSet> loadExtendedTypeSetsFromPlatform() {
+ List<ExtendedElementTypeSet> platformElementTypeSets = new ArrayList<ExtendedElementTypeSet>();
+
+ IConfigurationElement[] elements = Platform.getExtensionRegistry().getConfigurationElementsFor(IExtendedElementTypeSetExtensionPoint.EXTENSION_POINT_ID);
+ // for each element, parses and retrieve the model file. then loads it and returns the root element
+ for(IConfigurationElement element : elements) {
+ String modelPath = element.getAttribute(IExtendedElementTypeSetExtensionPoint.PATH);
+ String extendedTypeSetId = element.getAttribute(IExtendedElementTypeSetExtensionPoint.ID);
+ String contributorID = element.getContributor().getName();
+ if(Platform.inDebugMode()) {
+ Activator.log.debug("[Reading extension point]");
+ Activator.log.debug("- Path to the model: " + modelPath);
+ Activator.log.debug("- id of the container bundle: " + contributorID);
+ Activator.log.debug("- id of the extended type set: " + extendedTypeSetId);
+ }
+ ExtendedElementTypeSet set = getExtendedElementTypeSet(extendedTypeSetId, modelPath, contributorID);
+ if(set != null) {
+ platformElementTypeSets.add(set);
+ }
+ }
+
+ return platformElementTypeSets;
+ }
+
+ /**
+ * <p>
+ * Loads the resource containing the extended element type set model.
+ * </p>
+ * <p>
+ * It looks the model file in the fragments first, then in the plugin itself.<BR>
+ * If this is already a fragment, it should look in the fragment only
+ * </p>
+ *
+ * @param extendedTypesID
+ * id of the extended type set to load
+ * @param modelPath
+ * path of the model in the bundle
+ * @param bundleId
+ * id of the bundle containing the model file
+ * @return the loaded file or <code>null</code> if some problem occured during loading
+ */
+ protected ExtendedElementTypeSet getExtendedElementTypeSet(String extendedTypesID, String modelPath, String bundleId) {
+ // 1. look in preferences.
+ String filePath = ExtendedTypesPreferences.getExtendedTypesRedefinition(extendedTypesID);
+ if(filePath != null) {
+ getExtendedElementTypeSetInPluginStateArea(extendedTypesID);
+ }
+
+ // 2. no local redefinition. Load extended type set from plugin definition
+ Bundle bundle = Platform.getBundle(bundleId);
+ if(Platform.isFragment(bundle)) {
+ return getExtendedElementTypeSetInBundle(modelPath, bundleId);
+ } else { // this is a plugin. Search in sub fragments, then in the plugin
+ Bundle[] fragments = Platform.getFragments(bundle);
+ // no fragment, so the file should be in the plugin itself
+ if(fragments == null) {
+ return getExtendedElementTypeSetInBundle(modelPath, bundleId);
+ } else {
+ for(Bundle fragment : fragments) {
+ ExtendedElementTypeSet extendedElementTypeSet = getExtendedElementTypeSetInBundle(modelPath, fragment.getSymbolicName());
+ if(extendedElementTypeSet != null) {
+ return extendedElementTypeSet;
+ }
+ }
+ // not found in fragments. Look in the plugin itself
+ return getExtendedElementTypeSetInBundle(modelPath, bundleId);
+ }
+ }
+ }
+
+ /**
+ * Retrieves the contribution in the plugin area
+ *
+ * @param path
+ * the path of the element type set to load in the plugin area
+ */
+ protected ExtendedElementTypeSet getExtendedElementTypeSetInPluginStateArea(String path) {
+ // read in preferences area
+ IPath resourcePath = Activator.getDefault().getStateLocation().append(path);
+ URI uri = URI.createFileURI(resourcePath.toOSString());
+ if(uri != null && uri.isFile()) {
+ Resource resource = extendedTypesResourceSet.createResource(uri);
+ try {
+ resource.load(null);
+ } catch (IOException e) {
+ return null;
+ }
+ EObject content = resource.getContents().get(0);
+ if(content instanceof ExtendedElementTypeSet) {
+ return (ExtendedElementTypeSet)content;
+ }
+ Activator.log.error("Impossible to cast the object into an ExtendedElementTypeSet: " + content, null);
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ *
+ * @param modelPath
+ * path of the model in the bundle
+ * @param bundleId
+ * id of the bundle containing the model file
+ * @return the loaded file or <code>null</code> if some problem occured during loading
+ */
+ protected ExtendedElementTypeSet getExtendedElementTypeSetInBundle(String modelPath, String bundleID) {
+ Resource resource = extendedTypesResourceSet.createResource(URI.createPlatformPluginURI(bundleID + Path.SEPARATOR + modelPath, true));
+ try {
+ resource.load(null);
+ } catch (IOException e) {
+ return null;
+ }
+ EObject content = resource.getContents().get(0);
+ if(content instanceof ExtendedElementTypeSet) {
+ return (ExtendedElementTypeSet)content;
+ }
+ Activator.log.error("Impossible to cast the object into an ExtendedElementTypeSet: " + content, null);
+ return null;
+ }
+
+ /**
+ * Creates the resource set that contains all models for extended types
+ *
+ * @return the resource set newly created.
+ */
+ protected ResourceSet createResourceSet() {
+ ResourceSet set = new ResourceSetImpl();
+ return set;
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // loading resource
+ ///////////////////////////////////////////////////////////////////////////
+ /** A map of classes that have been successfully loaded, keyed on the class name optionally prepended by the plugin ID, if specified. */
+ private static Map<String, WeakReference<Class<?>>> successLookupTable = new HashMap<String, WeakReference<Class<?>>>();
+
+ /** A map of classes that could not be loaded, keyed on the class name, optionally prepended by the plugin ID if specified. */
+ private static Set<String> failureLookupTable = new HashSet<String>();
+
+ /** A map to hold the bundle to exception list */
+ private static Map<Bundle, Set<String>> bundleToExceptionsSetMap = new HashMap<Bundle, Set<String>>();
+
+ /**
+ * A utility method to load a class using its name and a given class loader.
+ *
+ * @param className
+ * The class name
+ * @param bundle
+ * The class loader
+ * @return The loaded class or <code>null</code> if could not be loaded
+ */
+ protected static Class<?> loadClass(String className, String pluginId) {
+ StringBuffer keyStringBuf = new StringBuffer(className.length()
+ + pluginId.length() + 2); // 2 is for . and extra.
+ keyStringBuf.append(pluginId);
+ keyStringBuf.append('.');
+ keyStringBuf.append(className);
+ String keyString = keyStringBuf.toString();
+ WeakReference<Class<?>> ref = successLookupTable.get(keyString);
+ Class<?> found = (ref != null) ? ref.get() : null;
+ if (found == null) {
+ if (ref != null)
+ successLookupTable.remove(keyString);
+ if (!failureLookupTable.contains(keyString)) {
+ try {
+ Bundle bundle = basicGetPluginBundle(pluginId);
+ if (bundle!=null){
+ // never load the class if the bundle is not active other wise
+ // we will cause the plugin to load
+ // unless the class is in the exception list
+ int state = bundle.getState();
+ if ( state == org.osgi.framework.Bundle.ACTIVE || isInExceptionList(bundle,className)){
+ found = bundle.loadClass(className);
+ successLookupTable.put(keyString, new WeakReference<Class<?>>(found));
+ if (state == org.osgi.framework.Bundle.ACTIVE){
+ bundleToExceptionsSetMap.remove(bundle);
+ }
+ }
+ } else {
+ failureLookupTable.add(keyString);
+ }
+ } catch (ClassNotFoundException e) {
+ failureLookupTable.add(keyString);
+ }
+ }
+ }
+ return found;
+ }
+
+ /**
+ * Given a bundle id, it checks if the bundle is found and activated. If it
+ * is, the method returns the bundle, otherwise it returns <code>null</code>.
+ *
+ * @param pluginId
+ * the bundle ID
+ * @return the bundle, if found
+ */
+ protected static Bundle getPluginBundle(String pluginId) {
+ Bundle bundle = basicGetPluginBundle(pluginId);
+ if (null != bundle && bundle.getState() == org.osgi.framework.Bundle.ACTIVE)
+ return bundle;
+ return null;
+ }
+
+ private static Bundle basicGetPluginBundle(String pluginId) {
+ return Platform.getBundle(pluginId);
+ }
+
+ private static boolean isInExceptionList(Bundle bundle, String className) {
+ String packageName = className.substring(0,className.lastIndexOf('.'));
+ Set<String> exceptionSet = bundleToExceptionsSetMap.get(bundle);
+ if (exceptionSet==null){
+ Dictionary<String, String> dict = bundle.getHeaders();
+ String value = dict.get("Eclipse-LazyStart"); //$NON-NLS-1$
+ if (value!=null){
+ int index = value.indexOf("exceptions"); //$NON-NLS-1$
+ if (index!=-1){
+ try {
+ int start = value.indexOf('"',index+1);
+ int end = value.indexOf('"',start+1);
+ String exceptions = value.substring(start+1,end);
+ exceptionSet = new HashSet<String>(2);
+ StringTokenizer tokenizer = new StringTokenizer(exceptions, ","); //$NON-NLS-1$
+ while (tokenizer.hasMoreTokens()) {
+ exceptionSet.add(tokenizer.nextToken().trim());
+ }
+ } catch(IndexOutOfBoundsException exception) {
+ // this means the MF did not follow the documented format for the exceptions list so i'll consider it empty
+ exceptionSet = Collections.emptySet();
+ }
+
+ } else {
+ exceptionSet = Collections.emptySet();
+ }
+ } else {
+ exceptionSet = Collections.emptySet();
+ }
+ bundleToExceptionsSetMap.put(bundle, exceptionSet);
+ }
+ return exceptionSet.contains(packageName);
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedSemanticTypeDescriptor.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedSemanticTypeDescriptor.java
deleted file mode 100644
index 4d16f095f47..00000000000
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedSemanticTypeDescriptor.java
+++ /dev/null
@@ -1,134 +0,0 @@
-package org.eclipse.papyrus.infra.extendedtypes;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
-import org.eclipse.gmf.runtime.emf.type.core.IContainerDescriptor;
-import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.ISpecializationTypeDescriptor;
-import org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelperAdvice;
-import org.eclipse.papyrus.infra.extendedtypes.types.ExtendedHintedTypeFactory;
-import org.osgi.framework.Bundle;
-
-
-/**
- * new descriptor implementation for on-the-fly added descriptor
- */
-public class ExtendedSemanticTypeDescriptor implements ISpecializationTypeDescriptor {
-
- /** constant for specific semantic hint */
- public static final String EXTENDED_ELEMENTS = "ExtendedElements";
-
- /** configuration of this descriptor */
- private final ExtendedElementTypeConfiguration configuration;
-
- /** cache of the specialized types */
- private List<IElementType> specializedTypes = null;
-
- /**
- * Constructor.
- *
- * @param configuration
- * the configuration of this descriptor
- */
- public ExtendedSemanticTypeDescriptor(ExtendedElementTypeConfiguration configuration) {
- this.configuration = configuration;
- }
-
- /**
- * Returns the configuration of the element type
- *
- * @return the configuration of the element type
- */
- public ExtendedElementTypeConfiguration getConfiguration() {
- return configuration;
- }
-
- /**
- * {@inheritDoc}
- */
- public String getId() {
- return configuration.getId();
- }
-
- /**
- * {@inheritDoc}
- */
- public URL getIconURL() {
- IconEntry entry = configuration.getIconEntry();
- Bundle bundle = Platform.getBundle(entry.getBundleId());
- if(bundle == null) {
- return null;
- }
- URL result = bundle.getEntry(entry.getIconPath());
- return result;
- }
-
- /**
- * {@inheritDoc}
- */
- public String getName() {
- return configuration.getName();
- }
-
- /**
- * {@inheritDoc}
- */
- public String getKindName() {
- return configuration.getKindName();
- }
-
- /**
- * {@inheritDoc}
- */
- public String getParamValue(String paramName) {
- if(ExtendedHintedTypeFactory.SEMANTIC_HINT_PARAM_NAME.equals(paramName)) {
- return configuration.getHint();
- }
- return EXTENDED_ELEMENTS;
- }
-
- /**
- * {@inheritDoc}
- */
- public IContainerDescriptor getContainerDescriptor() {
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- public IElementType[] getSpecializedTypes() {
- if(specializedTypes == null) {
- specializedTypes = new ArrayList<IElementType>();
- for(String specializedTypeId : configuration.getSpecializedTypesID()) {
- IElementType type = ElementTypeRegistry.getInstance().getType(specializedTypeId);
- if(type != null) {
- specializedTypes.add(type);
- } else {
- Activator.log.error("Impossible to find the type " + specializedTypeId, null);
- }
- }
- }
- return specializedTypes.toArray(new IElementType[specializedTypes.size()]);
- }
-
- /**
- * {@inheritDoc}
- */
- public IElementMatcher getMatcher() {
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- public IEditHelperAdvice getEditHelperAdvice() {
- return new ExtendedEditHelperAdvice();
- }
-
-}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedTypeRegistryService.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedTypeRegistryService.java
new file mode 100644
index 00000000000..a6e0837a51c
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedTypeRegistryService.java
@@ -0,0 +1,52 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.papyrus.infra.core.services.IService;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+
+
+/**
+ * Service to register extended element types
+ */
+public class ExtendedTypeRegistryService implements IService {
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init(ServicesRegistry servicesRegistry) throws ServiceException {
+
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void startService() throws ServiceException {
+ // register elements in element type registry
+ ExtendedElementTypeSetRegistry.getInstance();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void disposeService() throws ServiceException {
+ // extended element type set registry should unregister all added element types in the gmf registry
+
+ }
+
+ public ExtendedElementTypeSetRegistry getExtendedElementTypeSetRegistry() {
+ return ExtendedElementTypeSetRegistry.getInstance();
+ }
+
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedTypesRegistry.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedTypesRegistry.java
deleted file mode 100644
index badcf2acb99..00000000000
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ExtendedTypesRegistry.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2010 CEA LIST.
- *
- * 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:
- * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.infra.extendedtypes;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-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.gmf.runtime.emf.type.core.ClientContextManager;
-import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
-import org.eclipse.gmf.runtime.emf.type.core.IClientContext;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
-import org.eclipse.papyrus.infra.extendedtypes.preferences.ExtendedTypesPreferences;
-import org.eclipse.papyrus.infra.extendedtypes.types.ExtendedHintedTypeFactory;
-import org.osgi.framework.Bundle;
-
-
-/**
- * Registry for all extended types.
- */
-public class ExtendedTypesRegistry {
-
- /** private singleton instance */
- private static ExtendedTypesRegistry registry;
-
- /** list of retrieved extended type sets */
- protected List<ExtendedElementTypeSet> extendedTypeSets = null;
-
- /** unique resource set to load all extended types models */
- protected ResourceSet extendedTypesResourceSet = null;
-
- /**
- * Private constructor.
- */
- private ExtendedTypesRegistry() {
-
- }
-
- /**
- * returns the singleton instance of this registry
- *
- * @return the singleton instance of this registry
- */
- public static synchronized ExtendedTypesRegistry getInstance() {
- if(registry == null) {
- registry = new ExtendedTypesRegistry();
- registry.init();
- }
- return registry;
- }
-
- /**
- * Inits the registry.
- */
- protected void init() {
- // 0. Reset the values
- extendedTypesResourceSet = null;
- extendedTypeSets = null;
-
- // 1. create the resource set
- extendedTypesResourceSet = createResourceSet();
- // 2. create the list only when registry is acceded for the first time
- extendedTypeSets = loadExtendedTypeSets();
- }
-
- /**
- * Retrieves and loads extended type sets registered in the platform. It should also load configuration sets from the workspace.
- */
- protected List<ExtendedElementTypeSet> loadExtendedTypeSets() {
- List<ExtendedElementTypeSet> extendedElementTypeSets = new ArrayList<ExtendedElementTypeSet>();
-
- // 1. retrieve from the workspace
- // TODO implement retrieve from workspace
-
- // 2. retrieve from the platform.
- List<ExtendedElementTypeSet> registeredSets = loadExtendedTypeSetsFromPlatform();
- if(registeredSets != null && !registeredSets.isEmpty()) {
- extendedElementTypeSets.addAll(registeredSets);
- }
-
- return extendedElementTypeSets;
- }
-
- /**
- * Creates the resource set that contains all models for extended types
- *
- * @return the resource set newly created.
- */
- protected ResourceSet createResourceSet() {
- ResourceSet set = new ResourceSetImpl();
- return set;
- }
-
- /**
- * Loads the extensions in the platform
- *
- * @return the list of extension registered in the platform
- */
- protected List<ExtendedElementTypeSet> loadExtendedTypeSetsFromPlatform() {
- List<ExtendedElementTypeSet> platformElementTypeSets = new ArrayList<ExtendedElementTypeSet>();
-
- IConfigurationElement[] elements = Platform.getExtensionRegistry().getConfigurationElementsFor(IExtendedTypeExtensionPoint.EXTENSION_POINT_ID);
- // for each element, parses and retrieve the model file. then loads it and returns the root element
- for(IConfigurationElement element : elements) {
- String modelPath = element.getAttribute(IExtendedTypeExtensionPoint.PATH);
- String extendedTypeSetId = element.getAttribute(IExtendedTypeExtensionPoint.ID);
- String contributorID = element.getContributor().getName();
- if(Platform.inDebugMode()) {
- Activator.log.debug("[Reading extension point]");
- Activator.log.debug("- Path to the model: " + modelPath);
- Activator.log.debug("- id of the container bundle: " + contributorID);
- Activator.log.debug("- id of the extended type set: " + extendedTypeSetId);
- }
- ExtendedElementTypeSet set = getExtendedElementTypeSet(extendedTypeSetId, modelPath, contributorID);
- if(set != null) {
- platformElementTypeSets.add(set);
- }
- }
-
- return platformElementTypeSets;
- }
-
- /**
- * <p>
- * Loads the resource containing the extended element type set model.
- * </p>
- * <p>
- * It looks the model file in the fragments first, then in the plugin itself.<BR>
- * If this is already a fragment, it should look in the fragment only
- * </p>
- *
- * @param extendedTypesID
- * id of the extended type set to load
- * @param modelPath
- * path of the model in the bundle
- * @param bundleId
- * id of the bundle containing the model file
- * @return the loaded file or <code>null</code> if some problem occured during loading
- */
- protected ExtendedElementTypeSet getExtendedElementTypeSet(String extendedTypesID, String modelPath, String bundleId) {
- // 1. look in preferences.
- String filePath = ExtendedTypesPreferences.getExtendedTypesRedefinition(extendedTypesID);
- if(filePath != null) {
- getExtendedElementTypeSetInPluginStateArea(extendedTypesID);
- }
-
- // 2. no local redefinition. Load extended type set from plugin definition
- Bundle bundle = Platform.getBundle(bundleId);
- if(Platform.isFragment(bundle)) {
- return getExtendedElementTypeSetInBundle(modelPath, bundleId);
- } else { // this is a plugin. Search in sub fragments, then in the plugin
- Bundle[] fragments = Platform.getFragments(bundle);
- // no fragment, so the file should be in the plugin itself
- if(fragments == null) {
- return getExtendedElementTypeSetInBundle(modelPath, bundleId);
- } else {
- for(Bundle fragment : fragments) {
- ExtendedElementTypeSet extendedElementTypeSet = getExtendedElementTypeSetInBundle(modelPath, fragment.getSymbolicName());
- if(extendedElementTypeSet != null) {
- return extendedElementTypeSet;
- }
- }
- // not found in fragments. Look in the plugin itself
- return getExtendedElementTypeSetInBundle(modelPath, bundleId);
- }
- }
- }
-
- /**
- * Retrieves the contribution in the plugin area
- *
- * @param path
- * the path of the element type set to load in the plugin area
- */
- protected ExtendedElementTypeSet getExtendedElementTypeSetInPluginStateArea(String path) {
- // read in preferences area
- IPath resourcePath = Activator.getDefault().getStateLocation().append(path);
- URI uri = URI.createFileURI(resourcePath.toOSString());
- if(uri != null && uri.isFile()) {
- Resource resource = extendedTypesResourceSet.createResource(uri);
- try {
- resource.load(null);
- } catch (IOException e) {
- return null;
- }
- EObject content = resource.getContents().get(0);
- if(content instanceof ExtendedElementTypeSet) {
- return (ExtendedElementTypeSet)content;
- }
- Activator.log.error("Impossible to cast the object into an ExtendedElementTypeSet: " + content, null);
- return null;
- }
- return null;
- }
-
- /**
- *
- * @param modelPath
- * path of the model in the bundle
- * @param bundleId
- * id of the bundle containing the model file
- * @return the loaded file or <code>null</code> if some problem occured during loading
- */
- protected ExtendedElementTypeSet getExtendedElementTypeSetInBundle(String modelPath, String bundleID) {
- Resource resource = extendedTypesResourceSet.createResource(URI.createPlatformPluginURI(bundleID + Path.SEPARATOR + modelPath, true));
- try {
- resource.load(null);
- } catch (IOException e) {
- return null;
- }
- EObject content = resource.getContents().get(0);
- if(content instanceof ExtendedElementTypeSet) {
- return (ExtendedElementTypeSet)content;
- }
- Activator.log.error("Impossible to cast the object into an ExtendedElementTypeSet: " + content, null);
- return null;
- }
-
- /**
- * Gets the element type for <code>id</code>. May return <code>null</code> if this element is not registered.
- *
- * @param id
- * the type ID
- * @return the registered type with this ID, or <code>null</code> if there
- * is none.
- */
- public IElementType getType(String id) {
- // 1. checks if the element already exists
- IElementType type = ElementTypeRegistry.getInstance().getType(id);
-
- // 2. If it exists, returns it as usual
- if(type != null) {
- return type;
- }
-
- // 3. It does not exists. It could be retrieve in the extended type sets
- for(ExtendedElementTypeSet set : extendedTypeSets) {
- for(ExtendedElementTypeConfiguration elementTypeConfiguration : set.getElementType()) {
- if(id.equals(elementTypeConfiguration.getId())) {
- // create and add in the standard registry the required element type from its configuration
- @SuppressWarnings("restriction")
- ISpecializationType createSpecializationType = ExtendedHintedTypeFactory.getInstance().createSpecializationType(new ExtendedSemanticTypeDescriptor(elementTypeConfiguration));
- // register it, so it should be accessible next time
- ElementTypeRegistry.getInstance().register(createSpecializationType);
- // retrieve papyrus client context and add the registered type to this context
- IClientContext papyrusContext = ClientContextManager.getInstance().getClientContext("org.eclipse.papyrus.infra.services.edit.TypeContext");
- if(papyrusContext != null) {
- papyrusContext.bindId(id);
- }
- return createSpecializationType;
- }
- }
- }
- return null;
- }
-
-}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ICreationElementValidator.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ICreationElementValidator.java
new file mode 100644
index 00000000000..6adb16da294
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/ICreationElementValidator.java
@@ -0,0 +1,28 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+
+/**
+ * Validator used to check if element can be created for a given {@link CreateElementRequest}
+ */
+public interface ICreationElementValidator {
+
+ /**
+ * @param request
+ * @return
+ */
+ public boolean canCreate(CreateElementRequest request);
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IElementMatcherConfigurationModelCreation.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IElementMatcherConfigurationModelCreation.java
new file mode 100644
index 00000000000..e2bc20f5d9c
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IElementMatcherConfigurationModelCreation.java
@@ -0,0 +1,22 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes;
+
+
+/**
+ * Interface that all extension point for element matcher should provide
+ */
+public interface IElementMatcherConfigurationModelCreation<T extends MatcherConfiguration> {
+
+ public T createConfigurationModel();
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IElementMatcherExtensionPoint.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IElementMatcherExtensionPoint.java
new file mode 100644
index 00000000000..4e417eabb82
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IElementMatcherExtensionPoint.java
@@ -0,0 +1,34 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.papyrus.infra.extendedtypes.Activator;
+
+
+/**
+ * Extension point interface for {@link MatcherConfiguration} runtime implementations
+ */
+public interface IElementMatcherExtensionPoint {
+
+ /** ID of the extension point */
+ public final static String EXTENSION_POINT_ID = Activator.PLUGIN_ID + ".elementMatcherConfiguration";
+
+ public static final String CONFIGURATION_NAME = "name";
+
+ public static final String MATCHER_CONFIGURATION_CLASS = "configurationClass";
+
+ public static final String MATCHER_FACTORY_CLASS = "factoryClass";
+
+ public static final String CONFIGURATION_MODEL_CREATION = "configurationModelCreation";
+
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IElementMatcherFactory.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IElementMatcherFactory.java
new file mode 100644
index 00000000000..e83afb89ee6
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IElementMatcherFactory.java
@@ -0,0 +1,30 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.IConfigurableElementMatcher;
+
+
+/**
+ * interface for factories that instantiate {@link IConfigurableElementMatcher} with their given configuration
+ */
+public interface IElementMatcherFactory<T extends MatcherConfiguration> {
+
+ /**
+ * Creates an element matcher with the specified configuration
+ * @param configuration the configuration of the {@link IElementMatcher}
+ * @return the created element matcher or <code>null</code> if none was created
+ */
+ public IElementMatcher createElementMatcher(T configuration);
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IExtendedElementTypeFactory.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IExtendedElementTypeFactory.java
new file mode 100644
index 00000000000..d7d76c0e58d
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IExtendedElementTypeFactory.java
@@ -0,0 +1,38 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes;
+
+import org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType;
+
+
+/**
+ * Interface for all factories that will create element types from a given configuration
+ */
+public interface IExtendedElementTypeFactory<T extends ElementTypeConfiguration> /* extends IElementTypeFactory */ {
+
+ /**
+ * Creates an element type for the given configuration
+ * @param configuration configuration of the element type to create
+ * @return the newly created element type or <code>null</code> if no element type could be created
+ */
+ IExtendedHintedElementType createElementType(T configuration);
+
+
+ /**
+ * Creates the element creation validator which will be used to know if the element can be created or not
+ * @param configuration the configuration of the new element type
+ * @return the element creation Validator or <code>null</code> if none could be created
+ */
+ ICreationElementValidator createElementCreationValidator(T configuration);
+
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IExtendedTypeExtensionPoint.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IExtendedElementTypeSetExtensionPoint.java
index 515f92c97c2..d8a900d1d13 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IExtendedTypeExtensionPoint.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IExtendedElementTypeSetExtensionPoint.java
@@ -1,40 +1,40 @@
-/*****************************************************************************
- * Copyright (c) 2010 CEA LIST.
- *
- * 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:
- * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.infra.extendedtypes;
-
-
-/**
- * Constants for the extension point
- */
-public interface IExtendedTypeExtensionPoint {
-
- /** ID of the extension point */
- public final static String EXTENSION_POINT_ID = Activator.PLUGIN_ID + ".extendedTypesSetConfiguration";
-
- /** attribute: path to the model file in the bundle */
- public static final String PATH = "path";
-
- /** attribute: identifier of the contribution */
- public static final String ID = "id";
-
- /** attribute: name of the configuration */
- public static final String NAME = "name";
-
- /** attribute: icon of the configuration */
- public static final String ICON = "icon";
-
- /** attribute: description of the configuration */
- public static final String DESCRIPTION = "description";
-
- /** element: element for the configuration element */
- public static final String CONFIGURATION = "configuration";
-}
+/*****************************************************************************
+ * Copyright (c) 2010 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes;
+
+
+/**
+ * Constants for the extension point ExtendedTypesSet (registering models containing definition of {@link ExtendedElementTypeSet}).
+ */
+public interface IExtendedElementTypeSetExtensionPoint {
+
+ /** ID of the extension point */
+ public final static String EXTENSION_POINT_ID = Activator.PLUGIN_ID + ".extendedElementTypeSet";
+
+ /** attribute: path to the model file in the bundle */
+ public static final String PATH = "path";
+
+ /** attribute: identifier of the contribution */
+ public static final String ID = "id";
+
+ /** attribute: name of the configuration */
+ public static final String NAME = "name";
+
+ /** attribute: icon of the configuration */
+ public static final String ICON = "icon";
+
+ /** attribute: description of the configuration */
+ public static final String DESCRIPTION = "description";
+
+ /** element: element for the configuration element */
+ public static final String CONFIGURATION = "configuration";
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IExtendedTypeConfigurationExtensionPoint.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IExtendedTypeConfigurationExtensionPoint.java
new file mode 100644
index 00000000000..254b53c4af2
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/IExtendedTypeConfigurationExtensionPoint.java
@@ -0,0 +1,39 @@
+/*****************************************************************************
+ * Copyright (c) 2010 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes;
+
+/**
+ * Constants for the extension point ExtendedTypesSet (registering models containing definition of {@link ExtendedElementTypeSet}).
+ */
+public interface IExtendedTypeConfigurationExtensionPoint {
+
+ /** ID of the extension point */
+ public final static String EXTENSION_POINT_ID = Activator.PLUGIN_ID + ".extendedTypeConfiguration";
+
+ /** attribute: name of the configuration */
+ public static final String NAME = "name";
+
+ /** attribute: icon of the configuration */
+ public static final String ICON = "icon";
+
+ /** attribute: description of the configuration */
+ public static final String DESCRIPTION = "description";
+
+ /** attribute factoryClass */
+ public static final String FACTORY_CLASS = "factoryClass";
+
+ /** attribute configurationClass */
+ public static final String CONFIGURATION_CLASS = "configurationClass";
+
+ /** attribute itemProvider */
+ public static final String ITEM_PROVIDER = "itemProvider";
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/advices/ExtendedTypesOwnerAdvice.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/advices/ExtendedTypesOwnerAdvice.java
index 139ff2798c5..df13a584f95 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/advices/ExtendedTypesOwnerAdvice.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/advices/ExtendedTypesOwnerAdvice.java
@@ -1,140 +1,232 @@
-/*****************************************************************************
- * Copyright (c) 2010 CEA LIST.
- *
- *
- * 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:
- * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.infra.extendedtypes.advices;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gmf.runtime.common.core.command.CompositeCommand;
-import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.common.core.command.UnexecutableCommand;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
-import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
-import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
-import org.eclipse.papyrus.infra.extendedtypes.Activator;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.PostActionConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.providers.ExtendedElementTypeActionService;
-import org.eclipse.papyrus.infra.extendedtypes.providers.ProviderNotFoundException;
-import org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType;
-import org.eclipse.papyrus.infra.queries.core.configuration.QueryConfiguration;
-import org.eclipse.papyrus.infra.queries.core.modisco.QueryUtil;
-
-
-/**
- * Advice for potential owners of Extended Element Types. This advice will help to the pre/post validation for the creation of child element which is
- * describe by the extended type
- */
-public class ExtendedTypesOwnerAdvice extends AbstractEditHelperAdvice {
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected ICommand getBeforeCreateCommand(CreateElementRequest request) {
- // test if the type element to be created is an extended one. If yes, test the validation queries.
- // if they are valid, return identity command, which does nothing
- // else, if not valid, return a not executable command
- IElementType typeToCreate = request.getElementType();
- if(typeToCreate instanceof IExtendedHintedElementType) {
- ExtendedElementTypeConfiguration configuration = ((IExtendedHintedElementType)typeToCreate).getConfiguration();
- List<QueryConfiguration> queryConfigurations = configuration.getPreValidation();
- if(queryConfigurations == null || queryConfigurations.isEmpty()) {
- return super.getBeforeCreateCommand(request);
- }
-
- // check all validation rules given by the configuration
- for(Object objectToEdit : request.getElementsToEdit()) {
- // there are queries to test
- for(QueryConfiguration queryConfiguration : queryConfigurations) {
- try {
- boolean result = QueryUtil.evaluateBooleanQuery((EObject)objectToEdit, queryConfiguration);
- if(!result) {
- // return an unexecutable command, so the create command will not be executable
- return UnexecutableCommand.INSTANCE;
- }
- } catch (Exception e) {
- Activator.log.error(e);
- }
- }
- }
-
- // Check all pre and post action validation rules. They are given by the provider of the action
- CompositeCommand compositeCommand = new CompositeCommand("PreValidationPostAction");
- for(PostActionConfiguration postActionConfiguration : configuration.getPostAction()) {
- ICommand command = null;
- try {
- command = ExtendedElementTypeActionService.getInstance().getPreValidationCommand(request.getElementsToEdit(), postActionConfiguration);
- } catch (ProviderNotFoundException e) {
- Activator.log.error(e);
- }
- if(command != null) {
- compositeCommand.add(command);
- }
- }
- // get the super command
- ICommand superCommand = super.getBeforeCreateCommand(request);
-
- // if not null, adds it to the result
- if(superCommand != null) {
- compositeCommand.compose(superCommand);
- }
-
- // if result not null, returns the composite command
- if(!compositeCommand.isEmpty()) {
- return compositeCommand;
- }
- return super.getBeforeCreateCommand(request);
- }
- return super.getBeforeCreateCommand(request);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected ICommand getBeforeConfigureCommand(ConfigureRequest request) {
- return super.getBeforeConfigureCommand(request);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected ICommand getAfterConfigureCommand(ConfigureRequest request) {
- // IElementType type = request.getTypeToConfigure();
- // if(type instanceof IExtendedHintedElementType) {
- // CompositeCommand compositeCommand = new CompositeCommand("AfterConfigureCommand");
- // IExtendedHintedElementType extendedHintedElementType = (IExtendedHintedElementType)type;
- // ExtendedElementTypeConfiguration configuration = extendedHintedElementType.getConfiguration();
- // for(PostActionConfiguration postActionConfiguration : configuration.getPostAction()) {
- // ICommand command = null;
- // try {
- // command = ExtendedElementTypeActionService.getInstance().getICommand(request.getElementsToEdit(), postActionConfiguration);
- // } catch (ProviderNotFoundException e) {
- // Activator.log.error(e);
- // }
- // if(command != null) {
- // compositeCommand.add(command);
- // }
- // }
- // // return the composite command only if it is not empty
- // if(!compositeCommand.isEmpty()) {
- // return compositeCommand;
- // }
- // }
- return super.getAfterConfigureCommand(request);
- }
-}
+/*****************************************************************************
+ * Copyright (c) 2010 CEA LIST.
+ *
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.advices;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IContainerDescriptor;
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.MoveRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
+import org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType;
+
+/**
+ * Advice for potential owners of Extended Element Types. This advice will help to the pre/post validation for the creation of child element which is
+ * describe by the extended type
+ */
+public class ExtendedTypesOwnerAdvice extends AbstractEditHelperAdvice {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean approveRequest(IEditCommandRequest request) {
+ if(request instanceof CreateElementRequest) {
+ // approve the request for this element and all super types
+ IElementType typeToCreate = ((CreateElementRequest)request).getElementType();
+ if(typeToCreate instanceof IExtendedHintedElementType) {
+ if(!approveCreationRequest(((IExtendedHintedElementType)typeToCreate), (CreateElementRequest)request)) {
+ return false;
+ }
+ // ask for extended super types
+ List<IExtendedHintedElementType> superExtendedTypes = getAllSuperExtendedTypes((IExtendedHintedElementType)typeToCreate);
+ if(superExtendedTypes == null || superExtendedTypes.size() == 0) {
+ return super.approveRequest(request);
+ } else {
+ for(IExtendedHintedElementType superType : superExtendedTypes) {
+ // only refuse if one element refuses the request
+ if(!approveCreationRequest(superType, (CreateElementRequest)request)) {
+ return false;
+ }
+ }
+ }
+ }
+ } else if(request instanceof SetRequest) {
+ // check the feature to set is a containment feature and element to move is an extended element type
+ EStructuralFeature feature = ((SetRequest)request).getFeature();
+ if(feature instanceof EReference) {
+ if(!((EReference)feature).isContainment()) {
+ return super.approveRequest(request);
+ } else {
+ // containment. Check the kind of element to edit
+ Object value = ((SetRequest)request).getValue();
+ // value = single object or list ?
+ if(value instanceof EObject) {
+ IElementType type = ElementTypeRegistry.getInstance().getElementType((EObject)value, request.getClientContext());
+ if(type instanceof IExtendedHintedElementType) {
+ return approveMoveRequest((IExtendedHintedElementType)type, (SetRequest)request);
+ }
+ } else if(value instanceof List<?>) {
+ for(Object object : (List<Object>)value) {
+ if(object instanceof EObject) {
+ IElementType[] types = ElementTypeRegistry.getInstance().getAllTypesMatching((EObject)object, request.getClientContext());
+ for(IElementType type : types) {
+ if(type instanceof IExtendedHintedElementType) {
+ if(!approveMoveRequest((IExtendedHintedElementType)type, (SetRequest)request)) {
+ return false;
+ }
+ List<IExtendedHintedElementType> superExtendedTypes = getAllSuperExtendedTypes((IExtendedHintedElementType)type);
+ if(superExtendedTypes == null || superExtendedTypes.size() == 0) {
+ // nothing here
+ } else {
+ for(IExtendedHintedElementType superType : superExtendedTypes) {
+ // only refuse if one element refuses the request
+ if(!approveMoveRequest(superType, (SetRequest)request)) {
+ return false;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ } else if(request instanceof MoveRequest) {
+ // check the feature to set is a containment feature and element to move is an extended element type
+ Map<EObject, EReference> objectsToMove = ((MoveRequest)request).getElementsToMove();
+ if(objectsToMove == null || objectsToMove.isEmpty()) {
+ return super.approveRequest(request);
+ }
+ for(Entry<EObject, EReference> movedElement : objectsToMove.entrySet()) {
+ // do not compute with reference, this can be null. This could be interesting to check...
+ IElementType[] types = ElementTypeRegistry.getInstance().getAllTypesMatching(movedElement.getKey(), request.getClientContext());
+ for(IElementType type : types) {
+ if(type instanceof IExtendedHintedElementType) {
+ if(!approveMoveRequest((IExtendedHintedElementType)type, movedElement.getKey(), (MoveRequest)request)) {
+ return false;
+ }
+ List<IExtendedHintedElementType> superExtendedTypes = getAllSuperExtendedTypes((IExtendedHintedElementType)type);
+ if(superExtendedTypes == null || superExtendedTypes.size() == 0) {
+ // nothing here
+ } else {
+ for(IExtendedHintedElementType superType : superExtendedTypes) {
+ // only refuse if one element refuses the request
+ if(!approveMoveRequest(superType, movedElement.getKey(), (MoveRequest)request)) {
+ return false;
+ }
+ }
+ }
+ }
+ }
+ }
+ return super.approveRequest(request);
+ }
+ return super.approveRequest(request);
+ }
+
+ /**
+ * @param iExtendedHintedElementType
+ * @param request
+ * @return
+ */
+ protected boolean approveCreationRequest(IExtendedHintedElementType typeToCreate, CreateElementRequest request) {
+ IContainerDescriptor containerDescriptor = typeToCreate.getEContainerDescriptor();
+ EObject newContainer = request.getContainer();
+ // check it matches the container descriptor for the element type
+ if(containerDescriptor == null || newContainer == null) {
+ return true;
+ }
+ if(containerDescriptor.getContainmentFeatures() != null && containerDescriptor.getContainmentFeatures().length > 0) {
+ // check containment feature
+ List<EReference> references = Arrays.asList(containerDescriptor.getContainmentFeatures());
+ if(!(references.contains(request.getContainmentFeature()))) {
+ return false;
+ }
+ }
+ IElementMatcher containerMatcher = containerDescriptor.getMatcher();
+ if(containerMatcher != null) {
+ return containerMatcher.matches(newContainer);
+ }
+ // check container is matching the matcher of the container descriptor for the new type
+ return true;
+ }
+
+ protected boolean approveMoveRequest(IExtendedHintedElementType typeToMove, SetRequest request) {
+ IContainerDescriptor containerDescriptor = typeToMove.getEContainerDescriptor();
+ EObject newContainer = request.getElementToEdit();
+ // check it matches the container descriptor for the element type
+ if(containerDescriptor == null || newContainer == null) {
+ return true;
+ }
+ if(containerDescriptor.getContainmentFeatures() != null && containerDescriptor.getContainmentFeatures().length > 0) {
+ // check containment feature
+ List<EReference> references = Arrays.asList(containerDescriptor.getContainmentFeatures());
+ if(!(references.contains(request.getFeature()))) {
+ return false;
+ }
+ }
+ IElementMatcher containerMatcher = containerDescriptor.getMatcher();
+ if(containerMatcher != null) {
+ return containerMatcher.matches(newContainer);
+ }
+ // check container is matching the matcher of the container descriptor for the new type
+ return true;
+ }
+
+ protected boolean approveMoveRequest(IExtendedHintedElementType typeToMove, EObject objectToMove, MoveRequest request) {
+ IContainerDescriptor containerDescriptor = typeToMove.getEContainerDescriptor();
+ EObject newContainer = request.getTargetContainer();
+ // check it matches the container descriptor for the element type
+ if(containerDescriptor == null || newContainer == null) {
+ return true;
+ }
+ if(containerDescriptor.getContainmentFeatures() != null && containerDescriptor.getContainmentFeatures().length > 0) {
+ // check containment feature
+ List<EReference> references = Arrays.asList(containerDescriptor.getContainmentFeatures());
+ if(!(references.contains(request.getTargetFeature(objectToMove)))) {
+ return false;
+ }
+ }
+ IElementMatcher containerMatcher = containerDescriptor.getMatcher();
+ if(containerMatcher != null) {
+ return containerMatcher.matches(newContainer);
+ }
+ // check container is matching the matcher of the container descriptor for the new type
+ return true;
+ }
+
+ public List<IExtendedHintedElementType> getAllSuperExtendedTypes(IExtendedHintedElementType type) {
+ IElementType[] superTypes = type.getAllSuperTypes();
+ if(superTypes.length == 0) {
+ return Collections.emptyList();
+ }
+ List<IExtendedHintedElementType> superExtendedTypes = new ArrayList<IExtendedHintedElementType>();
+ // get the reverse order (the extended element types are the closest types
+ for(int i = superTypes.length - 1; i >= 0; i--) {
+ if(superTypes[i] instanceof IExtendedHintedElementType) {
+ superExtendedTypes.add((IExtendedHintedElementType)superTypes[i]);
+ } /*
+ * else { // optimization: once we are in the hierarchy of "standard" types, we should not go into this hierarchy
+ * return superExtendedTypes;
+ * }
+ */
+ }
+ return superExtendedTypes;
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationContainerDescriptor.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationContainerDescriptor.java
new file mode 100644
index 00000000000..e70d40fdb32
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationContainerDescriptor.java
@@ -0,0 +1,117 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IClientContext;
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.extendedtypes.Activator;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.IConfigurableContainerDescriptor;
+import org.eclipse.papyrus.infra.services.edit.internal.context.TypeContext;
+
+/**
+ * @author RS211865
+ */
+public class InvariantContainerConfigurationContainerDescriptor implements IConfigurableContainerDescriptor<InvariantContainerConfiguration> {
+
+ protected EList<HierarchyPermission> permissions;
+
+ private IClientContext sharedContext;
+
+ private IElementMatcher matcher;
+
+ /**
+ * {@inheritDoc}
+ */
+ public IElementMatcher getMatcher() {
+ if(matcher == null) {
+ matcher = createMatcher();
+ }
+ return matcher;
+ }
+
+ /**
+ * @return
+ */
+ protected IElementMatcher createMatcher() {
+ return new IElementMatcher() {
+
+ public boolean matches(EObject eObject) {
+
+ IElementType[] types = ElementTypeRegistry.getInstance().getAllTypesMatching(eObject, sharedContext);
+ if(types == null || types.length == 0) {
+ return false;
+ }
+ boolean isValid = false;
+ for(HierarchyPermission permission : permissions) {
+ boolean isPermitted = permission.isIsPermitted();
+ String childType = permission.getChildType();
+ boolean isStrict = permission.isIsStrict();
+ IElementType type = ElementTypeRegistry.getInstance().getType(childType);
+ if(type != null) {
+ if(isStrict) {
+ if(types[0].equals(type)) {
+ if(isPermitted) {
+ isValid = true;
+ }
+ } else if(!isPermitted) {
+ isValid = false;
+ }
+ } else {
+ // not strict. The super types of typeToCreate should contain the permission type if permitted, or not contain the permission type if not permitted
+ List<IElementType> allTypes = Arrays.asList(types);
+ if(allTypes.contains(type)) {
+ if(isPermitted) {
+ isValid = true;
+ } else if(!isPermitted) {
+ isValid = false;
+ }
+ }
+ }
+ }
+ }
+ return isValid;
+ }
+ };
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public EReference[] getContainmentFeatures() {
+ // TODO should implement in permissions...
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init(InvariantContainerConfiguration ruleConfiguration) {
+ this.permissions = ruleConfiguration.getPermissions();
+ try {
+ sharedContext = TypeContext.getContext();
+ } catch (ServiceException e) {
+ Activator.log.error(e);
+ }
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationModelCreation.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationModelCreation.java
new file mode 100644
index 00000000000..54f989b9add
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerConfigurationModelCreation.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration;
+
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.IConfigurationModelCreation;
+
+
+/**
+ * @author RS211865
+ */
+public class InvariantContainerConfigurationModelCreation implements IConfigurationModelCreation<InvariantContainerConfiguration> {
+
+ /**
+ * {@inheritDoc}
+ */
+ public InvariantContainerConfiguration createConfigurationModel() {
+ return InvariantContainerConfigurationFactory.eINSTANCE.createInvariantContainerConfiguration();
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerEditHelperAdvice.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerEditHelperAdvice.java
new file mode 100644
index 00000000000..8f0ff1eb42c
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerEditHelperAdvice.java
@@ -0,0 +1,141 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IClientContext;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.extendedtypes.Activator;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.IConfigurableEditHelperAdvice;
+import org.eclipse.papyrus.infra.services.edit.internal.context.TypeContext;
+
+/**
+ * Edit Helper advice configured by the {@link InvariantHierarchyConfiguration}
+ */
+public class InvariantContainerEditHelperAdvice extends AbstractEditHelperAdvice implements IConfigurableEditHelperAdvice<InvariantContainerConfiguration> {
+
+ protected List<HierarchyPermission> permissions;
+
+ protected IClientContext sharedContext;
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean approveRequest(IEditCommandRequest request) {
+ if(request instanceof SetRequest) {
+ SetRequest setRequest = ((SetRequest)request);
+ EStructuralFeature structuralFeature = setRequest.getFeature();
+ if(structuralFeature instanceof EReference) {
+ EReference reference = ((EReference)structuralFeature);
+ if(reference.isContainment() && setRequest.getValue() != null) {
+ // check new value
+ return canContain(setRequest);
+ }
+ }
+ } else if(request instanceof CreateElementRequest) {
+ CreateElementRequest createElementRequest = ((CreateElementRequest)request);
+ IElementType typeToCreate = createElementRequest.getElementType();
+ boolean approvedRequest = isValid(typeToCreate, false);
+ return approvedRequest;
+ }
+ return super.approveRequest(request);
+ }
+
+ protected boolean isValid(IElementType typeToAdd, boolean baseIsValid) {
+ boolean isValid = baseIsValid;
+ for(HierarchyPermission permission : permissions) {
+ boolean isPermitted = permission.isIsPermitted();
+ String childType = permission.getChildType();
+ boolean isStrict = permission.isIsStrict();
+ IElementType type = ElementTypeRegistry.getInstance().getType(childType);
+ if(type != null) {
+ if(isStrict) {
+ if(typeToAdd.equals(type)) {
+ if(isPermitted) {
+ isValid = true;
+ }
+ } else if(!isPermitted) {
+ isValid = false;
+ }
+ } else {
+ // not strict. The super types of typeToCreate should contain the permission type if permitted, or not contain the permission type if not permitted
+ List<IElementType> allTypes = Arrays.asList(typeToAdd.getAllSuperTypes());
+ allTypes.add(typeToAdd);
+ if(allTypes.contains(type)) {
+ if(isPermitted) {
+ isValid = true;
+ }
+ } else if(!isPermitted) {
+ isValid = false;
+ }
+ }
+ }
+ }
+ return isValid;
+ }
+
+
+ protected boolean canContain(SetRequest request) {
+ // multivalue or simple value ?
+ if(request.getValue() instanceof List<?>) {
+ List<Object> values = (List<Object>)request.getValue();
+ for(Object value : values) {
+ if(value instanceof EObject) {
+ IElementType type = ElementTypeRegistry.getInstance().getElementType((EObject)value, request.getClientContext());
+ if(type !=null) {
+ if(!isValid(type, false)) {
+ return false;
+ }
+ } else {
+ return false;
+ }
+ }
+ }
+ } else {
+ if(request.getValue() instanceof EObject) {
+ IElementType type = ElementTypeRegistry.getInstance().getElementType((EObject)request.getValue(), request.getClientContext());
+ if(type !=null) {
+ return isValid(type, false);
+ } else {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init(InvariantContainerConfiguration configuration) {
+ try {
+ sharedContext = TypeContext.getContext();
+ } catch (ServiceException e) {
+ Activator.log.error(e);
+ }
+ permissions = configuration.getPermissions();
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerMatcher.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerMatcher.java
new file mode 100644
index 00000000000..b399fbe1030
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantcontainerconfiguration/InvariantContainerMatcher.java
@@ -0,0 +1,148 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantcontainerconfiguration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration.IConfigurableElementMatcher;
+
+/**
+ * Matcher of the hierarchy matcher
+ */
+public class InvariantContainerMatcher implements IConfigurableElementMatcher<InvariantContainerConfiguration> {
+
+ protected EList<HierarchyPermission> permissions;
+
+ /**
+ *
+ */
+ public InvariantContainerMatcher() {
+ // nothing here. Trying not to create list to avoid unnecessary created objects
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean matches(EObject eObject) {
+ return true;
+// boolean matches = false;
+//
+// EObject container = eObject.eContainer();
+//
+// if(container ==null) {
+// return false;
+// }
+//
+// matches = checkAllowed(container, allowedDirectParents, false);
+//
+// // if not ok in direct parents, test in the hierarchy
+// if(!matches && allowedParentsInHierarchy!=null && !allowedParentsInHierarchy.isEmpty()) {
+// while(!matches && container.eContainer() !=null) {
+// container = container.eContainer();
+// matches = checkAllowed(container, allowedParentsInHierarchy, false);
+// }
+// }
+//
+// // check now that some forbidden type does not override the current matches
+// if(!matches) {
+// return false;
+// }
+//
+// container = eObject.eContainer();
+// // container (direct or indirect) could match. now try the forbidden lists
+// matches = checkForbidden(container, forbiddenDirectParents, false);
+//
+// // if not ok in direct parents, test in the hierarchy
+// if(matches && forbiddenParentsInHierarchy!=null && !forbiddenParentsInHierarchy.isEmpty()) {
+// while(matches && container.eContainer() !=null) {
+// container = container.eContainer();
+// matches = checkForbidden(container, forbiddenParentsInHierarchy, false);
+// }
+// }
+//
+// return matches;
+ }
+
+ /**
+ * @param container
+ * @param forbiddenParentsInHierarchy2
+ * @param b
+ * @return
+ */
+ protected boolean checkForbidden(EObject container, List<String> forbiddenParents, boolean isStrict) {
+ // check direct permissions
+ if(forbiddenParents != null && !forbiddenParents.isEmpty()) {
+ IElementType parentType = ElementTypeRegistry.getInstance().getElementType(container);
+ if(parentType != null) {
+ // check if necessary all super types of the direct parent
+ List<String> parentIds = new ArrayList<String>();
+ parentIds.add(parentType.getId());
+ if(forbiddenParents.contains(parentIds)) {
+ return false;
+ } else {
+ // check also super types ids, if not strict permission
+ if(!isStrict) {
+ for(IElementType superType : parentType.getAllSuperTypes()) {
+ if(forbiddenParents.contains(superType.getId())) {
+ return false;
+ }
+ }
+ }
+ }
+ }
+ }
+ return true;
+ }
+
+ /**
+ *
+ */
+ protected boolean checkAllowed(EObject container, List<String> allowedParents, boolean isStrict) {
+ boolean matches = false;
+ // check direct permissions
+ if(allowedParents != null && !allowedParents.isEmpty()) {
+ IElementType parentType = ElementTypeRegistry.getInstance().getElementType(container);
+ if(parentType != null) {
+ // check if necessary all super types of the direct parent
+ List<String> parentIds = new ArrayList<String>();
+ parentIds.add(parentType.getId());
+ if(allowedParents.contains(parentIds)) {
+ matches = true;
+ } else {
+ // check also super types ids, if not strict permission
+ if(!isStrict) {
+ for(IElementType superType : parentType.getAllSuperTypes()) {
+ if(allowedParents.contains(superType.getId())) {
+ matches = true;
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ return matches;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init(InvariantContainerConfiguration configuration) {
+ this.permissions = configuration.getPermissions();
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AbstractExtendedElementTypeFactory.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AbstractExtendedElementTypeFactory.java
new file mode 100644
index 00000000000..c5ad8b461bf
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AbstractExtendedElementTypeFactory.java
@@ -0,0 +1,111 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IContainerDescriptor;
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelperAdvice;
+import org.eclipse.papyrus.infra.extendedtypes.ElementTypeConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.ICreationElementValidator;
+import org.eclipse.papyrus.infra.extendedtypes.IExtendedElementTypeFactory;
+import org.eclipse.papyrus.infra.extendedtypes.IconEntry;
+import org.eclipse.papyrus.infra.extendedtypes.types.ExtendedHintedElementType;
+import org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType;
+import org.osgi.framework.Bundle;
+
+/**
+ *
+ */
+public abstract class AbstractExtendedElementTypeFactory<T extends ElementTypeConfiguration> implements IExtendedElementTypeFactory<T> {
+
+ /**
+ * {@inheritDoc}
+ */
+ public IExtendedHintedElementType createElementType(T configuration) {
+ String id = configuration.getIdentifier();
+ // display name of the element Type (used mainly in GUIs)
+ String displayName = configuration.getName();
+ // Specialized element types
+ List<IElementType> specializedTypes = new ArrayList<IElementType>(configuration.getSpecializedTypesID().size());
+ for(String specializedTypeId : configuration.getSpecializedTypesID()) {
+ IElementType specializedType = ElementTypeRegistry.getInstance().getType(specializedTypeId);
+ specializedTypes.add(specializedType);
+ }
+ IElementType[] elementTypes = specializedTypes.toArray(new IElementType[]{});
+ // icon associated to the element Type (GUI)
+ IconEntry entry = configuration.getIconEntry();
+ URL iconURL = null;
+ if(entry != null) {
+ iconURL = getURLFromEntry(entry);
+ }
+ IExtendedHintedElementType type = new ExtendedHintedElementType(id, iconURL, displayName, elementTypes, createElementMatcher(configuration), createContainerDescriptor(configuration), createEditHelperAdvice(configuration), getSemanticHint(configuration), createElementCreationValidator(configuration));
+ return type;
+ }
+
+ /**
+ * @param configuration
+ * @return
+ */
+ protected abstract String getSemanticHint(T configuration);
+
+ /**
+ * @param configuration
+ * @return
+ */
+ protected abstract IEditHelperAdvice createEditHelperAdvice(T configuration);
+
+ /**
+ * @param configuration
+ * @return
+ */
+ protected abstract IContainerDescriptor createContainerDescriptor(T configuration);
+
+ /**
+ * @param configuration
+ * @return
+ */
+ protected abstract IElementMatcher createElementMatcher(T configuration);
+
+ /**
+ * {@inheritDoc}
+ */
+ public abstract ICreationElementValidator createElementCreationValidator(T configuration) ;
+
+ /**
+ * @param entry
+ * @return
+ */
+ protected URL getURLFromEntry(IconEntry entry) {
+ Bundle bundle = Platform.getBundle(entry.getBundleId());
+ if(bundle == null) {
+ return null;
+ }
+ URL result = bundle.getEntry(entry.getIconPath());
+ if(result == null) {
+ try {
+ result = new URL(entry.getIconPath());
+ } catch (MalformedURLException e) {
+ result = null;
+ }
+ }
+ return result;
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRuleCreationElementValidator.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRuleCreationElementValidator.java
new file mode 100644
index 00000000000..415bb90cae8
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRuleCreationElementValidator.java
@@ -0,0 +1,52 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+
+/**
+ *
+ */
+public class AndRuleCreationElementValidator implements IInvariantCreationElementValidator<AndRule> {
+
+ protected List<IInvariantCreationElementValidator<InvariantRuleConfiguration>> composedValidators;
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean canCreate(CreateElementRequest request) {
+ for(IInvariantCreationElementValidator<InvariantRuleConfiguration> creationElementValidator : composedValidators) {
+ if(!creationElementValidator.canCreate(request)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init(AndRule configuration) {
+ composedValidators = new ArrayList<IInvariantCreationElementValidator<InvariantRuleConfiguration>>();
+ for(InvariantRuleConfiguration composedRule : configuration.getComposedRules()) {
+ IInvariantCreationElementValidator<InvariantRuleConfiguration> creationElementValidator = RuleConfigurationFactoryRegistry.getInstance().createCreationElementValidator(composedRule);
+ if(creationElementValidator != null) {
+ composedValidators.add(creationElementValidator);
+ }
+ }
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRuleEditHelperAdvice.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRuleEditHelperAdvice.java
new file mode 100644
index 00000000000..c1b350b89c9
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRuleEditHelperAdvice.java
@@ -0,0 +1,56 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelperAdvice;
+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
+
+public class AndRuleEditHelperAdvice extends AbstractEditHelperAdvice implements IConfigurableEditHelperAdvice<AndRule> {
+
+ protected List<IConfigurableEditHelperAdvice<InvariantRuleConfiguration>> composedEditHelperAdvices;
+
+ public AndRuleEditHelperAdvice() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init(AndRule ruleConfiguration) {
+ // configuration should be a AndRule as declared in the extension point
+ composedEditHelperAdvices = new ArrayList<IConfigurableEditHelperAdvice<InvariantRuleConfiguration>>();
+ for(InvariantRuleConfiguration composedRule : ruleConfiguration.getComposedRules()) {
+ IConfigurableEditHelperAdvice<InvariantRuleConfiguration> editHelperAdvice = RuleConfigurationFactoryRegistry.getInstance().createEditHelperAdvice(composedRule);
+ if(editHelperAdvice != null) {
+ composedEditHelperAdvices.add(editHelperAdvice);
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean approveRequest(IEditCommandRequest request) {
+ // to approve the request, all the composed edit helper advices should approve it
+ for(IEditHelperAdvice advice : composedEditHelperAdvices) {
+ if(!advice.approveRequest(request)) {
+ return false;
+ }
+ }
+ return true;
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRuleElementMatcher.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRuleElementMatcher.java
new file mode 100644
index 00000000000..05768ff5d46
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/AndRuleElementMatcher.java
@@ -0,0 +1,65 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+
+/**
+ * {@link IElementMatcher} for the {@link AndRule}
+ */
+public class AndRuleElementMatcher implements IConfigurableElementMatcher<AndRule> {
+
+ protected List<IElementMatcher> composedMatchers;
+
+ /**
+ *
+ */
+ public AndRuleElementMatcher() {
+ // Nothing here
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean matches(EObject eObject) {
+ // deactivate if list of rules is empty
+ if(composedMatchers == null || composedMatchers.isEmpty()) {
+ return false;
+ }
+ for(IElementMatcher matcher : composedMatchers) {
+ if(!matcher.matches(eObject)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init(AndRule configuration) {
+ // for each children configuraton, generates the matcher class and then, the 'matches' method of this matcher will delegate to the matches of the sub rules, and will add all results together
+ // configuration should be a AndRule as declared in the extension point
+ composedMatchers = new ArrayList<IElementMatcher>();
+ for(InvariantRuleConfiguration composedRule : configuration.getComposedRules()) {
+ IElementMatcher matcher = RuleConfigurationFactoryRegistry.getInstance().createMatcher(composedRule);
+ if(matcher != null) {
+ composedMatchers.add(matcher);
+ }
+ }
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurableContainerDescriptor.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurableContainerDescriptor.java
new file mode 100644
index 00000000000..2fe2da369fb
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurableContainerDescriptor.java
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import org.eclipse.gmf.runtime.emf.type.core.IContainerDescriptor;
+
+
+/**
+ * Descriptor for the configurable container descriptor
+ */
+public interface IConfigurableContainerDescriptor<T extends InvariantRuleConfiguration> extends IContainerDescriptor {
+
+ /**
+ * @param ruleConfiguration
+ */
+ void init(T ruleConfiguration);
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurableEditHelperAdvice.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurableEditHelperAdvice.java
new file mode 100644
index 00000000000..d44a3048094
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurableEditHelperAdvice.java
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelperAdvice;
+
+
+/**
+ * @author RS211865
+ */
+public interface IConfigurableEditHelperAdvice<T extends InvariantRuleConfiguration> extends IEditHelperAdvice {
+
+ /**
+ * @param ruleConfiguration
+ */
+ void init(T ruleConfiguration);
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurableElementMatcher.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurableElementMatcher.java
new file mode 100644
index 00000000000..f7c3653ba5d
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurableElementMatcher.java
@@ -0,0 +1,28 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+
+
+/**
+ * Interface that all {@link IElementMatcher} that can be configured at runtime using a model should implement
+ */
+public interface IConfigurableElementMatcher<T extends InvariantRuleConfiguration> extends IElementMatcher {
+
+ /**
+ * Initialize the element matcher with the given configuration
+ * @param configuration the runtime configuration of the matcher
+ */
+ void init(T configuration);
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurationModelCreation.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurationModelCreation.java
new file mode 100644
index 00000000000..f231f2d3749
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IConfigurationModelCreation.java
@@ -0,0 +1,22 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+
+/**
+ * Interface used to create new invariant rule model element in the configuration model
+ */
+public interface IConfigurationModelCreation<T extends InvariantRuleConfiguration> {
+
+ public T createConfigurationModel();
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IInvariantCreationElementValidator.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IInvariantCreationElementValidator.java
new file mode 100644
index 00000000000..b46c5bcd43a
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IInvariantCreationElementValidator.java
@@ -0,0 +1,24 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import org.eclipse.papyrus.infra.extendedtypes.ICreationElementValidator;
+
+
+/**
+ *
+ */
+public interface IInvariantCreationElementValidator<T extends InvariantRuleConfiguration> extends ICreationElementValidator {
+
+ void init(T configuration);
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IInvariantRuleExtensionPoint.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IInvariantRuleExtensionPoint.java
new file mode 100644
index 00000000000..399879f659f
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/IInvariantRuleExtensionPoint.java
@@ -0,0 +1,38 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import org.eclipse.papyrus.infra.extendedtypes.Activator;
+
+
+/**
+ * @author RS211865
+ */
+public interface IInvariantRuleExtensionPoint {
+
+ /** ID of the extension point */
+ public final static String EXTENSION_POINT_ID = Activator.PLUGIN_ID + ".invariantRule";
+
+ public static final String ELEMENT_MATCHER_CLASS = "elementMatcher";
+
+ public static final String CONTAINER_DESCRIPTOR_CLASS = "semanticTypeDescriptor";
+
+ public static final String EDIT_HELPER_ADVICE_CLASS = "editHelperAdvice";
+
+ public static final String RULE_CONFIGURATION_CLASS = "configurationClass";
+
+ public static final String CONFIGURATION_MODEL_CREATION = "configurationModelCreation";
+
+ public static final String CREATION_ELEMENT_VALIDATOR_CLASS = "creationElementValidator";
+
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantElementTypeFactory.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantElementTypeFactory.java
new file mode 100644
index 00000000000..59884560cbb
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantElementTypeFactory.java
@@ -0,0 +1,64 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import org.eclipse.gmf.runtime.emf.type.core.IContainerDescriptor;
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelperAdvice;
+import org.eclipse.papyrus.infra.extendedtypes.ICreationElementValidator;
+
+/**
+ * Factory used to create ElementType from a {@link InvariantSemanticTypeConfiguration}.
+ */
+public class InvariantElementTypeFactory extends AbstractExtendedElementTypeFactory<InvariantSemanticTypeConfiguration> {
+
+ /**
+ * {@inheritDoc}
+ */
+ public ICreationElementValidator createElementCreationValidator(InvariantSemanticTypeConfiguration configuration) {
+ return RuleConfigurationFactoryRegistry.getInstance().createCreationElementValidator(configuration.getInvariantRuleConfiguration());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected String getSemanticHint(InvariantSemanticTypeConfiguration configuration) {
+ return configuration.getHint();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected IEditHelperAdvice createEditHelperAdvice(InvariantSemanticTypeConfiguration configuration) {
+ return RuleConfigurationFactoryRegistry.getInstance().createEditHelperAdvice(configuration.getInvariantRuleConfiguration());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected IContainerDescriptor createContainerDescriptor(InvariantSemanticTypeConfiguration configuration) {
+ return RuleConfigurationFactoryRegistry.getInstance().createContainerDescriptor(configuration.getInvariantRuleConfiguration());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected IElementMatcher createElementMatcher(InvariantSemanticTypeConfiguration configuration) {
+ return RuleConfigurationFactoryRegistry.getInstance().createMatcher(configuration.getInvariantRuleConfiguration());
+ }
+
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeContainerDescriptor.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeContainerDescriptor.java
new file mode 100644
index 00000000000..016fbfc7b7c
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeContainerDescriptor.java
@@ -0,0 +1,47 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.gmf.runtime.emf.type.core.IContainerDescriptor;
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+
+
+/**
+ * @author RS211865
+ */
+public class InvariantSemanticTypeContainerDescriptor implements IContainerDescriptor {
+
+ /**
+ * @param configuration
+ */
+ public InvariantSemanticTypeContainerDescriptor(InvariantSemanticTypeConfiguration configuration) {
+
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public IElementMatcher getMatcher() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public EReference[] getContainmentFeatures() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeEditHelperAdvice.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeEditHelperAdvice.java
new file mode 100644
index 00000000000..4d563ce3d03
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeEditHelperAdvice.java
@@ -0,0 +1,30 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
+
+
+/**
+ * Advice based on invariants
+ */
+public class InvariantSemanticTypeEditHelperAdvice extends AbstractEditHelperAdvice {
+
+ /**
+ * @param configuration
+ */
+ public InvariantSemanticTypeEditHelperAdvice(InvariantSemanticTypeConfiguration configuration) {
+ // TODO Auto-generated constructor stub
+ }
+
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeMatcher.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeMatcher.java
new file mode 100644
index 00000000000..e8246180938
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/InvariantSemanticTypeMatcher.java
@@ -0,0 +1,42 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+
+
+/**
+ * Matcher based on a set of rules
+ */
+public class InvariantSemanticTypeMatcher implements IElementMatcher {
+
+ protected InvariantSemanticTypeConfiguration configuration;
+
+ /**
+ * @param configuration
+ */
+ public InvariantSemanticTypeMatcher(InvariantSemanticTypeConfiguration configuration) {
+ this.configuration = configuration;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean matches(EObject eObject) {
+
+
+
+ return false;
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRuleCreationElementValidator.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRuleCreationElementValidator.java
new file mode 100644
index 00000000000..810510e6200
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRuleCreationElementValidator.java
@@ -0,0 +1,52 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+
+/**
+ * @author RS211865
+ */
+public class OrRuleCreationElementValidator implements IInvariantCreationElementValidator<OrRule> {
+
+ protected List<IInvariantCreationElementValidator<InvariantRuleConfiguration>> composedValidators;
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean canCreate(CreateElementRequest request) {
+ for(IInvariantCreationElementValidator<InvariantRuleConfiguration> creationElementValidator : composedValidators) {
+ if(creationElementValidator.canCreate(request)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init(OrRule configuration) {
+ composedValidators = new ArrayList<IInvariantCreationElementValidator<InvariantRuleConfiguration>>();
+ for(InvariantRuleConfiguration composedRule : configuration.getComposedRules()) {
+ IInvariantCreationElementValidator<InvariantRuleConfiguration> creationElementValidator = RuleConfigurationFactoryRegistry.getInstance().createCreationElementValidator(composedRule);
+ if(creationElementValidator != null) {
+ composedValidators.add(creationElementValidator);
+ }
+ }
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRuleEditHelperAdvice.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRuleEditHelperAdvice.java
new file mode 100644
index 00000000000..39d65b1d44e
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRuleEditHelperAdvice.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelperAdvice;
+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
+
+
+/**
+ * @author RS211865
+ */
+public class OrRuleEditHelperAdvice extends AbstractEditHelperAdvice implements IConfigurableEditHelperAdvice<OrRule> {
+
+ protected List<IConfigurableEditHelperAdvice<InvariantRuleConfiguration>> composedEditHelperAdvices;
+
+ public OrRuleEditHelperAdvice() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init(OrRule ruleConfiguration) {
+ // configuration should be a AndRule as declared in the extension point
+ composedEditHelperAdvices = new ArrayList<IConfigurableEditHelperAdvice<InvariantRuleConfiguration>>();
+ for(InvariantRuleConfiguration composedRule : ruleConfiguration.getComposedRules()) {
+ IConfigurableEditHelperAdvice<InvariantRuleConfiguration> editHelperAdvice = RuleConfigurationFactoryRegistry.getInstance().createEditHelperAdvice(composedRule);
+ if(editHelperAdvice != null) {
+ composedEditHelperAdvices.add(editHelperAdvice);
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean approveRequest(IEditCommandRequest request) {
+ // to approve the request, all the composed edit helper advices should approve it
+ for(IEditHelperAdvice advice : composedEditHelperAdvices) {
+ if(advice.approveRequest(request)) {
+ return true;
+ }
+ }
+ // return no only if no advice approves the request. As soon as one approves, return true
+ return false;
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRuleElementMatcher.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRuleElementMatcher.java
new file mode 100644
index 00000000000..b17ee120789
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/OrRuleElementMatcher.java
@@ -0,0 +1,65 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+
+/**
+ * @author RS211865
+ */
+public class OrRuleElementMatcher implements IConfigurableElementMatcher<OrRule> {
+
+ protected List<IElementMatcher> composedMatchers;
+
+ /**
+ *
+ */
+ public OrRuleElementMatcher() {
+ // nothing here
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean matches(EObject eObject) {
+ // deactivate if list of rules is empty
+ if(composedMatchers == null || composedMatchers.isEmpty()) {
+ return false;
+ }
+ for(IElementMatcher matcher : composedMatchers) {
+ if(matcher.matches(eObject)) {
+ return true;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init(OrRule configuration) {
+ // for each children configuraton, generates the matcher class and then, the 'matches' method of this matcher will delegate to the matches of the sub rules, and will add all results together
+ // configuration should be a AndRule as declared in the extension point
+ composedMatchers = new ArrayList<IElementMatcher>();
+ for(InvariantRuleConfiguration composedRule : configuration.getComposedRules()) {
+ IElementMatcher matcher = RuleConfigurationFactoryRegistry.getInstance().createMatcher(composedRule);
+ if(matcher != null) {
+ composedMatchers.add(matcher);
+ }
+ }
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/RuleConfigurationFactoryRegistry.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/RuleConfigurationFactoryRegistry.java
new file mode 100644
index 00000000000..83e3e9c7eed
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/invariantsemantictypeconfiguration/RuleConfigurationFactoryRegistry.java
@@ -0,0 +1,456 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.invariantsemantictypeconfiguration;
+
+import java.lang.ref.WeakReference;
+import java.util.Collections;
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+import org.eclipse.papyrus.infra.extendedtypes.Activator;
+import org.osgi.framework.Bundle;
+
+/**
+ * Registry for all matcher factories.
+ */
+public class RuleConfigurationFactoryRegistry {
+
+ /** private singleton instance */
+ private static RuleConfigurationFactoryRegistry registry;
+
+ /** map configuration type to matcher descriptor */
+ protected Map<String, ConfigurableClassDescriptor> configurationTypeToClassDescriptor = null;
+
+ /**
+ * returns the singleton instance of this registry
+ *
+ * @return the singleton instance of this registry
+ */
+ public static synchronized RuleConfigurationFactoryRegistry getInstance() {
+ if(registry == null) {
+ registry = new RuleConfigurationFactoryRegistry();
+ registry.init();
+ }
+ return registry;
+ }
+
+ /**
+ * Inits the registry.
+ */
+ protected void init() {
+ configurationTypeToClassDescriptor = new HashMap<String, RuleConfigurationFactoryRegistry.ConfigurableClassDescriptor>();
+ //read invariant rule configuration etension point
+ IConfigurationElement[] elements = Platform.getExtensionRegistry().getConfigurationElementsFor(IInvariantRuleExtensionPoint.EXTENSION_POINT_ID);
+ // for each element, parses and retrieve the model file. then loads it and returns the root element
+ for(IConfigurationElement configurationElement : elements) {
+ // contributor will always be the same, but implementation could be different.
+ String contributorName = configurationElement.getContributor().getName();
+
+ String configurationClass = configurationElement.getAttribute(IInvariantRuleExtensionPoint.RULE_CONFIGURATION_CLASS);
+
+ String matcherClassName = configurationElement.getAttribute(IInvariantRuleExtensionPoint.ELEMENT_MATCHER_CLASS);
+ String editHelperAdviceClassName = configurationElement.getAttribute(IInvariantRuleExtensionPoint.EDIT_HELPER_ADVICE_CLASS);
+ String containerDescriptorClassName = configurationElement.getAttribute(IInvariantRuleExtensionPoint.CONTAINER_DESCRIPTOR_CLASS);
+ String creationElementValidatorClassName = configurationElement.getAttribute(IInvariantRuleExtensionPoint.CREATION_ELEMENT_VALIDATOR_CLASS);
+
+ ConfigurableClassDescriptor configurableClassDescriptor = new ConfigurableClassDescriptor(contributorName, matcherClassName, contributorName, editHelperAdviceClassName, contributorName, containerDescriptorClassName, contributorName, creationElementValidatorClassName);
+ configurationTypeToClassDescriptor.put(configurationClass, configurableClassDescriptor);
+ }
+
+ }
+
+ /**
+ * Creates the {@link IElementMatcher} specific to the given rule configuration
+ *
+ * @param ruleConfiguration
+ * the rule configuration that will configure the created matcher
+ * @return the {@link IElementMatcher} created or <code>null</code> if none could be created
+ */
+ public IConfigurableElementMatcher<InvariantRuleConfiguration> createMatcher(InvariantRuleConfiguration ruleConfiguration) {
+ // creates the matcher from the extension points
+ Class<IConfigurableElementMatcher<InvariantRuleConfiguration>> elementMatcherClass = getMatcherClass(ruleConfiguration);
+ if(elementMatcherClass == null) {
+ return null;
+ }
+ try {
+ IConfigurableElementMatcher<InvariantRuleConfiguration> matcher = elementMatcherClass.newInstance();
+ if(matcher != null) {
+ matcher.init(ruleConfiguration);
+ }
+ return matcher;
+ } catch (InstantiationException e) {
+ Activator.log.error(e);
+ } catch (IllegalAccessException e) {
+ Activator.log.error(e);
+ }
+ return null;
+ }
+
+ /**
+ * @param ruleConfiguration
+ * @return
+ */
+ public IConfigurableContainerDescriptor<InvariantRuleConfiguration> createContainerDescriptor(InvariantRuleConfiguration ruleConfiguration) {
+ Class<IConfigurableContainerDescriptor<InvariantRuleConfiguration>> containerDescriptorClass = getContainerDescriptorClass(ruleConfiguration);
+ if(containerDescriptorClass == null) {
+ return null;
+ }
+ try {
+ IConfigurableContainerDescriptor<InvariantRuleConfiguration> containerDescriptor = containerDescriptorClass.newInstance();
+ if(containerDescriptor != null) {
+ containerDescriptor.init(ruleConfiguration);
+ }
+ return containerDescriptor;
+ } catch (InstantiationException e) {
+ Activator.log.error(e);
+ } catch (IllegalAccessException e) {
+ Activator.log.error(e);
+ }
+ return null;
+ }
+
+ /**
+ * @param ruleConfiguration
+ * @return
+ */
+ public IConfigurableEditHelperAdvice<InvariantRuleConfiguration> createEditHelperAdvice(InvariantRuleConfiguration ruleConfiguration) {
+ Class<IConfigurableEditHelperAdvice<InvariantRuleConfiguration>> editHelperAdviceClass = getEditHelperAdviceClass(ruleConfiguration);
+ if(editHelperAdviceClass == null) {
+ Activator.log.error("impossible to find the edit helper advice implementation for configuration type : " + ((ruleConfiguration!=null) ? ruleConfiguration.eClass().getName() : "null"), null);
+ return null;
+ }
+ try {
+ IConfigurableEditHelperAdvice<InvariantRuleConfiguration> editHelperAdvice = editHelperAdviceClass.newInstance();
+ if(editHelperAdvice != null) {
+ editHelperAdvice.init(ruleConfiguration);
+ }
+ return editHelperAdvice;
+ } catch (InstantiationException e) {
+ Activator.log.error(e);
+ } catch (IllegalAccessException e) {
+ Activator.log.error(e);
+ }
+ return null;
+ }
+
+ /**
+ * @param ruleConfiguration
+ * @return
+ */
+ public IInvariantCreationElementValidator<InvariantRuleConfiguration> createCreationElementValidator(InvariantRuleConfiguration ruleConfiguration) {
+ Class<IInvariantCreationElementValidator<InvariantRuleConfiguration>> creationElementValidatorClass = getCreationElementValidatorClass(ruleConfiguration);
+ if(creationElementValidatorClass == null) {
+ // Activator.log.error("impossible to find the Creation Element Validator for configuration type : " + ((ruleConfiguration!=null) ? ruleConfiguration.eClass().getName() : "null"), null);
+ return null;
+ }
+ try {
+ IInvariantCreationElementValidator<InvariantRuleConfiguration> creationElementValidator = creationElementValidatorClass.newInstance();
+ if(creationElementValidator != null) {
+ creationElementValidator.init(ruleConfiguration);
+ }
+ return creationElementValidator;
+ } catch (InstantiationException e) {
+ Activator.log.error(e);
+ } catch (IllegalAccessException e) {
+ Activator.log.error(e);
+ }
+ return null;
+ }
+
+
+ /**
+ * @param ruleConfiguration
+ * @return
+ */
+ @SuppressWarnings("unchecked")
+ protected Class<IInvariantCreationElementValidator<InvariantRuleConfiguration>> getCreationElementValidatorClass(InvariantRuleConfiguration configuration) {
+ String configurationType = configuration.eClass().getInstanceClassName();
+ String className = configurationTypeToClassDescriptor.get(configurationType).getCreationElementValidatorClassName();
+ String contributorName = configurationTypeToClassDescriptor.get(configurationType).getCreationElementValidatorContributorName();
+
+ // look in the list of registered matcher for the right one
+ if(className ==null) {
+ //Activator.log.error("There should be an implementation class for the configuration "+configurationType+ " from contributor "+contributorName, null);
+ } else if(contributorName !=null) {
+ return (Class<IInvariantCreationElementValidator<InvariantRuleConfiguration>>)loadClass(className, contributorName);
+ }
+ return null;
+ }
+
+ /**
+ * @param configurationType
+ * @return
+ */
+ @SuppressWarnings("unchecked")
+ protected Class<IConfigurableElementMatcher<InvariantRuleConfiguration>> getMatcherClass(InvariantRuleConfiguration configuration) {
+
+ String configurationType = configuration.eClass().getInstanceClassName();
+ String className = configurationTypeToClassDescriptor.get(configurationType).getElementMatcherClassName();
+ String contributorName = configurationTypeToClassDescriptor.get(configurationType).getElementMatcherContributorName();
+
+ // look in the list of registered matcher for the right one
+ if(className !=null && contributorName !=null) {
+ return (Class<IConfigurableElementMatcher<InvariantRuleConfiguration>>)loadClass(className, contributorName);
+ }
+ return null;
+ }
+
+ /**
+ * @param configurationType
+ * @return
+ */
+ @SuppressWarnings("unchecked")
+ protected Class<IConfigurableEditHelperAdvice<InvariantRuleConfiguration>> getEditHelperAdviceClass(InvariantRuleConfiguration configuration) {
+ String configurationType = configuration.eClass().getInstanceClassName();
+ String className = configurationTypeToClassDescriptor.get(configurationType).getEditHelperAdviceClassName();
+ String contributorName = configurationTypeToClassDescriptor.get(configurationType).getEditHelperAdviceContributorName();
+
+ // look in the list of registered edit helper advices for the right one
+ return (Class<IConfigurableEditHelperAdvice<InvariantRuleConfiguration>>)loadClass(className, contributorName);
+ }
+
+ /**
+ * @param configurationType
+ * @return
+ */
+ @SuppressWarnings("unchecked")
+ protected Class<IConfigurableContainerDescriptor<InvariantRuleConfiguration>> getContainerDescriptorClass(InvariantRuleConfiguration configuration) {
+ String configurationType = configuration.eClass().getInstanceClassName();
+ String className = configurationTypeToClassDescriptor.get(configurationType).getContainerDescriptorClassName();
+ String contributorName = configurationTypeToClassDescriptor.get(configurationType).getContainerDescriptorContributorName();
+
+
+ // look in the list of registered edit helper advices for the right one
+ if(className !=null && contributorName !=null) {
+ return (Class<IConfigurableContainerDescriptor<InvariantRuleConfiguration>>)loadClass(className, contributorName);
+ }
+ return null;
+ }
+
+ protected static class ConfigurableClassDescriptor {
+
+ /**
+ * @param elementMatcherContributorName
+ * @param elementMatcherClassName
+ * @param editHelperAdviceContributorName
+ * @param editHelperAdviceClassName
+ * @param containerDescriptorContributorName
+ * @param containerDescriptorClassName
+ */
+ public ConfigurableClassDescriptor(String elementMatcherContributorName, String elementMatcherClassName, String editHelperAdviceContributorName, String editHelperAdviceClassName, String containerDescriptorContributorName, String containerDescriptorClassName, String creationElementValidatorContributorName, String creationElementValidatorClassName) {
+ this.elementMatcherContributorName = elementMatcherContributorName;
+ this.elementMatcherClassName = elementMatcherClassName;
+ this.editHelperAdviceContributorName = editHelperAdviceContributorName;
+ this.editHelperAdviceClassName = editHelperAdviceClassName;
+ this.containerDescriptorContributorName = containerDescriptorContributorName;
+ this.containerDescriptorClassName = containerDescriptorClassName;
+ this.creationElementValidatorContributorName = creationElementValidatorContributorName;
+ this.creationElementValidatorClassName = creationElementValidatorClassName;
+ }
+
+ private final String elementMatcherContributorName;
+
+ private final String elementMatcherClassName;
+
+ private final String editHelperAdviceContributorName;
+
+ private final String editHelperAdviceClassName;
+
+ private final String containerDescriptorContributorName;
+
+ private final String containerDescriptorClassName;
+
+ private final String creationElementValidatorContributorName;
+
+ private final String creationElementValidatorClassName;
+
+ /**
+ * @return
+ */
+ public String getCreationElementValidatorContributorName() {
+ return creationElementValidatorContributorName;
+ }
+
+ /**
+ * @return
+ */
+ public String getCreationElementValidatorClassName() {
+ return creationElementValidatorClassName;
+ }
+
+ /**
+ * @return the elementMatcherContributorName
+ */
+ public String getElementMatcherContributorName() {
+ return elementMatcherContributorName;
+ }
+
+
+ /**
+ * @return the elementMatcherClassName
+ */
+ public String getElementMatcherClassName() {
+ return elementMatcherClassName;
+ }
+
+
+ /**
+ * @return the editHelperAdviceContributorName
+ */
+ public String getEditHelperAdviceContributorName() {
+ return editHelperAdviceContributorName;
+ }
+
+
+ /**
+ * @return the editHelperAdviceClassName
+ */
+ public String getEditHelperAdviceClassName() {
+ return editHelperAdviceClassName;
+ }
+
+
+ /**
+ * @return the containerDescriptorContributorName
+ */
+ public String getContainerDescriptorContributorName() {
+ return containerDescriptorContributorName;
+ }
+
+
+ /**
+ * @return the containerDescriptorClassName
+ */
+ public String getContainerDescriptorClassName() {
+ return containerDescriptorClassName;
+ }
+
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // loading resource
+ ///////////////////////////////////////////////////////////////////////////
+ /** A map of classes that have been successfully loaded, keyed on the class name optionally prepended by the plugin ID, if specified. */
+ private static Map<String, WeakReference<Class<?>>> successLookupTable = new HashMap<String, WeakReference<Class<?>>>();
+
+ /** A map of classes that could not be loaded, keyed on the class name, optionally prepended by the plugin ID if specified. */
+ private static Set<String> failureLookupTable = new HashSet<String>();
+
+ /** A map to hold the bundle to exception list */
+ private static Map<Bundle, Set<String>> bundleToExceptionsSetMap = new HashMap<Bundle, Set<String>>();
+
+ /**
+ * A utility method to load a class using its name and a given class loader.
+ *
+ * @param className
+ * The class name
+ * @param bundle
+ * The class loader
+ * @return The loaded class or <code>null</code> if could not be loaded
+ */
+ protected static Class<?> loadClass(String className, String pluginId) {
+ StringBuffer keyStringBuf = new StringBuffer(className.length() + pluginId.length() + 2); // 2 is for . and extra.
+ keyStringBuf.append(pluginId);
+ keyStringBuf.append('.');
+ keyStringBuf.append(className);
+ String keyString = keyStringBuf.toString();
+ WeakReference<Class<?>> ref = successLookupTable.get(keyString);
+ Class<?> found = (ref != null) ? ref.get() : null;
+ if(found == null) {
+ if(ref != null)
+ successLookupTable.remove(keyString);
+ if(!failureLookupTable.contains(keyString)) {
+ try {
+ Bundle bundle = basicGetPluginBundle(pluginId);
+ if(bundle != null) {
+ // never load the class if the bundle is not active other wise
+ // we will cause the plugin to load
+ // unless the class is in the exception list
+ int state = bundle.getState();
+ if(state == org.osgi.framework.Bundle.ACTIVE || isInExceptionList(bundle, className)) {
+ found = bundle.loadClass(className);
+ successLookupTable.put(keyString, new WeakReference<Class<?>>(found));
+ if(state == org.osgi.framework.Bundle.ACTIVE) {
+ bundleToExceptionsSetMap.remove(bundle);
+ }
+ }
+ } else {
+ failureLookupTable.add(keyString);
+ }
+ } catch (ClassNotFoundException e) {
+ failureLookupTable.add(keyString);
+ }
+ }
+ }
+ return found;
+ }
+
+ /**
+ * Given a bundle id, it checks if the bundle is found and activated. If it
+ * is, the method returns the bundle, otherwise it returns <code>null</code>.
+ *
+ * @param pluginId
+ * the bundle ID
+ * @return the bundle, if found
+ */
+ protected static Bundle getPluginBundle(String pluginId) {
+ Bundle bundle = basicGetPluginBundle(pluginId);
+ if(null != bundle && bundle.getState() == org.osgi.framework.Bundle.ACTIVE)
+ return bundle;
+ return null;
+ }
+
+ private static Bundle basicGetPluginBundle(String pluginId) {
+ return Platform.getBundle(pluginId);
+ }
+
+ private static boolean isInExceptionList(Bundle bundle, String className) {
+ String packageName = className.substring(0, className.lastIndexOf('.'));
+ Set<String> exceptionSet = bundleToExceptionsSetMap.get(bundle);
+ if(exceptionSet == null) {
+ Dictionary<String, String> dict = bundle.getHeaders();
+ String value = dict.get("Eclipse-LazyStart"); //$NON-NLS-1$
+ if(value != null) {
+ int index = value.indexOf("exceptions"); //$NON-NLS-1$
+ if(index != -1) {
+ try {
+ int start = value.indexOf('"', index + 1);
+ int end = value.indexOf('"', start + 1);
+ String exceptions = value.substring(start + 1, end);
+ exceptionSet = new HashSet<String>(2);
+ StringTokenizer tokenizer = new StringTokenizer(exceptions, ","); //$NON-NLS-1$
+ while(tokenizer.hasMoreTokens()) {
+ exceptionSet.add(tokenizer.nextToken().trim());
+ }
+ } catch (IndexOutOfBoundsException exception) {
+ // this means the MF did not follow the documented format for the exceptions list so i'll consider it empty
+ exceptionSet = Collections.emptySet();
+ }
+ } else {
+ exceptionSet = Collections.emptySet();
+ }
+ } else {
+ exceptionSet = Collections.emptySet();
+ }
+ bundleToExceptionsSetMap.put(bundle, exceptionSet);
+ }
+ return exceptionSet.contains(packageName);
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/providers/ProviderNotFoundException.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/providers/ProviderNotFoundException.java
index 6bf6503f25a..6541bd06a15 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/providers/ProviderNotFoundException.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/providers/ProviderNotFoundException.java
@@ -1,36 +1,36 @@
-/*****************************************************************************
- * Copyright (c) 2010 CEA LIST.
- *
- * 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:
- * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.infra.extendedtypes.providers;
-
-import org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration;
-
-
-/**
- * Exception thrown when a provider was not found
- */
-public class ProviderNotFoundException extends Exception {
-
- /** serial UID */
- private static final long serialVersionUID = 8919294410894098831L;
-
- /**
- * Constructor.
- *
- * @param configuration
- * the configuration for which a provider was searched
- *
- */
- public ProviderNotFoundException(ActionConfiguration configuration) {
- super("Provider not found for configuration " + ((configuration != null) ? configuration.getLabel() : "null") + "[" + ((configuration != null) ? configuration.getId() : "null") + "]");
- }
-
-}
+/*****************************************************************************
+ * Copyright (c) 2010 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.providers;
+
+import org.eclipse.papyrus.infra.extendedtypes.ActionConfiguration;
+
+
+/**
+ * Exception thrown when a provider was not found
+ */
+public class ProviderNotFoundException extends Exception {
+
+ /** serial UID */
+ private static final long serialVersionUID = 8919294410894098831L;
+
+ /**
+ * Constructor.
+ *
+ * @param configuration
+ * the configuration for which a provider was searched
+ *
+ */
+ public ProviderNotFoundException(ActionConfiguration configuration) {
+ super();
+ }
+
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/semantic/ISemanticTypeFactory.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/semantic/ISemanticTypeFactory.java
new file mode 100644
index 00000000000..4c2edf960db
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/semantic/ISemanticTypeFactory.java
@@ -0,0 +1,23 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.semantic;
+
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+
+/**
+ * Interface that must be implemented by each factory relying on the semanticTypeFactory extension point.
+ */
+public interface ISemanticTypeFactory {
+
+ /** creates the element type from the given configuration */
+ IElementType createElementType();
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/ExtendedHintedElementType.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/ExtendedHintedElementType.java
new file mode 100644
index 00000000000..caa71d405a6
--- /dev/null
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/ExtendedHintedElementType.java
@@ -0,0 +1,71 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.types;
+
+import java.net.URL;
+
+import org.eclipse.gmf.runtime.emf.type.core.IContainerDescriptor;
+import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.SpecializationType;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelperAdvice;
+import org.eclipse.papyrus.infra.extendedtypes.ICreationElementValidator;
+
+
+/**
+ * @author RS211865
+ */
+public class ExtendedHintedElementType extends SpecializationType implements IExtendedHintedElementType {
+
+ private String semanticHint;
+
+ protected ICreationElementValidator creationElementValidator;
+
+ /**
+ * @param id
+ * @param iconURL
+ * @param displayName
+ * @param elementTypes
+ * @param matcher
+ * @param descriptor
+ * @param editHelperAdvice
+ * @param iElementCreationValidator
+ */
+ public ExtendedHintedElementType(String id, URL iconURL, String displayName, IElementType[] elementTypes, IElementMatcher matcher, IContainerDescriptor descriptor, IEditHelperAdvice editHelperAdvice, String semanticHint, ICreationElementValidator creationElementValidator) {
+ super(id, iconURL, displayName, elementTypes, matcher, descriptor, editHelperAdvice);
+ this.semanticHint = semanticHint;
+ this.creationElementValidator = creationElementValidator;
+ }
+
+ /**
+ * Gets the semantic hint.
+ */
+ public String getSemanticHint() {
+ return semanticHint;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public ICreationElementValidator getElementCreationValidator() {
+ return creationElementValidator;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString() {
+ return "Extended Type: "+getDisplayName()+" ["+getId()+"]";
+ }
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/ExtendedHintedTypeFactory.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/ExtendedHintedTypeFactory.java_bak
index 8c20fdcb626..c1cefbd6660 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/ExtendedHintedTypeFactory.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/ExtendedHintedTypeFactory.java_bak
@@ -1,125 +1,123 @@
-/*****************************************************************************
- * Copyright (c) 2010 CEA LIST.
- *
- *
- * 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:
- * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.infra.extendedtypes.types;
-
-import org.eclipse.gmf.runtime.emf.type.core.AbstractElementTypeFactory;
-import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
-import org.eclipse.gmf.runtime.emf.type.core.ISpecializationTypeDescriptor;
-import org.eclipse.gmf.runtime.emf.type.core.SpecializationType;
-import org.eclipse.gmf.runtime.emf.type.core.internal.impl.HintedTypeFactory;
-import org.eclipse.papyrus.infra.extendedtypes.Activator;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedSemanticTypeDescriptor;
-
-
-/**
- * Factory for ExtendedHintedType elements
- */
-public class ExtendedHintedTypeFactory extends AbstractElementTypeFactory {
-
- /**
- * The hinted type kind. This string is specified in the XML 'kind'
- * attribute of any element type that is a hinted type.
- */
- public static final String HINTED_TYPE_KIND = "org.eclipse.gmf.runtime.emf.core.internal.util.IHintedType"; //$NON-NLS-1$
-
- /**
- * The semantic hint parameter name.
- */
- public static final String SEMANTIC_HINT_PARAM_NAME = "semanticHint"; //$NON-NLS-1$
-
- /** singleton instance of this factory */
- private static ExtendedHintedTypeFactory instance;
-
- /**
- * Returns the singleton instance of this factory.
- *
- * @return the singleton instance of this factory.
- */
- public synchronized static ExtendedHintedTypeFactory getInstance() {
- if(instance == null) {
- instance = new ExtendedHintedTypeFactory();
- }
- return instance;
- }
-
- /**
- * Private Constructor.
- *
- */
- private ExtendedHintedTypeFactory() {
-
- }
-
- /**
- * The extended hinted specialization type class.
- */
- private static final class ExtendedHintedSpecializationType extends SpecializationType implements IExtendedHintedElementType {
-
- /** The semantic hint */
- private final String semanticHint;
-
- /** element type configuration */
- private final ExtendedElementTypeConfiguration configuration;
-
- /**
- * Constructs a new hinted type.
- *
- * @param descriptor
- * the specialization type descriptor
- * @param semanticHint
- * the semantic hint
- */
- public ExtendedHintedSpecializationType(ISpecializationTypeDescriptor descriptor, String semanticHint, ExtendedElementTypeConfiguration configuration) {
- super(descriptor);
- this.semanticHint = semanticHint;
- this.configuration = configuration;
- }
-
- /**
- * Gets the semantic hint.
- */
- public String getSemanticHint() {
- return semanticHint;
- }
-
- /**
- * {@inheritDoc}
- */
- public ExtendedElementTypeConfiguration getConfiguration() {
- return configuration;
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @SuppressWarnings("restriction")
- @Override
- public ISpecializationType createSpecializationType(ISpecializationTypeDescriptor descriptor) {
-
- String semanticHint = descriptor.getParamValue(SEMANTIC_HINT_PARAM_NAME);
-
- if(descriptor instanceof ExtendedSemanticTypeDescriptor) {
- ExtendedElementTypeConfiguration configuration = ((ExtendedSemanticTypeDescriptor)descriptor).getConfiguration();
- return new ExtendedHintedSpecializationType(descriptor, semanticHint, configuration);
- }
-
- // used default factory. Should never happen
- Activator.log.warn("The Extended type factory should never use HintedTypeFactory from GMF");
- return new HintedTypeFactory().createSpecializationType(descriptor);
- }
-
-
-}
+/*****************************************************************************
+ * Copyright (c) 2010 CEA LIST.
+ *
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.types;
+
+import org.eclipse.gmf.runtime.emf.type.core.AbstractElementTypeFactory;
+import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
+import org.eclipse.gmf.runtime.emf.type.core.ISpecializationTypeDescriptor;
+import org.eclipse.gmf.runtime.emf.type.core.SpecializationType;
+import org.eclipse.gmf.runtime.emf.type.core.internal.impl.HintedTypeFactory;
+import org.eclipse.papyrus.infra.extendedtypes.Activator;
+
+
+/**
+ * Factory for ExtendedHintedType elements
+ */
+public class ExtendedHintedTypeFactory extends AbstractElementTypeFactory {
+
+ /**
+ * The hinted type kind. This string is specified in the XML 'kind'
+ * attribute of any element type that is a hinted type.
+ */
+ public static final String HINTED_TYPE_KIND = "org.eclipse.gmf.runtime.emf.core.internal.util.IHintedType"; //$NON-NLS-1$
+
+ /**
+ * The semantic hint parameter name.
+ */
+ public static final String SEMANTIC_HINT_PARAM_NAME = "semanticHint"; //$NON-NLS-1$
+
+ /** singleton instance of this factory */
+ private static ExtendedHintedTypeFactory instance;
+
+ /**
+ * Returns the singleton instance of this factory.
+ *
+ * @return the singleton instance of this factory.
+ */
+ public synchronized static ExtendedHintedTypeFactory getInstance() {
+ if(instance == null) {
+ instance = new ExtendedHintedTypeFactory();
+ }
+ return instance;
+ }
+
+ /**
+ * Private Constructor.
+ *
+ */
+ private ExtendedHintedTypeFactory() {
+
+ }
+
+ /**
+ * The extended hinted specialization type class.
+ */
+ private static final class ExtendedHintedSpecializationType extends SpecializationType implements IExtendedHintedElementType {
+
+ /** The semantic hint */
+ private final String semanticHint;
+
+ /** element type configuration */
+ private final ExtendedElementTypeConfiguration configuration;
+
+ /**
+ * Constructs a new hinted type.
+ *
+ * @param descriptor
+ * the specialization type descriptor
+ * @param semanticHint
+ * the semantic hint
+ */
+ public ExtendedHintedSpecializationType(ISpecializationTypeDescriptor descriptor, String semanticHint, ExtendedElementTypeConfiguration configuration) {
+ super(descriptor);
+ this.semanticHint = semanticHint;
+ this.configuration = configuration;
+ }
+
+ /**
+ * Gets the semantic hint.
+ */
+ public String getSemanticHint() {
+ return semanticHint;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public ExtendedElementTypeConfiguration getConfiguration() {
+ return configuration;
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @SuppressWarnings("restriction")
+ @Override
+ public ISpecializationType createSpecializationType(ISpecializationTypeDescriptor descriptor) {
+
+ String semanticHint = descriptor.getParamValue(SEMANTIC_HINT_PARAM_NAME);
+
+ if(descriptor instanceof ExtendedSemanticTypeDescriptor) {
+ ExtendedElementTypeConfiguration configuration = ((ExtendedSemanticTypeDescriptor)descriptor).getConfiguration();
+ return new ExtendedHintedSpecializationType(descriptor, semanticHint, configuration);
+ }
+
+ // used default factory. Should never happen
+ Activator.log.warn("The Extended type factory should never use HintedTypeFactory from GMF");
+ return new HintedTypeFactory().createSpecializationType(descriptor);
+ }
+
+
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/IExtendedHintedElementType.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/IExtendedHintedElementType.java
index 39afa41a5bc..ef908045961 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/IExtendedHintedElementType.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/types/IExtendedHintedElementType.java
@@ -1,31 +1,25 @@
-/*****************************************************************************
- * Copyright (c) 2010 CEA LIST.
- *
- *
- * 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:
- * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.infra.extendedtypes.types;
-
-import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
-import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration;
-
-
-/**
- * Element Type that contains a configuration for extensions (Pre/Post actions and validation)
- */
-public interface IExtendedHintedElementType extends ISpecializationType, IHintedType {
-
- /**
- * Returns the Element Type configuration associated to the element type.
- * @return the Element Type configuration associated to the element type.
- */
- public ExtendedElementTypeConfiguration getConfiguration();
-}
+/*****************************************************************************
+ * Copyright (c) 2010 CEA LIST.
+ *
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.types;
+
+import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
+import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
+
+
+/**
+ * interface implemented by all configurable element types specializations
+ */
+public interface IExtendedHintedElementType extends ISpecializationType, IHintedType {
+
+}
diff --git a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/util/ElementTypeUtils.java b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/util/ElementTypeUtils.java_bak
index c6e090d9f0b..74ab27cffcd 100644
--- a/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/util/ElementTypeUtils.java
+++ b/plugins/infra/org.eclipse.papyrus.infra.extendedtypes/src/org/eclipse/papyrus/infra/extendedtypes/util/ElementTypeUtils.java_bak
@@ -1,188 +1,188 @@
-/*****************************************************************************
- * Copyright (c) 2010 CEA LIST.
- *
- *
- * 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:
- * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.infra.extendedtypes.util;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.gmf.runtime.emf.type.core.IMetamodelType;
-import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.PostActionConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.PreActionConfiguration;
-import org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType;
-import org.eclipse.papyrus.infra.queries.core.configuration.QueryConfiguration;
-
-/**
- * Utility class for {@link IElementType}.
- */
-public class ElementTypeUtils {
-
- /**
- * Tests if two elements types are equivalent
- *
- * @param referenceType
- * the reference type for the comparison
- * @param typeToCompare
- * the type that is compared to the reference one
- * @return <code>true</code> if both types are equivalent semantically
- */
- public static boolean isSemanticallyEquivalent(IElementType referenceType, IElementType typeToCompare) {
- boolean isEquivalent = true;
- // first : easy test...
- if(typeToCompare.equals(referenceType)) {
- return true;
- }
- // 2. test the kind of element.
- if(referenceType instanceof IMetamodelType) {
- if(!(typeToCompare instanceof IMetamodelType)) {
- return false;
- } else {
- EClass referenceEclass = ((IMetamodelType)referenceType).getEClass();
- EClass eclassToCompare = ((IMetamodelType)typeToCompare).getEClass();
- isEquivalent = isEquivalent && referenceEclass.equals(eclassToCompare);
- }
- } else {
- if((typeToCompare instanceof IMetamodelType)) {
- return false;
- }
- }
- // metaclasses are equivalent. check for extended types now...
- if(referenceType instanceof IExtendedHintedElementType) {
- if(typeToCompare instanceof IExtendedHintedElementType) {
- isEquivalent = isEquivalent && isSemanticallyEquivalent((IExtendedHintedElementType)referenceType, (IExtendedHintedElementType)typeToCompare);
- }
- }
- return isEquivalent;
- }
-
- /**
- * Tests if two elements types are equivalent (configuration)
- *
- * @param referenceType
- * the reference type for the comparison
- * @param typeToCompare
- * the type that is compared to the reference one
- * @return <code>true</code> if both types are equivalent semantically
- */
- public static boolean isSemanticallyEquivalent(IExtendedHintedElementType referenceType, IExtendedHintedElementType typeToCompare) {
- boolean isEquivalent = true;
- // check all pre/post action and validation
- ExtendedElementTypeConfiguration referenceConfiguration = referenceType.getConfiguration();
- ExtendedElementTypeConfiguration configurationToCompare = typeToCompare.getConfiguration();
- List<QueryConfiguration> referencePrevalidation = referenceConfiguration.getPreValidation();
- List<QueryConfiguration> prevalidationToCompare = configurationToCompare.getPreValidation();
- if(referencePrevalidation != null) {
- isEquivalent = isEquivalent && isEquivalent(referencePrevalidation, prevalidationToCompare);
- } else if(prevalidationToCompare != null) {
- isEquivalent = false;
- }
- List<PreActionConfiguration> referencePreaction = referenceConfiguration.getPreAction();
- List<PreActionConfiguration> preactionToCompare = configurationToCompare.getPreAction();
- if(referencePreaction != null) {
- isEquivalent = isEquivalent && isEquivalent(referencePreaction, preactionToCompare);
- } else if(preactionToCompare != null) {
- isEquivalent = false;
- }
- List<PostActionConfiguration> referencePostaction = referenceConfiguration.getPostAction();
- List<PostActionConfiguration> postactionToCompare = configurationToCompare.getPostAction();
- if(referencePostaction != null) {
- isEquivalent = isEquivalent && isEquivalent(referencePostaction, postactionToCompare);
- } else if(postactionToCompare != null) {
- isEquivalent = false;
- }
- return isEquivalent;
- }
-
- public static boolean isEquivalent(List<? extends EObject> referenceList, List<? extends EObject> listToCompare) {
- boolean isEquivalent = true;
- if(referenceList == null) {
- // only one is null : false
- if(listToCompare != null) {
- return false;
- } else {
- // both are null: true
- return true;
- }
- } else {
- // only one is null: false
- if(listToCompare == null) {
- return false;
- }
- }
- // check emptyness. If both empty : equivalent
- if(referenceList.isEmpty() && listToCompare.isEmpty()) {
- return true;
- }
- // check size. If different, false
- if(referenceList.size() != listToCompare.size()) {
- return false;
- }
- for(int i = 0; i < referenceList.size(); i++) {
- EObject reference = referenceList.get(i);
- EObject compared = listToCompare.get(i);
- isEquivalent = isEquivalent && EcoreUtil.equals(reference, compared);
- }
- return isEquivalent;
- }
-
- /**
- * Returns the closest non Extended element type for a given extended type
- *
- * @param requestElementType
- * the element type to study
- * @return the closest non extended element type or <code>null</code> if none was found.
- */
- public static IElementType findClosestNonExtendedElementType(IExtendedHintedElementType requestElementType) {
- List<IElementType> superTypes = new ArrayList<IElementType>(Arrays.asList(requestElementType.getAllSuperTypes()));
- // reverse order for the list, because super type returns all super types from furthest to closest, we want the other order
- Collections.reverse(superTypes);
- for(IElementType superType : superTypes) {
- if(!(superType instanceof IExtendedHintedElementType)) {
- return superType;
- }
- }
- return null;
- }
-
- /**
- * Returns the closest super type which is not an extended type
- *
- * @param elementType
- * the element type for which the super type is searched.
- * @return the closest super type non extended or <code>null</code> if none was found
- */
- public static IElementType getClosestDiagramType(IElementType elementType) {
- if(!(elementType instanceof IExtendedHintedElementType)) {
- return elementType;
- }
- // this is an extended type
- String diagramElementTypeID = ((IExtendedHintedElementType)elementType).getConfiguration().getSpecializedDiagramTypeID();
- if(diagramElementTypeID != null) {
- return getClosestDiagramType(ElementTypeRegistry.getInstance().getType(diagramElementTypeID));
- } else {
- IElementType[] superTypes = elementType.getAllSuperTypes();
- if(superTypes.length > 1) {
- return getClosestDiagramType(superTypes[superTypes.length - 1]);
- }
- }
- return null;
- }
-}
+/*****************************************************************************
+ * Copyright (c) 2010 CEA LIST.
+ *
+ *
+ * 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:
+ * Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.extendedtypes.util;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.IMetamodelType;
+import org.eclipse.papyrus.infra.extendedtypes.ExtendedElementTypeConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.PostActionConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.PreActionConfiguration;
+import org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType;
+import org.eclipse.papyrus.infra.queries.core.configuration.QueryConfiguration;
+
+/**
+ * Utility class for {@link IElementType}.
+ */
+public class ElementTypeUtils {
+
+ /**
+ * Tests if two elements types are equivalent
+ *
+ * @param referenceType
+ * the reference type for the comparison
+ * @param typeToCompare
+ * the type that is compared to the reference one
+ * @return <code>true</code> if both types are equivalent semantically
+ */
+ public static boolean isSemanticallyEquivalent(IElementType referenceType, IElementType typeToCompare) {
+ boolean isEquivalent = true;
+ // first : easy test...
+ if(typeToCompare.equals(referenceType)) {
+ return true;
+ }
+ // 2. test the kind of element.
+ if(referenceType instanceof IMetamodelType) {
+ if(!(typeToCompare instanceof IMetamodelType)) {
+ return false;
+ } else {
+ EClass referenceEclass = ((IMetamodelType)referenceType).getEClass();
+ EClass eclassToCompare = ((IMetamodelType)typeToCompare).getEClass();
+ isEquivalent = isEquivalent && referenceEclass.equals(eclassToCompare);
+ }
+ } else {
+ if((typeToCompare instanceof IMetamodelType)) {
+ return false;
+ }
+ }
+ // metaclasses are equivalent. check for extended types now...
+ if(referenceType instanceof IExtendedHintedElementType) {
+ if(typeToCompare instanceof IExtendedHintedElementType) {
+ isEquivalent = isEquivalent && isSemanticallyEquivalent((IExtendedHintedElementType)referenceType, (IExtendedHintedElementType)typeToCompare);
+ }
+ }
+ return isEquivalent;
+ }
+
+ /**
+ * Tests if two elements types are equivalent (configuration)
+ *
+ * @param referenceType
+ * the reference type for the comparison
+ * @param typeToCompare
+ * the type that is compared to the reference one
+ * @return <code>true</code> if both types are equivalent semantically
+ */
+ public static boolean isSemanticallyEquivalent(IExtendedHintedElementType referenceType, IExtendedHintedElementType typeToCompare) {
+ boolean isEquivalent = true;
+ // check all pre/post action and validation
+ ExtendedElementTypeConfiguration referenceConfiguration = referenceType.getConfiguration();
+ ExtendedElementTypeConfiguration configurationToCompare = typeToCompare.getConfiguration();
+ List<QueryConfiguration> referencePrevalidation = referenceConfiguration.getPreValidation();
+ List<QueryConfiguration> prevalidationToCompare = configurationToCompare.getPreValidation();
+ if(referencePrevalidation != null) {
+ isEquivalent = isEquivalent && isEquivalent(referencePrevalidation, prevalidationToCompare);
+ } else if(prevalidationToCompare != null) {
+ isEquivalent = false;
+ }
+ List<PreActionConfiguration> referencePreaction = referenceConfiguration.getPreAction();
+ List<PreActionConfiguration> preactionToCompare = configurationToCompare.getPreAction();
+ if(referencePreaction != null) {
+ isEquivalent = isEquivalent && isEquivalent(referencePreaction, preactionToCompare);
+ } else if(preactionToCompare != null) {
+ isEquivalent = false;
+ }
+ List<PostActionConfiguration> referencePostaction = referenceConfiguration.getPostAction();
+ List<PostActionConfiguration> postactionToCompare = configurationToCompare.getPostAction();
+ if(referencePostaction != null) {
+ isEquivalent = isEquivalent && isEquivalent(referencePostaction, postactionToCompare);
+ } else if(postactionToCompare != null) {
+ isEquivalent = false;
+ }
+ return isEquivalent;
+ }
+
+ public static boolean isEquivalent(List<? extends EObject> referenceList, List<? extends EObject> listToCompare) {
+ boolean isEquivalent = true;
+ if(referenceList == null) {
+ // only one is null : false
+ if(listToCompare != null) {
+ return false;
+ } else {
+ // both are null: true
+ return true;
+ }
+ } else {
+ // only one is null: false
+ if(listToCompare == null) {
+ return false;
+ }
+ }
+ // check emptyness. If both empty : equivalent
+ if(referenceList.isEmpty() && listToCompare.isEmpty()) {
+ return true;
+ }
+ // check size. If different, false
+ if(referenceList.size() != listToCompare.size()) {
+ return false;
+ }
+ for(int i = 0; i < referenceList.size(); i++) {
+ EObject reference = referenceList.get(i);
+ EObject compared = listToCompare.get(i);
+ isEquivalent = isEquivalent && EcoreUtil.equals(reference, compared);
+ }
+ return isEquivalent;
+ }
+
+ /**
+ * Returns the closest non Extended element type for a given extended type
+ *
+ * @param requestElementType
+ * the element type to study
+ * @return the closest non extended element type or <code>null</code> if none was found.
+ */
+ public static IElementType findClosestNonExtendedElementType(IExtendedHintedElementType requestElementType) {
+ List<IElementType> superTypes = new ArrayList<IElementType>(Arrays.asList(requestElementType.getAllSuperTypes()));
+ // reverse order for the list, because super type returns all super types from furthest to closest, we want the other order
+ Collections.reverse(superTypes);
+ for(IElementType superType : superTypes) {
+ if(!(superType instanceof IExtendedHintedElementType)) {
+ return superType;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the closest super type which is not an extended type
+ *
+ * @param elementType
+ * the element type for which the super type is searched.
+ * @return the closest super type non extended or <code>null</code> if none was found
+ */
+ public static IElementType getClosestDiagramType(IElementType elementType) {
+ if(!(elementType instanceof IExtendedHintedElementType)) {
+ return elementType;
+ }
+ // this is an extended type
+ String diagramElementTypeID = ((IExtendedHintedElementType)elementType).getConfiguration().getSpecializedDiagramTypeID();
+ if(diagramElementTypeID != null) {
+ return getClosestDiagramType(ElementTypeRegistry.getInstance().getType(diagramElementTypeID));
+ } else {
+ IElementType[] superTypes = elementType.getAllSuperTypes();
+ if(superTypes.length > 1) {
+ return getClosestDiagramType(superTypes[superTypes.length - 1]);
+ }
+ }
+ return null;
+ }
+}

Back to the top