Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/infra')
-rw-r--r--plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/pom.xml4
-rw-r--r--plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/AbstractArchitectureDescriptionAdapter.java64
-rw-r--r--plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/ArchitectureDescriptionAdapter.java45
-rw-r--r--plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/ArchitectureDescriptionAdapterUtils.java71
-rw-r--r--plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/ArchitectureDescriptionSnippet.java30
-rw-r--r--plugins/infra/constraints/org.eclipse.papyrus.infra.constraints.editor/plugin.xml4
-rw-r--r--plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/Model/ConstraintEnvironment.properties17
-rw-r--r--plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/Model/Constraints.genmodel3
-rw-r--r--plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/src-gen/org/eclipse/papyrus/infra/constraints/SimpleConstraint.java50
-rw-r--r--plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/src-gen/org/eclipse/papyrus/infra/constraints/impl/SimpleConstraintImpl.java50
-rw-r--r--plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/src/org/eclipse/papyrus/infra/constraints/util/ConstraintsUtil.java106
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.core.architecture/.settings/.api_filters17
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.core.architecture/src/org/eclipse/papyrus/infra/core/architecture/util/ArchitectureCommandUtils.java30
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.core/.settings/.api_filters11
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.core/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.core/pom.xml2
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/resource/ModelSet.java10
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/ClassLoaderHelper.java95
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/Iterators2.java106
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/RecursionGuard.java120
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/TriFunction.java41
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/Try.java525
-rwxr-xr-xplugins/infra/emf/expressions/org.eclipse.papyrus.infra.emf.expressions.editor/plugin.xml2
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.emf.gmf/.settings/.api_filters11
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.emf.readonly/.settings/.api_filters11
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.emf/.settings/.api_filters11
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/.settings/.api_filters11
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/pom.xml2
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/databinding/EObjectObservableValueEditingSupport.java19
-rwxr-xr-xplugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/internal/facet/ArchitectureFrameworkCustomizationManagerUpdater.java7
-rwxr-xr-xplugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/internal/facet/WorskpaceCustomizationUpdater.java29
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.editor/plugin.xml2
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/.settings/.api_filters11
-rw-r--r--plugins/infra/gmfdiag/expansion/org.eclipse.papyrus.infra.gmfdiag.expansion.editor/plugin.xml2
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/.settings/.api_filters11
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/.settings/.api_filters11
-rwxr-xr-xplugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/pom.xml2
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/editpart/AbstractResizableCompartmentEditPart.java91
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/editpart/NavigableShapeCompartmentEditPart.java89
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/.settings/.api_filters11
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/src/org/eclipse/papyrus/infra/gmfdiag/menu/handlers/PasteInDiagramHandler.java6
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/.settings/.api_filters11
-rwxr-xr-xplugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/META-INF/MANIFEST.MF2
-rwxr-xr-xplugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/pom.xml2
-rw-r--r--[-rwxr-xr-x]plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/linklf/LinkLFShapeCompartmentEditPart.java82
-rw-r--r--plugins/infra/gmfdiag/paletteconfiguration/org.eclipse.papyrus.infra.gmfdiag.paletteconfiguration.editor/.settings/.api_filters11
-rw-r--r--plugins/infra/gmfdiag/paletteconfiguration/org.eclipse.papyrus.infra.gmfdiag.paletteconfiguration.editor/plugin.xml2
-rw-r--r--plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.readonly/.settings/.api_filters11
-rw-r--r--plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization/.settings/.api_filters11
-rw-r--r--plugins/infra/misc/org.eclipse.papyrus.infra.sync/.settings/.api_filters33
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/.settings/.api_filters11
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.controlmode/.settings/.api_filters11
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model.editor/plugin.xml2
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/.settings/.api_filters11
-rw-r--r--plugins/infra/newchild/org.eclipse.papyrus.infra.newchild.editor/plugin.xml2
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/.classpath1
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/META-INF/MANIFEST.MF6
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/build.properties2
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeConstraint_constraints_SimpleConstraint.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_layout_Layout.gifbin367 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_CompositeWidget.gifbin590 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_PropertyEditor.gifbin353 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_StandardWidget.gifbin225 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_UnknownComponent.gifbin562 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_UnknownWidget.gifbin129 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintDescriptor_constraints_ConstraintDescriptor.gifbin576 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintDescriptor_properties_ReferenceProperty.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintDescriptor_properties_ValueProperty.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintMapping_constraints_ConstraintMapping.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintMapping_properties_ReferenceProperty.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintMapping_properties_ValueProperty.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_constraints_ConstraintDescriptor.gifbin576 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_constraints_ConstraintMapping.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_dataContexts_DataContextRoot.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_tabs_Tab.gifbin621 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_views_View.gifbin589 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextElement_properties_Property.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextElement_properties_UnknownProperty.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextPackage_elements_DataContextElement.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextPackage_elements_DataContextPackage.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextPackage_elements_DataContextRoot.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDisplayUnit_constraints_CompositeConstraint.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDisplayUnit_constraints_ConstraintDescriptor.gifbin576 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDisplayUnit_constraints_SimpleConstraint.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_CompositeWidget.gifbin129 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_Element.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_Layout.gifbin367 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_PropertyEditor.gifbin353 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_ReferenceAttribute.gifbin311 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_StandardWidget.gifbin129 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_UnknownElement.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_ValueAttribute.gifbin205 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_compositeWidgetTypes_CompositeWidgetType.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_constraintTypes_ConstraintType.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_contexts_Context.gifbin584 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_layoutTypes_LayoutType.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_miscClasses_MiscClass.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_modelElementFactories_ModelElementFactoryDescriptor.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_namespaces_Namespace.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_propertyEditorTypes_PropertyEditorType.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_widgetTypes_StandardWidgetType.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreatePropertyEditor_unresolvedProperty_UnknownProperty.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_CompositeWidget.gifbin129 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_Layout.gifbin367 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_PropertyEditor.gifbin353 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_StandardWidget.gifbin129 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UIComponent.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UnknownComponent.gifbin562 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UnknownElement.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UnknownWidget.gifbin129 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateSimpleConstraint_properties_ReferenceProperty.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateSimpleConstraint_properties_ValueProperty.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateTab_allSections_Section.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateTab_sections_Section.gifbin379 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateUIComponent_attributes_ReferenceAttribute.gifbin311 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateUIComponent_attributes_ValueAttribute.gifbin205 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateView_datacontexts_DataContextElement.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateView_datacontexts_DataContextPackage.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateView_datacontexts_DataContextRoot.gifbin223 -> 0 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/obj16/Annotation.gifbin0 -> 595 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/obj16/Annotation@2x.gifbin0 -> 1407 bytes
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/plugin.properties8
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/pom.xml2
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/AbstractSectionItemProvider.java71
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/AnnotatableItemProvider.java180
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/AnnotationItemProvider.java246
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ContextItemProvider.java14
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ContextsItemProviderAdapterFactory.java27
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextElementItemProvider.java40
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextPackageItemProvider.java13
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextRootItemProvider.java13
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/PropertyItemProvider.java40
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/SectionItemProvider.java36
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/TabItemProvider.java13
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/UnknownPropertyItemProvider.java13
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ViewItemProvider.java53
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/environment/provider/PropertiesEditPlugin.java3
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src/org/eclipse/papyrus/infra/properties/contexts/command/ContextDeleteCommand.java88
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.editor/plugin.xml6
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/model/Environment.properties17
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.ecore38
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.genmodel40
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.notation790
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.uml362
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/build.properties2
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/plugin.properties6
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/plugin.xml45
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/AbstractSection.java5
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Annotatable.java63
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Annotation.java128
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Context.java4
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/ContextsFactory.java12
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/ContextsPackage.java551
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextElement.java6
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextPackage.java3
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextRoot.java3
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Property.java6
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Section.java21
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Tab.java3
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/View.java7
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/AbstractSectionImpl.java135
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/AnnotatableImpl.java212
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/AnnotationImpl.java374
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextImpl.java16
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextsFactoryImpl.java16
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextsPackageImpl.java167
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextElementImpl.java6
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextPackageImpl.java3
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextRootImpl.java3
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/PropertyImpl.java6
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/SectionImpl.java31
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/TabImpl.java15
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/UnknownPropertyImpl.java3
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ViewImpl.java154
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/operations/AnnotatableOperations.java66
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/operations/SectionOperations.java64
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsAdapterFactory.java41
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsResourceFactoryImpl.java9
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsResourceImpl.java101
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsSwitch.java55
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/EnvironmentPackage.java11
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/EnvironmentImpl.java15
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/EnvironmentPackageImpl.java5
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/MiscClassImpl.java15
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/ModelElementFactoryDescriptorImpl.java15
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/NamespaceImpl.java15
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/WidgetTypeImpl.java15
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/util/EnvironmentResourceFactoryImpl.java9
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/util/EnvironmentResourceImpl.java24
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/ui/impl/ElementImpl.java15
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/ui/impl/UiPackageImpl.java5
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src/org/eclipse/papyrus/infra/properties/contexts/util/ContextAnnotations.java237
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src/org/eclipse/papyrus/infra/properties/contexts/util/ContextContentTreeIterator.java93
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties/src/org/eclipse/papyrus/infra/properties/contexts/util/ContextUsageCrossReferencer.java107
-rw-r--r--plugins/infra/services/org.eclipse.papyrus.infra.services.controlmode/.settings/.api_filters11
-rw-r--r--plugins/infra/services/org.eclipse.papyrus.infra.services.edit/.settings/.api_filters11
-rw-r--r--plugins/infra/services/org.eclipse.papyrus.infra.services.localizer/.settings/.api_filters11
-rw-r--r--plugins/infra/services/org.eclipse.papyrus.infra.services.validation/.settings/.api_filters11
-rwxr-xr-xplugins/infra/textedit/org.eclipse.papyrus.infra.textedit.modelexplorer/META-INF/MANIFEST.MF2
-rwxr-xr-xplugins/infra/textedit/org.eclipse.papyrus.infra.textedit.representation.architecture/api/org/eclipse/papyrus/infra/textedit/representation/architecture/AbstractCreateTextDocumentEditorCommand.java2
-rwxr-xr-xplugins/infra/textedit/org.eclipse.papyrus.infra.textedit.xtext/api/org/eclipse/papyrus/infra/textedit/xtext/nested/editor/NestedXTextEditorStorage.java5
-rw-r--r--plugins/infra/types/org.eclipse.papyrus.infra.types.core/.settings/.api_filters11
-rw-r--r--plugins/infra/types/org.eclipse.papyrus.infra.types.editor/plugin.xml2
-rw-r--r--plugins/infra/types/org.eclipse.papyrus.infra.types.rulebased/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/ui/org.eclipse.papyrus.infra.ui.architecture/plugin.xml2
-rw-r--r--plugins/infra/ui/org.eclipse.papyrus.infra.ui.resources/.settings/.api_filters11
-rw-r--r--plugins/infra/ui/org.eclipse.papyrus.infra.ui/META-INF/MANIFEST.MF3
-rwxr-xr-xplugins/infra/ui/org.eclipse.papyrus.infra.ui/api/org/eclipse/papyrus/infra/ui/api/actions/EclipseCommandToAction.java114
-rw-r--r--plugins/infra/ui/org.eclipse.papyrus.infra.ui/plugin.properties9
-rw-r--r--plugins/infra/ui/org.eclipse.papyrus.infra.ui/plugin.xml37
-rw-r--r--plugins/infra/ui/org.eclipse.papyrus.infra.ui/pom.xml2
-rw-r--r--plugins/infra/ui/org.eclipse.papyrus.infra.ui/src/org/eclipse/papyrus/infra/ui/editor/CoreMultiDiagramEditor.java12
218 files changed, 6399 insertions, 860 deletions
diff --git a/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/META-INF/MANIFEST.MF b/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/META-INF/MANIFEST.MF
index 600476f63e0..0b8cb68f24d 100644
--- a/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/META-INF/MANIFEST.MF
+++ b/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.papyrus.infra.architecture;singleton:=true
-Bundle-Version: 3.1.0.qualifier
+Bundle-Version: 3.2.0.qualifier
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-11
Export-Package: org.eclipse.papyrus.infra.architecture,
diff --git a/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/pom.xml b/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/pom.xml
index 4230c8e2785..d0927eedd49 100644
--- a/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/pom.xml
+++ b/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/pom.xml
@@ -9,9 +9,9 @@
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.papyrus.infra.architecture</artifactId>
- <version>3.1.0-SNAPSHOT</version>
+ <version>3.2.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
-
+
<build>
<plugins>
<!-- TODO: These first two plug-ins should be replaced by Papyrus standard
diff --git a/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/AbstractArchitectureDescriptionAdapter.java b/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/AbstractArchitectureDescriptionAdapter.java
new file mode 100644
index 00000000000..65a03c9c5ba
--- /dev/null
+++ b/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/AbstractArchitectureDescriptionAdapter.java
@@ -0,0 +1,64 @@
+/*****************************************************************************
+ * Copyright (c) 2021 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) <vincent.lorenzo@cea.fr> - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.architecture.listeners;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.papyrus.infra.core.architecture.ArchitectureDescription;
+import org.eclipse.papyrus.infra.core.architecture.ArchitectureDescriptionPreferences;
+
+/**
+ * An adapter that is installed in DI models to listen to architecture description changes
+ *
+ * @since 3.2
+ *
+ */
+public abstract class AbstractArchitectureDescriptionAdapter extends EContentAdapter {
+
+ /**
+ * Listens to changes on ArchitectureDescription* objects
+ */
+ @Override
+ public void notifyChanged(final Notification notification) {
+ if (notification.getNotifier() instanceof ArchitectureDescription ||
+ notification.getNewValue() instanceof ArchitectureDescription ||
+ notification.getOldValue() instanceof ArchitectureDescription) {
+ fireArchitectureContextChanged(notification);
+ } else if (notification.getNotifier() instanceof ArchitectureDescriptionPreferences ||
+ notification.getNewValue() instanceof ArchitectureDescriptionPreferences ||
+ notification.getOldValue() instanceof ArchitectureDescriptionPreferences) {
+ fireArchitectureViewpointsChanged(notification);
+ }
+ }
+
+ /**
+ * This method notifies that the Architecture context changed
+ *
+ * @param notification
+ * a notification
+ */
+ public abstract void fireArchitectureContextChanged(final Notification notification);
+
+ /**
+ * This method notifies that the Architecture viewpoint changed
+ *
+ * @param notification
+ * a notification
+ */
+ public abstract void fireArchitectureViewpointsChanged(final Notification notification);
+
+
+} \ No newline at end of file
diff --git a/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/ArchitectureDescriptionAdapter.java b/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/ArchitectureDescriptionAdapter.java
index 7e9efcc70e8..753c5e1dec2 100644
--- a/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/ArchitectureDescriptionAdapter.java
+++ b/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/ArchitectureDescriptionAdapter.java
@@ -1,46 +1,47 @@
-/**
- * Copyright (c) 2017 CEA LIST.
- *
+/*****************************************************************************
+ * Copyright (c) 2017, 2021 CEA LIST.
+ *
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
- *
+ *
* Contributors:
* Maged Elaasar - Initial API and implementation
- *
- *
- */
+ * Vincent Lorenzo (CEA LIST) <vincent.lorenzo@cea.fr> - Bug 576004
+ *
+ *****************************************************************************/
package org.eclipse.papyrus.infra.architecture.listeners;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.util.EContentAdapter;
-import org.eclipse.papyrus.infra.core.architecture.ArchitectureDescription;
-import org.eclipse.papyrus.infra.core.architecture.ArchitectureDescriptionPreferences;
/**
* An adapter that is installed in DI models to listen to architecture description changes
*
* @since 1.0
*/
-public class ArchitectureDescriptionAdapter extends EContentAdapter {
+public class ArchitectureDescriptionAdapter extends AbstractArchitectureDescriptionAdapter {
+
+ /**
+ * @see org.eclipse.papyrus.infra.architecture.listeners.AbstractArchitectureDescriptionAdapter#fireArchitectureContextChanged(org.eclipse.emf.common.notify.Notification)
+ *
+ * @param notification
+ */
+ @Override
+ public void fireArchitectureContextChanged(Notification notification) {
+ ArchitectureDescriptionNotifier.getInstance().fireArchitectureContextChanged(notification);
+ }
/**
- * Listens to changes on ArchitectureDescription* objects
+ * @see org.eclipse.papyrus.infra.architecture.listeners.AbstractArchitectureDescriptionAdapter#fireArchitectureViewpointsChanged(org.eclipse.emf.common.notify.Notification)
+ *
+ * @param notification
*/
@Override
- public void notifyChanged(Notification notification) {
- if (notification.getNotifier() instanceof ArchitectureDescription ||
- notification.getNewValue() instanceof ArchitectureDescription ||
- notification.getOldValue() instanceof ArchitectureDescription) {
- ArchitectureDescriptionNotifier.getInstance().fireArchitectureContextChanged(notification);
- } else if (notification.getNotifier() instanceof ArchitectureDescriptionPreferences ||
- notification.getNewValue() instanceof ArchitectureDescriptionPreferences ||
- notification.getOldValue() instanceof ArchitectureDescriptionPreferences) {
- ArchitectureDescriptionNotifier.getInstance().fireArchitectureViewpointsChanged(notification);
- }
+ public void fireArchitectureViewpointsChanged(Notification notification) {
+ ArchitectureDescriptionNotifier.getInstance().fireArchitectureViewpointsChanged(notification);
}
}
diff --git a/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/ArchitectureDescriptionAdapterUtils.java b/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/ArchitectureDescriptionAdapterUtils.java
new file mode 100644
index 00000000000..abd87b29b1a
--- /dev/null
+++ b/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/ArchitectureDescriptionAdapterUtils.java
@@ -0,0 +1,71 @@
+/*****************************************************************************
+ * Copyright (c) 2021 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) <vincent.lorenzo@cea.fr> - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.architecture.listeners;
+
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.resource.sasheditor.DiModel;
+import org.eclipse.papyrus.infra.core.resource.sasheditor.SashModel;
+
+/**
+ * This class is in charge to register adapter on the architecture, in order to be notified when the Architecture context of the architecture viewpoint changed
+ *
+ * @since 3.2
+ */
+public final class ArchitectureDescriptionAdapterUtils {
+
+
+ private ArchitectureDescriptionAdapterUtils() {
+ // to prevent instantiation
+ }
+
+ /**
+ *
+ * @param modelSet
+ * the current modelSet
+ * @param adapter
+ * the adapter to register on the architecture context
+ */
+ public static final void registerListener(final ModelSet modelSet, final AbstractArchitectureDescriptionAdapter adapter) {
+ DiModel diModel = (DiModel) modelSet.getModel(DiModel.DI_MODEL_ID);
+ if (diModel != null) {
+ diModel.getResource().eAdapters().add(adapter);
+ }
+ SashModel sashModel = (SashModel) modelSet.getModel(SashModel.MODEL_ID);
+ if (sashModel != null) {
+ sashModel.getResource().eAdapters().add(adapter);
+ }
+ }
+
+ /**
+ *
+ * @param modelSet
+ * the current modelSet
+ * @param adapter
+ * the adapter to unregister
+ */
+ public static final void unregisterListener(final ModelSet modelSet, final AbstractArchitectureDescriptionAdapter adapter) {
+ DiModel diModel = (DiModel) modelSet.getModel(DiModel.DI_MODEL_ID);
+ if (diModel != null && diModel.getResource() != null) {
+ diModel.getResource().eAdapters().remove(adapter);
+ }
+ SashModel sashModel = (SashModel) modelSet.getModel(SashModel.MODEL_ID);
+ if (sashModel != null && sashModel.getResource() != null) {
+ if (sashModel.getResource() != null) {
+ sashModel.getResource().eAdapters().remove(adapter);
+ }
+ }
+ }
+}
diff --git a/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/ArchitectureDescriptionSnippet.java b/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/ArchitectureDescriptionSnippet.java
index 1ad3accb24a..9ea27e7a591 100644
--- a/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/ArchitectureDescriptionSnippet.java
+++ b/plugins/infra/architecture/org.eclipse.papyrus.infra.architecture/src/org/eclipse/papyrus/infra/architecture/listeners/ArchitectureDescriptionSnippet.java
@@ -1,5 +1,5 @@
-/**
- * Copyright (c) 2017 CEA LIST.
+/*****************************************************************************
+ * Copyright (c) 2017, 2021 CEA LIST.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,15 +10,13 @@
*
* Contributors:
* Maged Elaasar - Initial API and implementation
+ * Vincent Lorenzo (CEA LIST) <vincent.lorenzo@cea.fr> - Bug 576004
*
- *
- */
+ *****************************************************************************/
package org.eclipse.papyrus.infra.architecture.listeners;
import org.eclipse.papyrus.infra.core.resource.IModelSetSnippet;
import org.eclipse.papyrus.infra.core.resource.ModelSet;
-import org.eclipse.papyrus.infra.core.resource.sasheditor.DiModel;
-import org.eclipse.papyrus.infra.core.resource.sasheditor.SashModel;
/**
* A model snippet to install the architecture description adapter in the DI model
@@ -42,14 +40,7 @@ public class ArchitectureDescriptionSnippet implements IModelSetSnippet {
*/
@Override
public void start(ModelSet modelSet) {
- DiModel diModel = (DiModel) modelSet.getModel(DiModel.DI_MODEL_ID);
- if (diModel != null) {
- diModel.getResource().eAdapters().add(adapter);
- }
- SashModel sashModel = (SashModel) modelSet.getModel(SashModel.MODEL_ID);
- if (sashModel != null) {
- sashModel.getResource().eAdapters().add(adapter);
- }
+ ArchitectureDescriptionAdapterUtils.registerListener(modelSet, this.adapter);
}
/**
@@ -62,15 +53,6 @@ public class ArchitectureDescriptionSnippet implements IModelSetSnippet {
*/
@Override
public void dispose(ModelSet modelSet) {
- DiModel diModel = (DiModel) modelSet.getModel(DiModel.DI_MODEL_ID);
- if (diModel != null) {
- diModel.getResource().eAdapters().remove(adapter);
- }
- SashModel sashModel = (SashModel) modelSet.getModel(SashModel.MODEL_ID);
- if (sashModel != null) {
- if (sashModel.getResource() != null) {
- sashModel.getResource().eAdapters().remove(adapter);
- }
- }
+ ArchitectureDescriptionAdapterUtils.unregisterListener(modelSet, this.adapter);
}
}
diff --git a/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints.editor/plugin.xml b/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints.editor/plugin.xml
index 5d5a73d154f..41817a0d887 100644
--- a/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints.editor/plugin.xml
+++ b/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints.editor/plugin.xml
@@ -16,7 +16,7 @@
id="org.eclipse.papyrus.infra.constraints.presentation.ConstraintsModelWizardID"
name="%_UI_ConstraintsModelWizard_label"
class="org.eclipse.papyrus.infra.constraints.presentation.ConstraintsModelWizard"
- category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.addons.category"
+ category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.dev.category/org.eclipse.papyrus.wizards.dev.framework.category"
icon="icons/full/obj16/ConstraintsModelFile.gif">
<description>%_UI_ConstraintsModelWizard_description</description>
<selection class="org.eclipse.core.resources.IResource"/>
@@ -25,7 +25,7 @@
id="org.eclipse.papyrus.infra.constraints.environment.presentation.EnvironmentModelWizardID"
name="%_UI_EnvironmentModelWizard_label"
class="org.eclipse.papyrus.infra.constraints.environment.presentation.EnvironmentModelWizard"
- category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.addons.category"
+ category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.dev.category/org.eclipse.papyrus.wizards.dev.framework.category"
icon="icons/full/obj16/EnvironmentModelFile.gif">
<description>%_UI_EnvironmentModelWizard_description</description>
<selection class="org.eclipse.core.resources.IResource"/>
diff --git a/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/Model/ConstraintEnvironment.properties b/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/Model/ConstraintEnvironment.properties
new file mode 100644
index 00000000000..0c80a55a094
--- /dev/null
+++ b/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/Model/ConstraintEnvironment.properties
@@ -0,0 +1,17 @@
+#
+# Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Christian W. Damus - Initial API and implementation
+#
+#
+
+_UI_label_EMFInstanceOf=Ecore 'instance-of'
+_UI_label_className=EClass name
diff --git a/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/Model/Constraints.genmodel b/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/Model/Constraints.genmodel
index 4ea1ac64926..12e4f7cc084 100644
--- a/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/Model/Constraints.genmodel
+++ b/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/Model/Constraints.genmodel
@@ -55,7 +55,8 @@
createChild="true" ecoreFeature="ecore:EReference Constraints.ecore#//SimpleConstraint/properties"/>
</genClasses>
<genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="Constraints.ecore#//ConfigProperty">
- <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute Constraints.ecore#//ConfigProperty/name"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute Constraints.ecore#//ConfigProperty/name"
+ key="true"/>
</genClasses>
<genClasses xsi:type="genmodel:GenClass" ecoreClass="Constraints.ecore#//CompositeConstraint">
<genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
diff --git a/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/src-gen/org/eclipse/papyrus/infra/constraints/SimpleConstraint.java b/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/src-gen/org/eclipse/papyrus/infra/constraints/SimpleConstraint.java
index 897008d96cc..f2f9cae7cec 100644
--- a/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/src-gen/org/eclipse/papyrus/infra/constraints/SimpleConstraint.java
+++ b/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/src-gen/org/eclipse/papyrus/infra/constraints/SimpleConstraint.java
@@ -1,12 +1,22 @@
-/**
- * <copyright>
- * </copyright>
+/*****************************************************************************
+ * Copyright (c) 2010, 2021 CEA LIST, Christian W. Damus, and others.
*
- * $Id$
- */
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ * Christian W. Damus - bug 573986
+ *
+ *****************************************************************************/
package org.eclipse.papyrus.infra.constraints;
import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
import org.eclipse.papyrus.infra.constraints.environment.ConstraintType;
/**
@@ -71,4 +81,34 @@ public interface SimpleConstraint extends ConstraintDescriptor {
*/
EList<ConfigProperty> getProperties();
+ /**
+ * Retrieves the first {@link org.eclipse.papyrus.infra.constraints.ConfigProperty} with the specified '<em><b>Name</b></em>' from the '<em><b>Properties</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param name
+ * The '<em><b>Name</b></em>' of the {@link org.eclipse.papyrus.infra.constraints.ConfigProperty} to retrieve, or <code>null</code>.
+ * @return The first {@link org.eclipse.papyrus.infra.constraints.ConfigProperty} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+ * @see #getProperties()
+ * @generated
+ */
+ ConfigProperty getProperties(String name);
+
+ /**
+ * Retrieves the first {@link org.eclipse.papyrus.infra.constraints.ConfigProperty} with the specified '<em><b>Name</b></em>' from the '<em><b>Properties</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param name
+ * The '<em><b>Name</b></em>' of the {@link org.eclipse.papyrus.infra.constraints.ConfigProperty} to retrieve, or <code>null</code>.
+ * @param ignoreCase
+ * Whether to ignore case in {@link java.lang.String} comparisons.
+ * @param eClass
+ * The Ecore class of the {@link org.eclipse.papyrus.infra.constraints.ConfigProperty} to retrieve, or <code>null</code>.
+ * @return The first {@link org.eclipse.papyrus.infra.constraints.ConfigProperty} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+ * @see #getProperties()
+ * @generated
+ */
+ ConfigProperty getProperties(String name, boolean ignoreCase, EClass eClass);
+
} // SimpleConstraint
diff --git a/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/src-gen/org/eclipse/papyrus/infra/constraints/impl/SimpleConstraintImpl.java b/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/src-gen/org/eclipse/papyrus/infra/constraints/impl/SimpleConstraintImpl.java
index 12db525a785..593161444d8 100644
--- a/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/src-gen/org/eclipse/papyrus/infra/constraints/impl/SimpleConstraintImpl.java
+++ b/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/src-gen/org/eclipse/papyrus/infra/constraints/impl/SimpleConstraintImpl.java
@@ -1,9 +1,18 @@
-/**
- * <copyright>
- * </copyright>
+/*****************************************************************************
+ * Copyright (c) 2010, 2021 CEA LIST, Christian W. Damus, and others.
*
- * $Id$
- */
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ * Christian W. Damus - bug 573986
+ *
+ *****************************************************************************/
package org.eclipse.papyrus.infra.constraints.impl;
import java.util.Collection;
@@ -145,6 +154,37 @@ public class SimpleConstraintImpl extends ConstraintDescriptorImpl implements Si
* @generated
*/
@Override
+ public ConfigProperty getProperties(String name) {
+ return getProperties(name, false, null);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public ConfigProperty getProperties(String name, boolean ignoreCase, EClass eClass) {
+ propertiesLoop: for (ConfigProperty properties : getProperties()) {
+ if (eClass != null && !eClass.isInstance(properties)) {
+ continue propertiesLoop;
+ }
+ if (name != null && !(ignoreCase ? name.equalsIgnoreCase(properties.getName()) : name.equals(properties.getName()))) {
+ continue propertiesLoop;
+ }
+ return properties;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case ConstraintsPackage.SIMPLE_CONSTRAINT__PROPERTIES:
diff --git a/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/src/org/eclipse/papyrus/infra/constraints/util/ConstraintsUtil.java b/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/src/org/eclipse/papyrus/infra/constraints/util/ConstraintsUtil.java
new file mode 100644
index 00000000000..f7b4595b01b
--- /dev/null
+++ b/plugins/infra/constraints/org.eclipse.papyrus.infra.constraints/src/org/eclipse/papyrus/infra/constraints/util/ConstraintsUtil.java
@@ -0,0 +1,106 @@
+/*****************************************************************************
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.constraints.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.ComposedSwitch;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.infra.constraints.ConfigProperty;
+import org.eclipse.papyrus.infra.constraints.ConstraintDescriptor;
+import org.eclipse.papyrus.infra.constraints.SimpleConstraint;
+import org.eclipse.papyrus.infra.constraints.environment.ConstraintType;
+import org.eclipse.papyrus.infra.constraints.environment.util.EnvironmentSwitch;
+import org.eclipse.uml2.common.util.UML2Util;
+
+/**
+ * Utilities for working with constraint models.
+ */
+public class ConstraintsUtil extends UML2Util {
+
+ private static final Switch<String> NAME_SWITCH = createNameSwitch();
+
+ /**
+ * Get the model name (unlocalized) of the given {@code object}, if it has one.
+ *
+ * @param object
+ * an object in the constraints model
+ * @return its name, or {@code null} if none
+ */
+ public static final String getName(EObject object) {
+ return NAME_SWITCH.doSwitch(object);
+ }
+
+ /**
+ * Get a localized label for the given constraints model element, suitable for presentation in the
+ * UI or other user-facing messages.
+ *
+ * @param object
+ * an object in the constraints model
+ * @return its localized label
+ */
+ public static final String getLabel(EObject object) {
+ return getLabel(object, true);
+ }
+
+ public static final String getLabel(EObject object, boolean localize) {
+ String name = getName(object);
+ return getString(object,
+ "_UI_label_" + getValidJavaIdentifier(isEmpty(name)
+ ? EMPTY_STRING
+ : name.replace(':', '_')),
+ name, localize);
+ }
+
+ protected static String getString(EObject context, String key, String defaultValue, boolean localize) {
+ if (context instanceof ConfigProperty) {
+ // The context to look up the label is the constraint type that defines the property
+ EObject container = context.eContainer();
+ if (container instanceof SimpleConstraint) {
+ ConstraintType type = ((SimpleConstraint) container).getConstraintType();
+ if (type != null) {
+ context = type;
+ }
+ }
+ }
+
+ return UML2Util.getString(context, key, defaultValue, localize);
+ }
+
+ private static final Switch<String> createNameSwitch() {
+ Switch<String> constraints = new ConstraintsSwitch<>() {
+ public String caseConstraintDescriptor(ConstraintDescriptor object) {
+ return object.getName();
+ }
+
+ @Override
+ public String caseConfigProperty(ConfigProperty object) {
+ return object.getName();
+ }
+ };
+
+ Switch<String> environment = new EnvironmentSwitch<>() {
+ @Override
+ public String caseConstraintType(ConstraintType object) {
+ return object.getLabel();
+ }
+ };
+
+ return new ComposedSwitch<>(List.of(constraints, environment));
+ }
+
+}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.architecture/.settings/.api_filters b/plugins/infra/core/org.eclipse.papyrus.infra.core.architecture/.settings/.api_filters
deleted file mode 100644
index 8e1747fad6b..00000000000
--- a/plugins/infra/core/org.eclipse.papyrus.infra.core.architecture/.settings/.api_filters
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.core.architecture" version="2">
- <resource path="src-gen/org/eclipse/papyrus/infra/core/architecture/impl/ArchitecturePackageImpl.java" type="org.eclipse.papyrus.infra.core.architecture.impl.ArchitecturePackageImpl">
- <filter comment="generated code" id="1143996420">
- <message_arguments>
- <message_argument value="createArchitectureAnnotations()"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src-gen/org/eclipse/papyrus/infra/core/architecture/impl/ArchitecturePlugin.java" type="org.eclipse.papyrus.infra.core.architecture.impl.ArchitecturePlugin">
- <filter comment="generated code" id="1110441988">
- <message_arguments>
- <message_argument value="org.eclipse.papyrus.infra.core.architecture.impl.ArchitecturePlugin"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core.architecture/src/org/eclipse/papyrus/infra/core/architecture/util/ArchitectureCommandUtils.java b/plugins/infra/core/org.eclipse.papyrus.infra.core.architecture/src/org/eclipse/papyrus/infra/core/architecture/util/ArchitectureCommandUtils.java
index 3b57f02b61e..1eb73be7b2d 100644
--- a/plugins/infra/core/org.eclipse.papyrus.infra.core.architecture/src/org/eclipse/papyrus/infra/core/architecture/util/ArchitectureCommandUtils.java
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core.architecture/src/org/eclipse/papyrus/infra/core/architecture/util/ArchitectureCommandUtils.java
@@ -26,7 +26,6 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import org.eclipse.core.runtime.Platform;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
@@ -35,8 +34,9 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.papyrus.infra.core.architecture.ADElement;
import org.eclipse.papyrus.infra.core.architecture.ArchitecturePackage;
import org.eclipse.papyrus.infra.core.architecture.impl.ArchitecturePlugin;
+import org.eclipse.papyrus.infra.tools.util.ClassLoaderHelper;
import org.eclipse.papyrus.infra.tools.util.ClasspathHelper;
-import org.osgi.framework.Bundle;
+import org.eclipse.papyrus.infra.tools.util.Try;
/**
* Utilities for working with/resolving the command classes referenced by
@@ -48,7 +48,6 @@ public class ArchitectureCommandUtils {
private static final String REQUIRED_BUNDLES = "requiredBundles"; //$NON-NLS-1$
private static final String CLASS_CONSTRAINT = "classConstraint"; //$NON-NLS-1$
- private static final String BUNDLECLASS = "bundleclass"; //$NON-NLS-1$
private static final Map<EStructuralFeature, Class<?>> commandClassConstraints = new ConcurrentHashMap<>();
@@ -69,24 +68,7 @@ public class ArchitectureCommandUtils {
String classURI = EcoreUtil.getAnnotation(feature, ArchitecturePackage.eNS_URI, CLASS_CONSTRAINT);
if (classURI != null) {
URI uri = URI.createURI(classURI);
- if (!BUNDLECLASS.equals(uri.scheme())) {
- result = fail("Constraint class URI does not have bundleclass scheme: " + uri); //$NON-NLS-1$
- } else if (uri.authority() == null) {
- result = fail("Constraint class URI does not have an authority: " + uri); //$NON-NLS-1$
- } else if (uri.segmentCount() != 1) {
- result = fail("Constraint class URI must have exactly one segment: " + uri); //$NON-NLS-1$
- } else {
- Bundle bundle = Platform.getBundle(uri.authority());
- if (bundle == null) {
- result = fail("No such bundle in constraint class URI: " + uri); //$NON-NLS-1$
- } else {
- try {
- result = bundle.loadClass(uri.segment(0));
- } catch (Exception e) {
- result = fail(e);
- }
- }
- }
+ result = ClassLoaderHelper.loadClass(uri).orElseApply(ArchitectureCommandUtils::fail);
}
return result;
@@ -98,10 +80,8 @@ public class ArchitectureCommandUtils {
if (owner.eIsSet(feature)) {
String classURI = EcoreUtil.getAnnotation(feature, ArchitecturePackage.eNS_URI, CLASS_CONSTRAINT);
URI uri = classURI == null ? null : URI.createURI(classURI);
-
- if (uri != null && BUNDLECLASS.equals(uri.scheme())) {
- result = uri.authority();
- }
+ Try<String> bundleName = ClassLoaderHelper.getBundleName(uri);
+ result = bundleName.orElse(null);
}
return result;
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core/.settings/.api_filters b/plugins/infra/core/org.eclipse.papyrus.infra.core/.settings/.api_filters
deleted file mode 100644
index 207cf4b7a4f..00000000000
--- a/plugins/infra/core/org.eclipse.papyrus.infra.core/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.core" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="4.1.0"/>
- <message_argument value="4.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core/META-INF/MANIFEST.MF b/plugins/infra/core/org.eclipse.papyrus.infra.core/META-INF/MANIFEST.MF
index da8f35a1809..3b762ceda49 100644
--- a/plugins/infra/core/org.eclipse.papyrus.infra.core/META-INF/MANIFEST.MF
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core/META-INF/MANIFEST.MF
@@ -31,7 +31,7 @@ Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.6.0,4.0.0)",
org.eclipse.uml2.types;bundle-version="[2.5.0,3.0.0)"
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy
-Bundle-Version: 4.2.0.qualifier
+Bundle-Version: 4.3.0.qualifier
Bundle-Name: %pluginName
Bundle-Localization: plugin
Bundle-Activator: org.eclipse.papyrus.infra.core.Activator
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core/pom.xml b/plugins/infra/core/org.eclipse.papyrus.infra.core/pom.xml
index 2f6fa33960c..905303f7a81 100644
--- a/plugins/infra/core/org.eclipse.papyrus.infra.core/pom.xml
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core/pom.xml
@@ -9,6 +9,6 @@
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.papyrus.infra.core</artifactId>
- <version>4.2.0-SNAPSHOT</version>
+ <version>4.3.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project> \ No newline at end of file
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/resource/ModelSet.java b/plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/resource/ModelSet.java
index e8ae69d5bea..6b43b97a8b2 100644
--- a/plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/resource/ModelSet.java
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/resource/ModelSet.java
@@ -153,6 +153,10 @@ public class ModelSet extends ResourceSetImpl {
this.eAdapters.add(new ResourceAddRemoveTracker());
}
+ public boolean isShardingSupported() {
+ return true;
+ }
+
/**
* Register the specified model under its associated key. The key is defined
* in the model itself. It is usually the model type from
@@ -858,7 +862,7 @@ public class ModelSet extends ResourceSetImpl {
/**
* This allows to delete a resource from the uri.
- *
+ *
* @param uri
* The uri of the resource to delete.
* @return <code>true</code> if the resource is deleted, <code>false</code> otherwise.
@@ -1310,10 +1314,10 @@ public class ModelSet extends ResourceSetImpl {
/**
* Obtains the model that should persist an {@code object}.
- *
+ *
* @param object
* an object to be persisted as a new root of a managed EMF {@code Resource}
- *
+ *
* @return the model that is best suited to persist the {@code object}, or {@code null} if none
* @since 2.0
*/
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/ClassLoaderHelper.java b/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/ClassLoaderHelper.java
index 70627d18e83..0c912d46f99 100644
--- a/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/ClassLoaderHelper.java
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/ClassLoaderHelper.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2010, 2020 CEA LIST, EclipseSource, Christian W. Damus, and others.
+ * Copyright (c) 2010, 2021 CEA LIST, EclipseSource, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -12,7 +12,7 @@
* Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
* EclipseSource - Bug 543723
* Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - bug 553247
- * Christian W. Damus - bug 568782
+ * Christian W. Damus - bugs 568782, 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.tools.util;
@@ -23,6 +23,7 @@ import org.eclipse.core.runtime.Platform;
import org.eclipse.emf.common.util.URI;
import org.eclipse.papyrus.infra.tools.Activator;
import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
/**
* <p>
@@ -41,6 +42,9 @@ import org.osgi.framework.Bundle;
*/
public class ClassLoaderHelper {
+ /** The Equinox <tt>bundleclass:</tt> URI scheme. */
+ private static final String BUNDLECLASS = "bundleclass"; //$NON-NLS-1$
+
/**
* Usually, there are few classes with many different accesses. Using a cache, we can improve
* the performances between 10 and 20 times, with really little memory consumption
@@ -151,6 +155,93 @@ public class ClassLoaderHelper {
}
/**
+ * Query whether an URI is parseable as a fully-qualified class reference.
+ *
+ * @param uri
+ * an URI
+ * @return whether is is valid input for the {@link #loadClass(URI)} API
+ *
+ * @since 4.2
+ * @see #loadClass(URI)
+ */
+ public static boolean isClassURI(URI uri) {
+ return uri != null && BUNDLECLASS.equals(uri.scheme());
+ }
+
+ /**
+ * Query the bundle name indicated by a class URI.
+ *
+ * @param classURI
+ * reference to a class in a bundle
+ * @return the symbolic name of the bundle that hosts the class
+ *
+ * @since 4.2
+ * @see #isClassURI(URI)
+ */
+ public static Try<String> getBundleName(URI classURI) {
+ Try<String> result;
+
+ if (!isClassURI(classURI)) {
+ result = Try.failure("Class URI does not have bundleclass scheme: " + classURI); //$NON-NLS-1$
+ } else if (classURI.authority() == null) {
+ result = Try.failure("Class URI does not have an authority: " + classURI); //$NON-NLS-1$
+ } else {
+ result = Try.success(classURI.authority());
+ }
+
+ return result;
+ }
+
+ /**
+ * Load a class indicated by an URI.
+ *
+ * @param classURI
+ * reference to the class to load
+ * @return the loaded class
+ *
+ * @since 4.2
+ * @see #isClassURI(URI)
+ */
+ public static Try<Class<?>> loadClass(URI classURI) {
+ Try<Class<?>> result;
+
+ if (!isClassURI(classURI)) {
+ result = Try.failure("Class URI does not have bundleclass scheme: " + classURI); //$NON-NLS-1$
+ } else if (classURI.authority() == null) {
+ result = Try.failure("Class URI does not have an authority: " + classURI); //$NON-NLS-1$
+ } else if (classURI.segmentCount() != 1) {
+ result = Try.failure("Class URI must have exactly one segment: " + classURI); //$NON-NLS-1$
+ } else {
+ Bundle bundle = Platform.getBundle(classURI.authority());
+ if (bundle == null) {
+ result = Try.failure("No such bundle in class URI: " + classURI); //$NON-NLS-1$
+ } else {
+ result = Try.call(() -> bundle.loadClass(classURI.segment(0)));
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * Get a URI for a class that can be used to {@linkplain #loadClass(URI) load it again} later.
+ * This only works for classes that trace to some bundle that hosts them.
+ *
+ * @param class_
+ * a class
+ * @return a URI for it, if it is a class that is hosted in some bundle
+ *
+ * @since 4.2
+ * @see #loadClass(URI)
+ */
+ public static Try<URI> getURI(Class<?> class_) {
+ Bundle bundle = FrameworkUtil.getBundle(class_);
+ return bundle == null
+ ? Try.failure("Class is not hosted by an OSGi bundle: " + class_.getName())
+ : Try.success(URI.createURI(String.format("%s://%s/%s", BUNDLECLASS, bundle.getSymbolicName(), class_.getName())));
+ }
+
+ /**
* <p>
* Loads and returns the class represented by the given className.
* Checks that the loaded class is a subtype of the given Class.
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/Iterators2.java b/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/Iterators2.java
index ef0a1257ff9..c83ded14c59 100644
--- a/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/Iterators2.java
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/Iterators2.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2014, 2020 Christian W. Damus, CEA LIST, and others.
+ * Copyright (c) 2014, 2021 Christian W. Damus, CEA LIST, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -18,6 +18,7 @@ package org.eclipse.papyrus.infra.tools.util;
import java.util.Iterator;
import java.util.Spliterator;
import java.util.Spliterators;
+import java.util.function.Predicate;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
@@ -65,6 +66,49 @@ public class Iterators2 {
}
/**
+ * Filters an EMF tree iterator for elements of a particular {@code type}.
+ *
+ * @param treeIterator
+ * the tree iterator to filter
+ * @param type
+ * the type of elements to include in the filtered tree iterator
+ * @param shouldPrune
+ * a predicate that tests {@code true} on elements whose sub-trees should be {@linkplain TreeIterator#prune() pruned}.
+ * A {@link null} predicate will never prune
+ * @return the self-pruning tree iterator
+ *
+ * @since 4.2
+ */
+ public static <T> Iterator<T> autoPrune(final TreeIterator<T> treeIterator, Predicate<? super T> shouldPrune) {
+ class SelfPruningIterator extends AbstractIterator<T> {
+ @Override
+ protected T computeNext() {
+ T result;
+
+ if (!treeIterator.hasNext()) {
+ result = endOfData();
+ } else {
+ result = treeIterator.next();
+ if (shouldPrune.test(result)) {
+ // Prune, now
+ treeIterator.prune();
+ }
+ }
+
+ return result;
+ }
+ }
+
+ Iterator<T> result = treeIterator;
+
+ if (shouldPrune != null) {
+ result = new SelfPruningIterator();
+ }
+
+ return result;
+ }
+
+ /**
* Obtain a spliterator over an EMF tree iterator. The spliterator will have characteristics implied by an
* EMF content tree, namely:
* <ul>
@@ -78,9 +122,40 @@ public class Iterators2 {
* @param treeIterator
* a tree iterator
* @return a spliterator over the tree
+ *
+ * @see #spliterator(TreeIterator, Predicate)
*/
public static <T> Spliterator<T> spliterator(final TreeIterator<T> treeIterator) {
- return Spliterators.spliteratorUnknownSize(treeIterator, Spliterator.ORDERED | Spliterator.DISTINCT | Spliterator.NONNULL);
+ return spliterator(treeIterator, (Predicate<T>) null);
+ }
+
+ /**
+ * Obtain a spliterator over an EMF tree iterator that prunes itself automatically. The spliterator will have characteristics implied by an
+ * EMF content tree, namely:
+ * <ul>
+ * <li>{@link Spliterator#ORDERED}</li>
+ * <li>{@link Spliterator#DISTINCT}</li>
+ * <li>{@link Spliterator#NONNULL}</li>
+ * </ul>
+ *
+ * @param <T>
+ * the tree element type
+ * @param treeIterator
+ * a tree iterator
+ * @param shouldPrune
+ * a predicate that tests {@code true} on elements whose sub-trees should be {@linkplain TreeIterator#prune() pruned}.
+ * A {@link null} predicate will never prune
+ * @return a spliterator over the tree
+ *
+ * @since 4.2
+ *
+ * @see #autoPrune(TreeIterator, Predicate)
+ * @see #stream(TreeIterator, Predicate)
+ * @see #spliterator(TreeIterator)
+ */
+ public static <T> Spliterator<T> spliterator(final TreeIterator<T> treeIterator, Predicate<? super T> shouldPrune) {
+ Iterator<T> delegate = autoPrune(treeIterator, shouldPrune);
+ return Spliterators.spliteratorUnknownSize(delegate, Spliterator.ORDERED | Spliterator.DISTINCT | Spliterator.NONNULL);
}
/**
@@ -91,9 +166,34 @@ public class Iterators2 {
* @param treeIterator
* a tree iterator
* @return a stream over the tree
+ *
+ * @see #stream(TreeIterator, Predicate)r
*/
public static <T> Stream<T> stream(final TreeIterator<T> treeIterator) {
- return StreamSupport.stream(spliterator(treeIterator), false);
+ return stream(treeIterator, (Predicate<T>) null);
+ }
+
+ /**
+ * Obtain a stream over an EMF tree iterator that prunes itself automatically.
+ *
+ * @param <T>
+ * the tree element type
+ * @param treeIterator
+ * a tree iterator
+ * @param shouldPrune
+ * a predicate that tests {@code true} on elements whose sub-trees should be {@linkplain TreeIterator#prune() pruned}.
+ * A {@link null} predicate will never prune
+ *
+ * @return a self-pruning stream over the tree
+ *
+ * @since 4.2
+ *
+ * @see #autoPrune(TreeIterator, Predicate)
+ * @see #spliterator(TreeIterator, Predicate)
+ * @see #stream(TreeIterator)
+ */
+ public static <T> Stream<T> stream(final TreeIterator<T> treeIterator, Predicate<? super T> shouldPrune) {
+ return StreamSupport.stream(spliterator(treeIterator, shouldPrune), false);
}
}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/RecursionGuard.java b/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/RecursionGuard.java
new file mode 100644
index 00000000000..effd1c2985e
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/RecursionGuard.java
@@ -0,0 +1,120 @@
+/*****************************************************************************
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.tools.util;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+import java.util.function.Predicate;
+
+/**
+ * Encapsulation of a set of objects on which recursive inference of traceability is in progress
+ * to void re-entrance into that scope, to prevent exponential redundant recursion.
+ *
+ * @param <T>
+ * the kind of objects tracked as the scope of recursion
+ *
+ * @since 4.2
+ */
+public final class RecursionGuard<T> {
+ private final Set<T> recursionSet = new HashSet<>();
+
+ /**
+ * Open the recursion gate if all of the given objects are new to the current recursion stack.
+ *
+ * @param recursionScope
+ * objects to attempt to add to the current recursion stack
+ *
+ * @return a gate that will be open all of the objects in the given scope are new additions to the recursion stack
+ */
+ @SafeVarargs
+ public final Gate guard(T... recursionScope) {
+ return guardIfAny(Objects::nonNull, recursionScope);
+ }
+
+ /**
+ * If any of the given objects in the scope of recursion satisfies the {@code condition},
+ * then open the recursion gate if all of them are new to the current recursion stack.
+ *
+ * @param condition
+ * a precondition which, if satisfied by any of the given objects, lets us attempt to open a gate with them
+ * @param recursionScope
+ * objects to attempt to add to the current recursion stack
+ *
+ * @return a gate that will be open if the {@code condition} was satisfied and all of the objects
+ * in the given scope are new additions to the recursion stack
+ */
+ @SafeVarargs
+ public final Gate guardIfAny(Predicate<? super T> condition, T... recursionScope) {
+ return new Gate(condition, recursionScope);
+ }
+
+ /**
+ * Encapsulation of a recursion gate that may be open to permit recursion or closed
+ * to cut it off.
+ */
+ public final class Gate implements AutoCloseable {
+ private final int size;
+ private List<T> gated;
+
+ @SafeVarargs
+ private Gate(Predicate<? super T> condition, T... recursionScope) {
+ super();
+
+ this.size = recursionScope.length;
+ this.gated = new ArrayList<>(size);
+
+ for (T next : recursionScope) {
+ if (condition.test(next)) {
+ guard(recursionScope);
+ }
+ }
+ }
+
+ @SafeVarargs
+ private void guard(T... recursionScope) {
+ for (T next : recursionScope) {
+ if (recursionSet.add(next)) {
+ gated.add(next);
+ }
+ }
+ }
+
+ /**
+ * Queries whether the gate is open to allow recursion.
+ *
+ * @return {@code true} if the gate is open, allowing recursion because the objects encapsulated
+ * as its recursion scope are all new additions to the current recursive stack
+ */
+ public boolean isOpen() {
+ return gated.size() == size;
+ }
+
+ /**
+ * Restores the recursion stack to what it was prior to creation of this gate,
+ * whether it is open or closed. This gate <em><strong>must</strong></em> be closed
+ * regardless of whether {@linkplain #isOpen() it is open}, which is why the gate
+ * is an auto-closeable resource.
+ */
+ @Override
+ public void close() {
+ recursionSet.removeAll(gated);
+ gated.clear();
+ }
+ }
+}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/TriFunction.java b/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/TriFunction.java
new file mode 100644
index 00000000000..70de5f62138
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/TriFunction.java
@@ -0,0 +1,41 @@
+/*****************************************************************************
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.tools.util;
+
+import java.util.function.BiFunction;
+
+/**
+ * A function analogous to the {@link BiFunction} that takes three inputs.
+ *
+ * @since 4.2
+ */
+@FunctionalInterface
+public interface TriFunction<F, G, H, R> {
+
+ /**
+ * Process three inputs to obtain a result.
+ *
+ * @param f
+ * the first input
+ * @param g
+ * the second input
+ * @param h
+ * the third input
+ * @return the result
+ */
+ R apply(F f, G g, H h);
+
+}
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/Try.java b/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/Try.java
new file mode 100644
index 00000000000..215a97b2464
--- /dev/null
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.tools/src/org/eclipse/papyrus/infra/tools/util/Try.java
@@ -0,0 +1,525 @@
+/*****************************************************************************
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.tools.util;
+
+import java.io.Serializable;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.concurrent.Callable;
+import java.util.function.BiConsumer;
+import java.util.function.BiFunction;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.function.Predicate;
+
+/**
+ * Like an {@link Optional} except that when the value is not present, it can
+ * provide a reason why. Also, because the alternative to success an explicit
+ * failure with some kind of reason, a {@linkplain #isSuccess() successful Try}
+ * may have a {@code null} {@linkplain #get() value}.
+ *
+ * @since 4.2
+ */
+public abstract class Try<T> implements Serializable {
+
+ private static final long serialVersionUID = 2007056722268683220L;
+
+ private static final Try<?> EMPTY = Try.success(null);
+
+ /**
+ * Not instantiable by clients.
+ */
+ Try() {
+ super();
+ }
+
+ /**
+ * Queries whether the {@code Try} has a successful value, even if that value is {@code null}.
+ *
+ * @return whether I am a success
+ */
+ public abstract boolean isSuccess();
+
+ /**
+ * Obtains the value of a {@linkplain #isSuccess() successful} {@code Try}.
+ *
+ * @return my value, which may be {@code null}
+ * @throws NoSuchElementException
+ * if I am a {@linkplain #isFailure() failure}
+ */
+ public abstract T get() throws NoSuchElementException;
+
+ /**
+ * Coerce me to an optional value, eliding any failure information.
+ *
+ * @return an optional encapsulating my value, which will {@linkplain Optional#isEmpty() be empty}
+ * if either I am a failure or if I am a success that happens to be a {@code null} value
+ */
+ public abstract Optional<T> toOptional();
+
+ /**
+ * Queries whether the {@code Try} failed to provide value.
+ *
+ * @return whether I am a failure
+ */
+ public final boolean isFailure() {
+ return !isSuccess();
+ }
+
+ /**
+ * Query whether the {@code Try} provided a successful {@code null} value.
+ *
+ * @return whether I am an empty success
+ */
+ public final boolean isEmpty() {
+ return this.equals(EMPTY);
+ }
+
+ /**
+ * Query whether the {@code Try} provided a successful non-{@code null} value.
+ *
+ * @return whether I am a present success
+ */
+ public final boolean isPresent() {
+ return isSuccess() && !isEmpty();
+ }
+
+ /**
+ * Queries the reason for the failure to provide a value.
+ *
+ * @return the reason, which will never be {@code null} but may not be helpful
+ */
+ public abstract String reason();
+
+ /**
+ * Queries the exception, if any, that caused failure to provide a value.
+ *
+ * @return the exception, or {@code null} if the failure to provide a value was not
+ * caused by an exception but just has some ad hoc {@link #reason() reason}
+ */
+ public abstract Throwable failure();
+
+ /**
+ * Encapsulate the result of a {@code callable}.
+ *
+ * @param <T>
+ * the callable result type
+ * @param callable
+ * a computation to call
+ * @return the result of {@linkplain Callable#call() calling} the {@code callable}
+ */
+ public static <T> Try<T> call(Callable<? extends T> callable) {
+ try {
+ return Try.success(callable.call());
+ } catch (Exception e) {
+ return Try.failure(e);
+ }
+ }
+
+ /**
+ * Create a success.
+ *
+ * @param <T>
+ * the type of {@code value}
+ * @param value
+ * the value to provide
+ * @return a successful provision of the {@code value}
+ */
+ public static <T> Try<T> success(T value) {
+ return new Success<>(value);
+ }
+
+ /**
+ * Obtain an empty success: that is, a successful result that happens
+ * to be a {@code null} value.
+ *
+ * @param <T>
+ * the type of value expected
+ * @return the empty success
+ */
+ @SuppressWarnings("unchecked")
+ public static <T> Try<T> empty() {
+ return (Try<T>) EMPTY;
+ }
+
+ /**
+ * Create a failure caused by an exception.
+ *
+ * @param <T>
+ * the type of value that was not provided
+ * @param failure
+ * an exception that caused the failure
+ * @return a failed provision of a value
+ */
+ public static <T> Try<T> failure(Throwable failure) {
+ return new Failure<>(failure);
+ }
+
+ /**
+ * Create a failure with an ad hoc reason.
+ *
+ * @param <T>
+ * the type of value that was not provided
+ * @param reason
+ * an ad hoc description of the reason why the value was not provided
+ * @return a failed provision of a value
+ */
+ public static <T> Try<T> failure(String reason) {
+ return new Failure<>(reason);
+ }
+
+ /**
+ * Process my value if {@linkplain #isSuccess() successful}.
+ *
+ * @param onSuccess
+ * a consumer of the successful {@linkplain #get() value}
+ */
+ public final void ifSuccess(Consumer<? super T> onSuccess) {
+ if (isSuccess()) {
+ onSuccess.accept(get());
+ }
+ }
+
+ /**
+ * Process my value if {@linkplain #isPresent() present}.
+ *
+ * @param onPresent
+ * a consumer of the present {@linkplain #get() value}
+ */
+ public final void ifPresent(Consumer<? super T> onPresent) {
+ if (isPresent()) {
+ onPresent.accept(get());
+ }
+ }
+
+ /**
+ * Process the reason for a {@linkplain #isFailure() failure}.
+ *
+ * @param onSuccess
+ * a consumer of the failure reason and exception
+ */
+ public final void ifFailure(BiConsumer<? super String, ? super Throwable> onFailure) {
+ if (isFailure()) {
+ onFailure.accept(reason(), failure());
+ }
+ }
+
+ /**
+ * Process the reason for a {@linkplain #isFailure() failure}.
+ *
+ * @param onSuccess
+ * a consumer of the failure reason
+ */
+ public final void ifFailure(Consumer<? super String> onFailure) {
+ ifFailure((reason, __) -> onFailure.accept(reason));
+ }
+
+ /**
+ * Obtain my {@linkplain #isSuccess() successful} {@linkplain #get() value} or
+ * else the given value {@link #isFailure() on failure}.
+ *
+ * @param failureValue
+ * the result in case of failure
+ * @return the result
+ */
+ public final T orElse(T failureValue) {
+ return isSuccess() ? get() : failureValue;
+ }
+
+ /**
+ * Obtain my {@linkplain #isSuccess() successful} {@linkplain #get() value} or
+ * else compute an alternative based on the failure reason.
+ *
+ * @param failureFunction
+ * the computation of an alternative in case of failure
+ * @return the result
+ */
+ public final T orElseApply(BiFunction<? super String, ? super Throwable, ? extends T> failureFunction) {
+ return isSuccess() ? get() : failureFunction.apply(reason(), failure());
+ }
+
+ /**
+ * Obtain my {@linkplain #isSuccess() successful} {@linkplain #get() value} or
+ * else compute an alternative based on the failure reason.
+ *
+ * @param failureFunction
+ * the computation of an alternative in case of failure
+ * @return the result
+ */
+ public final T orElseApply(Function<? super String, ? extends T> failureFunction) {
+ return orElseApply((reason, __) -> failureFunction.apply(reason));
+ }
+
+ /**
+ * Obtain my {@linkplain #isSuccess() successful} {@linkplain #get() value} or
+ * else {@code null} with a side-effect based on the failure reason.
+ *
+ * @param onFailure
+ * a side-effect to run in case of failure
+ * @return the result, or {@code null} if failed
+ */
+ public final T orElseAccept(BiConsumer<? super String, ? super Throwable> onFailure) {
+ if (isFailure()) {
+ onFailure.accept(reason(), failure());
+ }
+ return orElse(null);
+ }
+
+ /**
+ * Obtain my {@linkplain #isSuccess() successful} {@linkplain #get() value} or
+ * else {@code null} with a side-effect based on the failure reason.
+ *
+ * @param onFailure
+ * a side-effect to run in case of failure
+ * @return the result, or {@code null} if failed
+ */
+ public final T orElseAccept(Consumer<? super String> onFailure) {
+ return orElseAccept((reason, __) -> onFailure.accept(reason));
+ }
+
+ /**
+ * Map my value, if any, under the given function.
+ *
+ * @param <U>
+ * the result type of the mapping
+ * @param mapping
+ * the mapping function. It may return {@code null}
+ * @return a successful value of the {@code mapping} if I am a successful value, otherwise myself if I am a failure
+ */
+ public abstract <U> Try<U> map(Function<? super T, U> mapping);
+
+ /**
+ * Map my value, if any, under the given function.
+ *
+ * @param <U>
+ * the result type of the optional mapping
+ * @param mapping
+ * the mapping function. It must not return {@code null}
+ * @return a successful value of the {@code mapping} if I am a successful value, which may be empty if
+ * either I am empty or the {@code mapping} result is empty, otherwise myself if I am a failure
+ */
+ public abstract <U> Try<U> flatMap(Function<? super T, Optional<U>> mapping);
+
+ /**
+ * Map my value, if any, under the given function.
+ *
+ * @param <U>
+ * the result type of the attempted mapping
+ * @param mapping
+ * the mapping function. It must not return {@code null}
+ * @return a successful value of the {@code mapping} if I am a successful value and it is also,
+ * otherwise myself if I am a failure or the mapping failure if it is a failure
+ */
+ public abstract <U> Try<U> tryMap(Function<? super T, Try<U>> mapping);
+
+ /**
+ * Filter my value, if any, under the given {@code test}.
+ *
+ * @param test
+ * the filter predicate function
+ * @return a successful value if I am a successful value, which may be empty if
+ * either I am empty or the {@code test} fails, otherwise myself if I am a failure
+ */
+ public abstract Try<T> filter(Predicate<? super T> test);
+
+}
+
+/**
+ * The success case of a {@link Try}.
+ *
+ * @param <T>
+ * the value type
+ */
+final class Success<T> extends Try<T> {
+ private static final long serialVersionUID = -6184897525442822648L;
+
+ private final T value;
+
+ Success(T value) {
+ super();
+
+ this.value = value;
+ }
+
+ @Override
+ public Optional<T> toOptional() {
+ return Optional.ofNullable(value);
+ }
+
+ @Override
+ public boolean isSuccess() {
+ return true;
+ }
+
+ @Override
+ public T get() {
+ return value;
+ }
+
+ @Override
+ public String reason() {
+ return null;
+ }
+
+ @Override
+ public Throwable failure() {
+ return null;
+ }
+
+ @Override
+ public <U> Try<U> map(Function<? super T, U> mapping) {
+ return isEmpty() ? empty() : success(mapping.apply(value));
+ }
+
+ @Override
+ public <U> Try<U> flatMap(Function<? super T, Optional<U>> mapping) {
+ return isEmpty() ? empty() : success(mapping.apply(value).orElse(null));
+ }
+
+ @Override
+ public <U> Try<U> tryMap(Function<? super T, Try<U>> mapping) {
+ return isEmpty() ? empty() : Objects.requireNonNull(mapping.apply(value));
+ }
+
+ @Override
+ public Try<T> filter(Predicate<? super T> test) {
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof Success)) {
+ return false;
+ }
+
+ Success<?> other = (Success<?>) obj;
+ return Objects.equals(this.value, other.value);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(Success.class, value);
+ }
+
+ @Override
+ public String toString() {
+ return isEmpty()
+ ? "Empty()" //$NON-NLS-1$
+ : String.format("Success(%s)", value); //$NON-NLS-1$
+ }
+}
+
+/**
+ * The failure case of a {@link Try}.
+ *
+ * @param <T>
+ * the value type
+ */
+final class Failure<T> extends Try<T> {
+ private static final long serialVersionUID = -4229519157128957990L;
+ private static final String NO_REASON = "No reason provided."; //$NON-NLS-1$
+
+ private final Throwable failure;
+ private final String reason;
+
+ Failure(String reason) {
+ this(reason, null);
+ }
+
+ Failure(Throwable failure) {
+ this(null, failure);
+ }
+
+ Failure(String reason, Throwable failure) {
+ super();
+
+ this.reason = (reason != null) ? reason : failure != null ? failure.getClass().getName() : NO_REASON;
+ this.failure = failure;
+ }
+
+ @Override
+ public Optional<T> toOptional() {
+ return Optional.empty();
+ }
+
+ @Override
+ public boolean isSuccess() {
+ return false;
+ }
+
+ @Override
+ public T get() throws NoSuchElementException {
+ throw new NoSuchElementException();
+ }
+
+ @Override
+ public String reason() {
+ return reason;
+ }
+
+ @Override
+ public Throwable failure() {
+ return failure;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <U> Try<U> map(Function<? super T, U> mapping) {
+ return (Try<U>) this;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <U> Try<U> flatMap(Function<? super T, Optional<U>> mapping) {
+ return (Try<U>) this;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public <U> Try<U> tryMap(Function<? super T, Try<U>> mapping) {
+ return (Try<U>) this;
+ }
+
+ @Override
+ public Try<T> filter(Predicate<? super T> test) {
+ return this;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof Failure)) {
+ return false;
+ }
+
+ Failure<?> other = (Failure<?>) obj;
+ return Objects.equals(this.reason, other.reason)
+ && Objects.equals(this.failure, other.failure);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(Failure.class, reason, failure);
+ }
+
+ @Override
+ public String toString() {
+ return (failure == null || Objects.equals(failure.getMessage(), reason))
+ ? String.format("Failure(%s)", reason) //$NON-NLS-1$
+ : String.format("Failure(%s, %s: %s)", reason, failure.getClass().getSimpleName(), failure.getMessage()); //$NON-NLS-1$
+ }
+
+}
diff --git a/plugins/infra/emf/expressions/org.eclipse.papyrus.infra.emf.expressions.editor/plugin.xml b/plugins/infra/emf/expressions/org.eclipse.papyrus.infra.emf.expressions.editor/plugin.xml
index 1095aa6ead7..c13d0f774c1 100755
--- a/plugins/infra/emf/expressions/org.eclipse.papyrus.infra.emf.expressions.editor/plugin.xml
+++ b/plugins/infra/emf/expressions/org.eclipse.papyrus.infra.emf.expressions.editor/plugin.xml
@@ -26,7 +26,7 @@
id="org.eclipse.papyrus.infra.emf.expressions.presentation.ExpressionsModelWizardID"
name="%_UI_ExpressionsModelWizard_label"
class="org.eclipse.papyrus.infra.emf.expressions.presentation.ExpressionsModelWizard"
- category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.addons.category"
+ category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.dev.category/org.eclipse.papyrus.wizards.dev.framework.category"
icon="icons/full/obj16/ExpressionsModelFile.gif">
<description>%_UI_ExpressionsModelWizard_description</description>
<selection class="org.eclipse.core.resources.IResource"/>
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.emf.gmf/.settings/.api_filters b/plugins/infra/emf/org.eclipse.papyrus.infra.emf.gmf/.settings/.api_filters
deleted file mode 100644
index a13be90eff2..00000000000
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.emf.gmf/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.emf.gmf" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="2.1.0"/>
- <message_argument value="2.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.emf.readonly/.settings/.api_filters b/plugins/infra/emf/org.eclipse.papyrus.infra.emf.readonly/.settings/.api_filters
deleted file mode 100644
index 26b59700b77..00000000000
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.emf.readonly/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.emf.readonly" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="4.1.0"/>
- <message_argument value="4.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/.settings/.api_filters b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/.settings/.api_filters
deleted file mode 100644
index 316ee7a2362..00000000000
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.emf" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="4.1.0"/>
- <message_argument value="4.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/.settings/.api_filters b/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/.settings/.api_filters
deleted file mode 100644
index 6f2e13938f1..00000000000
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.ui.emf" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="3.1.0"/>
- <message_argument value="3.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/META-INF/MANIFEST.MF b/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/META-INF/MANIFEST.MF
index 11f9333033d..f1f7a8a17b5 100644
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/META-INF/MANIFEST.MF
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/META-INF/MANIFEST.MF
@@ -35,7 +35,7 @@ Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.6.0,4.0.0)",
org.eclipse.papyrus.infra.core.architecture;bundle-version="[3.0.0,4.0.0)"
Bundle-Vendor: %pluginProvider
Bundle-ActivationPolicy: lazy
-Bundle-Version: 3.1.0.qualifier
+Bundle-Version: 3.1.100.qualifier
Bundle-Name: %pluginName
Bundle-Localization: plugin
Bundle-Activator: org.eclipse.papyrus.infra.ui.internal.emf.Activator
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/pom.xml b/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/pom.xml
index e89cb372391..058c5ffff8e 100644
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/pom.xml
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/pom.xml
@@ -9,6 +9,6 @@
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.papyrus.infra.ui.emf</artifactId>
- <version>3.1.0-SNAPSHOT</version>
+ <version>3.1.100-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project> \ No newline at end of file
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/databinding/EObjectObservableValueEditingSupport.java b/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/databinding/EObjectObservableValueEditingSupport.java
index 1dd196a026f..d87bb080e08 100644
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/databinding/EObjectObservableValueEditingSupport.java
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/databinding/EObjectObservableValueEditingSupport.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2016, 2017 CEA LIST, Esterel Technologies SAS and others.
+ * Copyright (c) 2016, 2017, 2021 CEA LIST, Esterel Technologies SAS and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -13,6 +13,7 @@
* Thanh Liem PHAN (ALL4TEC) thanhliem.phan@all4tec.net - Bug 515491
* Sebastien Gabel (Esterel Technologies SAS) - Bug 519143 (Fix NPE)
* Fanch BONNABESSE (ALL4TEC) fanch.bonnabesse@all4tec.net - Bug 521908
+ * Asma SMAOUI (CEA LIST) asma.smaoui@cea.fr - Bug 576650
*****************************************************************************/
package org.eclipse.papyrus.infra.ui.emf.databinding;
@@ -22,6 +23,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.List;
+import org.eclipse.emf.common.util.Enumerator;
import org.eclipse.emf.databinding.EObjectObservableValue;
import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EDataType;
@@ -214,7 +216,7 @@ public class EObjectObservableValueEditingSupport extends EditingSupport {
/**
* Return Multi value when the feature is UnlimitedNatural. Replace '-1' by '*'.
- *
+ *
* @param object
* The old value.
* @return The value to return.
@@ -222,7 +224,7 @@ public class EObjectObservableValueEditingSupport extends EditingSupport {
*/
protected Object getMultiUnlimitedNaturalValue(final Object objects) {
if (objects instanceof List<?>) {
- List<Object> objectToReturn = new ArrayList<Object>();
+ List<Object> objectToReturn = new ArrayList<>();
if (objects instanceof List<?>) {
for (int i = 0; i < ((List<?>) objects).size(); i++) {
Object object = ((List<?>) objects).get(i);
@@ -306,15 +308,17 @@ public class EObjectObservableValueEditingSupport extends EditingSupport {
element.setValue(null);
} else {
if (value instanceof Collection<?>) {
- List<EEnumLiteral> literalsToSet = new ArrayList<EEnumLiteral>();
+ List<Enumerator> literalsToSet = new ArrayList<>();
for (Object object : ((Collection<Object>) value)) {
if (object instanceof EEnumLiteral) {
- literalsToSet.add((EEnumLiteral) object);
+ //bug 576650 : get(index).getInstance(), (works with static and dynamic profile)
+ literalsToSet.add(((EEnumLiteral) object).getInstance());
} else if (object instanceof Integer) {
// retrieve the index of the current value in the list
int index = (Integer) value;
if (index >= 0 && index < literals.size()) {
- literalsToSet.add(literals.get(index));
+ //bug 576650 : get(index).getInstance(), (works with static and dynamic profile)
+ literalsToSet.add(literals.get(index).getInstance());
}
}
}
@@ -327,7 +331,8 @@ public class EObjectObservableValueEditingSupport extends EditingSupport {
// Just set the new value if it is different from the old one
if (index >= 0 && index < literals.size() && !element.getValue().toString().equals(literals.get(index).getLiteral())) {
- element.setValue(literals.get(index));
+ //bug 576650 : get(index).getInstance(), (works with static and dynamic profile)
+ element.setValue(literals.get(index).getInstance());
}
}
}
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/internal/facet/ArchitectureFrameworkCustomizationManagerUpdater.java b/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/internal/facet/ArchitectureFrameworkCustomizationManagerUpdater.java
index 8df55149ce2..c3d6cf1b0cf 100755
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/internal/facet/ArchitectureFrameworkCustomizationManagerUpdater.java
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/internal/facet/ArchitectureFrameworkCustomizationManagerUpdater.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2020 CEA LIST and others.
+ * Copyright (c) 2020, 2021 CEA LIST and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,7 +10,7 @@
*
* Contributors:
* Vincent LORENZO (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
- *
+ * Vincent LORENZO (CEA LIST) vincent.lorenzo@cea.fr - Bug 576651
*****************************************************************************/
package org.eclipse.papyrus.infra.ui.emf.internal.facet;
@@ -195,6 +195,8 @@ public class ArchitectureFrameworkCustomizationManagerUpdater extends WorskpaceC
if (loadedFacetPreferences != null && !"".equals(loadedFacetPreferences)) { //$NON-NLS-1$
settings.put(LOADED_FACET_ORDER, loadedFacetPreferences.split(SEPARATOR_DEFAULT_LOADED_FACET));
}
+ } else {
+ settings = settings.getSection(modelKey);
}
return settings;
}
@@ -317,7 +319,6 @@ public class ArchitectureFrameworkCustomizationManagerUpdater extends WorskpaceC
final ArchitectureDescriptionUtils adUtils = new ArchitectureDescriptionUtils(modelSet);
final MergedArchitectureContext ctx = adUtils.getArchitectureContext();
if (ctx instanceof MergedArchitectureDescriptionLanguage) {
- // TODO on doit probablement les recharger dans un autre resource set
return ((MergedArchitectureDescriptionLanguage) ctx).getTreeViewerConfigurations();
}
}
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/internal/facet/WorskpaceCustomizationUpdater.java b/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/internal/facet/WorskpaceCustomizationUpdater.java
index 69b6c6aaf02..f3084d988ad 100755
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/internal/facet/WorskpaceCustomizationUpdater.java
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.ui.emf/src/org/eclipse/papyrus/infra/ui/emf/internal/facet/WorskpaceCustomizationUpdater.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2020 CEA LIST and others.
+ * Copyright (c) 2020, 2021 CEA LIST and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -9,8 +9,8 @@
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
- * Vincent Lorenzo (CEA LIST) <vincent.lorenzo@cea.fr> - Initial API and implementation
- *
+ * Vincent LORENZO (CEA LIST) <vincent.lorenzo@cea.fr> - Initial API and implementation
+ * Vincent LORENZO (CEA LIST) <vincent.lorenzo@cea.fr> - Bug 576651
*****************************************************************************/
package org.eclipse.papyrus.infra.ui.emf.internal.facet;
@@ -27,6 +27,7 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.DialogSettings;
import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.dialogs.IDialogSettingsProvider;
import org.eclipse.papyrus.emf.facet.custom.core.ICustomizationCatalogManager;
import org.eclipse.papyrus.emf.facet.custom.core.ICustomizationCatalogManagerFactory;
import org.eclipse.papyrus.emf.facet.custom.core.ICustomizationManager;
@@ -34,6 +35,7 @@ import org.eclipse.papyrus.emf.facet.custom.core.internal.CustomizationManager;
import org.eclipse.papyrus.emf.facet.custom.metamodel.v0_2_0.custom.Customization;
import org.eclipse.papyrus.infra.emf.CustomizationComparator;
import org.eclipse.papyrus.infra.ui.internal.emf.Activator;
+import org.eclipse.ui.PlatformUI;
/**
* This class manages the applied customizations (apply/reset) and is able to save user changes with a workspace preferences
@@ -114,7 +116,7 @@ public class WorskpaceCustomizationUpdater implements ICustomizationManagerUpdat
* the dialog setting used to save the preferences or <code>null</code> if not found
*/
protected final IDialogSettings getWorkspaceBrowserCustomizationDialogSettings() {
- return Activator.getDefault().getDialogSettings().getSection(CUSTOMIZATION_MANAGER_SECTION);
+ return getDialogSettingProvider().getDialogSettings().getSection(CUSTOMIZATION_MANAGER_SECTION);
}
/**
@@ -134,7 +136,7 @@ public class WorskpaceCustomizationUpdater implements ICustomizationManagerUpdat
protected final IDialogSettings getOrCreateWorkspaceBrowserCustomizationDialogSettings() {
IDialogSettings settings = getWorkspaceBrowserCustomizationDialogSettings();
if (settings == null) {
- settings = Activator.getDefault().getDialogSettings().addNewSection(CUSTOMIZATION_MANAGER_SECTION);
+ settings = getDialogSettingProvider().getDialogSettings().addNewSection(CUSTOMIZATION_MANAGER_SECTION);
String loadedFacetPreferences = Activator.getDefault().getPreferenceStore().getString(DEFAULT_LOADED_FACET);
if (loadedFacetPreferences != null && !"".equals(loadedFacetPreferences)) { //$NON-NLS-1$
settings.put(LOADED_FACET_ORDER, loadedFacetPreferences.split(SEPARATOR_DEFAULT_LOADED_FACET));
@@ -225,8 +227,10 @@ public class WorskpaceCustomizationUpdater implements ICustomizationManagerUpdat
* Restores the default Customization Manager configuration
*/
protected void destroyUserPreferences() {
- final DialogSettings settings = (DialogSettings) Activator.getDefault().getDialogSettings();
- settings.removeSection(CUSTOMIZATION_MANAGER_SECTION);
+ final IDialogSettings settings = getBrowserCustomizationDialogSettings();
+ if (settings instanceof DialogSettings) {
+ ((DialogSettings) settings).removeSection(CUSTOMIZATION_MANAGER_SECTION);
+ }
}
/**
@@ -249,6 +253,17 @@ public class WorskpaceCustomizationUpdater implements ICustomizationManagerUpdat
customizationList.addAll(appliedCustomizations);
String[] loadedCustomizationArray = customizationList.stream().map(customization -> customization.eResource().getURI().toString()).toArray(size -> new String[size]);
dialogSettings.put(LOADED_FACET_ORDER, loadedCustomizationArray);
+
+ // not required, Eclipse save itself the IDialogSettings when we close it
+ // just here for debug and information purpose
+ // getDialogSettingProvider().saveDialogSettings();
+ }
+
+ /**
+ * Returns the dialog setting provider
+ */
+ protected final IDialogSettingsProvider getDialogSettingProvider() {
+ return PlatformUI.getDialogSettingsProvider(Activator.getDefault().getBundle());
}
/**
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.editor/plugin.xml b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.editor/plugin.xml
index cbc38fb5b36..e36c5280144 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.editor/plugin.xml
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.editor/plugin.xml
@@ -23,7 +23,7 @@
id="org.eclipse.papyrus.infra.gmfdiag.assistant.presentation.AssistantModelWizardID"
name="%_UI_AssistantModelWizard_label"
class="org.eclipse.papyrus.infra.gmfdiag.assistant.presentation.AssistantModelWizard"
- category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.addons.category"
+ category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.custo.category/org.eclipse.papyrus.wizards.custo.editors.category"
icon="icons/full/obj16/AssistantModelFile.gif">
<description>%_UI_AssistantModelWizard_description</description>
<selection class="org.eclipse.core.resources.IResource"/>
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/.settings/.api_filters b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/.settings/.api_filters
deleted file mode 100644
index 7faff2aa342..00000000000
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.gmfdiag.assistant" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="2.1.0"/>
- <message_argument value="2.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/gmfdiag/expansion/org.eclipse.papyrus.infra.gmfdiag.expansion.editor/plugin.xml b/plugins/infra/gmfdiag/expansion/org.eclipse.papyrus.infra.gmfdiag.expansion.editor/plugin.xml
index 1272c225304..ded3aa9768e 100644
--- a/plugins/infra/gmfdiag/expansion/org.eclipse.papyrus.infra.gmfdiag.expansion.editor/plugin.xml
+++ b/plugins/infra/gmfdiag/expansion/org.eclipse.papyrus.infra.gmfdiag.expansion.editor/plugin.xml
@@ -11,7 +11,7 @@
id="org.eclipse.papyrus.infra.gmfdiag.expansion.expansionmodel.presentation.ExpansionModelModelWizardID"
name="%_UI_ExpansionModelModelWizard_label"
class="org.eclipse.papyrus.infra.gmfdiag.expansion.expansionmodel.presentation.ExpansionModelModelWizard"
- category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.addons.category"
+ category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.dev.category/org.eclipse.papyrus.wizards.dev.editors.category"
icon="icons/full/obj16/ExpansionModelModelFile.gif">
<description>%_UI_ExpansionModelModelWizard_description</description>
<selection class="org.eclipse.core.resources.IResource"/>
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/.settings/.api_filters b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/.settings/.api_filters
deleted file mode 100644
index ef1730aba0a..00000000000
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.canonical/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.gmfdiag.canonical" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="3.1.0"/>
- <message_argument value="3.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/.settings/.api_filters b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/.settings/.api_filters
deleted file mode 100644
index fbd75a89482..00000000000
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.gmfdiag.common" version="2">
- <resource path="src/org/eclipse/papyrus/infra/gmfdiag/common/sync/UISyncUtils.java" type="org.eclipse.papyrus.infra.gmfdiag.common.sync.UISyncUtils">
- <filter id="338792546">
- <message_arguments>
- <message_argument value="org.eclipse.papyrus.infra.gmfdiag.common.sync.UISyncUtils"/>
- <message_argument value="asyncExec(ISyncObject, SyncServiceRunnable&lt;V,X&gt;)"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
index ebb9c24d826..3a5765238fb 100755
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
@@ -99,7 +99,7 @@ Bundle-Activator: org.eclipse.papyrus.infra.gmfdiag.common.Activator
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
-Bundle-Version: 4.1.0.qualifier
+Bundle-Version: 4.2.0.qualifier
Bundle-Localization: plugin
Bundle-Name: %pluginName
Bundle-ManifestVersion: 2
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/pom.xml b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/pom.xml
index 55516b17229..5a748174bbb 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/pom.xml
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/pom.xml
@@ -9,6 +9,6 @@
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.papyrus.infra.gmfdiag.common</artifactId>
- <version>4.1.0-SNAPSHOT</version>
+ <version>4.2.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project> \ No newline at end of file
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/editpart/AbstractResizableCompartmentEditPart.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/editpart/AbstractResizableCompartmentEditPart.java
new file mode 100644
index 00000000000..b54d76586fd
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/editpart/AbstractResizableCompartmentEditPart.java
@@ -0,0 +1,91 @@
+/*****************************************************************************
+* Copyright (c) 2021 CEA LIST, ARTAL
+*
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License 2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+*
+* Contributors:
+* Etienne ALLOGO (ARTAL) - Initial API and implementation
+* Etienne ALLOGO (ARTAL) - etienne.allogo@artal.fr - Bug 569174 : generate less dead or duplicate code
+*****************************************************************************/
+
+package org.eclipse.papyrus.infra.gmfdiag.common.editpart;
+
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+
+/**
+ * An intermediate class with the common methods used by resizeable list compartments (inherit from ResizeableListCompartmentEditPart).
+ *
+ * @author allogo
+ * @since 4.2
+ */
+public abstract class AbstractResizableCompartmentEditPart extends ResizeableListCompartmentEditPart {
+
+ /**
+ * Constructor.
+ *
+ * @param model
+ * the model
+ */
+ public AbstractResizableCompartmentEditPart(EObject model) {
+ super(model);
+ }
+
+ @Override
+ public EditPart getTargetEditPart(Request request) {
+ return super.getTargetEditPart(request);
+ }
+
+ @Override
+ protected void handleNotificationEvent(Notification notification) {
+ Object feature = notification.getFeature();
+ if (NotationPackage.eINSTANCE.getSize_Width().equals(feature)
+ || NotationPackage.eINSTANCE.getSize_Height().equals(feature)
+ || NotationPackage.eINSTANCE.getLocation_X().equals(feature)
+ || NotationPackage.eINSTANCE.getLocation_Y().equals(feature)) {
+ refreshBounds();
+ }
+ super.handleNotificationEvent(notification);
+ }
+
+ @Override
+ protected void refreshBounds() {
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Height())).intValue();
+ Dimension size = new Dimension(width, height);
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getLocation_Y())).intValue();
+ Point loc = new Point(x, y);
+ ((GraphicalEditPart) getParent()).setLayoutConstraint(
+ this,
+ getFigure(),
+ new Rectangle(loc, size));
+ }
+
+ @Override
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshBounds();
+ }
+
+ @Override
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/editpart/NavigableShapeCompartmentEditPart.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/editpart/NavigableShapeCompartmentEditPart.java
new file mode 100644
index 00000000000..940557d0b16
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/editpart/NavigableShapeCompartmentEditPart.java
@@ -0,0 +1,89 @@
+/*****************************************************************************
+ * Copyright (c) 2009 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation
+ * Etienne ALLOGO (ARTAL) - etienne.allogo@artal.fr - Bug 569174 : Pull up refreshVisuals/setRatio for shape compartments
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.common.editpart;
+
+import org.eclipse.gef.DragTracker;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.requests.SelectionRequest;
+import org.eclipse.gef.tools.DeselectAllTracker;
+import org.eclipse.gmf.runtime.diagram.ui.internal.tools.RubberbandDragTracker;
+import org.eclipse.gmf.runtime.notation.View;
+
+/**
+ * this is an abstract editpart used to allow double click on XY layout compartment
+ *
+ * @since 4.2
+ *
+ */
+@SuppressWarnings("restriction")
+public abstract class NavigableShapeCompartmentEditPart extends XYLayoutShapeCompartmentEditPart {
+
+ public NavigableShapeCompartmentEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ *
+ * @see org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart#getDragTracker(org.eclipse.gef.Request)
+ *
+ */
+ @Override
+ public DragTracker getDragTracker(Request req) {
+ if (!supportsDragSelection()) {
+ return super.getDragTracker(req);
+ }
+ if (req instanceof SelectionRequest && ((SelectionRequest) req).getLastButtonPressed() == 3) {
+ return new DeselectAllTracker(this) {
+
+ @Override
+ protected boolean handleButtonDown(int button) {
+ getCurrentViewer().select(NavigableShapeCompartmentEditPart.this);
+ return true;
+ }
+ };
+ }
+ return new RubberbandDragTracker() {
+
+ /*
+ * this method has been respecified in order to allow double click
+ * on the compartment.
+ * hence it allows the navigation by double click
+ */
+ @Override
+ protected boolean handleDoubleClick(int button) {
+ SelectionRequest request = new SelectionRequest();
+ request.setLocation(getLocation());
+ request.setType(RequestConstants.REQ_OPEN);
+ NavigableShapeCompartmentEditPart.this.performRequest(request);
+ return true;
+ }
+
+ @Override
+ protected void handleFinished() {
+ if (getViewer().getSelectedEditParts().isEmpty()) {
+ getViewer().select(NavigableShapeCompartmentEditPart.this);
+ }
+ }
+ };
+ }
+
+ @Override
+ public boolean isSelectable() {
+ return false;
+ }
+
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/.settings/.api_filters b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/.settings/.api_filters
deleted file mode 100644
index 6ab8dd3f4df..00000000000
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.gmfdiag.menu" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="2.1.0"/>
- <message_argument value="2.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/src/org/eclipse/papyrus/infra/gmfdiag/menu/handlers/PasteInDiagramHandler.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/src/org/eclipse/papyrus/infra/gmfdiag/menu/handlers/PasteInDiagramHandler.java
index e4890eda481..e9736af1c26 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/src/org/eclipse/papyrus/infra/gmfdiag/menu/handlers/PasteInDiagramHandler.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/src/org/eclipse/papyrus/infra/gmfdiag/menu/handlers/PasteInDiagramHandler.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2014 CEA LIST.
+ * Copyright (c) 2014, 2021 CEA LIST.
*
*
* All rights reserved. This program and the accompanying materials
@@ -11,7 +11,7 @@
*
* Contributors:
* Benoit Maggi (CEA LIST) benoit.maggi@cea.fr - Initial API and implementation
- *
+ * Ansgar Radermacher (CEA LIST) ansgar.radermacher@cea.fr - bug 573807
*****************************************************************************/
package org.eclipse.papyrus.infra.gmfdiag.menu.handlers;
@@ -82,7 +82,7 @@ public class PasteInDiagramHandler extends AbstractGraphicalCommandHandler {
Control focusControl = null;
if (activeShell instanceof Shell) {
Shell shell = (Shell) activeShell;
- Display display = shell.getDisplay();
+ Display display = !shell.isDisposed() ? shell.getDisplay() : null;
if (display != null) {
focusControl = display.getFocusControl();
}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF
index 8cccfbd0b58..c8f72e5c3d9 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.modelexplorer/META-INF/MANIFEST.MF
@@ -20,7 +20,7 @@ Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.6.0,4.0.0)",
org.eclipse.papyrus.infra.internationalization.utils;bundle-version="[2.0.0,3.0.0)",
org.eclipse.papyrus.infra.ui;bundle-version="[3.0.0,4.0.0)",
org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="[4.0.0,5.0.0)",
- org.eclipse.papyrus.views.modelexplorer;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.papyrus.views.modelexplorer;bundle-version="[5.0.0,6.0.0)",
org.eclipse.uml2.types;bundle-version="[2.5.0,3.0.0)"
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/.settings/.api_filters b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/.settings/.api_filters
deleted file mode 100644
index 2b79ef983ec..00000000000
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.gmfdiag.properties" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="5.1.0"/>
- <message_argument value="5.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/META-INF/MANIFEST.MF
index af99350d2f8..a4a61333387 100755
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.papyrus.infra.gmfdiag.tooling.runtime;singleton:=true
-Bundle-Version: 4.0.0.qualifier
+Bundle-Version: 4.1.0.qualifier
Bundle-Vendor: %providerName
Bundle-Description: %Bundle-Description
Bundle-Localization: plugin
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/pom.xml b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/pom.xml
index a0449c6cf3c..b15fbab72c1 100755
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/pom.xml
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/pom.xml
@@ -9,7 +9,7 @@
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.papyrus.infra.gmfdiag.tooling.runtime</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.1.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<description>Papyrus fork of org.eclipse.gmf.tooling.runtime to remain in the release train</description>
</project> \ No newline at end of file
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/linklf/LinkLFShapeCompartmentEditPart.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/linklf/LinkLFShapeCompartmentEditPart.java
index f85d4211dfd..ee07ca67a48 100755..100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/linklf/LinkLFShapeCompartmentEditPart.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/linklf/LinkLFShapeCompartmentEditPart.java
@@ -1,7 +1,7 @@
/*****************************************************************************
- * Copyright (c) 2014-15 CEA LIST, Montages AG and others
+ * Copyright (c) 2014-15, 2021 CEA LIST, Montages AG, ARTAL and others
+ *
*
- *
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
@@ -11,8 +11,9 @@
*
* Contributors:
* Anatoly Tishenko (tishenko@montages.com) - Initial API and implementation
- */
-package org.eclipse.papyrus.infra.gmfdiag.tooling.runtime.linklf;
+ * Etienne ALLOGO (ARTAL) - etienne.allogo@artal.fr - Bug 569174 : Pull up refreshVisuals/setRatio for shape compartments
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.tooling.runtime.linklf;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
@@ -28,16 +29,22 @@ import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.draw2d.geometry.Translatable;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
import org.eclipse.gef.SnapToGrid;
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemsAwareFreeFormLayer;
import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
import org.eclipse.gmf.runtime.diagram.ui.figures.ShapeCompartmentFigure;
import org.eclipse.gmf.runtime.diagram.ui.layout.FreeFormLayoutEx;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
import org.eclipse.gmf.runtime.draw2d.ui.internal.figures.AnimatableScrollPane;
import org.eclipse.gmf.runtime.draw2d.ui.internal.figures.OverlayScrollPaneLayout;
import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
import org.eclipse.gmf.runtime.notation.View;
/**
@@ -45,8 +52,9 @@ import org.eclipse.gmf.runtime.notation.View;
*/
public class LinkLFShapeCompartmentEditPart extends ShapeCompartmentEditPart {
- private final PropertyChangeListener myGridListener = new PropertyChangeListener() {
+ private PropertyChangeListener myGridListener = new PropertyChangeListener() {
+ @Override
public void propertyChange(PropertyChangeEvent evt) {
String propertyName = evt.getPropertyName();
if (SnapToGrid.PROPERTY_GRID_ORIGIN.equals(propertyName) || //
@@ -164,12 +172,13 @@ public class LinkLFShapeCompartmentEditPart extends ShapeCompartmentEditPart {
private class SnapToGridRangeModel implements RangeModel {
- private final RangeModel myBaseRangeModel;
+ private RangeModel myBaseRangeModel;
public SnapToGridRangeModel(RangeModel rangeModel) {
myBaseRangeModel = rangeModel;
}
+ @Override
public void setValue(int value) {
Rectangle gridSpec = getGridSpec(getViewer());
if (gridSpec != null) {
@@ -181,46 +190,57 @@ public class LinkLFShapeCompartmentEditPart extends ShapeCompartmentEditPart {
}
}
+ @Override
public void setMinimum(int min) {
myBaseRangeModel.setMinimum(min);
}
+ @Override
public void setMaximum(int max) {
myBaseRangeModel.setMaximum(max);
}
+ @Override
public void setExtent(int extent) {
myBaseRangeModel.setExtent(extent);
}
+ @Override
public void setAll(int min, int extent, int max) {
myBaseRangeModel.setAll(min, extent, max);
}
+ @Override
public void removePropertyChangeListener(PropertyChangeListener listener) {
myBaseRangeModel.removePropertyChangeListener(listener);
}
+ @Override
public boolean isEnabled() {
return true;
}
+ @Override
public int getValue() {
return myBaseRangeModel.getValue();
}
+ @Override
public int getMinimum() {
return myBaseRangeModel.getMinimum();
}
+ @Override
public int getMaximum() {
return myBaseRangeModel.getMaximum();
}
+ @Override
public int getExtent() {
return myBaseRangeModel.getExtent();
}
+ @Override
public void addPropertyChangeListener(PropertyChangeListener listener) {
myBaseRangeModel.addPropertyChangeListener(listener);
}
@@ -265,21 +285,71 @@ public class LinkLFShapeCompartmentEditPart extends ShapeCompartmentEditPart {
myMapMode = mm;
}
+ @Override
public int LPtoDP(int logicalUnit) {
return myMapMode.LPtoDP(logicalUnit);
}
+ @Override
public int DPtoLP(int deviceUnit) {
return myMapMode.DPtoLP(deviceUnit);
}
+ @Override
public Translatable LPtoDP(Translatable t) {
return myMapMode.LPtoDP(t);
}
+ @Override
public Translatable DPtoLP(Translatable t) {
return myMapMode.DPtoLP(t);
}
}
+
+ @Override
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+ @Override
+ public EditPart getTargetEditPart(Request request) {
+ return super.getTargetEditPart(request);
+ }
+
+ @Override
+ protected void handleNotificationEvent(Notification notification) {
+ Object feature = notification.getFeature();
+ if (NotationPackage.eINSTANCE.getSize_Width().equals(feature)
+ || NotationPackage.eINSTANCE.getSize_Height().equals(feature)
+ || NotationPackage.eINSTANCE.getLocation_X().equals(feature)
+ || NotationPackage.eINSTANCE.getLocation_Y().equals(feature)) {
+ refreshBounds();
+ }
+ super.handleNotificationEvent(notification);
+ }
+
+ /**
+ * Refresh bounds.
+ *
+ * @since 4.1
+ */
+ protected void refreshBounds() {
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getSize_Height())).intValue();
+ Dimension size = new Dimension(width, height);
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE.getLocation_Y())).intValue();
+ Point loc = new Point(x, y);
+ ((GraphicalEditPart) getParent()).setLayoutConstraint(this, getFigure(), new Rectangle(loc, size));
+ }
+
+ @Override
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshBounds();
+ }
+
}
diff --git a/plugins/infra/gmfdiag/paletteconfiguration/org.eclipse.papyrus.infra.gmfdiag.paletteconfiguration.editor/.settings/.api_filters b/plugins/infra/gmfdiag/paletteconfiguration/org.eclipse.papyrus.infra.gmfdiag.paletteconfiguration.editor/.settings/.api_filters
deleted file mode 100644
index 1ae42d426a7..00000000000
--- a/plugins/infra/gmfdiag/paletteconfiguration/org.eclipse.papyrus.infra.gmfdiag.paletteconfiguration.editor/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.gmfdiag.paletteconfiguration.editor" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="4.1.0"/>
- <message_argument value="4.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/gmfdiag/paletteconfiguration/org.eclipse.papyrus.infra.gmfdiag.paletteconfiguration.editor/plugin.xml b/plugins/infra/gmfdiag/paletteconfiguration/org.eclipse.papyrus.infra.gmfdiag.paletteconfiguration.editor/plugin.xml
index c09267a6413..80b8e2d764e 100644
--- a/plugins/infra/gmfdiag/paletteconfiguration/org.eclipse.papyrus.infra.gmfdiag.paletteconfiguration.editor/plugin.xml
+++ b/plugins/infra/gmfdiag/paletteconfiguration/org.eclipse.papyrus.infra.gmfdiag.paletteconfiguration.editor/plugin.xml
@@ -16,7 +16,7 @@
id="org.eclipse.papyrus.infra.gmfdiag.paletteconfiguration.presentation.PaletteconfigurationModelWizardID"
name="%_UI_PaletteconfigurationModelWizard_label"
class="org.eclipse.papyrus.infra.gmfdiag.paletteconfiguration.presentation.CustomPaletteconfigurationModelWizard"
- category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.addons.category"
+ category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.custo.category/org.eclipse.papyrus.wizards.custo.editors.category"
icon="icons/full/obj16/PaletteconfigurationModelFile.gif">
<description>%_UI_PaletteconfigurationModelWizard_description</description>
<selection class="org.eclipse.core.resources.IResource"/>
diff --git a/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.readonly/.settings/.api_filters b/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.readonly/.settings/.api_filters
deleted file mode 100644
index b94bd0c62c0..00000000000
--- a/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization.readonly/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.internationalization.readonly" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="2.1.0"/>
- <message_argument value="2.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization/.settings/.api_filters b/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization/.settings/.api_filters
deleted file mode 100644
index eaf79e58c7b..00000000000
--- a/plugins/infra/internationalization/org.eclipse.papyrus.infra.internationalization/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.internationalization" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="2.1.0"/>
- <message_argument value="2.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/misc/org.eclipse.papyrus.infra.sync/.settings/.api_filters b/plugins/infra/misc/org.eclipse.papyrus.infra.sync/.settings/.api_filters
deleted file mode 100644
index 0c9df1f4b33..00000000000
--- a/plugins/infra/misc/org.eclipse.papyrus.infra.sync/.settings/.api_filters
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.sync" version="2">
- <resource path="src/org/eclipse/papyrus/infra/sync/ISyncObject.java" type="org.eclipse.papyrus.infra.sync.ISyncObject">
- <filter id="403804204">
- <message_arguments>
- <message_argument value="org.eclipse.papyrus.infra.sync.ISyncObject"/>
- <message_argument value="runAsync(SyncServiceRunnable&lt;V,X&gt;)"/>
- </message_arguments>
- </filter>
- <filter id="405901410">
- <message_arguments>
- <message_argument value="org.eclipse.papyrus.infra.sync.ISyncObject"/>
- <message_argument value="runAsync(SyncServiceRunnable&lt;V,X&gt;)"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/papyrus/infra/sync/SyncObject.java" type="org.eclipse.papyrus.infra.sync.SyncObject">
- <filter id="338792546">
- <message_arguments>
- <message_argument value="org.eclipse.papyrus.infra.sync.SyncObject"/>
- <message_argument value="runAsync(SyncServiceRunnable&lt;V,X&gt;)"/>
- </message_arguments>
- </filter>
- </resource>
- <resource path="src/org/eclipse/papyrus/infra/sync/service/SyncServiceRunnable.java" type="org.eclipse.papyrus.infra.sync.service.SyncServiceRunnable">
- <filter id="338792546">
- <message_arguments>
- <message_argument value="org.eclipse.papyrus.infra.sync.service.SyncServiceRunnable"/>
- <message_argument value="asFuture(ISyncObject)"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/.settings/.api_filters b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/.settings/.api_filters
deleted file mode 100644
index c9e60be97c2..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.nattable.common" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="6.1.0"/>
- <message_argument value="6.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.controlmode/.settings/.api_filters b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.controlmode/.settings/.api_filters
deleted file mode 100644
index ffa429c82fb..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.controlmode/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.nattable.controlmode" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="3.1.0"/>
- <message_argument value="3.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model.editor/plugin.xml b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model.editor/plugin.xml
index 99f7146a7b7..6576d9dd712 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model.editor/plugin.xml
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.model.editor/plugin.xml
@@ -58,7 +58,7 @@
id="org.eclipse.papyrus.infra.nattable.model.nattable.nattableconfiguration.presentation.NattableconfigurationModelWizardID"
name="%_UI_NattableconfigurationModelWizard_label"
class="org.eclipse.papyrus.infra.nattable.model.nattable.nattableconfiguration.presentation.NattableconfigurationModelWizard"
- category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.addons.category"
+ category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.custo.category/org.eclipse.papyrus.wizards.custo.editors.category"
icon="icons/full/obj16/NattableconfigurationModelFile.gif">
<description>%_UI_NattableconfigurationModelWizard_description</description>
<selection class="org.eclipse.core.resources.IResource"/>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/META-INF/MANIFEST.MF b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/META-INF/MANIFEST.MF
index 43a7263eeaa..73c734449ed 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/META-INF/MANIFEST.MF
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.modelexplorer/META-INF/MANIFEST.MF
@@ -30,7 +30,7 @@ Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.6.0,4.0.0)",
org.eclipse.papyrus.infra.nattable.model.edit;bundle-version="[5.0.0,6.0.0)",
org.eclipse.papyrus.infra.ui;bundle-version="[3.0.0,4.0.0)",
org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="[4.0.0,5.0.0)",
- org.eclipse.papyrus.views.modelexplorer;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.papyrus.views.modelexplorer;bundle-version="[5.0.0,6.0.0)",
org.eclipse.uml2.common.edit;bundle-version="[2.5.0,3.0.0)",
org.eclipse.uml2.types;bundle-version="[2.5.0,3.0.0)"
Bundle-Vendor: %Bundle-Vendor
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/.settings/.api_filters b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/.settings/.api_filters
deleted file mode 100644
index 1507d1acc83..00000000000
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.papyrus.infra.nattable" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="926941240">
- <message_arguments>
- <message_argument value="7.1.0"/>
- <message_argument value="7.0.0"/>
- </message_arguments>
- </filter>
- </resource>
-</component>
diff --git a/plugins/infra/newchild/org.eclipse.papyrus.infra.newchild.editor/plugin.xml b/plugins/infra/newchild/org.eclipse.papyrus.infra.newchild.editor/plugin.xml
index d71878018db..3458372c790 100644
--- a/plugins/infra/newchild/org.eclipse.papyrus.infra.newchild.editor/plugin.xml
+++ b/plugins/infra/newchild/org.eclipse.papyrus.infra.newchild.editor/plugin.xml
@@ -24,7 +24,7 @@
id="org.eclipse.papyrus.infra.newchild.elementcreationmenumodel.presentation.ElementCreationMenuModelModelWizardID"
name="%_UI_ElementCreationMenuModelModelWizard_label"
class="org.eclipse.papyrus.infra.newchild.elementcreationmenumodel.presentation.ElementCreationMenuModelModelWizard"
- category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.addons.category"
+ category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.custo.category/org.eclipse.papyrus.wizards.custo.modelexplorer.category"
icon="icons/full/obj16/ElementCreationMenuModelModelFile.gif">
<description>%_UI_ElementCreationMenuModelModelWizard_description</description>
<selection class="org.eclipse.core.resources.IResource"/>
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/.classpath b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/.classpath
index e9c6eafb6fa..bb642933501 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/.classpath
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/.classpath
@@ -3,5 +3,6 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/META-INF/MANIFEST.MF b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/META-INF/MANIFEST.MF
index fc959cf2c8c..15669bd3de0 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/META-INF/MANIFEST.MF
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/META-INF/MANIFEST.MF
@@ -1,6 +1,7 @@
Manifest-Version: 1.0
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.18.0,4.0.0)",
org.eclipse.emf.ecore.edit;bundle-version="[2.13.0,3.0.0)",
+ org.eclipse.uml2.types;bundle-version="[2.5.0,3.0.0)",
org.eclipse.uml2.common.edit;bundle-version="[2.5.0,3.0.0)",
org.eclipse.emf.ecore.xmi;bundle-version="[2.16.0,3.0.0)",
org.eclipse.papyrus.infra.constraints.edit;bundle-version="[3.0.0,4.0.0)",
@@ -8,13 +9,14 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.18.0,4.0.0)",
org.eclipse.papyrus.infra.properties;bundle-version="[4.0.0,5.0.0)",
org.eclipse.emf.edit;bundle-version="[2.16.0,3.0.0)",
org.eclipse.papyrus.infra.constraints;bundle-version="[3.0.0,4.0.0)"
-Export-Package: org.eclipse.papyrus.infra.properties.contexts.provider,
+Export-Package: org.eclipse.papyrus.infra.properties.contexts.command,
+ org.eclipse.papyrus.infra.properties.contexts.provider,
org.eclipse.papyrus.infra.properties.environment.provider,
org.eclipse.papyrus.infra.properties.ui.provider
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
-Bundle-Version: 4.0.0.qualifier
+Bundle-Version: 4.1.0.qualifier
Bundle-Localization: plugin
Bundle-Name: %pluginName
Bundle-Activator: org.eclipse.papyrus.infra.properties.environment.provider.PropertiesEditPlugin$Implementation
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/build.properties b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/build.properties
index ff1c7b4035c..43022875a79 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/build.properties
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/build.properties
@@ -4,4 +4,4 @@ output.. = bin/
bin.includes=.,icons/,META-INF/,plugin.xml,plugin.properties,about.html
jars.compile.order=.
src.includes = about.html
-source..=src-gen/
+source..=src-gen/,src/
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeConstraint_constraints_SimpleConstraint.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeConstraint_constraints_SimpleConstraint.gif
deleted file mode 100644
index 7943912208c..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeConstraint_constraints_SimpleConstraint.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_layout_Layout.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_layout_Layout.gif
deleted file mode 100644
index 99dde266945..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_layout_Layout.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_CompositeWidget.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_CompositeWidget.gif
deleted file mode 100644
index 8a1bb500a15..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_CompositeWidget.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_PropertyEditor.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_PropertyEditor.gif
deleted file mode 100644
index 746a59ebd8a..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_PropertyEditor.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_StandardWidget.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_StandardWidget.gif
deleted file mode 100644
index 409c013e857..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_StandardWidget.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_UnknownComponent.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_UnknownComponent.gif
deleted file mode 100644
index 1097d000b66..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_UnknownComponent.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_UnknownWidget.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_UnknownWidget.gif
deleted file mode 100644
index 4365960a04b..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateCompositeWidget_widgets_UnknownWidget.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintDescriptor_constraints_ConstraintDescriptor.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintDescriptor_constraints_ConstraintDescriptor.gif
deleted file mode 100644
index efcbc1b6a02..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintDescriptor_constraints_ConstraintDescriptor.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintDescriptor_properties_ReferenceProperty.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintDescriptor_properties_ReferenceProperty.gif
deleted file mode 100644
index 84f1465d1f0..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintDescriptor_properties_ReferenceProperty.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintDescriptor_properties_ValueProperty.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintDescriptor_properties_ValueProperty.gif
deleted file mode 100644
index 7affd573b9e..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintDescriptor_properties_ValueProperty.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintMapping_constraints_ConstraintMapping.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintMapping_constraints_ConstraintMapping.gif
deleted file mode 100644
index 883ce93b430..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintMapping_constraints_ConstraintMapping.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintMapping_properties_ReferenceProperty.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintMapping_properties_ReferenceProperty.gif
deleted file mode 100644
index a1fa94e6e19..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintMapping_properties_ReferenceProperty.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintMapping_properties_ValueProperty.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintMapping_properties_ValueProperty.gif
deleted file mode 100644
index 182638d7681..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateConstraintMapping_properties_ValueProperty.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_constraints_ConstraintDescriptor.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_constraints_ConstraintDescriptor.gif
deleted file mode 100644
index efcbc1b6a02..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_constraints_ConstraintDescriptor.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_constraints_ConstraintMapping.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_constraints_ConstraintMapping.gif
deleted file mode 100644
index 14ad12525b4..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_constraints_ConstraintMapping.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_dataContexts_DataContextRoot.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_dataContexts_DataContextRoot.gif
deleted file mode 100644
index 7d37ab47804..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_dataContexts_DataContextRoot.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_tabs_Tab.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_tabs_Tab.gif
deleted file mode 100644
index 80f9182accc..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_tabs_Tab.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_views_View.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_views_View.gif
deleted file mode 100644
index e62987a27b1..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateContext_views_View.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextElement_properties_Property.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextElement_properties_Property.gif
deleted file mode 100644
index ae4714fc6a7..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextElement_properties_Property.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextElement_properties_UnknownProperty.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextElement_properties_UnknownProperty.gif
deleted file mode 100644
index 07adaab9f3a..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextElement_properties_UnknownProperty.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextPackage_elements_DataContextElement.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextPackage_elements_DataContextElement.gif
deleted file mode 100644
index eab3c353c4f..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextPackage_elements_DataContextElement.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextPackage_elements_DataContextPackage.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextPackage_elements_DataContextPackage.gif
deleted file mode 100644
index 4e7f8d9ecc7..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextPackage_elements_DataContextPackage.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextPackage_elements_DataContextRoot.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextPackage_elements_DataContextRoot.gif
deleted file mode 100644
index 1c4c5221527..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDataContextPackage_elements_DataContextRoot.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDisplayUnit_constraints_CompositeConstraint.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDisplayUnit_constraints_CompositeConstraint.gif
deleted file mode 100644
index 6243419e928..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDisplayUnit_constraints_CompositeConstraint.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDisplayUnit_constraints_ConstraintDescriptor.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDisplayUnit_constraints_ConstraintDescriptor.gif
deleted file mode 100644
index efcbc1b6a02..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDisplayUnit_constraints_ConstraintDescriptor.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDisplayUnit_constraints_SimpleConstraint.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDisplayUnit_constraints_SimpleConstraint.gif
deleted file mode 100644
index 7943912208c..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateDisplayUnit_constraints_SimpleConstraint.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_CompositeWidget.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_CompositeWidget.gif
deleted file mode 100644
index 4365960a04b..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_CompositeWidget.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_Element.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_Element.gif
deleted file mode 100644
index 8a06919132f..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_Element.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_Layout.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_Layout.gif
deleted file mode 100644
index 99dde266945..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_Layout.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_PropertyEditor.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_PropertyEditor.gif
deleted file mode 100644
index 746a59ebd8a..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_PropertyEditor.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_ReferenceAttribute.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_ReferenceAttribute.gif
deleted file mode 100644
index 84954664093..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_ReferenceAttribute.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_StandardWidget.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_StandardWidget.gif
deleted file mode 100644
index 4365960a04b..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_StandardWidget.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_UnknownElement.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_UnknownElement.gif
deleted file mode 100644
index 16c3e21097d..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_UnknownElement.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_ValueAttribute.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_ValueAttribute.gif
deleted file mode 100644
index 0d3c1aa7b2a..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateElement_children_ValueAttribute.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_compositeWidgetTypes_CompositeWidgetType.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_compositeWidgetTypes_CompositeWidgetType.gif
deleted file mode 100644
index d9ee5d095f5..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_compositeWidgetTypes_CompositeWidgetType.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_constraintTypes_ConstraintType.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_constraintTypes_ConstraintType.gif
deleted file mode 100644
index cbc3f4322fb..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_constraintTypes_ConstraintType.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_contexts_Context.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_contexts_Context.gif
deleted file mode 100644
index 9b09a7e4986..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_contexts_Context.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_layoutTypes_LayoutType.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_layoutTypes_LayoutType.gif
deleted file mode 100644
index ae50bcb82ce..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_layoutTypes_LayoutType.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_miscClasses_MiscClass.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_miscClasses_MiscClass.gif
deleted file mode 100644
index eacefe82e9e..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_miscClasses_MiscClass.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_modelElementFactories_ModelElementFactoryDescriptor.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_modelElementFactories_ModelElementFactoryDescriptor.gif
deleted file mode 100644
index e3a33e1908c..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_modelElementFactories_ModelElementFactoryDescriptor.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_namespaces_Namespace.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_namespaces_Namespace.gif
deleted file mode 100644
index 56549ea1acd..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_namespaces_Namespace.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_propertyEditorTypes_PropertyEditorType.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_propertyEditorTypes_PropertyEditorType.gif
deleted file mode 100644
index b5d9dfa2bb4..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_propertyEditorTypes_PropertyEditorType.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_widgetTypes_StandardWidgetType.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_widgetTypes_StandardWidgetType.gif
deleted file mode 100644
index 5ac844dc307..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateEnvironment_widgetTypes_StandardWidgetType.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreatePropertyEditor_unresolvedProperty_UnknownProperty.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreatePropertyEditor_unresolvedProperty_UnknownProperty.gif
deleted file mode 100644
index 7561bfa3634..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreatePropertyEditor_unresolvedProperty_UnknownProperty.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_CompositeWidget.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_CompositeWidget.gif
deleted file mode 100644
index 4365960a04b..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_CompositeWidget.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_Layout.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_Layout.gif
deleted file mode 100644
index 99dde266945..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_Layout.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_PropertyEditor.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_PropertyEditor.gif
deleted file mode 100644
index 746a59ebd8a..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_PropertyEditor.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_StandardWidget.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_StandardWidget.gif
deleted file mode 100644
index 4365960a04b..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_StandardWidget.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UIComponent.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UIComponent.gif
deleted file mode 100644
index 2eb12e9ab33..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UIComponent.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UnknownComponent.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UnknownComponent.gif
deleted file mode 100644
index 1097d000b66..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UnknownComponent.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UnknownElement.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UnknownElement.gif
deleted file mode 100644
index 16c3e21097d..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UnknownElement.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UnknownWidget.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UnknownWidget.gif
deleted file mode 100644
index 4365960a04b..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateReferenceAttribute_value_UnknownWidget.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateSimpleConstraint_properties_ReferenceProperty.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateSimpleConstraint_properties_ReferenceProperty.gif
deleted file mode 100644
index efff0c9aa7b..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateSimpleConstraint_properties_ReferenceProperty.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateSimpleConstraint_properties_ValueProperty.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateSimpleConstraint_properties_ValueProperty.gif
deleted file mode 100644
index c78943ee9d6..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateSimpleConstraint_properties_ValueProperty.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateTab_allSections_Section.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateTab_allSections_Section.gif
deleted file mode 100644
index 6d3993a158e..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateTab_allSections_Section.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateTab_sections_Section.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateTab_sections_Section.gif
deleted file mode 100644
index b54fa6dfce1..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateTab_sections_Section.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateUIComponent_attributes_ReferenceAttribute.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateUIComponent_attributes_ReferenceAttribute.gif
deleted file mode 100644
index 84954664093..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateUIComponent_attributes_ReferenceAttribute.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateUIComponent_attributes_ValueAttribute.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateUIComponent_attributes_ValueAttribute.gif
deleted file mode 100644
index 0d3c1aa7b2a..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateUIComponent_attributes_ValueAttribute.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateView_datacontexts_DataContextElement.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateView_datacontexts_DataContextElement.gif
deleted file mode 100644
index d5442892a77..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateView_datacontexts_DataContextElement.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateView_datacontexts_DataContextPackage.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateView_datacontexts_DataContextPackage.gif
deleted file mode 100644
index 1264e5e43bc..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateView_datacontexts_DataContextPackage.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateView_datacontexts_DataContextRoot.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateView_datacontexts_DataContextRoot.gif
deleted file mode 100644
index a62440d6d57..00000000000
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/ctool16/CreateView_datacontexts_DataContextRoot.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/obj16/Annotation.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/obj16/Annotation.gif
new file mode 100644
index 00000000000..68b27186765
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/obj16/Annotation.gif
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/obj16/Annotation@2x.gif b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/obj16/Annotation@2x.gif
new file mode 100644
index 00000000000..7db0922b656
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/icons/full/obj16/Annotation@2x.gif
Binary files differ
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/plugin.properties b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/plugin.properties
index 73ae3cd23ff..b4cd19896bc 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/plugin.properties
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/plugin.properties
@@ -199,3 +199,11 @@ _UI_Property_redefinedProperties_feature = Redefined Properties
_UI_Property_redefinedByProperties_feature = Redefined By Properties
_UI_FXSection_category_feature = Category
_UI_Tab_testProp_feature = Test Prop
+_UI_Annotation_type = Annotation
+_UI_Annotatable_type = Annotatable
+_UI_Annotation_source_feature = Source
+_UI_Annotation_details_feature = Details
+_UI_Annotation_references_feature = References
+_UI_Annotatable_annotations_feature = Annotations
+_UI_Annotation_element_feature = Element
+_UI_Section_views_feature = Views
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/pom.xml b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/pom.xml
index c39f6c5c3c4..b47abe8996a 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/pom.xml
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/pom.xml
@@ -9,6 +9,6 @@
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.papyrus.infra.properties.edit</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.1.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project> \ No newline at end of file
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/AbstractSectionItemProvider.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/AbstractSectionItemProvider.java
index 2673f91be6d..a2464645499 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/AbstractSectionItemProvider.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/AbstractSectionItemProvider.java
@@ -1,5 +1,17 @@
-/**
- */
+/*****************************************************************************
+ * Copyright (c) 2021 CEA LIST, Christian W. Damus, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
+ *****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.provider;
@@ -8,19 +20,16 @@ import java.util.List;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-
import org.eclipse.emf.common.util.ResourceLocator;
-
+import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
-
import org.eclipse.papyrus.infra.constraints.provider.DisplayUnitItemProvider;
-
import org.eclipse.papyrus.infra.properties.contexts.AbstractSection;
+import org.eclipse.papyrus.infra.properties.contexts.ContextsFactory;
import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
-
import org.eclipse.papyrus.infra.properties.environment.provider.PropertiesEditPlugin;
/**
@@ -102,6 +111,46 @@ public class AbstractSectionItemProvider extends DisplayUnitItemProvider {
}
/**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ContextsPackage.Literals.ANNOTATABLE__ANNOTATIONS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -131,6 +180,9 @@ public class AbstractSectionItemProvider extends DisplayUnitItemProvider {
case ContextsPackage.ABSTRACT_SECTION__NAME:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
+ case ContextsPackage.ABSTRACT_SECTION__ANNOTATIONS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
}
super.notifyChanged(notification);
}
@@ -145,6 +197,11 @@ public class AbstractSectionItemProvider extends DisplayUnitItemProvider {
@Override
protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ContextsPackage.Literals.ANNOTATABLE__ANNOTATIONS,
+ ContextsFactory.eINSTANCE.createAnnotation()));
}
/**
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/AnnotatableItemProvider.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/AnnotatableItemProvider.java
new file mode 100644
index 00000000000..6e825ae9074
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/AnnotatableItemProvider.java
@@ -0,0 +1,180 @@
+/**
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.properties.contexts.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.infra.properties.contexts.Annotatable;
+import org.eclipse.papyrus.infra.properties.contexts.ContextsFactory;
+import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
+
+import org.eclipse.papyrus.infra.properties.environment.provider.PropertiesEditPlugin;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.properties.contexts.Annotatable} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AnnotatableItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnnotatableItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ContextsPackage.Literals.ANNOTATABLE__ANNOTATIONS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_Annotatable_type");
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Annotatable.class)) {
+ case ContextsPackage.ANNOTATABLE__ANNOTATIONS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ContextsPackage.Literals.ANNOTATABLE__ANNOTATIONS,
+ ContextsFactory.eINSTANCE.createAnnotation()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return PropertiesEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/AnnotationItemProvider.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/AnnotationItemProvider.java
new file mode 100644
index 00000000000..a171dae0cf5
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/AnnotationItemProvider.java
@@ -0,0 +1,246 @@
+/**
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.properties.contexts.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.infra.properties.contexts.Annotation;
+import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
+
+import org.eclipse.papyrus.infra.properties.environment.provider.PropertiesEditPlugin;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.infra.properties.contexts.Annotation} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AnnotationItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnnotationItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addSourcePropertyDescriptor(object);
+ addReferencesPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Source feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addSourcePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Annotation_source_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Annotation_source_feature", "_UI_Annotation_type"),
+ ContextsPackage.Literals.ANNOTATION__SOURCE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the References feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addReferencesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Annotation_references_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Annotation_references_feature", "_UI_Annotation_type"),
+ ContextsPackage.Literals.ANNOTATION__REFERENCES,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ContextsPackage.Literals.ANNOTATION__DETAILS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns Annotation.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Annotation"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Annotation)object).getSource();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Annotation_type") :
+ getString("_UI_Annotation_type") + " " + label;
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Annotation.class)) {
+ case ContextsPackage.ANNOTATION__SOURCE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ContextsPackage.ANNOTATION__DETAILS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ContextsPackage.Literals.ANNOTATION__DETAILS,
+ EcoreFactory.eINSTANCE.create(EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY)));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return PropertiesEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ContextItemProvider.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ContextItemProvider.java
index 6bfe93ffa68..27b4595fc6f 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ContextItemProvider.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ContextItemProvider.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011, 2015 CEA LIST, Christian W. Damus, and others.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,7 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
- * Christian W. Damus - bug 482927
+ * Christian W. Damus - bugs 482927, 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.provider;
@@ -224,6 +224,16 @@ public class ContextItemProvider
}
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ContextsItemProviderAdapterFactory.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ContextsItemProviderAdapterFactory.java
index cf3dfb43333..dc51bb870c5 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ContextsItemProviderAdapterFactory.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ContextsItemProviderAdapterFactory.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.provider;
@@ -288,6 +289,29 @@ public class ContextsItemProviderAdapterFactory extends ContextsAdapterFactory i
}
/**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.infra.properties.contexts.Annotation} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AnnotationItemProvider annotationItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.infra.properties.contexts.Annotation}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createAnnotationAdapter() {
+ if (annotationItemProvider == null) {
+ annotationItemProvider = new AnnotationItemProvider(this);
+ }
+
+ return annotationItemProvider;
+ }
+
+ /**
* This returns the root adapter factory that contains this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -395,6 +419,7 @@ public class ContextsItemProviderAdapterFactory extends ContextsAdapterFactory i
if (contextItemProvider != null) contextItemProvider.dispose();
if (tabItemProvider != null) tabItemProvider.dispose();
if (sectionItemProvider != null) sectionItemProvider.dispose();
+ if (annotationItemProvider != null) annotationItemProvider.dispose();
if (propertyItemProvider != null) propertyItemProvider.dispose();
if (dataContextElementItemProvider != null) dataContextElementItemProvider.dispose();
if (dataContextPackageItemProvider != null) dataContextPackageItemProvider.dispose();
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextElementItemProvider.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextElementItemProvider.java
index e6e4a905d9d..1ee7603bc30 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextElementItemProvider.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextElementItemProvider.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.provider;
@@ -19,22 +20,14 @@ import java.util.List;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.papyrus.infra.properties.contexts.ContextsFactory;
import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
import org.eclipse.papyrus.infra.properties.contexts.DataContextElement;
-import org.eclipse.papyrus.infra.properties.environment.provider.PropertiesEditPlugin;
/**
* This is the item provider adapter for a {@link org.eclipse.papyrus.infra.properties.contexts.DataContextElement} object.
@@ -43,13 +36,7 @@ import org.eclipse.papyrus.infra.properties.environment.provider.PropertiesEditP
* @generated
*/
public class DataContextElementItemProvider
- extends ItemProviderAdapter
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends AnnotatableItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
@@ -163,6 +150,16 @@ public class DataContextElementItemProvider
}
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -220,15 +217,4 @@ public class DataContextElementItemProvider
ContextsFactory.eINSTANCE.createUnknownProperty()));
}
- /**
- * Return the resource locator for this item provider's resources.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public ResourceLocator getResourceLocator() {
- return PropertiesEditPlugin.INSTANCE;
- }
-
}
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextPackageItemProvider.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextPackageItemProvider.java
index d2c9d2e0d9a..8b6176b12dc 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextPackageItemProvider.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextPackageItemProvider.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.provider;
@@ -101,6 +102,16 @@ public class DataContextPackageItemProvider
}
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextRootItemProvider.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextRootItemProvider.java
index 39e23a255bb..7c1fdf9b5dd 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextRootItemProvider.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/DataContextRootItemProvider.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.provider;
@@ -117,6 +118,16 @@ public class DataContextRootItemProvider
}
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/PropertyItemProvider.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/PropertyItemProvider.java
index a17a5045bc6..5b9029c26a2 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/PropertyItemProvider.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/PropertyItemProvider.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011, 2017 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -11,6 +11,7 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Vincent Lorenzo - Bug 520271
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.provider;
@@ -20,20 +21,12 @@ import java.util.List;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
import org.eclipse.papyrus.infra.properties.contexts.Property;
-import org.eclipse.papyrus.infra.properties.environment.provider.PropertiesEditPlugin;
/**
* This is the item provider adapter for a {@link org.eclipse.papyrus.infra.properties.contexts.Property} object.
@@ -42,13 +35,7 @@ import org.eclipse.papyrus.infra.properties.environment.provider.PropertiesEditP
* @generated
*/
public class PropertyItemProvider
- extends ItemProviderAdapter
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends AnnotatableItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
@@ -247,6 +234,16 @@ public class PropertyItemProvider
}
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -295,15 +292,4 @@ public class PropertyItemProvider
super.collectNewChildDescriptors(newChildDescriptors, object);
}
- /**
- * Return the resource locator for this item provider's resources.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public ResourceLocator getResourceLocator() {
- return PropertiesEditPlugin.INSTANCE;
- }
-
}
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/SectionItemProvider.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/SectionItemProvider.java
index 4b1291fd7d4..9a339e06bc7 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/SectionItemProvider.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/SectionItemProvider.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.provider;
@@ -57,6 +58,7 @@ public class SectionItemProvider
addSectionFilePropertyDescriptor(object);
addWidgetPropertyDescriptor(object);
+ addViewsPropertyDescriptor(object);
}
return itemPropertyDescriptors;
}
@@ -106,6 +108,28 @@ public class SectionItemProvider
}
/**
+ * This adds a property descriptor for the Views feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addViewsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Section_views_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Section_views_feature", "_UI_Section_type"),
+ ContextsPackage.Literals.SECTION__VIEWS,
+ false,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
* This returns Section.gif.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -117,6 +141,16 @@ public class SectionItemProvider
}
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/TabItemProvider.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/TabItemProvider.java
index ed6a495b6b2..8b6222ca9ea 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/TabItemProvider.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/TabItemProvider.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.provider;
@@ -301,6 +302,16 @@ public class TabItemProvider
}
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/UnknownPropertyItemProvider.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/UnknownPropertyItemProvider.java
index 0d93baadf44..ed7ab836ed4 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/UnknownPropertyItemProvider.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/UnknownPropertyItemProvider.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.provider;
@@ -67,6 +68,16 @@ public class UnknownPropertyItemProvider
}
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ViewItemProvider.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ViewItemProvider.java
index 9bdd469e12d..615b9e18fce 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ViewItemProvider.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/contexts/provider/ViewItemProvider.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.provider;
@@ -20,11 +21,13 @@ import java.util.List;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.papyrus.infra.constraints.provider.DisplayUnitItemProvider;
+import org.eclipse.papyrus.infra.properties.contexts.ContextsFactory;
import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
import org.eclipse.papyrus.infra.properties.contexts.View;
import org.eclipse.papyrus.infra.properties.environment.provider.PropertiesEditPlugin;
@@ -155,6 +158,36 @@ public class ViewItemProvider
}
/**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ContextsPackage.Literals.ANNOTATABLE__ANNOTATIONS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
* This returns View.gif.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -166,6 +199,16 @@ public class ViewItemProvider
}
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -195,6 +238,9 @@ public class ViewItemProvider
case ContextsPackage.VIEW__AUTOMATIC_CONTEXT:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
+ case ContextsPackage.VIEW__ANNOTATIONS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
}
super.notifyChanged(notification);
}
@@ -209,6 +255,11 @@ public class ViewItemProvider
@Override
protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ContextsPackage.Literals.ANNOTATABLE__ANNOTATIONS,
+ ContextsFactory.eINSTANCE.createAnnotation()));
}
/**
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/environment/provider/PropertiesEditPlugin.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/environment/provider/PropertiesEditPlugin.java
index 4220e0e0410..6015ce6b10e 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/environment/provider/PropertiesEditPlugin.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src-gen/org/eclipse/papyrus/infra/properties/environment/provider/PropertiesEditPlugin.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.environment.provider;
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src/org/eclipse/papyrus/infra/properties/contexts/command/ContextDeleteCommand.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src/org/eclipse/papyrus/infra/properties/contexts/command/ContextDeleteCommand.java
new file mode 100644
index 00000000000..57ca90b97cf
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.edit/src/org/eclipse/papyrus/infra/properties/contexts/command/ContextDeleteCommand.java
@@ -0,0 +1,88 @@
+/*****************************************************************************
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.properties.contexts.command;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.edit.command.DeleteCommand;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.papyrus.infra.properties.contexts.Context;
+import org.eclipse.papyrus.infra.properties.contexts.util.ContextUsageCrossReferencer;
+
+/**
+ * A specialized deletion command that restricts the scan for incoming references to only
+ * within loaded context resources.
+ *
+ * @since 4.1
+ */
+public class ContextDeleteCommand extends DeleteCommand {
+
+ /**
+ * Initializes me with my contextual editing {@code domain} and a {@code collection} of objects to delete.
+ *
+ * @param domain
+ * the editing domain
+ * @param collection
+ * objects to delete
+ */
+ public ContextDeleteCommand(EditingDomain domain, Collection<?> collection) {
+ super(domain, collection);
+ }
+
+ @Override
+ protected Map<EObject, Collection<EStructuralFeature.Setting>> findReferences(Collection<EObject> eObjects) {
+ // Scope the search for cross-references to just the context resources, and excluding the XWT sections
+ Set<Resource> scope = domain.getResourceSet().getResources().stream()
+ .filter(this::isContextResource)
+ .collect(Collectors.toSet());
+
+ return new ContextUsageCrossReferencer(scope).findAllUsage(eObjects);
+ }
+
+ /**
+ * Query whether a {@code resource} contains a Properties {@link Context}.
+ *
+ * @param resource
+ * a resource
+ * @return whether it contains a context
+ */
+ boolean isContextResource(Resource resource) {
+ return resource.isLoaded() && !resource.getContents().isEmpty()
+ && resource.getContents().stream().anyMatch(Context.class::isInstance);
+ }
+
+ /**
+ * Create a command to delete an {@code object}.
+ */
+ public static Command create(EditingDomain domain, Object object) {
+ return create(domain, Set.of(object));
+ }
+
+ /**
+ * Create a command to delete an {@code collection} of objects.
+ */
+ public static Command create(EditingDomain domain, final Collection<?> collection) {
+ return new ContextDeleteCommand(domain, collection);
+ }
+
+}
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.editor/plugin.xml b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.editor/plugin.xml
index ad301007599..8eeb1e10e21 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.editor/plugin.xml
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.editor/plugin.xml
@@ -16,7 +16,7 @@
id="org.eclipse.papyrus.infra.properties.environment.presentation.EnvironmentModelWizardID"
name="%_UI_EnvironmentModelWizard_label"
class="org.eclipse.papyrus.infra.properties.environment.presentation.EnvironmentModelWizard"
- category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.addons.category"
+ category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.custo.category/org.eclipse.papyrus.wizards.custo.properties.category"
icon="icons/full/obj16/EnvironmentModelFile.gif">
<description>%_UI_EnvironmentModelWizard_description</description>
<selection class="org.eclipse.core.resources.IResource"/>
@@ -40,7 +40,7 @@
id="org.eclipse.papyrus.infra.properties.contexts.presentation.ContextsModelWizardID"
name="%_UI_ContextsModelWizard_label"
class="org.eclipse.papyrus.infra.properties.contexts.presentation.ContextsModelWizard"
- category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.addons.category"
+ category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.dev.category/org.eclipse.papyrus.wizards.dev.framework.category"
icon="icons/full/obj16/ContextsModelFile.gif">
<description>%_UI_ContextsModelWizard_description</description>
<selection class="org.eclipse.core.resources.IResource"/>
@@ -64,7 +64,7 @@
id="org.eclipse.papyrus.infra.properties.ui.presentation.UiModelWizardID"
name="%_UI_UiModelWizard_label"
class="org.eclipse.papyrus.infra.properties.ui.presentation.UiModelWizard"
- category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.addons.category"
+ category="org.eclipse.papyrus.wizards.category/org.eclipse.papyrus.wizards.dev.category/org.eclipse.papyrus.wizards.dev.framework.category"
icon="icons/full/obj16/UiModelFile.gif">
<description>%_UI_UiModelWizard_description</description>
<selection class="org.eclipse.core.resources.IResource"/>
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/model/Environment.properties b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/model/Environment.properties
new file mode 100644
index 00000000000..e65146d0e50
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/model/Environment.properties
@@ -0,0 +1,17 @@
+#
+# Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Christian W. Damus - Initial API and implementation
+#
+#
+
+_UI_label_EMFInstanceOfDeprecated=Ecore 'instance-of'
+_UI_label_className=EClass name
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/META-INF/MANIFEST.MF b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/META-INF/MANIFEST.MF
index 83eb212f035..d15b6db8fb7 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/META-INF/MANIFEST.MF
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/META-INF/MANIFEST.MF
@@ -2,6 +2,7 @@ Manifest-Version: 1.0
Export-Package: org.eclipse.papyrus.infra.properties.catalog,
org.eclipse.papyrus.infra.properties.contexts,
org.eclipse.papyrus.infra.properties.contexts.impl,
+ org.eclipse.papyrus.infra.properties.contexts.operations,
org.eclipse.papyrus.infra.properties.contexts.util,
org.eclipse.papyrus.infra.properties.environment,
org.eclipse.papyrus.infra.properties.environment.impl,
@@ -17,6 +18,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.18.0,4.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.23.0,3.0.0)",
org.eclipse.emf.ecore.xmi;bundle-version="[2.16.0,3.0.0)",
org.eclipse.papyrus.infra.constraints;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.uml2.types;bundle-version="[2.5.0,3.0.0)",
org.eclipse.uml2.common;bundle-version="[2.5.0,3.0.0)",
org.eclipse.papyrus.infra.core.log;bundle-version="[2.0.0,3.0.0)"
Bundle-Vendor: %providerName
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.ecore b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.ecore
index ce640ef084e..866f6ebe073 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.ecore
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.ecore
@@ -119,23 +119,49 @@
<eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Section" eSuperTypes="#//contexts/AbstractSection">
+ <eOperations name="getViews" ordered="false" upperBound="-1" eType="#//contexts/View">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="suppressedVisibility" value="true"/>
+ </eAnnotations>
+ </eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="sectionFile" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="widget" lowerBound="1"
eType="#//ui/CompositeWidget"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="views" ordered="false"
+ upperBound="-1" eType="#//contexts/View" changeable="false" volatile="true"
+ transient="true" derived="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="owner" lowerBound="1"
eType="#//contexts/Tab" volatile="true" transient="true" derived="true"
eOpposite="#//contexts/Tab/sections">
<eAnnotations source="subsets" references="#//contexts/AbstractSection/tab"/>
</eStructuralFeatures>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="AbstractSection" abstract="true" eSuperTypes="../../org.eclipse.papyrus.infra.constraints/Model/Constraints.ecore#//DisplayUnit">
+ <eClassifiers xsi:type="ecore:EClass" name="AbstractSection" abstract="true" eSuperTypes="../../org.eclipse.papyrus.infra.constraints/Model/Constraints.ecore#//DisplayUnit #//contexts/Annotatable">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="tab" lowerBound="1" eType="#//contexts/Tab"
eOpposite="#//contexts/Tab/allSections"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Property">
+ <eClassifiers xsi:type="ecore:EClass" name="Annotatable" abstract="true">
+ <eOperations name="getAnnotation" ordered="false" lowerBound="1" eType="#//contexts/Annotation">
+ <eParameters name="source" ordered="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" ordered="false"
+ upperBound="-1" eType="#//contexts/Annotation" containment="true" eOpposite="#//contexts/Annotation/element"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Annotation">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="source" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="references" ordered="false"
+ upperBound="-1" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="details" ordered="false"
+ upperBound="-1" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStringToStringMapEntry"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" ordered="false"
+ lowerBound="1" eType="#//contexts/Annotatable" eOpposite="#//contexts/Annotatable/annotations"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Property" eSuperTypes="#//contexts/Annotatable">
<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="label" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
@@ -151,7 +177,7 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="redefinedByProperties"
upperBound="-1" eType="#//contexts/Property" eOpposite="#//contexts/Property/redefinedProperties"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="DataContextElement">
+ <eClassifiers xsi:type="ecore:EClass" name="DataContextElement" eSuperTypes="#//contexts/Annotatable">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="package" eType="#//contexts/DataContextPackage"
@@ -166,17 +192,17 @@
eType="#//contexts/DataContextElement" containment="true" eOpposite="#//contexts/DataContextElement/package"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="UnknownProperty" eSuperTypes="#//contexts/Property"/>
- <eClassifiers xsi:type="ecore:EClass" name="View" eSuperTypes="../../org.eclipse.papyrus.infra.constraints/Model/Constraints.ecore#//DisplayUnit">
+ <eClassifiers xsi:type="ecore:EClass" name="View" eSuperTypes="../../org.eclipse.papyrus.infra.constraints/Model/Constraints.ecore#//DisplayUnit #//contexts/Annotatable">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="sections" upperBound="-1"
eType="#//contexts/Section"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context" lowerBound="1"
+ eType="#//contexts/Context" eOpposite="#//contexts/Context/views"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="automaticContext" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="datacontexts" upperBound="-1"
eType="#//contexts/DataContextElement"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="context" lowerBound="1"
- eType="#//contexts/Context" eOpposite="#//contexts/Context/views"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DataContextRoot" eSuperTypes="#//contexts/DataContextPackage">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="label" lowerBound="1"
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.genmodel b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.genmodel
index 2c59818b644..86ed1330ae0 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.genmodel
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.genmodel
@@ -2,12 +2,13 @@
<genmodel:GenModel 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:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
copyrightText="Copyright (c) 2011, 2021 CEA LIST and others.&#xA;&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License 2.0&#xA;which accompanies this distribution, and is available at&#xA;https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA;SPDX-License-Identifier: EPL-2.0&#xA;&#xA;Contributors:&#xA; CEA LIST - Initial API and implementation&#xA;"
- modelDirectory="/org.eclipse.papyrus.infra.properties/src-gen" editDirectory="/org.eclipse.papyrus.infra.properties.edit/src-gen"
+ modelDirectory="/org.eclipse.papyrus.infra.properties/src-gen" creationIcons="false"
+ editDirectory="/org.eclipse.papyrus.infra.properties.edit/src-gen"
editorDirectory="/org.eclipse.papyrus.infra.properties.editor/src-gen" modelPluginID="org.eclipse.papyrus.infra.properties"
modelName="Properties" nonNLSMarkers="true" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
importerID="org.eclipse.uml2.uml.ecore.importer" complianceLevel="11.0" copyrightFields="false"
- usedGenPackages="../../org.eclipse.papyrus.infra.constraints/Model/Constraints.genmodel#//constraints ../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore"
- operationReflection="true" importOrganizing="true">
+ usedGenPackages="../../org.eclipse.papyrus.infra.constraints/Model/Constraints.genmodel#//constraints ../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.uml2.types/model/Types.genmodel#//types"
+ operationReflection="true" importOrganizing="true" cacheAdapterSupport="true">
<genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
<details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
<details key="DUPLICATE_FEATURES" value="DISCARD"/>
@@ -36,7 +37,9 @@
<genPackages xsi:type="genmodel:GenPackage" prefix="Properties" basePackage="org.eclipse.papyrus.infra"
disposableProviderFactory="true" ecorePackage="properties.ecore#/">
<nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Environment" basePackage="org.eclipse.papyrus.infra.properties"
- disposableProviderFactory="true" ecorePackage="properties.ecore#//environment">
+ resource="XMI" disposableProviderFactory="true" contentTypeIdentifier="org.eclipse.papyrus.infra.properties.environment"
+ fileExtensions="environment,xmi" ecorePackage="properties.ecore#//environment"
+ operationsPackage="org.eclipse.papyrus.infra.properties.environment.operations">
<genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="properties.ecore#//environment/Type">
<genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="properties.ecore#//environment/Type/String"/>
<genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="properties.ecore#//environment/Type/Boolean"/>
@@ -91,7 +94,8 @@
</genClasses>
</nestedGenPackages>
<nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Contexts" basePackage="org.eclipse.papyrus.infra.properties"
- disposableProviderFactory="true" ecorePackage="properties.ecore#//contexts">
+ resource="XMI" disposableProviderFactory="true" contentTypeIdentifier="org.eclipse.papyrus.infra.properties.context"
+ fileExtensions="ctx" ecorePackage="properties.ecore#//contexts" operationsPackage="org.eclipse.papyrus.infra.properties.contexts.operations">
<genClasses xsi:type="genmodel:GenClass" ecoreClass="properties.ecore#//contexts/Context">
<genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute properties.ecore#//contexts/Context/name"/>
<genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -126,14 +130,34 @@
<genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute properties.ecore#//contexts/Section/sectionFile"/>
<genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
propertySortChoices="true" ecoreFeature="ecore:EReference properties.ecore#//contexts/Section/widget"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+ createChild="false" ecoreFeature="ecore:EReference properties.ecore#//contexts/Section/views"/>
<genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false"
createChild="false" ecoreFeature="ecore:EReference properties.ecore#//contexts/Section/owner"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="properties.ecore#//contexts/Section/getViews"
+ cacheAdapterScope="Resource"/>
</genClasses>
<genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="properties.ecore#//contexts/AbstractSection">
<genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute properties.ecore#//contexts/AbstractSection/name"/>
<genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
propertySortChoices="true" ecoreFeature="ecore:EReference properties.ecore#//contexts/AbstractSection/tab"/>
</genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="properties.ecore#//contexts/Annotatable">
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference properties.ecore#//contexts/Annotatable/annotations"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="properties.ecore#//contexts/Annotatable/getAnnotation">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="properties.ecore#//contexts/Annotatable/getAnnotation/source"/>
+ </genOperations>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="properties.ecore#//contexts/Annotation">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute properties.ecore#//contexts/Annotation/source"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference properties.ecore#//contexts/Annotation/references"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference properties.ecore#//contexts/Annotation/details"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false"
+ createChild="false" ecoreFeature="ecore:EReference properties.ecore#//contexts/Annotation/element"/>
+ </genClasses>
<genClasses xsi:type="genmodel:GenClass" ecoreClass="properties.ecore#//contexts/Property">
<genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute properties.ecore#//contexts/Property/name"/>
<genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute properties.ecore#//contexts/Property/label"/>
@@ -165,11 +189,11 @@
<genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute properties.ecore#//contexts/View/name"/>
<genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
propertySortChoices="true" ecoreFeature="ecore:EReference properties.ecore#//contexts/View/sections"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false"
+ createChild="false" ecoreFeature="ecore:EReference properties.ecore#//contexts/View/context"/>
<genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute properties.ecore#//contexts/View/automaticContext"/>
<genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
propertySortChoices="true" ecoreFeature="ecore:EReference properties.ecore#//contexts/View/datacontexts"/>
- <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false"
- createChild="false" ecoreFeature="ecore:EReference properties.ecore#//contexts/View/context"/>
</genClasses>
<genClasses xsi:type="genmodel:GenClass" ecoreClass="properties.ecore#//contexts/DataContextRoot">
<genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute properties.ecore#//contexts/DataContextRoot/label"/>
@@ -178,7 +202,7 @@
</genClasses>
</nestedGenPackages>
<nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Ui" basePackage="org.eclipse.papyrus.infra.properties"
- disposableProviderFactory="true" ecorePackage="properties.ecore#//ui">
+ disposableProviderFactory="true" ecorePackage="properties.ecore#//ui" operationsPackage="org.eclipse.papyrus.infra.properties.ui.operations">
<genClasses xsi:type="genmodel:GenClass" ecoreClass="properties.ecore#//ui/Element"/>
<genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="properties.ecore#//ui/UIComponent">
<genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.notation b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.notation
index a7f70fe0beb..e9361669834 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.notation
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.notation
@@ -103,6 +103,10 @@
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_CBH3tpxkEeu216dzZOP2Cw"/>
</children>
<children xmi:type="notation:BasicCompartment" xmi:id="_CBH3t5xkEeu216dzZOP2Cw" type="Class_OperationCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_pUyi0MqwEeuhj7ABGVZg5A" type="Operation_ClassOperationLabel">
+ <element xmi:type="uml:Operation" href="properties.uml#_pTka0MqwEeuhj7ABGVZg5A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pUyi0cqwEeuhj7ABGVZg5A"/>
+ </children>
<styles xmi:type="notation:TitleStyle" xmi:id="_CBH3uJxkEeu216dzZOP2Cw"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_CBH3uZxkEeu216dzZOP2Cw"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_CBH3upxkEeu216dzZOP2Cw"/>
@@ -151,29 +155,97 @@
<element xmi:type="uml:Class" href="properties.uml#_jfIc6JxgEeu216dzZOP2Cw"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_C5MIIZxkEeu216dzZOP2Cw" x="360" y="140"/>
</children>
- <children xmi:type="notation:Shape" xmi:id="_R-6E4MhoEeuDHv-ApZ_XIQ" type="StereotypeComment">
- <styles xmi:type="notation:TitleStyle" xmi:id="_R-6E4choEeuDHv-ApZ_XIQ"/>
- <styles xmi:type="notation:EObjectValueStyle" xmi:id="_R-6E48hoEeuDHv-ApZ_XIQ" name="BASE_ELEMENT">
+ <children xmi:type="notation:Shape" xmi:id="_t8x3EMqvEeuhj7ABGVZg5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t8x3EcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_t8x3E8qvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
<eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIczZxgEeu216dzZOP2Cw"/>
</styles>
<element xsi:nil="true"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R-6E4shoEeuDHv-ApZ_XIQ" x="1200" y="100"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t8x3EsqvEeuhj7ABGVZg5A" x="1200" y="100"/>
</children>
- <children xmi:type="notation:Shape" xmi:id="_R_i-EMhoEeuDHv-ApZ_XIQ" type="StereotypeComment">
- <styles xmi:type="notation:TitleStyle" xmi:id="_R_i-EchoEeuDHv-ApZ_XIQ"/>
- <styles xmi:type="notation:EObjectValueStyle" xmi:id="_R_i-E8hoEeuDHv-ApZ_XIQ" name="BASE_ELEMENT">
+ <children xmi:type="notation:Shape" xmi:id="_t9Xs88qvEeuhj7ABGVZg5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t9Xs9MqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_t9YUAMqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
<eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIc4pxgEeu216dzZOP2Cw"/>
</styles>
<element xsi:nil="true"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R_i-EshoEeuDHv-ApZ_XIQ" x="480" y="340"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t9Xs9cqvEeuhj7ABGVZg5A" x="480" y="340"/>
</children>
- <children xmi:type="notation:Shape" xmi:id="_SANFYMhoEeuDHv-ApZ_XIQ" type="StereotypeComment">
- <styles xmi:type="notation:TitleStyle" xmi:id="_SANFYchoEeuDHv-ApZ_XIQ"/>
- <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SANFY8hoEeuDHv-ApZ_XIQ" name="BASE_ELEMENT">
+ <children xmi:type="notation:Shape" xmi:id="_t-B0QMqvEeuhj7ABGVZg5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t-B0QcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_t-B0Q8qvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
<eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIc6JxgEeu216dzZOP2Cw"/>
</styles>
<element xsi:nil="true"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SANFYshoEeuDHv-ApZ_XIQ" x="560" y="140"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t-B0QsqvEeuhj7ABGVZg5A" x="560" y="140"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yB_Y8MqvEeuhj7ABGVZg5A" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_yCBOIMqvEeuhj7ABGVZg5A" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yCBOIcqvEeuhj7ABGVZg5A" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yCBOIsqvEeuhj7ABGVZg5A" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yCB1MMqvEeuhj7ABGVZg5A" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yCB1McqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yCB1MsqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yCB1M8qvEeuhj7ABGVZg5A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yCB1NMqvEeuhj7ABGVZg5A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yCB1NcqvEeuhj7ABGVZg5A" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yCB1NsqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yCB1N8qvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yCB1OMqvEeuhj7ABGVZg5A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yCB1OcqvEeuhj7ABGVZg5A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yCB1OsqvEeuhj7ABGVZg5A" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yCB1O8qvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yCB1PMqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yCB1PcqvEeuhj7ABGVZg5A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yCB1PsqvEeuhj7ABGVZg5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="properties.uml#_jfIcs5xgEeu216dzZOP2Cw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yB_Y8cqvEeuhj7ABGVZg5A" x="52" y="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yCK_IMqvEeuhj7ABGVZg5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yCK_IcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_yCK_I8qvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIcs5xgEeu216dzZOP2Cw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yCK_IsqvEeuhj7ABGVZg5A" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yETtIMqvEeuhj7ABGVZg5A" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_yEUUMcqvEeuhj7ABGVZg5A" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yEUUMsqvEeuhj7ABGVZg5A" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yEUUM8qvEeuhj7ABGVZg5A" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yEUUNMqvEeuhj7ABGVZg5A" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yEUUNcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yEUUNsqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yEUUN8qvEeuhj7ABGVZg5A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yEUUOMqvEeuhj7ABGVZg5A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yEUUOcqvEeuhj7ABGVZg5A" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yEUUOsqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yEUUO8qvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yEUUPMqvEeuhj7ABGVZg5A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yEUUPcqvEeuhj7ABGVZg5A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yEUUPsqvEeuhj7ABGVZg5A" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yEUUP8qvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yEUUQMqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yEUUQcqvEeuhj7ABGVZg5A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yEUUQsqvEeuhj7ABGVZg5A"/>
+ </children>
+ <element xmi:type="uml:Class" href="properties.uml#_jfJDiZxgEeu216dzZOP2Cw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yEUUMMqvEeuhj7ABGVZg5A" x="54" y="336"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yEbo88qvEeuhj7ABGVZg5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yEbo9MqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_yEbo9sqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_jfJDiZxgEeu216dzZOP2Cw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yEbo9cqvEeuhj7ABGVZg5A" x="200"/>
</children>
<styles xmi:type="notation:StringValueStyle" xmi:id="_A-_FQZxkEeu216dzZOP2Cw" name="diagram_compatibility_version" stringValue="1.4.0"/>
<styles xmi:type="notation:DiagramStyle" xmi:id="_A-_FQpxkEeu216dzZOP2Cw"/>
@@ -190,7 +262,7 @@
<element xmi:type="uml:Generalization" href="properties.uml#_jfIc5JxgEeu216dzZOP2Cw"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EmRVApxkEeu216dzZOP2Cw"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wauaApxpEeu216dzZOP2Cw" id="(0.5128205128205128,0.0)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wavBEJxpEeu216dzZOP2Cw" id="(0.49504950495049505,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wavBEJxpEeu216dzZOP2Cw" id="(0.35668789808917195,1.0)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_zB1_gJxkEeu216dzZOP2Cw" type="Association_Edge" source="_B_m0wJxkEeu216dzZOP2Cw" target="_CBHQoJxkEeu216dzZOP2Cw">
<children xmi:type="notation:DecorationNode" xmi:id="_zB2mkJxkEeu216dzZOP2Cw" type="Association_StereotypeLabel">
@@ -272,35 +344,172 @@
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wlFP4JxpEeu216dzZOP2Cw" id="(0.0,0.4393305439330544)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wlFP4ZxpEeu216dzZOP2Cw" id="(1.0,0.6299212598425197)"/>
</edges>
- <edges xmi:type="notation:Connector" xmi:id="_R-6r8MhoEeuDHv-ApZ_XIQ" type="StereotypeCommentLink" source="_B_m0wJxkEeu216dzZOP2Cw" target="_R-6E4MhoEeuDHv-ApZ_XIQ">
- <styles xmi:type="notation:FontStyle" xmi:id="_R-6r8choEeuDHv-ApZ_XIQ"/>
- <styles xmi:type="notation:EObjectValueStyle" xmi:id="_R-6r9choEeuDHv-ApZ_XIQ" name="BASE_ELEMENT">
+ <edges xmi:type="notation:Connector" xmi:id="_t8x3FMqvEeuhj7ABGVZg5A" type="StereotypeCommentLink" source="_B_m0wJxkEeu216dzZOP2Cw" target="_t8x3EMqvEeuhj7ABGVZg5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_t8x3FcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_t8yeIcqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
<eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIczZxgEeu216dzZOP2Cw"/>
</styles>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_R-6r8shoEeuDHv-ApZ_XIQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_R-6r88hoEeuDHv-ApZ_XIQ"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_R-6r9MhoEeuDHv-ApZ_XIQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t8x3FsqvEeuhj7ABGVZg5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t8x3F8qvEeuhj7ABGVZg5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t8yeIMqvEeuhj7ABGVZg5A"/>
</edges>
- <edges xmi:type="notation:Connector" xmi:id="_R_i-FMhoEeuDHv-ApZ_XIQ" type="StereotypeCommentLink" source="_CBHQoJxkEeu216dzZOP2Cw" target="_R_i-EMhoEeuDHv-ApZ_XIQ">
- <styles xmi:type="notation:FontStyle" xmi:id="_R_i-FchoEeuDHv-ApZ_XIQ"/>
- <styles xmi:type="notation:EObjectValueStyle" xmi:id="_R_i-GchoEeuDHv-ApZ_XIQ" name="BASE_ELEMENT">
+ <edges xmi:type="notation:Connector" xmi:id="_t9YUAcqvEeuhj7ABGVZg5A" type="StereotypeCommentLink" source="_CBHQoJxkEeu216dzZOP2Cw" target="_t9Xs88qvEeuhj7ABGVZg5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_t9YUAsqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_t9YUBsqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
<eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIc4pxgEeu216dzZOP2Cw"/>
</styles>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_R_i-FshoEeuDHv-ApZ_XIQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_R_i-F8hoEeuDHv-ApZ_XIQ"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_R_i-GMhoEeuDHv-ApZ_XIQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t9YUA8qvEeuhj7ABGVZg5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t9YUBMqvEeuhj7ABGVZg5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t9YUBcqvEeuhj7ABGVZg5A"/>
</edges>
- <edges xmi:type="notation:Connector" xmi:id="_SANFZMhoEeuDHv-ApZ_XIQ" type="StereotypeCommentLink" source="_C5MIIJxkEeu216dzZOP2Cw" target="_SANFYMhoEeuDHv-ApZ_XIQ">
- <styles xmi:type="notation:FontStyle" xmi:id="_SANFZchoEeuDHv-ApZ_XIQ"/>
- <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SANscshoEeuDHv-ApZ_XIQ" name="BASE_ELEMENT">
+ <edges xmi:type="notation:Connector" xmi:id="_t-B0RMqvEeuhj7ABGVZg5A" type="StereotypeCommentLink" source="_C5MIIJxkEeu216dzZOP2Cw" target="_t-B0QMqvEeuhj7ABGVZg5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_t-B0RcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_t-B0ScqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
<eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIc6JxgEeu216dzZOP2Cw"/>
</styles>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SANFZshoEeuDHv-ApZ_XIQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SANscMhoEeuDHv-ApZ_XIQ"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SANscchoEeuDHv-ApZ_XIQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t-B0RsqvEeuhj7ABGVZg5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t-B0R8qvEeuhj7ABGVZg5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t-B0SMqvEeuhj7ABGVZg5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_yCK_JMqvEeuhj7ABGVZg5A" type="StereotypeCommentLink" source="_yB_Y8MqvEeuhj7ABGVZg5A" target="_yCK_IMqvEeuhj7ABGVZg5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_yCK_JcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_yCK_KcqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIcs5xgEeu216dzZOP2Cw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yCK_JsqvEeuhj7ABGVZg5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yCK_J8qvEeuhj7ABGVZg5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yCK_KMqvEeuhj7ABGVZg5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_yEbo98qvEeuhj7ABGVZg5A" type="StereotypeCommentLink" source="_yETtIMqvEeuhj7ABGVZg5A" target="_yEbo88qvEeuhj7ABGVZg5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_yEbo-MqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_yEbo_MqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_jfJDiZxgEeu216dzZOP2Cw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yEbo-cqvEeuhj7ABGVZg5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yEbo-sqvEeuhj7ABGVZg5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yEbo-8qvEeuhj7ABGVZg5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_5o-_gMqvEeuhj7ABGVZg5A" type="Association_Edge" source="_yETtIMqvEeuhj7ABGVZg5A" target="_CBHQoJxkEeu216dzZOP2Cw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5o-_g8qvEeuhj7ABGVZg5A" type="Association_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5o-_hMqvEeuhj7ABGVZg5A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5o-_hcqvEeuhj7ABGVZg5A" type="Association_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5o-_hsqvEeuhj7ABGVZg5A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5o-_h8qvEeuhj7ABGVZg5A" type="Association_TargetRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5o_mkMqvEeuhj7ABGVZg5A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5o_mkcqvEeuhj7ABGVZg5A" type="Association_SourceRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5o_mksqvEeuhj7ABGVZg5A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5o_mk8qvEeuhj7ABGVZg5A" type="Association_SourceMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5o_mlMqvEeuhj7ABGVZg5A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5o_mlcqvEeuhj7ABGVZg5A" type="Association_TargetMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5o_mlsqvEeuhj7ABGVZg5A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5o-_gcqvEeuhj7ABGVZg5A"/>
+ <element xmi:type="uml:Association" href="properties.uml#_jfJDlJxgEeu216dzZOP2Cw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5o-_gsqvEeuhj7ABGVZg5A" points="[154, 394, -643984, -643984]$[280, 417, -643984, -643984]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DJQb4MqwEeuhj7ABGVZg5A" id="(0.0,0.2315270935960591)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_5pANoMqvEeuhj7ABGVZg5A" type="Association_Edge" source="_yB_Y8MqvEeuhj7ABGVZg5A" target="_B_m0wJxkEeu216dzZOP2Cw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5pANo8qvEeuhj7ABGVZg5A" type="Association_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_6iYFoMqvEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5pANpMqvEeuhj7ABGVZg5A" x="-1" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5pANpcqvEeuhj7ABGVZg5A" type="Association_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_6jWWAMqvEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5pANpsqvEeuhj7ABGVZg5A" x="1" y="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5pANp8qvEeuhj7ABGVZg5A" type="Association_TargetRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_6kTYQMqvEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5pANqMqvEeuhj7ABGVZg5A" x="29" y="-17"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5pANqcqvEeuhj7ABGVZg5A" type="Association_SourceRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_6lPMYMqvEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5pA0sMqvEeuhj7ABGVZg5A" x="-45" y="-26"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5pA0scqvEeuhj7ABGVZg5A" type="Association_SourceMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_6mLnkMqvEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5pA0ssqvEeuhj7ABGVZg5A" x="30" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5pA0s8qvEeuhj7ABGVZg5A" type="Association_TargetMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_6nG0oMqvEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5pA0tMqvEeuhj7ABGVZg5A" x="-129" y="-19"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5pANocqvEeuhj7ABGVZg5A"/>
+ <element xmi:type="uml:Association" href="properties.uml#_jfJDh5xgEeu216dzZOP2Cw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5pANosqvEeuhj7ABGVZg5A" points="[169, 85, -643984, -643984]$[1016, 50, -643984, -643984]$[1010, 100, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6t_fwMqvEeuhj7ABGVZg5A" id="(1.0,0.29)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6t_fwcqvEeuhj7ABGVZg5A" id="(0.06938775510204082,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_5pA0tcqvEeuhj7ABGVZg5A" type="Association_Edge" source="_yB_Y8MqvEeuhj7ABGVZg5A" target="_yETtIMqvEeuhj7ABGVZg5A">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5pBbwsqvEeuhj7ABGVZg5A" type="Association_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_6oDP0MqvEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5pBbw8qvEeuhj7ABGVZg5A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5pBbxMqvEeuhj7ABGVZg5A" type="Association_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_6o_rAMqvEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5pBbxcqvEeuhj7ABGVZg5A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5pBbxsqvEeuhj7ABGVZg5A" type="Association_TargetRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_6p7fIMqvEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5pBbx8qvEeuhj7ABGVZg5A" x="14" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5pBbyMqvEeuhj7ABGVZg5A" type="Association_SourceRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_6q3TQMqvEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5pBbycqvEeuhj7ABGVZg5A" x="-15" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5pBbysqvEeuhj7ABGVZg5A" type="Association_SourceMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_6rzHYMqvEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5pBby8qvEeuhj7ABGVZg5A" x="14" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5pBbzMqvEeuhj7ABGVZg5A" type="Association_TargetMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_6suUcMqvEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5pBbzcqvEeuhj7ABGVZg5A" x="-15" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5pBbwMqvEeuhj7ABGVZg5A"/>
+ <element xmi:type="uml:Association" href="properties.uml#_jfJDlpxgEeu216dzZOP2Cw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5pBbwcqvEeuhj7ABGVZg5A" points="[104, 239, -643984, -643984]$[102, 336, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6t-4sMqvEeuhj7ABGVZg5A" id="(0.47,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6t-4scqvEeuhj7ABGVZg5A" id="(0.43,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_PSNKsMqwEeuhj7ABGVZg5A" type="Association_Edge" source="_CBHQoJxkEeu216dzZOP2Cw" target="_yETtIMqvEeuhj7ABGVZg5A">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PSNxwMqwEeuhj7ABGVZg5A" type="Association_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_P0jp0MqwEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PSNxwcqwEeuhj7ABGVZg5A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PSNxwsqwEeuhj7ABGVZg5A" type="Association_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_P1hTIMqwEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PSNxw8qwEeuhj7ABGVZg5A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PSNxxMqwEeuhj7ABGVZg5A" type="Association_TargetRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_P2dHQMqwEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PSNxxcqwEeuhj7ABGVZg5A" x="37" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PSNxxsqwEeuhj7ABGVZg5A" type="Association_SourceRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_P3YUUMqwEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PSNxx8qwEeuhj7ABGVZg5A" x="-37" y="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PSNxyMqwEeuhj7ABGVZg5A" type="Association_SourceMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_P4UvgMqwEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PSNxycqwEeuhj7ABGVZg5A" x="37" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PSNxysqwEeuhj7ABGVZg5A" type="Association_TargetMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_P5P8kMqwEeuhj7ABGVZg5A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PSNxy8qwEeuhj7ABGVZg5A" x="-37" y="-16"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_PSNKscqwEeuhj7ABGVZg5A"/>
+ <element xmi:type="uml:Association" href="properties.uml#_PQwZMMqwEeuhj7ABGVZg5A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PSNKssqwEeuhj7ABGVZg5A" points="[280, 492, -643984, -643984]$[102, 492, -643984, -643984]$[153, 436, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PUj7IMqwEeuhj7ABGVZg5A" id="(0.0,0.7142857142857143)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_PUj7IcqwEeuhj7ABGVZg5A" id="(0.48,1.0)"/>
</edges>
</notation:Diagram>
<notation:Diagram xmi:id="_NuIJAMhkEeu0AMUoTBJB8g" type="PapyrusUMLClassDiagram" name="properties" measurementUnit="Pixel">
@@ -350,13 +559,13 @@
<element xmi:type="uml:Class" href="properties.uml#_jfIc7ZxgEeu216dzZOP2Cw"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ob8RQchkEeu0AMUoTBJB8g" x="360" y="220"/>
</children>
- <children xmi:type="notation:Shape" xmi:id="_SENboMhoEeuDHv-ApZ_XIQ" type="StereotypeComment">
- <styles xmi:type="notation:TitleStyle" xmi:id="_SENbochoEeuDHv-ApZ_XIQ"/>
- <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SENbo8hoEeuDHv-ApZ_XIQ" name="BASE_ELEMENT">
+ <children xmi:type="notation:Shape" xmi:id="_tRllA8qvEeuhj7ABGVZg5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tRllBMqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tRllBsqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
<eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIc7ZxgEeu216dzZOP2Cw"/>
</styles>
<element xsi:nil="true"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SENboshoEeuDHv-ApZ_XIQ" x="560" y="220"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tRllBcqvEeuhj7ABGVZg5A" x="560" y="220"/>
</children>
<styles xmi:type="notation:StringValueStyle" xmi:id="_NuIJAchkEeu0AMUoTBJB8g" name="diagram_compatibility_version" stringValue="1.4.0"/>
<styles xmi:type="notation:DiagramStyle" xmi:id="_NuIJAshkEeu0AMUoTBJB8g"/>
@@ -393,15 +602,514 @@
<element xmi:type="uml:Association" href="properties.uml#_jfJDgZxgEeu216dzZOP2Cw"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OcbZcshkEeu0AMUoTBJB8g" points="[-84, -123, -643984, -643984]$[-84, -123, -643984, -643984]"/>
</edges>
- <edges xmi:type="notation:Connector" xmi:id="_SENbpMhoEeuDHv-ApZ_XIQ" type="StereotypeCommentLink" source="_Ob8RQMhkEeu0AMUoTBJB8g" target="_SENboMhoEeuDHv-ApZ_XIQ">
- <styles xmi:type="notation:FontStyle" xmi:id="_SENbpchoEeuDHv-ApZ_XIQ"/>
- <styles xmi:type="notation:EObjectValueStyle" xmi:id="_SEOCsshoEeuDHv-ApZ_XIQ" name="BASE_ELEMENT">
+ <edges xmi:type="notation:Connector" xmi:id="_tRllB8qvEeuhj7ABGVZg5A" type="StereotypeCommentLink" source="_Ob8RQMhkEeu0AMUoTBJB8g" target="_tRllA8qvEeuhj7ABGVZg5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_tRllCMqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_tRmMEsqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIc7ZxgEeu216dzZOP2Cw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tRllCcqvEeuhj7ABGVZg5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tRmMEMqvEeuhj7ABGVZg5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tRmMEcqvEeuhj7ABGVZg5A"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_kds1QMiFEeueo7rlLkmY8A" type="PapyrusUMLClassDiagram" name="annotations" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_lBPAIMiFEeueo7rlLkmY8A" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lBQ1UMiFEeueo7rlLkmY8A" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lBQ1UciFEeueo7rlLkmY8A" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lBQ1UsiFEeueo7rlLkmY8A" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lBQ1U8iFEeueo7rlLkmY8A" type="Class_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_95Se0MiFEeueo7rlLkmY8A" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="properties.uml#_95EcYMiFEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_95TF4MiFEeueo7rlLkmY8A"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lBQ1VMiFEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lBQ1VciFEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lBQ1VsiFEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lBQ1V8iFEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lBQ1WMiFEeueo7rlLkmY8A" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lBQ1WciFEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lBQ1WsiFEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lBQ1W8iFEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lBQ1XMiFEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lBRcYMiFEeueo7rlLkmY8A" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lBRcYciFEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lBRcYsiFEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lBRcY8iFEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lBRcZMiFEeueo7rlLkmY8A"/>
+ </children>
+ <element xmi:type="uml:Class" href="properties.uml#_lBHrYMiFEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lBPAIciFEeueo7rlLkmY8A" x="596" y="113"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oY44cMiFEeueo7rlLkmY8A" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oY5fgciFEeueo7rlLkmY8A" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oY5fgsiFEeueo7rlLkmY8A" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oY5fg8iFEeueo7rlLkmY8A" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_oY5fhMiFEeueo7rlLkmY8A" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_oY5fhciFEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oY5fhsiFEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oY5fh8iFEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oY5fiMiFEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_oY5ficiFEeueo7rlLkmY8A" type="Class_OperationCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_1M0BcMiGEeueo7rlLkmY8A" type="Operation_ClassOperationLabel">
+ <element xmi:type="uml:Operation" href="properties.uml#_1MRO4MiGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1M0BcciGEeueo7rlLkmY8A"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_oY5fisiFEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oY5fi8iFEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oY5fjMiFEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oY5fjciFEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_oY5fjsiFEeueo7rlLkmY8A" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_oY5fj8iFEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oY5fkMiFEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oY5fkciFEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oY5fksiFEeueo7rlLkmY8A"/>
+ </children>
+ <element xmi:type="uml:Class" href="properties.uml#_oYyx0MiFEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oY5fgMiFEeueo7rlLkmY8A" x="208" y="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Mu7dYMiGEeueo7rlLkmY8A" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Mu8EcMiGEeueo7rlLkmY8A" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Mu8EcciGEeueo7rlLkmY8A" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Mu8EcsiGEeueo7rlLkmY8A" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mu8Ec8iGEeueo7rlLkmY8A" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Mu8EdMiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mu8EdciGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mu8EdsiGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mu8Ed8iGEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mu8EeMiGEeueo7rlLkmY8A" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Mu8EeciGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mu8EesiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mu8Ee8iGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mu8EfMiGEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mu8EfciGEeueo7rlLkmY8A" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Mu8EfsiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mu8Ef8iGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mu8EgMiGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mu8EgciGEeueo7rlLkmY8A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EObject"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mu7dYciGEeueo7rlLkmY8A" x="946" y="117"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_U9wgAMiGEeueo7rlLkmY8A" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_U9wgAsiGEeueo7rlLkmY8A" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_U9xHEMiGEeueo7rlLkmY8A" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U9xHEciGEeueo7rlLkmY8A" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U9xHEsiGEeueo7rlLkmY8A" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U9xHE8iGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_U9xHFMiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_U9xHFciGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9xHFsiGEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U9xHF8iGEeueo7rlLkmY8A" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U9xHGMiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_U9xHGciGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_U9xHGsiGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9xHG8iGEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U9xHHMiGEeueo7rlLkmY8A" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U9xHHciGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_U9xHHsiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_U9xHH8iGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9xHIMiGEeueo7rlLkmY8A"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EStringToStringMapEntry"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U9wgAciGEeueo7rlLkmY8A" x="617" y="328"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_c-ajwMiGEeueo7rlLkmY8A" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_c-k70MiGEeueo7rlLkmY8A" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_c-k70ciGEeueo7rlLkmY8A" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c-k70siGEeueo7rlLkmY8A" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_c-k708iGEeueo7rlLkmY8A" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_c-k71MiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_c-k71ciGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_c-k71siGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c-k718iGEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_c-k72MiGEeueo7rlLkmY8A" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_c-k72ciGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_c-k72siGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_c-k728iGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c-k73MiGEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_c-k73ciGEeueo7rlLkmY8A" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_c-k73siGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_c-k738iGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_c-k74MiGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c-k74ciGEeueo7rlLkmY8A"/>
+ </children>
+ <element xmi:type="uml:Class" href="properties.uml#_jfIc6JxgEeu216dzZOP2Cw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c-ajwciGEeueo7rlLkmY8A" x="335" y="326"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dpVJAMiGEeueo7rlLkmY8A" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dpVwEMiGEeueo7rlLkmY8A" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dpVwEciGEeueo7rlLkmY8A" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dpVwEsiGEeueo7rlLkmY8A" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dpVwE8iGEeueo7rlLkmY8A" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dpVwFMiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dpVwFciGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dpVwFsiGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dpVwF8iGEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dpVwGMiGEeueo7rlLkmY8A" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dpVwGciGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dpVwGsiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dpVwG8iGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dpVwHMiGEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dpVwHciGEeueo7rlLkmY8A" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dpVwHsiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dpVwH8iGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dpVwIMiGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dpVwIciGEeueo7rlLkmY8A"/>
+ </children>
+ <element xmi:type="uml:Class" href="properties.uml#_jfIc_pxgEeu216dzZOP2Cw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dpVJAciGEeueo7rlLkmY8A" x="70" y="324"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f8b0EMiGEeueo7rlLkmY8A" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_f8b0EsiGEeueo7rlLkmY8A" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f8b0E8iGEeueo7rlLkmY8A" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f8b0FMiGEeueo7rlLkmY8A" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f8b0FciGEeueo7rlLkmY8A" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f8b0FsiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f8b0F8iGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f8b0GMiGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8b0GciGEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f8b0GsiGEeueo7rlLkmY8A" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f8b0G8iGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f8b0HMiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f8b0HciGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8b0HsiGEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f8b0H8iGEeueo7rlLkmY8A" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f8b0IMiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f8b0IciGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f8b0IsiGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8b0I8iGEeueo7rlLkmY8A"/>
+ </children>
+ <element xmi:type="uml:Class" href="properties.uml#_jfIc7ZxgEeu216dzZOP2Cw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8b0EciGEeueo7rlLkmY8A" x="212" y="326"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jyp3sMiGEeueo7rlLkmY8A" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jyp3ssiGEeueo7rlLkmY8A" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jyp3s8iGEeueo7rlLkmY8A" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jyp3tMiGEeueo7rlLkmY8A" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jyqewMiGEeueo7rlLkmY8A" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jyqewciGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jyqewsiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jyqew8iGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jyqexMiGEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jyqexciGEeueo7rlLkmY8A" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jyqexsiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jyqex8iGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jyqeyMiGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jyqeyciGEeueo7rlLkmY8A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jyqeysiGEeueo7rlLkmY8A" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jyqey8iGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jyqezMiGEeueo7rlLkmY8A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jyqezciGEeueo7rlLkmY8A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jyqezsiGEeueo7rlLkmY8A"/>
+ </children>
+ <element xmi:type="uml:Class" href="properties.uml#_jfJDiZxgEeu216dzZOP2Cw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jyp3sciGEeueo7rlLkmY8A" x="464" y="326"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nxn8YMqvEeuhj7ABGVZg5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nxn8YcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nxn8Y8qvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_lBHrYMiFEeueo7rlLkmY8A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nxn8YsqvEeuhj7ABGVZg5A" x="796" y="113"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nx-hsMqvEeuhj7ABGVZg5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nx-hscqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nx_IwMqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_oYyx0MiFEeueo7rlLkmY8A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nx-hssqvEeuhj7ABGVZg5A" x="408" y="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nye4AMqvEeuhj7ABGVZg5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nye4AcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nye4A8qvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EObject"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nye4AsqvEeuhj7ABGVZg5A" x="1146" y="117"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nyzoIMqvEeuhj7ABGVZg5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nyzoIcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nyzoI8qvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EStringToStringMapEntry"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nyzoIsqvEeuhj7ABGVZg5A" x="817" y="328"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nzBDg8qvEeuhj7ABGVZg5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nzBDhMqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nzBDhsqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIc6JxgEeu216dzZOP2Cw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nzBDhcqvEeuhj7ABGVZg5A" x="535" y="326"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nzN30MqvEeuhj7ABGVZg5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nzN30cqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nzN308qvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIc_pxgEeu216dzZOP2Cw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nzN30sqvEeuhj7ABGVZg5A" x="270" y="324"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nzZeAMqvEeuhj7ABGVZg5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nzZeAcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nzZeA8qvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIc7ZxgEeu216dzZOP2Cw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nzZeAsqvEeuhj7ABGVZg5A" x="412" y="326"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nzlEMMqvEeuhj7ABGVZg5A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nzlEMcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nzlEM8qvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_jfJDiZxgEeu216dzZOP2Cw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nzlEMsqvEeuhj7ABGVZg5A" x="664" y="326"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_kds1QciFEeueo7rlLkmY8A" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_kds1QsiFEeueo7rlLkmY8A"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_kds1Q8iFEeueo7rlLkmY8A" diagramKindId="org.eclipse.papyrus.uml.diagram.class">
+ <owner xmi:type="uml:Package" href="properties.uml#_jfIcspxgEeu216dzZOP2Cw"/>
+ </styles>
+ <element xmi:type="uml:Package" href="properties.uml#_jfIcspxgEeu216dzZOP2Cw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_uddqAMiFEeueo7rlLkmY8A" type="Association_Edge" source="_oY44cMiFEeueo7rlLkmY8A" target="_lBPAIMiFEeueo7rlLkmY8A">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uddqA8iFEeueo7rlLkmY8A" type="Association_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zU89YMiFEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uddqBMiFEeueo7rlLkmY8A" y="-19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uddqBciFEeueo7rlLkmY8A" type="Association_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zVGuYMiFEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uddqBsiFEeueo7rlLkmY8A" x="1" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uddqB8iFEeueo7rlLkmY8A" type="Association_TargetRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zVPRQMiFEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uddqCMiFEeueo7rlLkmY8A" x="15" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uddqCciFEeueo7rlLkmY8A" type="Association_SourceRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zVZCQMiFEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uddqCsiFEeueo7rlLkmY8A" x="-16" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uddqC8iFEeueo7rlLkmY8A" type="Association_SourceMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zViMMMiFEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uddqDMiFEeueo7rlLkmY8A" x="16" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uddqDciFEeueo7rlLkmY8A" type="Association_TargetMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zVr9MMiFEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uddqDsiFEeueo7rlLkmY8A" x="-16" y="-19"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uddqAciFEeueo7rlLkmY8A"/>
+ <element xmi:type="uml:Association" href="properties.uml#_ucxGcMiFEeueo7rlLkmY8A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uddqAsiFEeueo7rlLkmY8A" points="[568, 189, -643984, -643984]$[473, 252, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ud_1gMiFEeueo7rlLkmY8A" id="(1.0,0.2897196261682243)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ud_1gciFEeueo7rlLkmY8A" id="(0.0,0.2523364485981308)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O6of8MiGEeueo7rlLkmY8A" type="Association_Edge" source="_lBPAIMiFEeueo7rlLkmY8A" target="_Mu7dYMiGEeueo7rlLkmY8A">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O6of88iGEeueo7rlLkmY8A" type="Association_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O6of9MiGEeueo7rlLkmY8A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O6of9ciGEeueo7rlLkmY8A" type="Association_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O6of9siGEeueo7rlLkmY8A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O6of98iGEeueo7rlLkmY8A" type="Association_TargetRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O6of-MiGEeueo7rlLkmY8A" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O6of-ciGEeueo7rlLkmY8A" type="Association_SourceRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O6of-siGEeueo7rlLkmY8A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O6of-8iGEeueo7rlLkmY8A" type="Association_SourceMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O6of_MiGEeueo7rlLkmY8A" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O6of_ciGEeueo7rlLkmY8A" type="Association_TargetMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O6pHAMiGEeueo7rlLkmY8A" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O6of8ciGEeueo7rlLkmY8A"/>
+ <element xmi:type="uml:Association" href="properties.uml#_O6XaMMiGEeueo7rlLkmY8A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O6of8siGEeueo7rlLkmY8A" points="[714, 137, -643984, -643984]$[946, 137, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7OV0MiGEeueo7rlLkmY8A" id="(1.0,0.22429906542056074)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7OV0ciGEeueo7rlLkmY8A" id="(0.0,0.2)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WBa8cMiGEeueo7rlLkmY8A" type="Association_Edge" source="_lBPAIMiFEeueo7rlLkmY8A" target="_U9wgAMiGEeueo7rlLkmY8A">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WBbjgMiGEeueo7rlLkmY8A" type="Association_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_YvtHoMiGEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WBbjgciGEeueo7rlLkmY8A" y="-19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WBbjgsiGEeueo7rlLkmY8A" type="Association_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Yv-0cMiGEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WBbjg8iGEeueo7rlLkmY8A" x="-1" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WBbjhMiGEeueo7rlLkmY8A" type="Association_TargetRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_YwQhQMiGEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WBbjhciGEeueo7rlLkmY8A" x="25" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WBbjhsiGEeueo7rlLkmY8A" type="Association_SourceRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_YwiOEMiGEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WBbjh8iGEeueo7rlLkmY8A" x="-26" y="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WBbjiMiGEeueo7rlLkmY8A" type="Association_SourceMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Yw1wEMiGEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WBbjiciGEeueo7rlLkmY8A" x="25" y="19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WBbjisiGEeueo7rlLkmY8A" type="Association_TargetMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_YxG10MiGEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WBbji8iGEeueo7rlLkmY8A" x="-26" y="-18"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WBa8cciGEeueo7rlLkmY8A"/>
+ <element xmi:type="uml:Association" href="properties.uml#_WBGMUMiGEeueo7rlLkmY8A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WBa8csiGEeueo7rlLkmY8A" points="[662, 220, -643984, -643984]$[672, 388, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WCIHEMiGEeueo7rlLkmY8A" id="(0.559322033898305,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WCIHEciGEeueo7rlLkmY8A" id="(0.31690140845070425,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_uKTA8MiGEeueo7rlLkmY8A" type="Generalization_Edge" source="_dpVJAMiGEeueo7rlLkmY8A" target="_oY44cMiFEeueo7rlLkmY8A">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uKTA88iGEeueo7rlLkmY8A" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_7M5UkMiGEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uKTA9MiGEeueo7rlLkmY8A" y="38"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uKTA8ciGEeueo7rlLkmY8A"/>
+ <element xmi:type="uml:Generalization" href="properties.uml#_uJ0f0MiGEeueo7rlLkmY8A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uKTA8siGEeueo7rlLkmY8A" points="[172, 324, -643984, -643984]$[286, 214, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uLMY0MiGEeueo7rlLkmY8A" id="(0.8360655737704918,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uLMY0ciGEeueo7rlLkmY8A" id="(0.004149377593360996,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_uqx30MiGEeueo7rlLkmY8A" type="Generalization_Edge" source="_f8b0EMiGEeueo7rlLkmY8A" target="_oY44cMiFEeueo7rlLkmY8A">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uqx308iGEeueo7rlLkmY8A" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_7NWnkMiGEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uqx31MiGEeueo7rlLkmY8A" y="39"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uqx30ciGEeueo7rlLkmY8A"/>
+ <element xmi:type="uml:Generalization" href="properties.uml#_up_NoMiGEeueo7rlLkmY8A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uqx30siGEeueo7rlLkmY8A" points="[285, 326, -643984, -643984]$[314, 214, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usBN8MiGEeueo7rlLkmY8A" id="(0.73,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usBN8ciGEeueo7rlLkmY8A" id="(0.2863070539419087,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_vR0psMiGEeueo7rlLkmY8A" type="Generalization_Edge" source="_c-ajwMiGEeueo7rlLkmY8A" target="_oY44cMiFEeueo7rlLkmY8A">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vR0ps8iGEeueo7rlLkmY8A" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_7Nz6kMiGEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vR0ptMiGEeueo7rlLkmY8A" y="39"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vR0psciGEeueo7rlLkmY8A"/>
+ <element xmi:type="uml:Generalization" href="properties.uml#_vQel4MiGEeueo7rlLkmY8A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vR0pssiGEeueo7rlLkmY8A" points="[409, 326, -643984, -643984]$[362, 214, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vSyTAMiGEeueo7rlLkmY8A" id="(0.7115384615384616,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vSyTAciGEeueo7rlLkmY8A" id="(0.7634854771784232,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_v4u4sMiGEeueo7rlLkmY8A" type="Generalization_Edge" source="_jyp3sMiGEeueo7rlLkmY8A" target="_oY44cMiFEeueo7rlLkmY8A">
+ <children xmi:type="notation:DecorationNode" xmi:id="_v4u4s8iGEeueo7rlLkmY8A" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_7ORNkMiGEeueo7rlLkmY8A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v4u4tMiGEeueo7rlLkmY8A" x="-1" y="38"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_v4u4sciGEeueo7rlLkmY8A"/>
+ <element xmi:type="uml:Generalization" href="properties.uml#_v4RlsMiGEeueo7rlLkmY8A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_v4u4ssiGEeueo7rlLkmY8A" points="[506, 326, -643984, -643984]$[385, 208, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_v5pesMiGEeueo7rlLkmY8A" id="(0.42,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_v5pesciGEeueo7rlLkmY8A" id="(1.0,0.9345794392523364)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nxojcMqvEeuhj7ABGVZg5A" type="StereotypeCommentLink" source="_lBPAIMiFEeueo7rlLkmY8A" target="_nxn8YMqvEeuhj7ABGVZg5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_nxojccqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nxojdcqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_lBHrYMiFEeueo7rlLkmY8A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nxojcsqvEeuhj7ABGVZg5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nxojc8qvEeuhj7ABGVZg5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nxojdMqvEeuhj7ABGVZg5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nx_IwcqvEeuhj7ABGVZg5A" type="StereotypeCommentLink" source="_oY44cMiFEeueo7rlLkmY8A" target="_nx-hsMqvEeuhj7ABGVZg5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_nx_IwsqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nx_IxsqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_oYyx0MiFEeueo7rlLkmY8A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nx_Iw8qvEeuhj7ABGVZg5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nx_IxMqvEeuhj7ABGVZg5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nx_IxcqvEeuhj7ABGVZg5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nye4BMqvEeuhj7ABGVZg5A" type="StereotypeCommentLink" source="_Mu7dYMiGEeueo7rlLkmY8A" target="_nye4AMqvEeuhj7ABGVZg5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_nye4BcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nye4CcqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EObject"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nye4BsqvEeuhj7ABGVZg5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nye4B8qvEeuhj7ABGVZg5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nye4CMqvEeuhj7ABGVZg5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nyzoJMqvEeuhj7ABGVZg5A" type="StereotypeCommentLink" source="_U9wgAMiGEeueo7rlLkmY8A" target="_nyzoIMqvEeuhj7ABGVZg5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_nyzoJcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nyzoKcqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EStringToStringMapEntry"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nyzoJsqvEeuhj7ABGVZg5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nyzoJ8qvEeuhj7ABGVZg5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nyzoKMqvEeuhj7ABGVZg5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nzBqkMqvEeuhj7ABGVZg5A" type="StereotypeCommentLink" source="_c-ajwMiGEeueo7rlLkmY8A" target="_nzBDg8qvEeuhj7ABGVZg5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_nzBqkcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nzBqlcqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIc6JxgEeu216dzZOP2Cw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nzBqksqvEeuhj7ABGVZg5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nzBqk8qvEeuhj7ABGVZg5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nzBqlMqvEeuhj7ABGVZg5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nzN31MqvEeuhj7ABGVZg5A" type="StereotypeCommentLink" source="_dpVJAMiGEeueo7rlLkmY8A" target="_nzN30MqvEeuhj7ABGVZg5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_nzN31cqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nzN32cqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIc_pxgEeu216dzZOP2Cw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nzN31sqvEeuhj7ABGVZg5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nzN318qvEeuhj7ABGVZg5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nzN32MqvEeuhj7ABGVZg5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nzZeBMqvEeuhj7ABGVZg5A" type="StereotypeCommentLink" source="_f8b0EMiGEeueo7rlLkmY8A" target="_nzZeAMqvEeuhj7ABGVZg5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_nzZeBcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nzZeCcqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
<eObjectValue xmi:type="uml:Class" href="properties.uml#_jfIc7ZxgEeu216dzZOP2Cw"/>
</styles>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SENbpshoEeuDHv-ApZ_XIQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SEOCsMhoEeuDHv-ApZ_XIQ"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SEOCschoEeuDHv-ApZ_XIQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nzZeBsqvEeuhj7ABGVZg5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nzZeB8qvEeuhj7ABGVZg5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nzZeCMqvEeuhj7ABGVZg5A"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nzlENMqvEeuhj7ABGVZg5A" type="StereotypeCommentLink" source="_jyp3sMiGEeueo7rlLkmY8A" target="_nzlEMMqvEeuhj7ABGVZg5A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_nzlENcqvEeuhj7ABGVZg5A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nzlEOcqvEeuhj7ABGVZg5A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="properties.uml#_jfJDiZxgEeu216dzZOP2Cw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nzlENsqvEeuhj7ABGVZg5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nzlEN8qvEeuhj7ABGVZg5A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nzlEOMqvEeuhj7ABGVZg5A"/>
</edges>
</notation:Diagram>
</xmi:XMI>
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.uml b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.uml
index d8dd16eddd6..fd7236adb5d 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.uml
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/Model/properties.uml
@@ -1,94 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
<uml:Model xmi:id="_jfIcYJxgEeu216dzZOP2Cw" name="properties" URI="http://www.eclipse.org/papyrus/properties/0.9.0">
- <packageImport xmi:type="uml:PackageImport" xmi:id="_40LnAJxjEeu216dzZOP2Cw">
+ <packageImport xmi:id="_40LnAJxjEeu216dzZOP2Cw">
<importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
</packageImport>
<packagedElement xmi:type="uml:Package" xmi:id="_jfIcYZxgEeu216dzZOP2Cw" name="environment" URI="http://www.eclipse.org/papyrus/properties/environment/0.9">
<packagedElement xmi:type="uml:Class" xmi:id="_jfIcYpxgEeu216dzZOP2Cw" name="Environment">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfIcY5xgEeu216dzZOP2Cw">
+ <generalization xmi:id="_jfIcY5xgEeu216dzZOP2Cw">
<general xmi:type="uml:Class" href="../../org.eclipse.papyrus.infra.constraints/Model/Constraints.uml#_zg0XUpxgEeu216dzZOP2Cw"/>
</generalization>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcZJxgEeu216dzZOP2Cw" name="modelElementFactories" type="_jfIceZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIcfJxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIcZJxgEeu216dzZOP2Cw" name="modelElementFactories" type="_jfIceZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIcfJxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIcZZxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIcZpxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcZ5xgEeu216dzZOP2Cw" name="widgetTypes" type="_jfIcfpxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIcjpxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIcZ5xgEeu216dzZOP2Cw" name="widgetTypes" type="_jfIcfpxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIcjpxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIcaJxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIcaZxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcapxgEeu216dzZOP2Cw" name="propertyEditorTypes" type="_jfIckJxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIcnJxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIcapxgEeu216dzZOP2Cw" name="propertyEditorTypes" type="_jfIckJxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIcnJxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIca5xgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIcbJxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcbZxgEeu216dzZOP2Cw" name="compositeWidgetTypes" type="_jfIcnpxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIcoJxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIcbZxgEeu216dzZOP2Cw" name="compositeWidgetTypes" type="_jfIcnpxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIcoJxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIcbpxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIcb5xgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIccJxgEeu216dzZOP2Cw" name="layoutTypes" type="_jfIcopxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIcpJxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIccJxgEeu216dzZOP2Cw" name="layoutTypes" type="_jfIcopxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIcpJxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIccZxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIccpxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcc5xgEeu216dzZOP2Cw" name="namespaces" type="_jfIchZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIcppxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIcc5xgEeu216dzZOP2Cw" name="namespaces" type="_jfIchZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIcppxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIcdJxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIcdZxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcdpxgEeu216dzZOP2Cw" name="miscClasses" type="_jfIcqJxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIcsJxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIcdpxgEeu216dzZOP2Cw" name="miscClasses" type="_jfIcqJxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIcsJxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIcd5xgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIceJxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfIceZxgEeu216dzZOP2Cw" name="ModelElementFactoryDescriptor">
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcepxgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIcepxgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIce5xgEeu216dzZOP2Cw" name="factoryClass" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIce5xgEeu216dzZOP2Cw" name="factoryClass" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfIcfJxgEeu216dzZOP2Cw" memberEnd="_jfIcZJxgEeu216dzZOP2Cw _jfIcfZxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfIcfZxgEeu216dzZOP2Cw" type="_jfIcYpxgEeu216dzZOP2Cw" association="_jfIcfJxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfIcfZxgEeu216dzZOP2Cw" type="_jfIcYpxgEeu216dzZOP2Cw" association="_jfIcfJxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfIcfpxgEeu216dzZOP2Cw" name="StandardWidgetType">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfIcf5xgEeu216dzZOP2Cw" general="_jfIcgJxgEeu216dzZOP2Cw"/>
+ <generalization xmi:id="_jfIcf5xgEeu216dzZOP2Cw" general="_jfIcgJxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfIcgJxgEeu216dzZOP2Cw" name="WidgetType" isAbstract="true">
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcgZxgEeu216dzZOP2Cw" name="label" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIcgZxgEeu216dzZOP2Cw" name="label" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcgpxgEeu216dzZOP2Cw" name="widgetClass" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIcgpxgEeu216dzZOP2Cw" name="widgetClass" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcg5xgEeu216dzZOP2Cw" name="namespace" type="_jfIchZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfIcjJxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIcg5xgEeu216dzZOP2Cw" name="namespace" type="_jfIchZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfIcjJxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIchJxgEeu216dzZOP2Cw"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfIchZxgEeu216dzZOP2Cw" name="Namespace">
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIchpxgEeu216dzZOP2Cw" name="prefix" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIchpxgEeu216dzZOP2Cw" name="prefix" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIch5xgEeu216dzZOP2Cw"/>
<defaultValue xmi:type="uml:LiteralString" xmi:id="_jfIciJxgEeu216dzZOP2Cw" value="clr-namespace">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIciZxgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIciZxgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIcipxgEeu216dzZOP2Cw"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIci5xgEeu216dzZOP2Cw" name="value" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIci5xgEeu216dzZOP2Cw" name="value" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfIcjJxgEeu216dzZOP2Cw" memberEnd="_jfIcg5xgEeu216dzZOP2Cw _jfIcjZxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfIcjZxgEeu216dzZOP2Cw" type="_jfIcgJxgEeu216dzZOP2Cw" association="_jfIcjJxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfIcjZxgEeu216dzZOP2Cw" type="_jfIcgJxgEeu216dzZOP2Cw" association="_jfIcjJxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfIcjpxgEeu216dzZOP2Cw" memberEnd="_jfIcZ5xgEeu216dzZOP2Cw _jfIcj5xgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfIcj5xgEeu216dzZOP2Cw" type="_jfIcYpxgEeu216dzZOP2Cw" association="_jfIcjpxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfIcj5xgEeu216dzZOP2Cw" type="_jfIcYpxgEeu216dzZOP2Cw" association="_jfIcjpxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfIckJxgEeu216dzZOP2Cw" name="PropertyEditorType">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfIckZxgEeu216dzZOP2Cw" general="_jfIcgJxgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIckpxgEeu216dzZOP2Cw" name="type" visibility="public" type="_jfIclZxgEeu216dzZOP2Cw" isOrdered="true"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIck5xgEeu216dzZOP2Cw" name="multiplicity" visibility="public" isOrdered="true">
+ <generalization xmi:id="_jfIckZxgEeu216dzZOP2Cw" general="_jfIcgJxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfIckpxgEeu216dzZOP2Cw" name="type" visibility="public" type="_jfIclZxgEeu216dzZOP2Cw" isOrdered="true"/>
+ <ownedAttribute xmi:id="_jfIck5xgEeu216dzZOP2Cw" name="multiplicity" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EInt"/>
<defaultValue xmi:type="uml:LiteralInteger" xmi:id="_jfIclJxgEeu216dzZOP2Cw" value="1">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EInt"/>
@@ -96,94 +96,94 @@
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Enumeration" xmi:id="_jfIclZxgEeu216dzZOP2Cw" name="Type">
- <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jfIclpxgEeu216dzZOP2Cw" name="String"/>
- <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jfIcl5xgEeu216dzZOP2Cw" name="Boolean"/>
- <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jfIcmJxgEeu216dzZOP2Cw" name="Integer"/>
- <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jfIcmZxgEeu216dzZOP2Cw" name="Reference"/>
- <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jfIcmpxgEeu216dzZOP2Cw" name="Enumeration"/>
- <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jfIcm5xgEeu216dzZOP2Cw" name="Double"/>
+ <ownedLiteral xmi:id="_jfIclpxgEeu216dzZOP2Cw" name="String"/>
+ <ownedLiteral xmi:id="_jfIcl5xgEeu216dzZOP2Cw" name="Boolean"/>
+ <ownedLiteral xmi:id="_jfIcmJxgEeu216dzZOP2Cw" name="Integer"/>
+ <ownedLiteral xmi:id="_jfIcmZxgEeu216dzZOP2Cw" name="Reference"/>
+ <ownedLiteral xmi:id="_jfIcmpxgEeu216dzZOP2Cw" name="Enumeration"/>
+ <ownedLiteral xmi:id="_jfIcm5xgEeu216dzZOP2Cw" name="Double"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfIcnJxgEeu216dzZOP2Cw" memberEnd="_jfIcapxgEeu216dzZOP2Cw _jfIcnZxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfIcnZxgEeu216dzZOP2Cw" type="_jfIcYpxgEeu216dzZOP2Cw" association="_jfIcnJxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfIcnZxgEeu216dzZOP2Cw" type="_jfIcYpxgEeu216dzZOP2Cw" association="_jfIcnJxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfIcnpxgEeu216dzZOP2Cw" name="CompositeWidgetType">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfIcn5xgEeu216dzZOP2Cw" general="_jfIcgJxgEeu216dzZOP2Cw"/>
+ <generalization xmi:id="_jfIcn5xgEeu216dzZOP2Cw" general="_jfIcgJxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfIcoJxgEeu216dzZOP2Cw" memberEnd="_jfIcbZxgEeu216dzZOP2Cw _jfIcoZxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfIcoZxgEeu216dzZOP2Cw" type="_jfIcYpxgEeu216dzZOP2Cw" association="_jfIcoJxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfIcoZxgEeu216dzZOP2Cw" type="_jfIcYpxgEeu216dzZOP2Cw" association="_jfIcoJxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfIcopxgEeu216dzZOP2Cw" name="LayoutType">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfIco5xgEeu216dzZOP2Cw" general="_jfIcgJxgEeu216dzZOP2Cw"/>
+ <generalization xmi:id="_jfIco5xgEeu216dzZOP2Cw" general="_jfIcgJxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfIcpJxgEeu216dzZOP2Cw" memberEnd="_jfIccJxgEeu216dzZOP2Cw _jfIcpZxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfIcpZxgEeu216dzZOP2Cw" type="_jfIcYpxgEeu216dzZOP2Cw" association="_jfIcpJxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfIcpZxgEeu216dzZOP2Cw" type="_jfIcYpxgEeu216dzZOP2Cw" association="_jfIcpJxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfIcppxgEeu216dzZOP2Cw" memberEnd="_jfIcc5xgEeu216dzZOP2Cw _jfIcp5xgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfIcp5xgEeu216dzZOP2Cw" type="_jfIcYpxgEeu216dzZOP2Cw" association="_jfIcppxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfIcp5xgEeu216dzZOP2Cw" type="_jfIcYpxgEeu216dzZOP2Cw" association="_jfIcppxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfIcqJxgEeu216dzZOP2Cw" name="MiscClass">
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcqZxgEeu216dzZOP2Cw" name="label" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIcqZxgEeu216dzZOP2Cw" name="label" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIcqpxgEeu216dzZOP2Cw"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcq5xgEeu216dzZOP2Cw" name="class" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIcq5xgEeu216dzZOP2Cw" name="class" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcrJxgEeu216dzZOP2Cw" name="namespace" type="_jfIchZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfIcrpxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIcrJxgEeu216dzZOP2Cw" name="namespace" type="_jfIchZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfIcrpxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIcrZxgEeu216dzZOP2Cw"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfIcrpxgEeu216dzZOP2Cw" memberEnd="_jfIcrJxgEeu216dzZOP2Cw _jfIcr5xgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfIcr5xgEeu216dzZOP2Cw" type="_jfIcqJxgEeu216dzZOP2Cw" association="_jfIcrpxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfIcr5xgEeu216dzZOP2Cw" type="_jfIcqJxgEeu216dzZOP2Cw" association="_jfIcrpxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfIcsJxgEeu216dzZOP2Cw" memberEnd="_jfIcdpxgEeu216dzZOP2Cw _jfIcsZxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfIcsZxgEeu216dzZOP2Cw" type="_jfIcYpxgEeu216dzZOP2Cw" association="_jfIcsJxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfIcsZxgEeu216dzZOP2Cw" type="_jfIcYpxgEeu216dzZOP2Cw" association="_jfIcsJxgEeu216dzZOP2Cw"/>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_jfIcspxgEeu216dzZOP2Cw" name="contexts" URI="http://www.eclipse.org/papyrus/properties/contexts/0.9">
<packagedElement xmi:type="uml:Class" xmi:id="_jfIcs5xgEeu216dzZOP2Cw" name="Context">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfIctJxgEeu216dzZOP2Cw">
+ <generalization xmi:id="_jfIctJxgEeu216dzZOP2Cw">
<general xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EModelElement"/>
</generalization>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIctZxgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
- <ownedComment xmi:type="uml:Comment" xmi:id="_jfIctpxgEeu216dzZOP2Cw" annotatedElement="_jfIctZxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIctZxgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
+ <ownedComment xmi:id="_jfIctpxgEeu216dzZOP2Cw" annotatedElement="_jfIctZxgEeu216dzZOP2Cw">
<body>An unique name for the context, which is used in various components to
identify it.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIct5xgEeu216dzZOP2Cw" name="dependencies" type="_jfIcs5xgEeu216dzZOP2Cw" association="_jfIcy5xgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIct5xgEeu216dzZOP2Cw" name="dependencies" type="_jfIcs5xgEeu216dzZOP2Cw" association="_jfIcy5xgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIcuJxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIcuZxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcupxgEeu216dzZOP2Cw" name="tabs" type="_jfIczZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJDh5xgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIcupxgEeu216dzZOP2Cw" name="tabs" type="_jfIczZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJDh5xgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIcu5xgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIcvJxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcvZxgEeu216dzZOP2Cw" name="views" type="_jfJDiZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJDlpxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIcvZxgEeu216dzZOP2Cw" name="views" type="_jfJDiZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJDlpxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIcvpxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIcv5xgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcwJxgEeu216dzZOP2Cw" name="dataContexts" type="_jfJDmZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJDn5xgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIcwJxgEeu216dzZOP2Cw" name="dataContexts" type="_jfJDmZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJDn5xgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIcwZxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIcwpxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcw5xgEeu216dzZOP2Cw" name="prototype" type="_jfIcs5xgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDoZxgEeu216dzZOP2Cw">
- <ownedComment xmi:type="uml:Comment" xmi:id="_jfIcxJxgEeu216dzZOP2Cw" annotatedElement="_jfIcw5xgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIcw5xgEeu216dzZOP2Cw" name="prototype" type="_jfIcs5xgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDoZxgEeu216dzZOP2Cw">
+ <ownedComment xmi:id="_jfIcxJxgEeu216dzZOP2Cw" annotatedElement="_jfIcw5xgEeu216dzZOP2Cw">
<body>References the context from which a context was copied. The context manager caches the prototype reference so that it can enable a prototype when the copied context is not available.</body>
</ownedComment>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIcxZxgEeu216dzZOP2Cw"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcxpxgEeu216dzZOP2Cw" name="label" visibility="public" isOrdered="true">
- <ownedComment xmi:type="uml:Comment" xmi:id="_jfIcx5xgEeu216dzZOP2Cw" annotatedElement="_jfIcxpxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIcxpxgEeu216dzZOP2Cw" name="label" visibility="public" isOrdered="true">
+ <ownedComment xmi:id="_jfIcx5xgEeu216dzZOP2Cw" annotatedElement="_jfIcxpxgEeu216dzZOP2Cw">
<body>A potentially translatable (localizable) label for presentation of the context
in the user interface. If absent, the name should be used in its place.</body>
</ownedComment>
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIcyJxgEeu216dzZOP2Cw"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcyZxgEeu216dzZOP2Cw" name="userLabel" visibility="public" isOrdered="true" isReadOnly="true" isDerived="true">
- <ownedComment xmi:type="uml:Comment" xmi:id="_jfIcypxgEeu216dzZOP2Cw" annotatedElement="_jfIcyZxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIcyZxgEeu216dzZOP2Cw" name="userLabel" visibility="public" isOrdered="true" isReadOnly="true" isDerived="true">
+ <ownedComment xmi:id="_jfIcypxgEeu216dzZOP2Cw" annotatedElement="_jfIcyZxgEeu216dzZOP2Cw">
<body>A computed label for presentation to the user: the label, if available, otherwise
just the name of the context.</body>
</ownedComment>
@@ -191,295 +191,366 @@ just the name of the context.</body>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfIcy5xgEeu216dzZOP2Cw" memberEnd="_jfIct5xgEeu216dzZOP2Cw _jfIczJxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfIczJxgEeu216dzZOP2Cw" type="_jfIcs5xgEeu216dzZOP2Cw" association="_jfIcy5xgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfIczJxgEeu216dzZOP2Cw" type="_jfIcs5xgEeu216dzZOP2Cw" association="_jfIcy5xgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfIczZxgEeu216dzZOP2Cw" name="Tab">
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIczpxgEeu216dzZOP2Cw" name="label" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIczpxgEeu216dzZOP2Cw" name="label" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIcz5xgEeu216dzZOP2Cw" name="id" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIcz5xgEeu216dzZOP2Cw" name="id" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc0JxgEeu216dzZOP2Cw" name="category" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIc0JxgEeu216dzZOP2Cw" name="category" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIc0ZxgEeu216dzZOP2Cw"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc0pxgEeu216dzZOP2Cw" name="image" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIc0pxgEeu216dzZOP2Cw" name="image" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIc05xgEeu216dzZOP2Cw"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc1JxgEeu216dzZOP2Cw" name="afterTab" type="_jfIczZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfIc4JxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIc1JxgEeu216dzZOP2Cw" name="afterTab" type="_jfIczZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfIc4JxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIc1ZxgEeu216dzZOP2Cw"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc1pxgEeu216dzZOP2Cw" name="sections" type="_jfIc4pxgEeu216dzZOP2Cw" isOrdered="true" isDerived="true" subsettedProperty="_jfIc2ZxgEeu216dzZOP2Cw" association="_jfJDhpxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIc1pxgEeu216dzZOP2Cw" name="sections" type="_jfIc4pxgEeu216dzZOP2Cw" isOrdered="true" isDerived="true" subsettedProperty="_jfIc2ZxgEeu216dzZOP2Cw" association="_jfJDhpxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIc15xgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIc2JxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc2ZxgEeu216dzZOP2Cw" name="allSections" type="_jfIc6JxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIc7JxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIc2ZxgEeu216dzZOP2Cw" name="allSections" type="_jfIc6JxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfIc7JxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIc2pxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIc25xgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc3JxgEeu216dzZOP2Cw" name="indented" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIc3JxgEeu216dzZOP2Cw" name="indented" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EBoolean"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_jfIc3ZxgEeu216dzZOP2Cw">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EBoolean"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc3pxgEeu216dzZOP2Cw" name="priority" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIc3pxgEeu216dzZOP2Cw" name="priority" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EInt"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIc35xgEeu216dzZOP2Cw"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfIc4JxgEeu216dzZOP2Cw" memberEnd="_jfIc1JxgEeu216dzZOP2Cw _jfIc4ZxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfIc4ZxgEeu216dzZOP2Cw" type="_jfIczZxgEeu216dzZOP2Cw" association="_jfIc4JxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfIc4ZxgEeu216dzZOP2Cw" type="_jfIczZxgEeu216dzZOP2Cw" association="_jfIc4JxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfIc4pxgEeu216dzZOP2Cw" name="Section">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfIc5JxgEeu216dzZOP2Cw" general="_jfIc6JxgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc5ZxgEeu216dzZOP2Cw" name="sectionFile" visibility="public" isOrdered="true">
+ <generalization xmi:id="_jfIc5JxgEeu216dzZOP2Cw" general="_jfIc6JxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfIc5ZxgEeu216dzZOP2Cw" name="sectionFile" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc5pxgEeu216dzZOP2Cw" name="widget" type="_jfJD2pxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDhJxgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc55xgEeu216dzZOP2Cw" name="owner" type="_jfIczZxgEeu216dzZOP2Cw" isOrdered="true" isDerived="true" subsettedProperty="_jfIc65xgEeu216dzZOP2Cw" association="_jfJDhpxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfIc5pxgEeu216dzZOP2Cw" name="widget" type="_jfJD2pxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDhJxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfIc55xgEeu216dzZOP2Cw" name="owner" type="_jfIczZxgEeu216dzZOP2Cw" isOrdered="true" isDerived="true" subsettedProperty="_jfIc65xgEeu216dzZOP2Cw" association="_jfJDhpxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_PQ3G4MqwEeuhj7ABGVZg5A" name="views" type="_jfJDiZxgEeu216dzZOP2Cw" isReadOnly="true" isDerived="true" association="_PQwZMMqwEeuhj7ABGVZg5A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PQ3t8MqwEeuhj7ABGVZg5A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PQ3t8cqwEeuhj7ABGVZg5A" value="*"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_pTka0MqwEeuhj7ABGVZg5A" name="getViews" visibility="protected" isQuery="true">
+ <ownedParameter xmi:id="_xZsNYMqwEeuhj7ABGVZg5A" name="result" type="_jfJDiZxgEeu216dzZOP2Cw" direction="return" effect="read">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D6MesMqyEeuhj7ABGVZg5A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ek_IIMqyEeuhj7ABGVZg5A" value="*"/>
+ </ownedParameter>
+ </ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfIc6JxgEeu216dzZOP2Cw" name="AbstractSection" isAbstract="true">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfIc6ZxgEeu216dzZOP2Cw">
+ <generalization xmi:id="_jfIc6ZxgEeu216dzZOP2Cw">
<general xmi:type="uml:Class" href="../../org.eclipse.papyrus.infra.constraints/Model/Constraints.uml#_zg0XW5xgEeu216dzZOP2Cw"/>
</generalization>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc6pxgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
+ <generalization xmi:id="_vQel4MiGEeueo7rlLkmY8A" general="_oYyx0MiFEeueo7rlLkmY8A"/>
+ <ownedAttribute xmi:id="_jfIc6pxgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc65xgEeu216dzZOP2Cw" name="tab" type="_jfIczZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfIc7JxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfIc65xgEeu216dzZOP2Cw" name="tab" type="_jfIczZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfIc7JxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfIc7JxgEeu216dzZOP2Cw" memberEnd="_jfIc2ZxgEeu216dzZOP2Cw _jfIc65xgEeu216dzZOP2Cw"/>
<packagedElement xmi:type="uml:Class" xmi:id="_jfIc7ZxgEeu216dzZOP2Cw" name="Property">
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc7pxgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
+ <generalization xmi:id="_up_NoMiGEeueo7rlLkmY8A" general="_oYyx0MiFEeueo7rlLkmY8A"/>
+ <ownedAttribute xmi:id="_jfIc7pxgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc75xgEeu216dzZOP2Cw" name="label" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIc75xgEeu216dzZOP2Cw" name="label" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIc8JxgEeu216dzZOP2Cw"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc8ZxgEeu216dzZOP2Cw" name="type" visibility="public" type="_jfIclZxgEeu216dzZOP2Cw" isOrdered="true"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc8pxgEeu216dzZOP2Cw" name="contextElement" type="_jfIc_pxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDeJxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIc8ZxgEeu216dzZOP2Cw" name="type" visibility="public" type="_jfIclZxgEeu216dzZOP2Cw" isOrdered="true"/>
+ <ownedAttribute xmi:id="_jfIc8pxgEeu216dzZOP2Cw" name="contextElement" type="_jfIc_pxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDeJxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIc85xgEeu216dzZOP2Cw"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc9JxgEeu216dzZOP2Cw" name="multiplicity" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIc9JxgEeu216dzZOP2Cw" name="multiplicity" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EInt"/>
<defaultValue xmi:type="uml:LiteralInteger" xmi:id="_jfIc9ZxgEeu216dzZOP2Cw" value="1">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EInt"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc9pxgEeu216dzZOP2Cw" name="description" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfIc9pxgEeu216dzZOP2Cw" name="description" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIc95xgEeu216dzZOP2Cw"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc-JxgEeu216dzZOP2Cw" name="redefinedProperties" type="_jfIc7ZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDgZxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIc-JxgEeu216dzZOP2Cw" name="redefinedProperties" type="_jfIc7ZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDgZxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIc-ZxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIc-pxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc-5xgEeu216dzZOP2Cw" name="redefinedByProperties" type="_jfIc7ZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDgZxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfIc-5xgEeu216dzZOP2Cw" name="redefinedByProperties" type="_jfIc7ZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDgZxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfIc_JxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfIc_ZxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfIc_pxgEeu216dzZOP2Cw" name="DataContextElement">
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfIc_5xgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
+ <generalization xmi:id="_uJ0f0MiGEeueo7rlLkmY8A" general="_oYyx0MiFEeueo7rlLkmY8A"/>
+ <ownedAttribute xmi:id="_jfIc_5xgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDcJxgEeu216dzZOP2Cw" name="properties" type="_jfIc7ZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJDeJxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfJDcJxgEeu216dzZOP2Cw" name="properties" type="_jfIc7ZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJDeJxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfJDcZxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfJDcpxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDc5xgEeu216dzZOP2Cw" name="package" type="_jfJDeZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDfpxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfJDc5xgEeu216dzZOP2Cw" name="package" type="_jfJDeZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDfpxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfJDdJxgEeu216dzZOP2Cw"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDdZxgEeu216dzZOP2Cw" name="supertypes" type="_jfIc_pxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDf5xgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfJDdZxgEeu216dzZOP2Cw" name="supertypes" type="_jfIc_pxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDf5xgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfJDdpxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfJDd5xgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDeJxgEeu216dzZOP2Cw" memberEnd="_jfJDcJxgEeu216dzZOP2Cw _jfIc8pxgEeu216dzZOP2Cw"/>
<packagedElement xmi:type="uml:Class" xmi:id="_jfJDeZxgEeu216dzZOP2Cw" name="DataContextPackage">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfJDepxgEeu216dzZOP2Cw" general="_jfIc_pxgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDe5xgEeu216dzZOP2Cw" name="elements" type="_jfIc_pxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJDfpxgEeu216dzZOP2Cw">
+ <generalization xmi:id="_jfJDepxgEeu216dzZOP2Cw" general="_jfIc_pxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJDe5xgEeu216dzZOP2Cw" name="elements" type="_jfIc_pxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJDfpxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfJDfJxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfJDfZxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDfpxgEeu216dzZOP2Cw" memberEnd="_jfJDe5xgEeu216dzZOP2Cw _jfJDc5xgEeu216dzZOP2Cw"/>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDf5xgEeu216dzZOP2Cw" memberEnd="_jfJDdZxgEeu216dzZOP2Cw _jfJDgJxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJDgJxgEeu216dzZOP2Cw" type="_jfIc_pxgEeu216dzZOP2Cw" association="_jfJDf5xgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJDgJxgEeu216dzZOP2Cw" type="_jfIc_pxgEeu216dzZOP2Cw" association="_jfJDf5xgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDgZxgEeu216dzZOP2Cw" memberEnd="_jfIc-5xgEeu216dzZOP2Cw _jfIc-JxgEeu216dzZOP2Cw"/>
<packagedElement xmi:type="uml:Class" xmi:id="_jfJDgpxgEeu216dzZOP2Cw" name="UnknownProperty">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfJDg5xgEeu216dzZOP2Cw" general="_jfIc7ZxgEeu216dzZOP2Cw"/>
+ <generalization xmi:id="_jfJDg5xgEeu216dzZOP2Cw" general="_jfIc7ZxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDhJxgEeu216dzZOP2Cw" memberEnd="_jfIc5pxgEeu216dzZOP2Cw _jfJDhZxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJDhZxgEeu216dzZOP2Cw" type="_jfIc4pxgEeu216dzZOP2Cw" association="_jfJDhJxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJDhZxgEeu216dzZOP2Cw" type="_jfIc4pxgEeu216dzZOP2Cw" association="_jfJDhJxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDhpxgEeu216dzZOP2Cw" memberEnd="_jfIc1pxgEeu216dzZOP2Cw _jfIc55xgEeu216dzZOP2Cw"/>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDh5xgEeu216dzZOP2Cw" memberEnd="_jfIcupxgEeu216dzZOP2Cw _jfJDiJxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJDiJxgEeu216dzZOP2Cw" type="_jfIcs5xgEeu216dzZOP2Cw" association="_jfJDh5xgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJDiJxgEeu216dzZOP2Cw" type="_jfIcs5xgEeu216dzZOP2Cw" association="_jfJDh5xgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfJDiZxgEeu216dzZOP2Cw" name="View">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfJDipxgEeu216dzZOP2Cw">
+ <generalization xmi:id="_jfJDipxgEeu216dzZOP2Cw">
<general xmi:type="uml:Class" href="../../org.eclipse.papyrus.infra.constraints/Model/Constraints.uml#_zg0XW5xgEeu216dzZOP2Cw"/>
</generalization>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDi5xgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
+ <generalization xmi:id="_v4RlsMiGEeueo7rlLkmY8A" general="_oYyx0MiFEeueo7rlLkmY8A"/>
+ <ownedAttribute xmi:id="_jfJDi5xgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDjJxgEeu216dzZOP2Cw" name="sections" type="_jfIc4pxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDlJxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfJDjJxgEeu216dzZOP2Cw" name="sections" type="_jfIc4pxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDlJxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfJDjZxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfJDjpxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDj5xgEeu216dzZOP2Cw" name="context" type="_jfIcs5xgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDlpxgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDkJxgEeu216dzZOP2Cw" name="automaticContext" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfJDj5xgEeu216dzZOP2Cw" name="context" type="_jfIcs5xgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDlpxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJDkJxgEeu216dzZOP2Cw" name="automaticContext" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EBoolean"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDkZxgEeu216dzZOP2Cw" name="datacontexts" type="_jfIc_pxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDl5xgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfJDkZxgEeu216dzZOP2Cw" name="datacontexts" type="_jfIc_pxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDl5xgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfJDkpxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfJDk5xgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDlJxgEeu216dzZOP2Cw" memberEnd="_jfJDjJxgEeu216dzZOP2Cw _jfJDlZxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJDlZxgEeu216dzZOP2Cw" type="_jfJDiZxgEeu216dzZOP2Cw" association="_jfJDlJxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJDlZxgEeu216dzZOP2Cw" type="_jfJDiZxgEeu216dzZOP2Cw" association="_jfJDlJxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDlpxgEeu216dzZOP2Cw" memberEnd="_jfIcvZxgEeu216dzZOP2Cw _jfJDj5xgEeu216dzZOP2Cw"/>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDl5xgEeu216dzZOP2Cw" memberEnd="_jfJDkZxgEeu216dzZOP2Cw _jfJDmJxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJDmJxgEeu216dzZOP2Cw" type="_jfJDiZxgEeu216dzZOP2Cw" association="_jfJDl5xgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJDmJxgEeu216dzZOP2Cw" type="_jfJDiZxgEeu216dzZOP2Cw" association="_jfJDl5xgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfJDmZxgEeu216dzZOP2Cw" name="DataContextRoot">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfJDmpxgEeu216dzZOP2Cw" general="_jfJDeZxgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDm5xgEeu216dzZOP2Cw" name="label" visibility="public" isOrdered="true">
+ <generalization xmi:id="_jfJDmpxgEeu216dzZOP2Cw" general="_jfJDeZxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJDm5xgEeu216dzZOP2Cw" name="label" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDnJxgEeu216dzZOP2Cw" name="modelElementFactory" type="_jfIceZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDnZxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJDnJxgEeu216dzZOP2Cw" name="modelElementFactory" type="_jfIceZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDnZxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDnZxgEeu216dzZOP2Cw" memberEnd="_jfJDnJxgEeu216dzZOP2Cw _jfJDnpxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJDnpxgEeu216dzZOP2Cw" type="_jfJDmZxgEeu216dzZOP2Cw" association="_jfJDnZxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJDnpxgEeu216dzZOP2Cw" type="_jfJDmZxgEeu216dzZOP2Cw" association="_jfJDnZxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDn5xgEeu216dzZOP2Cw" memberEnd="_jfIcwJxgEeu216dzZOP2Cw _jfJDoJxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJDoJxgEeu216dzZOP2Cw" type="_jfIcs5xgEeu216dzZOP2Cw" association="_jfJDn5xgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJDoJxgEeu216dzZOP2Cw" type="_jfIcs5xgEeu216dzZOP2Cw" association="_jfJDn5xgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDoZxgEeu216dzZOP2Cw" memberEnd="_jfIcw5xgEeu216dzZOP2Cw _jfJDopxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJDopxgEeu216dzZOP2Cw" type="_jfIcs5xgEeu216dzZOP2Cw" association="_jfJDoZxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJDopxgEeu216dzZOP2Cw" type="_jfIcs5xgEeu216dzZOP2Cw" association="_jfJDoZxgEeu216dzZOP2Cw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_lBHrYMiFEeueo7rlLkmY8A" name="Annotation">
+ <ownedAttribute xmi:id="_udSq4MiFEeueo7rlLkmY8A" name="element" type="_oYyx0MiFEeueo7rlLkmY8A" association="_ucxGcMiFEeueo7rlLkmY8A"/>
+ <ownedAttribute xmi:id="_95EcYMiFEeueo7rlLkmY8A" name="source">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_O6YoUMiGEeueo7rlLkmY8A" name="references" association="_O6XaMMiGEeueo7rlLkmY8A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EObject"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_O6YoUciGEeueo7rlLkmY8A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_O6YoUsiGEeueo7rlLkmY8A" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_WBGzYciGEeueo7rlLkmY8A" name="details" aggregation="composite" association="_WBGMUMiGEeueo7rlLkmY8A">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EStringToStringMapEntry"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WBGzYsiGEeueo7rlLkmY8A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WBGzY8iGEeueo7rlLkmY8A" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_oYyx0MiFEeueo7rlLkmY8A" name="Annotatable" isAbstract="true">
+ <ownedAttribute xmi:id="_uc0w0MiFEeueo7rlLkmY8A" name="annotations" type="_lBHrYMiFEeueo7rlLkmY8A" aggregation="composite" association="_ucxGcMiFEeueo7rlLkmY8A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uc5CQMiFEeueo7rlLkmY8A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_udGdoMiFEeueo7rlLkmY8A" value="*"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_1MRO4MiGEeueo7rlLkmY8A" name="getAnnotation">
+ <ownedParameter xmi:id="_6yq2sMiGEeueo7rlLkmY8A" name="source" effect="read">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_BOLhkMiHEeueo7rlLkmY8A" type="_lBHrYMiFEeueo7rlLkmY8A" direction="return" effect="read"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_ucxGcMiFEeueo7rlLkmY8A" memberEnd="_uc0w0MiFEeueo7rlLkmY8A _udSq4MiFEeueo7rlLkmY8A">
+ <eAnnotations xmi:id="_uczisMiFEeueo7rlLkmY8A" source="org.eclipse.papyrus">
+ <details xmi:id="_uczisciFEeueo7rlLkmY8A" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_O6XaMMiGEeueo7rlLkmY8A" memberEnd="_O6YoUMiGEeueo7rlLkmY8A _O6YoU8iGEeueo7rlLkmY8A">
+ <eAnnotations xmi:id="_O6YBQMiGEeueo7rlLkmY8A" source="org.eclipse.papyrus">
+ <details xmi:id="_O6YBQciGEeueo7rlLkmY8A" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <ownedEnd xmi:id="_O6YoU8iGEeueo7rlLkmY8A" name="annotation" type="_lBHrYMiFEeueo7rlLkmY8A" association="_O6XaMMiGEeueo7rlLkmY8A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SES_kMiGEeueo7rlLkmY8A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SEd-sMiGEeueo7rlLkmY8A" value="*"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_WBGMUMiGEeueo7rlLkmY8A" memberEnd="_WBGzYciGEeueo7rlLkmY8A _WBGzZMiGEeueo7rlLkmY8A">
+ <eAnnotations xmi:id="_WBGMUciGEeueo7rlLkmY8A" source="org.eclipse.papyrus">
+ <details xmi:id="_WBGzYMiGEeueo7rlLkmY8A" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <ownedEnd xmi:id="_WBGzZMiGEeueo7rlLkmY8A" name="annotation" type="_lBHrYMiFEeueo7rlLkmY8A" association="_WBGMUMiGEeueo7rlLkmY8A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_PQwZMMqwEeuhj7ABGVZg5A" memberEnd="_PQ3G4MqwEeuhj7ABGVZg5A _PQ3t8sqwEeuhj7ABGVZg5A">
+ <eAnnotations xmi:id="_PQ14wMqwEeuhj7ABGVZg5A" source="org.eclipse.papyrus">
+ <details xmi:id="_PQ2f0MqwEeuhj7ABGVZg5A" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <ownedEnd xmi:id="_PQ3t8sqwEeuhj7ABGVZg5A" name="section" type="_jfIc4pxgEeu216dzZOP2Cw" association="_PQwZMMqwEeuhj7ABGVZg5A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cpMZ8MqwEeuhj7ABGVZg5A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cpbDcMqwEeuhj7ABGVZg5A" value="*"/>
+ </ownedEnd>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_jfJDo5xgEeu216dzZOP2Cw" name="ui" URI="http://www.eclipse.org/papyrus/properties/ui/0.9">
<packagedElement xmi:type="uml:Class" xmi:id="_jfJDpJxgEeu216dzZOP2Cw" name="Element"/>
<packagedElement xmi:type="uml:Class" xmi:id="_jfJDpZxgEeu216dzZOP2Cw" name="UIComponent" isAbstract="true">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfJDppxgEeu216dzZOP2Cw" general="_jfJDpJxgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDp5xgEeu216dzZOP2Cw" name="attributes" type="_jfJDqpxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJDrZxgEeu216dzZOP2Cw">
+ <generalization xmi:id="_jfJDppxgEeu216dzZOP2Cw" general="_jfJDpJxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJDp5xgEeu216dzZOP2Cw" name="attributes" type="_jfJDqpxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJDrZxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfJDqJxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfJDqZxgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfJDqpxgEeu216dzZOP2Cw" name="WidgetAttribute" isAbstract="true">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfJDq5xgEeu216dzZOP2Cw" general="_jfJDpJxgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDrJxgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
+ <generalization xmi:id="_jfJDq5xgEeu216dzZOP2Cw" general="_jfJDpJxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJDrJxgEeu216dzZOP2Cw" name="name" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDrZxgEeu216dzZOP2Cw" memberEnd="_jfJDp5xgEeu216dzZOP2Cw _jfJDrpxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJDrpxgEeu216dzZOP2Cw" type="_jfJDpZxgEeu216dzZOP2Cw" association="_jfJDrZxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJDrpxgEeu216dzZOP2Cw" type="_jfJDpZxgEeu216dzZOP2Cw" association="_jfJDrZxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfJDr5xgEeu216dzZOP2Cw" name="Widget" isAbstract="true">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfJDsJxgEeu216dzZOP2Cw" general="_jfJDpZxgEeu216dzZOP2Cw"/>
+ <generalization xmi:id="_jfJDsJxgEeu216dzZOP2Cw" general="_jfJDpZxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfJDsZxgEeu216dzZOP2Cw" name="StandardWidget">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfJDspxgEeu216dzZOP2Cw" general="_jfJDr5xgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDs5xgEeu216dzZOP2Cw" name="widgetType" type="_jfIcfpxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDtJxgEeu216dzZOP2Cw"/>
+ <generalization xmi:id="_jfJDspxgEeu216dzZOP2Cw" general="_jfJDr5xgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJDs5xgEeu216dzZOP2Cw" name="widgetType" type="_jfIcfpxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDtJxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDtJxgEeu216dzZOP2Cw" memberEnd="_jfJDs5xgEeu216dzZOP2Cw _jfJDtZxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJDtZxgEeu216dzZOP2Cw" type="_jfJDsZxgEeu216dzZOP2Cw" association="_jfJDtJxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJDtZxgEeu216dzZOP2Cw" type="_jfJDsZxgEeu216dzZOP2Cw" association="_jfJDtJxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfJDtpxgEeu216dzZOP2Cw" name="PropertyEditor">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfJDt5xgEeu216dzZOP2Cw" general="_jfJDr5xgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDuJxgEeu216dzZOP2Cw" name="property" type="_jfIc7ZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDxJxgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDuZxgEeu216dzZOP2Cw" name="readOnly" visibility="public" isOrdered="true">
+ <generalization xmi:id="_jfJDt5xgEeu216dzZOP2Cw" general="_jfJDr5xgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJDuJxgEeu216dzZOP2Cw" name="property" type="_jfIc7ZxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDxJxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJDuZxgEeu216dzZOP2Cw" name="readOnly" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EBoolean"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_jfJDupxgEeu216dzZOP2Cw">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EBoolean"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDu5xgEeu216dzZOP2Cw" name="widgetType" type="_jfIckJxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDxpxgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDvJxgEeu216dzZOP2Cw" name="unresolvedProperty" type="_jfJDgpxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJDyJxgEeu216dzZOP2Cw">
+ <ownedAttribute xmi:id="_jfJDu5xgEeu216dzZOP2Cw" name="widgetType" type="_jfIckJxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJDxpxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJDvJxgEeu216dzZOP2Cw" name="unresolvedProperty" type="_jfJDgpxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJDyJxgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfJDvZxgEeu216dzZOP2Cw"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDvpxgEeu216dzZOP2Cw" name="contentProviderClass" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfJDvpxgEeu216dzZOP2Cw" name="contentProviderClass" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfJDv5xgEeu216dzZOP2Cw"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDwJxgEeu216dzZOP2Cw" name="showLabel" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfJDwJxgEeu216dzZOP2Cw" name="showLabel" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EBoolean"/>
<defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_jfJDwZxgEeu216dzZOP2Cw" value="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EBoolean"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDwpxgEeu216dzZOP2Cw" name="customLabel" visibility="public" isOrdered="true">
+ <ownedAttribute xmi:id="_jfJDwpxgEeu216dzZOP2Cw" name="customLabel" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfJDw5xgEeu216dzZOP2Cw"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDxJxgEeu216dzZOP2Cw" memberEnd="_jfJDuJxgEeu216dzZOP2Cw _jfJDxZxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJDxZxgEeu216dzZOP2Cw" type="_jfJDtpxgEeu216dzZOP2Cw" association="_jfJDxJxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJDxZxgEeu216dzZOP2Cw" type="_jfJDtpxgEeu216dzZOP2Cw" association="_jfJDxJxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDxpxgEeu216dzZOP2Cw" memberEnd="_jfJDu5xgEeu216dzZOP2Cw _jfJDx5xgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJDx5xgEeu216dzZOP2Cw" type="_jfJDtpxgEeu216dzZOP2Cw" association="_jfJDxpxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJDx5xgEeu216dzZOP2Cw" type="_jfJDtpxgEeu216dzZOP2Cw" association="_jfJDxpxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJDyJxgEeu216dzZOP2Cw" memberEnd="_jfJDvJxgEeu216dzZOP2Cw _jfJDyZxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJDyZxgEeu216dzZOP2Cw" type="_jfJDtpxgEeu216dzZOP2Cw" association="_jfJDyJxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJDyZxgEeu216dzZOP2Cw" type="_jfJDtpxgEeu216dzZOP2Cw" association="_jfJDyJxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfJDypxgEeu216dzZOP2Cw" name="UnknownComponent">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfJDy5xgEeu216dzZOP2Cw" general="_jfJDr5xgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDzJxgEeu216dzZOP2Cw" name="typeName" visibility="public" isOrdered="true">
+ <generalization xmi:id="_jfJDy5xgEeu216dzZOP2Cw" general="_jfJDr5xgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJDzJxgEeu216dzZOP2Cw" name="typeName" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfJDzZxgEeu216dzZOP2Cw" name="Layout">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfJDzpxgEeu216dzZOP2Cw" general="_jfJDpZxgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJDz5xgEeu216dzZOP2Cw" name="layoutType" type="_jfIcopxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJD0JxgEeu216dzZOP2Cw"/>
+ <generalization xmi:id="_jfJDzpxgEeu216dzZOP2Cw" general="_jfJDpZxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJDz5xgEeu216dzZOP2Cw" name="layoutType" type="_jfIcopxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJD0JxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJD0JxgEeu216dzZOP2Cw" memberEnd="_jfJDz5xgEeu216dzZOP2Cw _jfJD0ZxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJD0ZxgEeu216dzZOP2Cw" type="_jfJDzZxgEeu216dzZOP2Cw" association="_jfJD0JxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJD0ZxgEeu216dzZOP2Cw" type="_jfJDzZxgEeu216dzZOP2Cw" association="_jfJD0JxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfJD0pxgEeu216dzZOP2Cw" name="ValueAttribute">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfJD05xgEeu216dzZOP2Cw" general="_jfJDqpxgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJD1JxgEeu216dzZOP2Cw" name="value" visibility="public" isOrdered="true">
+ <generalization xmi:id="_jfJD05xgEeu216dzZOP2Cw" general="_jfJDqpxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJD1JxgEeu216dzZOP2Cw" name="value" visibility="public" isOrdered="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfJD1ZxgEeu216dzZOP2Cw" name="ReferenceAttribute">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfJD1pxgEeu216dzZOP2Cw" general="_jfJDqpxgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJD15xgEeu216dzZOP2Cw" name="value" type="_jfJDpZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJD2JxgEeu216dzZOP2Cw"/>
+ <generalization xmi:id="_jfJD1pxgEeu216dzZOP2Cw" general="_jfJDqpxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJD15xgEeu216dzZOP2Cw" name="value" type="_jfJDpZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJD2JxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJD2JxgEeu216dzZOP2Cw" memberEnd="_jfJD15xgEeu216dzZOP2Cw _jfJD2ZxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJD2ZxgEeu216dzZOP2Cw" type="_jfJD1ZxgEeu216dzZOP2Cw" association="_jfJD2JxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJD2ZxgEeu216dzZOP2Cw" type="_jfJD1ZxgEeu216dzZOP2Cw" association="_jfJD2JxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jfJD2pxgEeu216dzZOP2Cw" name="CompositeWidget">
- <generalization xmi:type="uml:Generalization" xmi:id="_jfJD25xgEeu216dzZOP2Cw" general="_jfJDr5xgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJD3JxgEeu216dzZOP2Cw" name="layout" type="_jfJDzZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJD4ZxgEeu216dzZOP2Cw"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJD3ZxgEeu216dzZOP2Cw" name="widgets" type="_jfJDr5xgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJD45xgEeu216dzZOP2Cw">
+ <generalization xmi:id="_jfJD25xgEeu216dzZOP2Cw" general="_jfJDr5xgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJD3JxgEeu216dzZOP2Cw" name="layout" type="_jfJDzZxgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJD4ZxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJD3ZxgEeu216dzZOP2Cw" name="widgets" type="_jfJDr5xgEeu216dzZOP2Cw" isOrdered="true" aggregation="composite" association="_jfJD45xgEeu216dzZOP2Cw">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jfJD3pxgEeu216dzZOP2Cw"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jfJD35xgEeu216dzZOP2Cw" value="*"/>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_jfJD4JxgEeu216dzZOP2Cw" name="widgetType" type="_jfIcnpxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJD5ZxgEeu216dzZOP2Cw"/>
+ <ownedAttribute xmi:id="_jfJD4JxgEeu216dzZOP2Cw" name="widgetType" type="_jfIcnpxgEeu216dzZOP2Cw" isOrdered="true" association="_jfJD5ZxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJD4ZxgEeu216dzZOP2Cw" memberEnd="_jfJD3JxgEeu216dzZOP2Cw _jfJD4pxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJD4pxgEeu216dzZOP2Cw" type="_jfJD2pxgEeu216dzZOP2Cw" association="_jfJD4ZxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJD4pxgEeu216dzZOP2Cw" type="_jfJD2pxgEeu216dzZOP2Cw" association="_jfJD4ZxgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJD45xgEeu216dzZOP2Cw" memberEnd="_jfJD3ZxgEeu216dzZOP2Cw _jfJD5JxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJD5JxgEeu216dzZOP2Cw" type="_jfJD2pxgEeu216dzZOP2Cw" association="_jfJD45xgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJD5JxgEeu216dzZOP2Cw" type="_jfJD2pxgEeu216dzZOP2Cw" association="_jfJD45xgEeu216dzZOP2Cw"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_jfJD5ZxgEeu216dzZOP2Cw" memberEnd="_jfJD4JxgEeu216dzZOP2Cw _jfJD5pxgEeu216dzZOP2Cw">
- <ownedEnd xmi:type="uml:Property" xmi:id="_jfJD5pxgEeu216dzZOP2Cw" type="_jfJD2pxgEeu216dzZOP2Cw" association="_jfJD5ZxgEeu216dzZOP2Cw"/>
+ <ownedEnd xmi:id="_jfJD5pxgEeu216dzZOP2Cw" type="_jfJD2pxgEeu216dzZOP2Cw" association="_jfJD5ZxgEeu216dzZOP2Cw"/>
</packagedElement>
</packagedElement>
- <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_jfJD55xgEeu216dzZOP2Cw">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jfJD6JxgEeu216dzZOP2Cw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <profileApplication xmi:id="_jfJD55xgEeu216dzZOP2Cw">
+ <eAnnotations xmi:id="_jfJD6JxgEeu216dzZOP2Cw" source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
</eAnnotations>
- <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+ <appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
</profileApplication>
</uml:Model>
<Ecore:EPackage xmi:id="_jfJD6ZxgEeu216dzZOP2Cw" base_Package="_jfIcYJxgEeu216dzZOP2Cw" nsPrefix="properties"/>
@@ -564,4 +635,7 @@ just the name of the context.</body>
<Ecore:EReference xmi:id="_jfMGzZxgEeu216dzZOP2Cw" base_Property="_jfJD3JxgEeu216dzZOP2Cw"/>
<Ecore:EReference xmi:id="_jfMGzpxgEeu216dzZOP2Cw" base_Property="_jfJD3ZxgEeu216dzZOP2Cw"/>
<Ecore:EReference xmi:id="_jfMGz5xgEeu216dzZOP2Cw" base_Property="_jfJD4JxgEeu216dzZOP2Cw"/>
+ <Ecore:EClass xmi:id="_ntz7IMiFEeueo7rlLkmY8A" base_Class="_lBHrYMiFEeueo7rlLkmY8A"/>
+ <Ecore:EClass xmi:id="_p7SfUMiFEeueo7rlLkmY8A" base_Class="_oYyx0MiFEeueo7rlLkmY8A"/>
+ <Ecore:EOperation xmi:id="_z880UMqwEeuhj7ABGVZg5A" base_Operation="_pTka0MqwEeuhj7ABGVZg5A" visibility="None"/>
</xmi:XMI>
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/build.properties b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/build.properties
index f06fb5850c3..26ffc1b5551 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/build.properties
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/build.properties
@@ -11,4 +11,4 @@ bin.includes = .,\
jars.compile.order=.
src.includes = about.html
source.. = src-gen/,\
- src/ \ No newline at end of file
+ src/
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/plugin.properties b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/plugin.properties
index 926cd0a2fee..52ef49b5e4f 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/plugin.properties
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/plugin.properties
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2016 CEA LIST, Christian W. Damus, and others.
+# Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
@@ -10,7 +10,7 @@
#
# Contributors:
# CEA LIST - Initial API and implementation
-# Christian W. Damus - bug 485220
+# Christian W. Damus - bugs 485220, 573986
#
pluginName = Papyrus properties model
providerName = Eclipse Modeling Project
@@ -19,3 +19,5 @@ pluginDescription=An EMF Model for defining a Property view configuration. It co
extension-point.contexts = Properties Contexts
extension-point.environment = Properties Environments
+_UI_Environment_content_type = Papyrus Properties Environment Model File
+_UI_Contexts_content_type = Papyrus Properties Context Model File
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/plugin.xml b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/plugin.xml
index 72cce9d2b94..7b71f1f60e4 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/plugin.xml
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/plugin.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!--
- Copyright (c) 2011, 2016 CEA LIST, Christian W. Damus, and others.
+ Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
@@ -12,7 +12,7 @@
Contributors:
CEA LIST - Initial API and implementation
- Christian W. Damus - bug 485220
+ Christian W. Damus - bugs 485220, 573986
-->
<plugin>
<extension-point id="contexts" name="%extension-point.contexts" schema="schema/contexts.exsd"/>
@@ -25,13 +25,28 @@
genModel="Model/properties.genmodel"/>
</extension>
- <extension point="org.eclipse.emf.ecore.extension_parser">
- <!-- @generated Properties -->
+ <extension point="org.eclipse.emf.ecore.content_parser">
+ <!-- @generated properties -->
<parser
- type="environment"
+ contentTypeIdentifier="org.eclipse.papyrus.infra.properties.environment"
class="org.eclipse.papyrus.infra.properties.environment.util.EnvironmentResourceFactoryImpl"/>
</extension>
+ <extension point="org.eclipse.core.contenttype.contentTypes">
+ <!-- @generated properties -->
+ <content-type
+ base-type="org.eclipse.emf.ecore.xmi"
+ file-extensions="environment,xmi"
+ id="org.eclipse.papyrus.infra.properties.environment"
+ name="%_UI_Environment_content_type"
+ priority="normal">
+ <describer class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
+ <parameter name="namespace" value="http://www.eclipse.org/papyrus/properties/environment/0.9"/>
+ <parameter name="kind" value="xmi"/>
+ </describer>
+ </content-type>
+ </extension>
+
<extension point="org.eclipse.emf.ecore.generated_package">
<package
uri="http://www.eclipse.org/papyrus/properties/contexts/0.9"
@@ -39,13 +54,27 @@
genModel="Model/properties.genmodel"/>
</extension>
- <extension point="org.eclipse.emf.ecore.extension_parser">
- <!-- @generated Properties -->
+ <extension point="org.eclipse.emf.ecore.content_parser">
<parser
- type="ctx"
+ contentTypeIdentifier="org.eclipse.papyrus.infra.properties.context"
class="org.eclipse.papyrus.infra.properties.contexts.util.ContextsResourceFactoryImpl"/>
</extension>
+ <extension point="org.eclipse.core.contenttype.contentTypes">
+ <!-- @generated properties -->
+ <content-type
+ base-type="org.eclipse.emf.ecore.xmi"
+ file-extensions="ctx"
+ id="org.eclipse.papyrus.infra.properties.context"
+ name="%_UI_Contexts_content_type"
+ priority="normal">
+ <describer class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
+ <parameter name="namespace" value="http://www.eclipse.org/papyrus/properties/contexts/0.9"/>
+ <parameter name="kind" value="xmi"/>
+ </describer>
+ </content-type>
+ </extension>
+
<extension point="org.eclipse.emf.ecore.generated_package">
<package
uri="http://www.eclipse.org/papyrus/properties/ui/0.9"
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/AbstractSection.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/AbstractSection.java
index 956bd83c774..645cbb9f3ad 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/AbstractSection.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/AbstractSection.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2011-2021 CEA LIST and others.
+ * Copyright (c) 2011-2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* Remi Schnekenburger - Initial API and implementation
+ * Christian W. Damus - bug 573986
*/
package org.eclipse.papyrus.infra.properties.contexts;
@@ -32,7 +33,7 @@ import org.eclipse.papyrus.infra.constraints.DisplayUnit;
* @model abstract="true"
* @generated
*/
-public interface AbstractSection extends DisplayUnit {
+public interface AbstractSection extends DisplayUnit, Annotatable {
/**
* Returns the value of the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Annotatable.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Annotatable.java
new file mode 100644
index 00000000000..c63ae0fc16a
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Annotatable.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.properties.contexts;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Annotatable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.Annotatable#getAnnotations <em>Annotations</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.infra.properties.contexts.ContextsPackage#getAnnotatable()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Annotatable extends EObject {
+ /**
+ * Returns the value of the '<em><b>Annotations</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.properties.contexts.Annotation}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.properties.contexts.Annotation#getElement <em>Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Annotations</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>Annotations</em>' containment reference list.
+ * @see org.eclipse.papyrus.infra.properties.contexts.ContextsPackage#getAnnotatable_Annotations()
+ * @see org.eclipse.papyrus.infra.properties.contexts.Annotation#getElement
+ * @model opposite="element" containment="true" ordered="false"
+ * @generated
+ */
+ EList<Annotation> getAnnotations();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model required="true" ordered="false" sourceDataType="org.eclipse.uml2.types.String" sourceRequired="true" sourceOrdered="false"
+ * @generated
+ */
+ Annotation getAnnotation(String source);
+
+} // Annotatable
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Annotation.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Annotation.java
new file mode 100644
index 00000000000..ce79bd51cd2
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Annotation.java
@@ -0,0 +1,128 @@
+/**
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.properties.contexts;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Annotation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.Annotation#getSource <em>Source</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.Annotation#getReferences <em>References</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.Annotation#getDetails <em>Details</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.Annotation#getElement <em>Element</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.infra.properties.contexts.ContextsPackage#getAnnotation()
+ * @model
+ * @generated
+ */
+public interface Annotation extends EObject {
+ /**
+ * Returns the value of the '<em><b>Source</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Source</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Source</em>' attribute.
+ * @see #setSource(String)
+ * @see org.eclipse.papyrus.infra.properties.contexts.ContextsPackage#getAnnotation_Source()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getSource();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.properties.contexts.Annotation#getSource <em>Source</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Source</em>' attribute.
+ * @see #getSource()
+ * @generated
+ */
+ void setSource(String value);
+
+ /**
+ * Returns the value of the '<em><b>References</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.EObject}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>References</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>References</em>' reference list.
+ * @see org.eclipse.papyrus.infra.properties.contexts.ContextsPackage#getAnnotation_References()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<EObject> getReferences();
+
+ /**
+ * Returns the value of the '<em><b>Details</b></em>' map.
+ * The key is of type {@link java.lang.String},
+ * and the value is of type {@link java.lang.String},
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Details</em>' map isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Details</em>' map.
+ * @see org.eclipse.papyrus.infra.properties.contexts.ContextsPackage#getAnnotation_Details()
+ * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry&lt;org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString&gt;" ordered="false"
+ * @generated
+ */
+ EMap<String, String> getDetails();
+
+ /**
+ * Returns the value of the '<em><b>Element</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.properties.contexts.Annotatable#getAnnotations <em>Annotations</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Element</em>' container reference.
+ * @see #setElement(Annotatable)
+ * @see org.eclipse.papyrus.infra.properties.contexts.ContextsPackage#getAnnotation_Element()
+ * @see org.eclipse.papyrus.infra.properties.contexts.Annotatable#getAnnotations
+ * @model opposite="annotations" required="true" transient="false" ordered="false"
+ * @generated
+ */
+ Annotatable getElement();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.infra.properties.contexts.Annotation#getElement <em>Element</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Element</em>' container reference.
+ * @see #getElement()
+ * @generated
+ */
+ void setElement(Annotatable value);
+
+} // Annotation
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Context.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Context.java
index 98b692999ff..b8b72318dc0 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Context.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Context.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011, 2015 CEA LIST, Christian W. Damus, and others.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -11,7 +11,7 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus - add prototype reference to Context (CDO)
- * Christian W. Damus - bug 482927
+ * Christian W. Damus - bugs 482927, 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts;
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/ContextsFactory.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/ContextsFactory.java
index 37dbb88457e..c2c6a6b3db6 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/ContextsFactory.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/ContextsFactory.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts;
@@ -69,6 +70,15 @@ public interface ContextsFactory extends EFactory {
Section createSection();
/**
+ * Returns a new object of class '<em>Annotation</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Annotation</em>'.
+ * @generated
+ */
+ Annotation createAnnotation();
+
+ /**
* Returns a new object of class '<em>Data Context Element</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/ContextsPackage.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/ContextsPackage.java
index a69aaa25587..e2e563251e2 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/ContextsPackage.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/ContextsPackage.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011, 2015, 2017 CEA LIST, Christian W. Damus, and others.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -11,13 +11,14 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus - add prototype reference to Context (CDO)
- * Christian W. Damus - bug 482927
+ * Christian W. Damus - bugs 482927, 573986
* Vincent Lorenzo - Bug 520271
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EcorePackage;
@@ -65,6 +66,14 @@ public interface ContextsPackage extends EPackage {
String eNS_PREFIX = "contexts";
/**
+ * The package content type ID.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eCONTENT_TYPE = "org.eclipse.papyrus.infra.properties.context"; //$NON-NLS-1$
+
+ /**
* The singleton instance of the package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -307,7 +316,7 @@ public interface ContextsPackage extends EPackage {
* @see org.eclipse.papyrus.infra.properties.contexts.impl.ContextsPackageImpl#getView()
* @generated
*/
- int VIEW = 8;
+ int VIEW = 10;
/**
* The meta object id for the '{@link org.eclipse.papyrus.infra.properties.contexts.impl.AbstractSectionImpl <em>Abstract Section</em>}' class.
@@ -338,13 +347,22 @@ public interface ContextsPackage extends EPackage {
int ABSTRACT_SECTION__ELEMENT_MULTIPLICITY = ConstraintsPackage.DISPLAY_UNIT__ELEMENT_MULTIPLICITY;
/**
+ * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_SECTION__ANNOTATIONS = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 0;
+
+ /**
* The feature id for the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int ABSTRACT_SECTION__NAME = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 0;
+ int ABSTRACT_SECTION__NAME = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 1;
/**
* The feature id for the '<em><b>Tab</b></em>' container reference.
@@ -353,7 +371,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int ABSTRACT_SECTION__TAB = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 1;
+ int ABSTRACT_SECTION__TAB = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 2;
/**
* The number of structural features of the '<em>Abstract Section</em>' class.
@@ -362,7 +380,16 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int ABSTRACT_SECTION_FEATURE_COUNT = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 2;
+ int ABSTRACT_SECTION_FEATURE_COUNT = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Annotation</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_SECTION___GET_ANNOTATION__STRING = ConstraintsPackage.DISPLAY_UNIT_OPERATION_COUNT + 0;
/**
* The number of operations of the '<em>Abstract Section</em>' class.
@@ -371,7 +398,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int ABSTRACT_SECTION_OPERATION_COUNT = ConstraintsPackage.DISPLAY_UNIT_OPERATION_COUNT + 0;
+ int ABSTRACT_SECTION_OPERATION_COUNT = ConstraintsPackage.DISPLAY_UNIT_OPERATION_COUNT + 1;
/**
* The meta object id for the '{@link org.eclipse.papyrus.infra.properties.contexts.impl.SectionImpl <em>Section</em>}' class.
@@ -402,6 +429,15 @@ public interface ContextsPackage extends EPackage {
int SECTION__ELEMENT_MULTIPLICITY = ABSTRACT_SECTION__ELEMENT_MULTIPLICITY;
/**
+ * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SECTION__ANNOTATIONS = ABSTRACT_SECTION__ANNOTATIONS;
+
+ /**
* The feature id for the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -438,13 +474,22 @@ public interface ContextsPackage extends EPackage {
int SECTION__WIDGET = ABSTRACT_SECTION_FEATURE_COUNT + 1;
/**
+ * The feature id for the '<em><b>Views</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SECTION__VIEWS = ABSTRACT_SECTION_FEATURE_COUNT + 2;
+
+ /**
* The feature id for the '<em><b>Owner</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int SECTION__OWNER = ABSTRACT_SECTION_FEATURE_COUNT + 2;
+ int SECTION__OWNER = ABSTRACT_SECTION_FEATURE_COUNT + 3;
/**
* The number of structural features of the '<em>Section</em>' class.
@@ -453,7 +498,25 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int SECTION_FEATURE_COUNT = ABSTRACT_SECTION_FEATURE_COUNT + 3;
+ int SECTION_FEATURE_COUNT = ABSTRACT_SECTION_FEATURE_COUNT + 4;
+
+ /**
+ * The operation id for the '<em>Get Annotation</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SECTION___GET_ANNOTATION__STRING = ABSTRACT_SECTION___GET_ANNOTATION__STRING;
+
+ /**
+ * The operation id for the '<em>Get Views</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SECTION___GET_VIEWS = ABSTRACT_SECTION_OPERATION_COUNT + 0;
/**
* The number of operations of the '<em>Section</em>' class.
@@ -462,7 +525,117 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int SECTION_OPERATION_COUNT = ABSTRACT_SECTION_OPERATION_COUNT + 0;
+ int SECTION_OPERATION_COUNT = ABSTRACT_SECTION_OPERATION_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.properties.contexts.impl.AnnotatableImpl <em>Annotatable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.properties.contexts.impl.AnnotatableImpl
+ * @see org.eclipse.papyrus.infra.properties.contexts.impl.ContextsPackageImpl#getAnnotatable()
+ * @generated
+ */
+ int ANNOTATABLE = 4;
+
+ /**
+ * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATABLE__ANNOTATIONS = 0;
+
+ /**
+ * The number of structural features of the '<em>Annotatable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATABLE_FEATURE_COUNT = 1;
+
+ /**
+ * The operation id for the '<em>Get Annotation</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATABLE___GET_ANNOTATION__STRING = 0;
+
+ /**
+ * The number of operations of the '<em>Annotatable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATABLE_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.infra.properties.contexts.impl.AnnotationImpl <em>Annotation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.properties.contexts.impl.AnnotationImpl
+ * @see org.eclipse.papyrus.infra.properties.contexts.impl.ContextsPackageImpl#getAnnotation()
+ * @generated
+ */
+ int ANNOTATION = 5;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATION__SOURCE = 0;
+
+ /**
+ * The feature id for the '<em><b>References</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATION__REFERENCES = 1;
+
+ /**
+ * The feature id for the '<em><b>Details</b></em>' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATION__DETAILS = 2;
+
+ /**
+ * The feature id for the '<em><b>Element</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATION__ELEMENT = 3;
+
+ /**
+ * The number of structural features of the '<em>Annotation</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATION_FEATURE_COUNT = 4;
+
+ /**
+ * The number of operations of the '<em>Annotation</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ANNOTATION_OPERATION_COUNT = 0;
/**
* The meta object id for the '{@link org.eclipse.papyrus.infra.properties.contexts.impl.DataContextElementImpl <em>Data Context Element</em>}' class.
@@ -472,7 +645,7 @@ public interface ContextsPackage extends EPackage {
* @see org.eclipse.papyrus.infra.properties.contexts.impl.ContextsPackageImpl#getDataContextElement()
* @generated
*/
- int DATA_CONTEXT_ELEMENT = 5;
+ int DATA_CONTEXT_ELEMENT = 7;
/**
* The meta object id for the '{@link org.eclipse.papyrus.infra.properties.contexts.impl.PropertyImpl <em>Property</em>}' class.
@@ -482,7 +655,16 @@ public interface ContextsPackage extends EPackage {
* @see org.eclipse.papyrus.infra.properties.contexts.impl.ContextsPackageImpl#getProperty()
* @generated
*/
- int PROPERTY = 4;
+ int PROPERTY = 6;
+
+ /**
+ * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY__ANNOTATIONS = ANNOTATABLE__ANNOTATIONS;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -491,7 +673,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int PROPERTY__NAME = 0;
+ int PROPERTY__NAME = ANNOTATABLE_FEATURE_COUNT + 0;
/**
* The feature id for the '<em><b>Label</b></em>' attribute.
@@ -500,7 +682,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int PROPERTY__LABEL = 1;
+ int PROPERTY__LABEL = ANNOTATABLE_FEATURE_COUNT + 1;
/**
* The feature id for the '<em><b>Type</b></em>' attribute.
@@ -509,7 +691,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int PROPERTY__TYPE = 2;
+ int PROPERTY__TYPE = ANNOTATABLE_FEATURE_COUNT + 2;
/**
* The feature id for the '<em><b>Context Element</b></em>' container reference.
@@ -518,7 +700,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int PROPERTY__CONTEXT_ELEMENT = 3;
+ int PROPERTY__CONTEXT_ELEMENT = ANNOTATABLE_FEATURE_COUNT + 3;
/**
* The feature id for the '<em><b>Multiplicity</b></em>' attribute.
@@ -527,7 +709,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int PROPERTY__MULTIPLICITY = 4;
+ int PROPERTY__MULTIPLICITY = ANNOTATABLE_FEATURE_COUNT + 4;
/**
* The feature id for the '<em><b>Description</b></em>' attribute.
@@ -536,7 +718,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int PROPERTY__DESCRIPTION = 5;
+ int PROPERTY__DESCRIPTION = ANNOTATABLE_FEATURE_COUNT + 5;
/**
* The feature id for the '<em><b>Redefined Properties</b></em>' reference list.
@@ -545,7 +727,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int PROPERTY__REDEFINED_PROPERTIES = 6;
+ int PROPERTY__REDEFINED_PROPERTIES = ANNOTATABLE_FEATURE_COUNT + 6;
/**
* The feature id for the '<em><b>Redefined By Properties</b></em>' reference list.
@@ -554,7 +736,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int PROPERTY__REDEFINED_BY_PROPERTIES = 7;
+ int PROPERTY__REDEFINED_BY_PROPERTIES = ANNOTATABLE_FEATURE_COUNT + 7;
/**
* The number of structural features of the '<em>Property</em>' class.
@@ -563,7 +745,16 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int PROPERTY_FEATURE_COUNT = 8;
+ int PROPERTY_FEATURE_COUNT = ANNOTATABLE_FEATURE_COUNT + 8;
+
+ /**
+ * The operation id for the '<em>Get Annotation</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY___GET_ANNOTATION__STRING = ANNOTATABLE___GET_ANNOTATION__STRING;
/**
* The number of operations of the '<em>Property</em>' class.
@@ -572,7 +763,16 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int PROPERTY_OPERATION_COUNT = 0;
+ int PROPERTY_OPERATION_COUNT = ANNOTATABLE_OPERATION_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_CONTEXT_ELEMENT__ANNOTATIONS = ANNOTATABLE__ANNOTATIONS;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -581,7 +781,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int DATA_CONTEXT_ELEMENT__NAME = 0;
+ int DATA_CONTEXT_ELEMENT__NAME = ANNOTATABLE_FEATURE_COUNT + 0;
/**
* The feature id for the '<em><b>Package</b></em>' container reference.
@@ -590,7 +790,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int DATA_CONTEXT_ELEMENT__PACKAGE = 1;
+ int DATA_CONTEXT_ELEMENT__PACKAGE = ANNOTATABLE_FEATURE_COUNT + 1;
/**
* The feature id for the '<em><b>Supertypes</b></em>' reference list.
@@ -599,7 +799,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int DATA_CONTEXT_ELEMENT__SUPERTYPES = 2;
+ int DATA_CONTEXT_ELEMENT__SUPERTYPES = ANNOTATABLE_FEATURE_COUNT + 2;
/**
* The feature id for the '<em><b>Properties</b></em>' containment reference list.
@@ -608,7 +808,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int DATA_CONTEXT_ELEMENT__PROPERTIES = 3;
+ int DATA_CONTEXT_ELEMENT__PROPERTIES = ANNOTATABLE_FEATURE_COUNT + 3;
/**
* The number of structural features of the '<em>Data Context Element</em>' class.
@@ -617,7 +817,16 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int DATA_CONTEXT_ELEMENT_FEATURE_COUNT = 4;
+ int DATA_CONTEXT_ELEMENT_FEATURE_COUNT = ANNOTATABLE_FEATURE_COUNT + 4;
+
+ /**
+ * The operation id for the '<em>Get Annotation</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_CONTEXT_ELEMENT___GET_ANNOTATION__STRING = ANNOTATABLE___GET_ANNOTATION__STRING;
/**
* The number of operations of the '<em>Data Context Element</em>' class.
@@ -626,7 +835,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int DATA_CONTEXT_ELEMENT_OPERATION_COUNT = 0;
+ int DATA_CONTEXT_ELEMENT_OPERATION_COUNT = ANNOTATABLE_OPERATION_COUNT + 0;
/**
* The meta object id for the '{@link org.eclipse.papyrus.infra.properties.contexts.impl.UnknownPropertyImpl <em>Unknown Property</em>}' class.
@@ -636,7 +845,7 @@ public interface ContextsPackage extends EPackage {
* @see org.eclipse.papyrus.infra.properties.contexts.impl.ContextsPackageImpl#getUnknownProperty()
* @generated
*/
- int UNKNOWN_PROPERTY = 7;
+ int UNKNOWN_PROPERTY = 9;
/**
* The meta object id for the '{@link org.eclipse.papyrus.infra.properties.contexts.impl.DataContextPackageImpl <em>Data Context Package</em>}' class.
@@ -646,7 +855,16 @@ public interface ContextsPackage extends EPackage {
* @see org.eclipse.papyrus.infra.properties.contexts.impl.ContextsPackageImpl#getDataContextPackage()
* @generated
*/
- int DATA_CONTEXT_PACKAGE = 6;
+ int DATA_CONTEXT_PACKAGE = 8;
+
+ /**
+ * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_CONTEXT_PACKAGE__ANNOTATIONS = DATA_CONTEXT_ELEMENT__ANNOTATIONS;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -703,6 +921,15 @@ public interface ContextsPackage extends EPackage {
int DATA_CONTEXT_PACKAGE_FEATURE_COUNT = DATA_CONTEXT_ELEMENT_FEATURE_COUNT + 1;
/**
+ * The operation id for the '<em>Get Annotation</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_CONTEXT_PACKAGE___GET_ANNOTATION__STRING = DATA_CONTEXT_ELEMENT___GET_ANNOTATION__STRING;
+
+ /**
* The number of operations of the '<em>Data Context Package</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -712,6 +939,15 @@ public interface ContextsPackage extends EPackage {
int DATA_CONTEXT_PACKAGE_OPERATION_COUNT = DATA_CONTEXT_ELEMENT_OPERATION_COUNT + 0;
/**
+ * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNKNOWN_PROPERTY__ANNOTATIONS = PROPERTY__ANNOTATIONS;
+
+ /**
* The feature id for the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -793,6 +1029,15 @@ public interface ContextsPackage extends EPackage {
int UNKNOWN_PROPERTY_FEATURE_COUNT = PROPERTY_FEATURE_COUNT + 0;
/**
+ * The operation id for the '<em>Get Annotation</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNKNOWN_PROPERTY___GET_ANNOTATION__STRING = PROPERTY___GET_ANNOTATION__STRING;
+
+ /**
* The number of operations of the '<em>Unknown Property</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -820,13 +1065,22 @@ public interface ContextsPackage extends EPackage {
int VIEW__ELEMENT_MULTIPLICITY = ConstraintsPackage.DISPLAY_UNIT__ELEMENT_MULTIPLICITY;
/**
+ * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW__ANNOTATIONS = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 0;
+
+ /**
* The feature id for the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int VIEW__NAME = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 0;
+ int VIEW__NAME = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 1;
/**
* The feature id for the '<em><b>Sections</b></em>' reference list.
@@ -835,7 +1089,16 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int VIEW__SECTIONS = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 1;
+ int VIEW__SECTIONS = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Context</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW__CONTEXT = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 3;
/**
* The feature id for the '<em><b>Automatic Context</b></em>' attribute.
@@ -844,7 +1107,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int VIEW__AUTOMATIC_CONTEXT = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 2;
+ int VIEW__AUTOMATIC_CONTEXT = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 4;
/**
* The feature id for the '<em><b>Datacontexts</b></em>' reference list.
@@ -853,25 +1116,25 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int VIEW__DATACONTEXTS = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 3;
+ int VIEW__DATACONTEXTS = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 5;
/**
- * The feature id for the '<em><b>Context</b></em>' container reference.
+ * The number of structural features of the '<em>View</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int VIEW__CONTEXT = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 4;
+ int VIEW_FEATURE_COUNT = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 6;
/**
- * The number of structural features of the '<em>View</em>' class.
+ * The operation id for the '<em>Get Annotation</em>' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int VIEW_FEATURE_COUNT = ConstraintsPackage.DISPLAY_UNIT_FEATURE_COUNT + 5;
+ int VIEW___GET_ANNOTATION__STRING = ConstraintsPackage.DISPLAY_UNIT_OPERATION_COUNT + 0;
/**
* The number of operations of the '<em>View</em>' class.
@@ -880,7 +1143,7 @@ public interface ContextsPackage extends EPackage {
* @generated
* @ordered
*/
- int VIEW_OPERATION_COUNT = ConstraintsPackage.DISPLAY_UNIT_OPERATION_COUNT + 0;
+ int VIEW_OPERATION_COUNT = ConstraintsPackage.DISPLAY_UNIT_OPERATION_COUNT + 1;
/**
* The meta object id for the '{@link org.eclipse.papyrus.infra.properties.contexts.impl.DataContextRootImpl <em>Data Context Root</em>}' class.
@@ -890,7 +1153,16 @@ public interface ContextsPackage extends EPackage {
* @see org.eclipse.papyrus.infra.properties.contexts.impl.ContextsPackageImpl#getDataContextRoot()
* @generated
*/
- int DATA_CONTEXT_ROOT = 9;
+ int DATA_CONTEXT_ROOT = 11;
+
+ /**
+ * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_CONTEXT_ROOT__ANNOTATIONS = DATA_CONTEXT_PACKAGE__ANNOTATIONS;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -966,6 +1238,15 @@ public interface ContextsPackage extends EPackage {
/**
+ * The operation id for the '<em>Get Annotation</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_CONTEXT_ROOT___GET_ANNOTATION__STRING = DATA_CONTEXT_PACKAGE___GET_ANNOTATION__STRING;
+
+ /**
* The number of operations of the '<em>Data Context Root</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1280,6 +1561,91 @@ public interface ContextsPackage extends EPackage {
EReference getAbstractSection_Tab();
/**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.properties.contexts.Annotatable <em>Annotatable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Annotatable</em>'.
+ * @see org.eclipse.papyrus.infra.properties.contexts.Annotatable
+ * @generated
+ */
+ EClass getAnnotatable();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.infra.properties.contexts.Annotatable#getAnnotations <em>Annotations</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Annotations</em>'.
+ * @see org.eclipse.papyrus.infra.properties.contexts.Annotatable#getAnnotations()
+ * @see #getAnnotatable()
+ * @generated
+ */
+ EReference getAnnotatable_Annotations();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.papyrus.infra.properties.contexts.Annotatable#getAnnotation(java.lang.String) <em>Get Annotation</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Annotation</em>' operation.
+ * @see org.eclipse.papyrus.infra.properties.contexts.Annotatable#getAnnotation(java.lang.String)
+ * @generated
+ */
+ EOperation getAnnotatable__GetAnnotation__String();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.infra.properties.contexts.Annotation <em>Annotation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Annotation</em>'.
+ * @see org.eclipse.papyrus.infra.properties.contexts.Annotation
+ * @generated
+ */
+ EClass getAnnotation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.infra.properties.contexts.Annotation#getSource <em>Source</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Source</em>'.
+ * @see org.eclipse.papyrus.infra.properties.contexts.Annotation#getSource()
+ * @see #getAnnotation()
+ * @generated
+ */
+ EAttribute getAnnotation_Source();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.properties.contexts.Annotation#getReferences <em>References</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>References</em>'.
+ * @see org.eclipse.papyrus.infra.properties.contexts.Annotation#getReferences()
+ * @see #getAnnotation()
+ * @generated
+ */
+ EReference getAnnotation_References();
+
+ /**
+ * Returns the meta object for the map '{@link org.eclipse.papyrus.infra.properties.contexts.Annotation#getDetails <em>Details</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the map '<em>Details</em>'.
+ * @see org.eclipse.papyrus.infra.properties.contexts.Annotation#getDetails()
+ * @see #getAnnotation()
+ * @generated
+ */
+ EReference getAnnotation_Details();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.papyrus.infra.properties.contexts.Annotation#getElement <em>Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Element</em>'.
+ * @see org.eclipse.papyrus.infra.properties.contexts.Annotation#getElement()
+ * @see #getAnnotation()
+ * @generated
+ */
+ EReference getAnnotation_Element();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.papyrus.infra.properties.contexts.Section <em>Section</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1312,6 +1678,17 @@ public interface ContextsPackage extends EPackage {
EReference getSection_Widget();
/**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.infra.properties.contexts.Section#getViews <em>Views</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Views</em>'.
+ * @see org.eclipse.papyrus.infra.properties.contexts.Section#getViews()
+ * @see #getSection()
+ * @generated
+ */
+ EReference getSection_Views();
+
+ /**
* Returns the meta object for the reference '{@link org.eclipse.papyrus.infra.properties.contexts.Section#getOwner <em>Owner</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1323,6 +1700,16 @@ public interface ContextsPackage extends EPackage {
EReference getSection_Owner();
/**
+ * Returns the meta object for the '{@link org.eclipse.papyrus.infra.properties.contexts.Section#getViews() <em>Get Views</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Views</em>' operation.
+ * @see org.eclipse.papyrus.infra.properties.contexts.Section#getViews()
+ * @generated
+ */
+ EOperation getSection__GetViews();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.papyrus.infra.properties.contexts.DataContextElement <em>Data Context Element</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1793,6 +2180,74 @@ public interface ContextsPackage extends EPackage {
EReference ABSTRACT_SECTION__TAB = eINSTANCE.getAbstractSection_Tab();
/**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.properties.contexts.impl.AnnotatableImpl <em>Annotatable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.properties.contexts.impl.AnnotatableImpl
+ * @see org.eclipse.papyrus.infra.properties.contexts.impl.ContextsPackageImpl#getAnnotatable()
+ * @generated
+ */
+ EClass ANNOTATABLE = eINSTANCE.getAnnotatable();
+
+ /**
+ * The meta object literal for the '<em><b>Annotations</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ANNOTATABLE__ANNOTATIONS = eINSTANCE.getAnnotatable_Annotations();
+
+ /**
+ * The meta object literal for the '<em><b>Get Annotation</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation ANNOTATABLE___GET_ANNOTATION__STRING = eINSTANCE.getAnnotatable__GetAnnotation__String();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.infra.properties.contexts.impl.AnnotationImpl <em>Annotation</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.infra.properties.contexts.impl.AnnotationImpl
+ * @see org.eclipse.papyrus.infra.properties.contexts.impl.ContextsPackageImpl#getAnnotation()
+ * @generated
+ */
+ EClass ANNOTATION = eINSTANCE.getAnnotation();
+
+ /**
+ * The meta object literal for the '<em><b>Source</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ANNOTATION__SOURCE = eINSTANCE.getAnnotation_Source();
+
+ /**
+ * The meta object literal for the '<em><b>References</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ANNOTATION__REFERENCES = eINSTANCE.getAnnotation_References();
+
+ /**
+ * The meta object literal for the '<em><b>Details</b></em>' map feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ANNOTATION__DETAILS = eINSTANCE.getAnnotation_Details();
+
+ /**
+ * The meta object literal for the '<em><b>Element</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ANNOTATION__ELEMENT = eINSTANCE.getAnnotation_Element();
+
+ /**
* The meta object literal for the '{@link org.eclipse.papyrus.infra.properties.contexts.impl.SectionImpl <em>Section</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1819,6 +2274,14 @@ public interface ContextsPackage extends EPackage {
EReference SECTION__WIDGET = eINSTANCE.getSection_Widget();
/**
+ * The meta object literal for the '<em><b>Views</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SECTION__VIEWS = eINSTANCE.getSection_Views();
+
+ /**
* The meta object literal for the '<em><b>Owner</b></em>' reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1827,6 +2290,14 @@ public interface ContextsPackage extends EPackage {
EReference SECTION__OWNER = eINSTANCE.getSection_Owner();
/**
+ * The meta object literal for the '<em><b>Get Views</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation SECTION___GET_VIEWS = eINSTANCE.getSection__GetViews();
+
+ /**
* The meta object literal for the '{@link org.eclipse.papyrus.infra.properties.contexts.impl.DataContextElementImpl <em>Data Context Element</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextElement.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextElement.java
index e31afefdd29..0825a018563 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextElement.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextElement.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,11 +10,11 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts;
import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
/**
* <!-- begin-user-doc -->
@@ -35,7 +35,7 @@ import org.eclipse.emf.ecore.EObject;
* @model
* @generated
*/
-public interface DataContextElement extends EObject {
+public interface DataContextElement extends Annotatable {
/**
* Returns the value of the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextPackage.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextPackage.java
index 16da7f1f693..8e5615c6b37 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextPackage.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextPackage.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts;
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextRoot.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextRoot.java
index e5ff7a1657f..fd838abab73 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextRoot.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/DataContextRoot.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts;
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Property.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Property.java
index b05b26f63ad..1b886314cb4 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Property.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Property.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011, 2017 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -11,11 +11,11 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Vincent Lorenzo - Bug 520271
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts;
import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.infra.properties.environment.Type;
/**
@@ -41,7 +41,7 @@ import org.eclipse.papyrus.infra.properties.environment.Type;
* @model
* @generated
*/
-public interface Property extends EObject {
+public interface Property extends Annotatable {
/**
* Returns the value of the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Section.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Section.java
index e16a599162b..97228b35247 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Section.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Section.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,9 +10,11 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.papyrus.infra.properties.ui.CompositeWidget;
/**
@@ -26,6 +28,7 @@ import org.eclipse.papyrus.infra.properties.ui.CompositeWidget;
* <ul>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.Section#getSectionFile <em>Section File</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.Section#getWidget <em>Widget</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.Section#getViews <em>Views</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.Section#getOwner <em>Owner</em>}</li>
* </ul>
*
@@ -85,6 +88,22 @@ public interface Section extends AbstractSection {
void setWidget(CompositeWidget value);
/**
+ * Returns the value of the '<em><b>Views</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.infra.properties.contexts.View}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Views</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>Views</em>' reference list.
+ * @see org.eclipse.papyrus.infra.properties.contexts.ContextsPackage#getSection_Views()
+ * @model transient="true" changeable="false" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ EList<View> getViews();
+
+ /**
* Returns the value of the '<em><b>Owner</b></em>' reference.
* It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.properties.contexts.Tab#getSections <em>Sections</em>}'.
* <p>
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Tab.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Tab.java
index 82a07fb1f8c..6c442a009b1 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Tab.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/Tab.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts;
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/View.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/View.java
index 4d899f9be2a..7b236cb474a 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/View.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/View.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts;
@@ -27,16 +28,16 @@ import org.eclipse.papyrus.infra.constraints.DisplayUnit;
* <ul>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.View#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.View#getSections <em>Sections</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.View#getContext <em>Context</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.View#isAutomaticContext <em>Automatic Context</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.View#getDatacontexts <em>Datacontexts</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.properties.contexts.View#getContext <em>Context</em>}</li>
* </ul>
*
* @see org.eclipse.papyrus.infra.properties.contexts.ContextsPackage#getView()
* @model
* @generated
*/
-public interface View extends DisplayUnit {
+public interface View extends DisplayUnit, Annotatable {
/**
* Returns the value of the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/AbstractSectionImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/AbstractSectionImpl.java
index 873c1eeb01a..4a5148182f6 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/AbstractSectionImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/AbstractSectionImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2011-2021 CEA LIST and others.
+ * Copyright (c) 2011-2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,19 +10,29 @@
*
* Contributors:
* Remi Schnekenburger - Initial API and implementation
+ * Christian W. Damus - bug 573986
*/
package org.eclipse.papyrus.infra.properties.contexts.impl;
+import java.lang.reflect.InvocationTargetException;
+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.EObjectContainmentWithInverseEList;
import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.papyrus.infra.constraints.impl.DisplayUnitImpl;
import org.eclipse.papyrus.infra.properties.contexts.AbstractSection;
+import org.eclipse.papyrus.infra.properties.contexts.Annotatable;
+import org.eclipse.papyrus.infra.properties.contexts.Annotation;
import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
import org.eclipse.papyrus.infra.properties.contexts.Tab;
+import org.eclipse.papyrus.infra.properties.contexts.operations.AnnotatableOperations;
+import org.eclipse.uml2.common.util.CacheAdapter;
/**
* <!-- begin-user-doc -->
@@ -32,6 +42,7 @@ import org.eclipse.papyrus.infra.properties.contexts.Tab;
* The following features are implemented:
* </p>
* <ul>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.AbstractSectionImpl#getAnnotations <em>Annotations</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.AbstractSectionImpl#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.AbstractSectionImpl#getTab <em>Tab</em>}</li>
* </ul>
@@ -40,6 +51,16 @@ import org.eclipse.papyrus.infra.properties.contexts.Tab;
*/
public abstract class AbstractSectionImpl extends DisplayUnitImpl implements AbstractSection {
/**
+ * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAnnotations()
+ * @generated
+ * @ordered
+ */
+ protected EList<Annotation> annotations;
+
+ /**
* The default value of the '{@link #getName() <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -84,6 +105,19 @@ public abstract class AbstractSectionImpl extends DisplayUnitImpl implements Abs
* @generated
*/
@Override
+ public EList<Annotation> getAnnotations() {
+ if (annotations == null) {
+ annotations = new EObjectContainmentWithInverseEList<Annotation>(Annotation.class, this, ContextsPackage.ABSTRACT_SECTION__ANNOTATIONS, ContextsPackage.ANNOTATION__ELEMENT);
+ }
+ return annotations;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public String getName() {
return name;
}
@@ -149,9 +183,21 @@ public abstract class AbstractSectionImpl extends DisplayUnitImpl implements Abs
* <!-- end-user-doc -->
* @generated
*/
+ public Annotation getAnnotation(String source) {
+ return AnnotatableOperations.getAnnotation(this, source);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
+ case ContextsPackage.ABSTRACT_SECTION__ANNOTATIONS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getAnnotations()).basicAdd(otherEnd, msgs);
case ContextsPackage.ABSTRACT_SECTION__TAB:
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
@@ -168,6 +214,8 @@ public abstract class AbstractSectionImpl extends DisplayUnitImpl implements Abs
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
+ case ContextsPackage.ABSTRACT_SECTION__ANNOTATIONS:
+ return ((InternalEList<?>)getAnnotations()).basicRemove(otherEnd, msgs);
case ContextsPackage.ABSTRACT_SECTION__TAB:
return basicSetTab(null, msgs);
}
@@ -196,6 +244,8 @@ public abstract class AbstractSectionImpl extends DisplayUnitImpl implements Abs
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
+ case ContextsPackage.ABSTRACT_SECTION__ANNOTATIONS:
+ return getAnnotations();
case ContextsPackage.ABSTRACT_SECTION__NAME:
return getName();
case ContextsPackage.ABSTRACT_SECTION__TAB:
@@ -209,9 +259,14 @@ public abstract class AbstractSectionImpl extends DisplayUnitImpl implements Abs
* <!-- end-user-doc -->
* @generated
*/
+ @SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
+ case ContextsPackage.ABSTRACT_SECTION__ANNOTATIONS:
+ getAnnotations().clear();
+ getAnnotations().addAll((Collection<? extends Annotation>)newValue);
+ return;
case ContextsPackage.ABSTRACT_SECTION__NAME:
setName((String)newValue);
return;
@@ -230,6 +285,9 @@ public abstract class AbstractSectionImpl extends DisplayUnitImpl implements Abs
@Override
public void eUnset(int featureID) {
switch (featureID) {
+ case ContextsPackage.ABSTRACT_SECTION__ANNOTATIONS:
+ getAnnotations().clear();
+ return;
case ContextsPackage.ABSTRACT_SECTION__NAME:
setName(NAME_EDEFAULT);
return;
@@ -248,6 +306,8 @@ public abstract class AbstractSectionImpl extends DisplayUnitImpl implements Abs
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
+ case ContextsPackage.ABSTRACT_SECTION__ANNOTATIONS:
+ return annotations != null && !annotations.isEmpty();
case ContextsPackage.ABSTRACT_SECTION__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
case ContextsPackage.ABSTRACT_SECTION__TAB:
@@ -262,6 +322,68 @@ public abstract class AbstractSectionImpl extends DisplayUnitImpl implements Abs
* @generated
*/
@Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == Annotatable.class) {
+ switch (derivedFeatureID) {
+ case ContextsPackage.ABSTRACT_SECTION__ANNOTATIONS: return ContextsPackage.ANNOTATABLE__ANNOTATIONS;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == Annotatable.class) {
+ switch (baseFeatureID) {
+ case ContextsPackage.ANNOTATABLE__ANNOTATIONS: return ContextsPackage.ABSTRACT_SECTION__ANNOTATIONS;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Annotatable.class) {
+ switch (baseOperationID) {
+ case ContextsPackage.ANNOTATABLE___GET_ANNOTATION__STRING: return ContextsPackage.ABSTRACT_SECTION___GET_ANNOTATION__STRING;
+ default: return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case ContextsPackage.ABSTRACT_SECTION___GET_ANNOTATION__STRING:
+ return getAnnotation((String)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public String toString() {
if (eIsProxy()) return super.toString();
@@ -272,4 +394,15 @@ public abstract class AbstractSectionImpl extends DisplayUnitImpl implements Abs
return result.toString();
}
+ /**
+ * Retrieves the cache adapter for this '<em><b>Abstract Section</b></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return The cache adapter for this '<em><b>Abstract Section</b></em>'.
+ * @generated
+ */
+ protected CacheAdapter getCacheAdapter() {
+ return CacheAdapter.getInstance();
+ }
+
} // AbstractSectionImpl
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/AnnotatableImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/AnnotatableImpl.java
new file mode 100644
index 00000000000..38700e9b7e9
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/AnnotatableImpl.java
@@ -0,0 +1,212 @@
+/**
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.properties.contexts.impl;
+
+import java.lang.reflect.InvocationTargetException;
+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.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.papyrus.infra.properties.contexts.Annotatable;
+import org.eclipse.papyrus.infra.properties.contexts.Annotation;
+import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
+import org.eclipse.papyrus.infra.properties.contexts.operations.AnnotatableOperations;
+import org.eclipse.uml2.common.util.CacheAdapter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Annotatable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.AnnotatableImpl#getAnnotations <em>Annotations</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class AnnotatableImpl extends MinimalEObjectImpl.Container implements Annotatable {
+ /**
+ * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAnnotations()
+ * @generated
+ * @ordered
+ */
+ protected EList<Annotation> annotations;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AnnotatableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ContextsPackage.Literals.ANNOTATABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Annotation> getAnnotations() {
+ if (annotations == null) {
+ annotations = new EObjectContainmentWithInverseEList<Annotation>(Annotation.class, this, ContextsPackage.ANNOTATABLE__ANNOTATIONS, ContextsPackage.ANNOTATION__ELEMENT);
+ }
+ return annotations;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Annotation getAnnotation(String source) {
+ return AnnotatableOperations.getAnnotation(this, source);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ContextsPackage.ANNOTATABLE__ANNOTATIONS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getAnnotations()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ContextsPackage.ANNOTATABLE__ANNOTATIONS:
+ return ((InternalEList<?>)getAnnotations()).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 ContextsPackage.ANNOTATABLE__ANNOTATIONS:
+ return getAnnotations();
+ }
+ 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 ContextsPackage.ANNOTATABLE__ANNOTATIONS:
+ getAnnotations().clear();
+ getAnnotations().addAll((Collection<? extends Annotation>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ContextsPackage.ANNOTATABLE__ANNOTATIONS:
+ getAnnotations().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ContextsPackage.ANNOTATABLE__ANNOTATIONS:
+ return annotations != null && !annotations.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case ContextsPackage.ANNOTATABLE___GET_ANNOTATION__STRING:
+ return getAnnotation((String)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * Retrieves the cache adapter for this '<em><b>Annotatable</b></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return The cache adapter for this '<em><b>Annotatable</b></em>'.
+ * @generated
+ */
+ protected CacheAdapter getCacheAdapter() {
+ return CacheAdapter.getInstance();
+ }
+
+} // AnnotatableImpl
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/AnnotationImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/AnnotationImpl.java
new file mode 100644
index 00000000000..d54b2b87e47
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/AnnotationImpl.java
@@ -0,0 +1,374 @@
+/**
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.properties.contexts.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.common.util.EMap;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EStringToStringMapEntryImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.infra.properties.contexts.Annotatable;
+import org.eclipse.papyrus.infra.properties.contexts.Annotation;
+import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
+import org.eclipse.uml2.common.util.CacheAdapter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Annotation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.AnnotationImpl#getSource <em>Source</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.AnnotationImpl#getReferences <em>References</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.AnnotationImpl#getDetails <em>Details</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.AnnotationImpl#getElement <em>Element</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AnnotationImpl extends MinimalEObjectImpl.Container implements Annotation {
+ /**
+ * The default value of the '{@link #getSource() <em>Source</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSource()
+ * @generated
+ * @ordered
+ */
+ protected static final String SOURCE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSource() <em>Source</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSource()
+ * @generated
+ * @ordered
+ */
+ protected String source = SOURCE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getReferences() <em>References</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReferences()
+ * @generated
+ * @ordered
+ */
+ protected EList<EObject> references;
+
+ /**
+ * The cached value of the '{@link #getDetails() <em>Details</em>}' map.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDetails()
+ * @generated
+ * @ordered
+ */
+ protected EMap<String, String> details;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AnnotationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ContextsPackage.Literals.ANNOTATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getSource() {
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSource(String newSource) {
+ String oldSource = source;
+ source = newSource;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ContextsPackage.ANNOTATION__SOURCE, oldSource, source));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<EObject> getReferences() {
+ if (references == null) {
+ references = new EObjectResolvingEList<EObject>(EObject.class, this, ContextsPackage.ANNOTATION__REFERENCES);
+ }
+ return references;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EMap<String, String> getDetails() {
+ if (details == null) {
+ details = new EcoreEMap<String,String>(EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY, EStringToStringMapEntryImpl.class, this, ContextsPackage.ANNOTATION__DETAILS);
+ }
+ return details;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Annotatable getElement() {
+ if (eContainerFeatureID() != ContextsPackage.ANNOTATION__ELEMENT) return null;
+ return (Annotatable)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetElement(Annotatable newElement, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newElement, ContextsPackage.ANNOTATION__ELEMENT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setElement(Annotatable newElement) {
+ if (newElement != eInternalContainer() || (eContainerFeatureID() != ContextsPackage.ANNOTATION__ELEMENT && newElement != null)) {
+ if (EcoreUtil.isAncestor(this, newElement))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newElement != null)
+ msgs = ((InternalEObject)newElement).eInverseAdd(this, ContextsPackage.ANNOTATABLE__ANNOTATIONS, Annotatable.class, msgs);
+ msgs = basicSetElement(newElement, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ContextsPackage.ANNOTATION__ELEMENT, newElement, newElement));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ContextsPackage.ANNOTATION__ELEMENT:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetElement((Annotatable)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ContextsPackage.ANNOTATION__DETAILS:
+ return ((InternalEList<?>)getDetails()).basicRemove(otherEnd, msgs);
+ case ContextsPackage.ANNOTATION__ELEMENT:
+ return basicSetElement(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case ContextsPackage.ANNOTATION__ELEMENT:
+ return eInternalContainer().eInverseRemove(this, ContextsPackage.ANNOTATABLE__ANNOTATIONS, Annotatable.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ContextsPackage.ANNOTATION__SOURCE:
+ return getSource();
+ case ContextsPackage.ANNOTATION__REFERENCES:
+ return getReferences();
+ case ContextsPackage.ANNOTATION__DETAILS:
+ if (coreType) return getDetails();
+ else return getDetails().map();
+ case ContextsPackage.ANNOTATION__ELEMENT:
+ return getElement();
+ }
+ 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 ContextsPackage.ANNOTATION__SOURCE:
+ setSource((String)newValue);
+ return;
+ case ContextsPackage.ANNOTATION__REFERENCES:
+ getReferences().clear();
+ getReferences().addAll((Collection<? extends EObject>)newValue);
+ return;
+ case ContextsPackage.ANNOTATION__DETAILS:
+ ((EStructuralFeature.Setting)getDetails()).set(newValue);
+ return;
+ case ContextsPackage.ANNOTATION__ELEMENT:
+ setElement((Annotatable)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ContextsPackage.ANNOTATION__SOURCE:
+ setSource(SOURCE_EDEFAULT);
+ return;
+ case ContextsPackage.ANNOTATION__REFERENCES:
+ getReferences().clear();
+ return;
+ case ContextsPackage.ANNOTATION__DETAILS:
+ getDetails().clear();
+ return;
+ case ContextsPackage.ANNOTATION__ELEMENT:
+ setElement((Annotatable)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ContextsPackage.ANNOTATION__SOURCE:
+ return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source);
+ case ContextsPackage.ANNOTATION__REFERENCES:
+ return references != null && !references.isEmpty();
+ case ContextsPackage.ANNOTATION__DETAILS:
+ return details != null && !details.isEmpty();
+ case ContextsPackage.ANNOTATION__ELEMENT:
+ return getElement() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (source: "); //$NON-NLS-1$
+ result.append(source);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * Retrieves the cache adapter for this '<em><b>Annotation</b></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return The cache adapter for this '<em><b>Annotation</b></em>'.
+ * @generated
+ */
+ protected CacheAdapter getCacheAdapter() {
+ return CacheAdapter.getInstance();
+ }
+
+} //AnnotationImpl
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextImpl.java
index b58fea3c83a..4160ff98d5d 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011, 2015 CEA LIST, Christian W. Damus, and others.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -11,7 +11,7 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus - add prototype reference to Context (CDO)
- * Christian W. Damus - bug 482927
+ * Christian W. Damus - bugs 482927, 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.impl;
@@ -33,6 +33,7 @@ import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
import org.eclipse.papyrus.infra.properties.contexts.DataContextRoot;
import org.eclipse.papyrus.infra.properties.contexts.Tab;
import org.eclipse.papyrus.infra.properties.contexts.View;
+import org.eclipse.uml2.common.util.CacheAdapter;
/**
* <!-- begin-user-doc -->
@@ -506,4 +507,15 @@ public class ContextImpl extends EModelElementImpl implements Context {
return result.toString();
}
+ /**
+ * Retrieves the cache adapter for this '<em><b>Context</b></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return The cache adapter for this '<em><b>Context</b></em>'.
+ * @generated
+ */
+ protected CacheAdapter getCacheAdapter() {
+ return CacheAdapter.getInstance();
+ }
+
} // ContextImpl
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextsFactoryImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextsFactoryImpl.java
index 854e8e809f0..07a8f3f973e 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextsFactoryImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextsFactoryImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011, 2013 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -11,6 +11,7 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus - add prototype reference to Context (CDO)
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.impl;
@@ -19,6 +20,7 @@ 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.properties.contexts.*;
import org.eclipse.papyrus.infra.properties.contexts.Context;
import org.eclipse.papyrus.infra.properties.contexts.ContextsFactory;
import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
@@ -79,6 +81,7 @@ public class ContextsFactoryImpl extends EFactoryImpl implements ContextsFactory
case ContextsPackage.CONTEXT: return createContext();
case ContextsPackage.TAB: return createTab();
case ContextsPackage.SECTION: return createSection();
+ case ContextsPackage.ANNOTATION: return createAnnotation();
case ContextsPackage.PROPERTY: return createProperty();
case ContextsPackage.DATA_CONTEXT_ELEMENT: return createDataContextElement();
case ContextsPackage.DATA_CONTEXT_PACKAGE: return createDataContextPackage();
@@ -140,6 +143,17 @@ public class ContextsFactoryImpl extends EFactoryImpl implements ContextsFactory
* @generated
*/
@Override
+ public Annotation createAnnotation() {
+ AnnotationImpl annotation = new AnnotationImpl();
+ return annotation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public DataContextElement createDataContextElement() {
DataContextElementImpl dataContextElement = new DataContextElementImpl();
return dataContextElement;
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextsPackageImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextsPackageImpl.java
index 95b89b8d97e..97af55ed209 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextsPackageImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ContextsPackageImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011, 2015, 2017 CEA LIST, Christian W. Damus, and others.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -11,7 +11,7 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus - add prototype reference to Context (CDO)
- * Christian W. Damus - bug 482927
+ * Christian W. Damus - bugs 482927, 573986
* Vincent Lorenzo - Bug 520271
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.impl;
@@ -19,12 +19,15 @@ package org.eclipse.papyrus.infra.properties.contexts.impl;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.impl.EPackageImpl;
import org.eclipse.papyrus.infra.constraints.ConstraintsPackage;
import org.eclipse.papyrus.infra.properties.contexts.AbstractSection;
+import org.eclipse.papyrus.infra.properties.contexts.Annotatable;
+import org.eclipse.papyrus.infra.properties.contexts.Annotation;
import org.eclipse.papyrus.infra.properties.contexts.Context;
import org.eclipse.papyrus.infra.properties.contexts.ContextsFactory;
import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
@@ -40,6 +43,7 @@ import org.eclipse.papyrus.infra.properties.environment.EnvironmentPackage;
import org.eclipse.papyrus.infra.properties.environment.impl.EnvironmentPackageImpl;
import org.eclipse.papyrus.infra.properties.ui.UiPackage;
import org.eclipse.papyrus.infra.properties.ui.impl.UiPackageImpl;
+import org.eclipse.uml2.types.TypesPackage;
/**
* <!-- begin-user-doc -->
@@ -81,6 +85,20 @@ public class ContextsPackageImpl extends EPackageImpl implements ContextsPackage
* <!-- end-user-doc -->
* @generated
*/
+ private EClass annotatableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass annotationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
private EClass sectionEClass = null;
/**
@@ -166,6 +184,7 @@ public class ContextsPackageImpl extends EPackageImpl implements ContextsPackage
// Initialize simple dependencies
ConstraintsPackage.eINSTANCE.eClass();
EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
// Obtain or create and register interdependencies
Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(EnvironmentPackage.eNS_URI);
@@ -418,7 +437,7 @@ public class ContextsPackageImpl extends EPackageImpl implements ContextsPackage
*/
@Override
public EReference getView_Context() {
- return (EReference)viewEClass.getEStructuralFeatures().get(4);
+ return (EReference)viewEClass.getEStructuralFeatures().get(2);
}
/**
@@ -428,7 +447,7 @@ public class ContextsPackageImpl extends EPackageImpl implements ContextsPackage
*/
@Override
public EAttribute getView_AutomaticContext() {
- return (EAttribute)viewEClass.getEStructuralFeatures().get(2);
+ return (EAttribute)viewEClass.getEStructuralFeatures().get(3);
}
/**
@@ -438,7 +457,7 @@ public class ContextsPackageImpl extends EPackageImpl implements ContextsPackage
*/
@Override
public EReference getView_Datacontexts() {
- return (EReference)viewEClass.getEStructuralFeatures().get(3);
+ return (EReference)viewEClass.getEStructuralFeatures().get(4);
}
/**
@@ -477,6 +496,86 @@ public class ContextsPackageImpl extends EPackageImpl implements ContextsPackage
* @generated
*/
@Override
+ public EClass getAnnotatable() {
+ return annotatableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getAnnotatable_Annotations() {
+ return (EReference)annotatableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EOperation getAnnotatable__GetAnnotation__String() {
+ return annotatableEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAnnotation() {
+ return annotationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getAnnotation_Source() {
+ return (EAttribute)annotationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getAnnotation_References() {
+ return (EReference)annotationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getAnnotation_Details() {
+ return (EReference)annotationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getAnnotation_Element() {
+ return (EReference)annotationEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getSection() {
return sectionEClass;
}
@@ -507,7 +606,7 @@ public class ContextsPackageImpl extends EPackageImpl implements ContextsPackage
* @generated
*/
@Override
- public EReference getSection_Owner() {
+ public EReference getSection_Views() {
return (EReference)sectionEClass.getEStructuralFeatures().get(2);
}
@@ -517,6 +616,26 @@ public class ContextsPackageImpl extends EPackageImpl implements ContextsPackage
* @generated
*/
@Override
+ public EReference getSection_Owner() {
+ return (EReference)sectionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EOperation getSection__GetViews() {
+ return sectionEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getDataContextElement() {
return dataContextElementEClass;
}
@@ -764,12 +883,24 @@ public class ContextsPackageImpl extends EPackageImpl implements ContextsPackage
sectionEClass = createEClass(SECTION);
createEAttribute(sectionEClass, SECTION__SECTION_FILE);
createEReference(sectionEClass, SECTION__WIDGET);
+ createEReference(sectionEClass, SECTION__VIEWS);
createEReference(sectionEClass, SECTION__OWNER);
+ createEOperation(sectionEClass, SECTION___GET_VIEWS);
abstractSectionEClass = createEClass(ABSTRACT_SECTION);
createEAttribute(abstractSectionEClass, ABSTRACT_SECTION__NAME);
createEReference(abstractSectionEClass, ABSTRACT_SECTION__TAB);
+ annotatableEClass = createEClass(ANNOTATABLE);
+ createEReference(annotatableEClass, ANNOTATABLE__ANNOTATIONS);
+ createEOperation(annotatableEClass, ANNOTATABLE___GET_ANNOTATION__STRING);
+
+ annotationEClass = createEClass(ANNOTATION);
+ createEAttribute(annotationEClass, ANNOTATION__SOURCE);
+ createEReference(annotationEClass, ANNOTATION__REFERENCES);
+ createEReference(annotationEClass, ANNOTATION__DETAILS);
+ createEReference(annotationEClass, ANNOTATION__ELEMENT);
+
propertyEClass = createEClass(PROPERTY);
createEAttribute(propertyEClass, PROPERTY__NAME);
createEAttribute(propertyEClass, PROPERTY__LABEL);
@@ -794,9 +925,9 @@ public class ContextsPackageImpl extends EPackageImpl implements ContextsPackage
viewEClass = createEClass(VIEW);
createEAttribute(viewEClass, VIEW__NAME);
createEReference(viewEClass, VIEW__SECTIONS);
+ createEReference(viewEClass, VIEW__CONTEXT);
createEAttribute(viewEClass, VIEW__AUTOMATIC_CONTEXT);
createEReference(viewEClass, VIEW__DATACONTEXTS);
- createEReference(viewEClass, VIEW__CONTEXT);
dataContextRootEClass = createEClass(DATA_CONTEXT_ROOT);
createEAttribute(dataContextRootEClass, DATA_CONTEXT_ROOT__LABEL);
@@ -830,6 +961,7 @@ public class ContextsPackageImpl extends EPackageImpl implements ContextsPackage
EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
UiPackage theUiPackage = (UiPackage)EPackage.Registry.INSTANCE.getEPackage(UiPackage.eNS_URI);
ConstraintsPackage theConstraintsPackage = (ConstraintsPackage)EPackage.Registry.INSTANCE.getEPackage(ConstraintsPackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
EnvironmentPackage theEnvironmentPackage = (EnvironmentPackage)EPackage.Registry.INSTANCE.getEPackage(EnvironmentPackage.eNS_URI);
// Create type parameters
@@ -840,9 +972,13 @@ public class ContextsPackageImpl extends EPackageImpl implements ContextsPackage
contextEClass.getESuperTypes().add(theEcorePackage.getEModelElement());
sectionEClass.getESuperTypes().add(this.getAbstractSection());
abstractSectionEClass.getESuperTypes().add(theConstraintsPackage.getDisplayUnit());
+ abstractSectionEClass.getESuperTypes().add(this.getAnnotatable());
+ propertyEClass.getESuperTypes().add(this.getAnnotatable());
+ dataContextElementEClass.getESuperTypes().add(this.getAnnotatable());
dataContextPackageEClass.getESuperTypes().add(this.getDataContextElement());
unknownPropertyEClass.getESuperTypes().add(this.getProperty());
viewEClass.getESuperTypes().add(theConstraintsPackage.getDisplayUnit());
+ viewEClass.getESuperTypes().add(this.getAnnotatable());
dataContextRootEClass.getESuperTypes().add(this.getDataContextPackage());
// Initialize classes, features, and operations; add parameters
@@ -870,12 +1006,27 @@ public class ContextsPackageImpl extends EPackageImpl implements ContextsPackage
initEClass(sectionEClass, Section.class, "Section", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(getSection_SectionFile(), ecorePackage.getEString(), "sectionFile", null, 1, 1, Section.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(getSection_Widget(), theUiPackage.getCompositeWidget(), null, "widget", null, 1, 1, Section.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getSection_Views(), this.getView(), null, "views", null, 0, -1, Section.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEReference(getSection_Owner(), this.getTab(), this.getTab_Sections(), "owner", null, 1, 1, Section.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEOperation(getSection__GetViews(), this.getView(), "getViews", 0, -1, IS_UNIQUE, !IS_ORDERED); //$NON-NLS-1$
+
initEClass(abstractSectionEClass, AbstractSection.class, "AbstractSection", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(getAbstractSection_Name(), ecorePackage.getEString(), "name", null, 1, 1, AbstractSection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(getAbstractSection_Tab(), this.getTab(), this.getTab_AllSections(), "tab", null, 1, 1, AbstractSection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEClass(annotatableEClass, Annotatable.class, "Annotatable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getAnnotatable_Annotations(), this.getAnnotation(), this.getAnnotation_Element(), "annotations", null, 0, -1, Annotatable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ EOperation op = initEOperation(getAnnotatable__GetAnnotation__String(), this.getAnnotation(), "getAnnotation", 1, 1, IS_UNIQUE, !IS_ORDERED); //$NON-NLS-1$
+ addEParameter(op, theTypesPackage.getString(), "source", 1, 1, IS_UNIQUE, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(annotationEClass, Annotation.class, "Annotation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getAnnotation_Source(), theTypesPackage.getString(), "source", null, 1, 1, Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getAnnotation_References(), theEcorePackage.getEObject(), null, "references", null, 0, -1, Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getAnnotation_Details(), theEcorePackage.getEStringToStringMapEntry(), null, "details", null, 0, -1, Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getAnnotation_Element(), this.getAnnotatable(), this.getAnnotatable_Annotations(), "element", null, 1, 1, Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
initEClass(propertyEClass, Property.class, "Property", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(getProperty_Name(), ecorePackage.getEString(), "name", null, 1, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEAttribute(getProperty_Label(), ecorePackage.getEString(), "label", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
@@ -900,9 +1051,9 @@ public class ContextsPackageImpl extends EPackageImpl implements ContextsPackage
initEClass(viewEClass, View.class, "View", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(getView_Name(), ecorePackage.getEString(), "name", null, 1, 1, View.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(getView_Sections(), this.getSection(), null, "sections", null, 0, -1, View.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getView_Context(), this.getContext(), this.getContext_Views(), "context", null, 1, 1, View.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEAttribute(getView_AutomaticContext(), ecorePackage.getEBoolean(), "automaticContext", null, 1, 1, View.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEReference(getView_Datacontexts(), this.getDataContextElement(), null, "datacontexts", null, 0, -1, View.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
- initEReference(getView_Context(), this.getContext(), this.getContext_Views(), "context", null, 1, 1, View.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEClass(dataContextRootEClass, DataContextRoot.class, "DataContextRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(getDataContextRoot_Label(), ecorePackage.getEString(), "label", null, 1, 1, DataContextRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextElementImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextElementImpl.java
index 6deb93e244f..b1a91581422 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextElementImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextElementImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011, 2013 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -11,6 +11,7 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus - add prototype reference to Context (CDO)
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.impl;
@@ -22,7 +23,6 @@ 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.MinimalEObjectImpl;
import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
import org.eclipse.emf.ecore.util.EObjectResolvingEList;
import org.eclipse.emf.ecore.util.EcoreUtil;
@@ -48,7 +48,7 @@ import org.eclipse.papyrus.infra.properties.contexts.Property;
*
* @generated
*/
-public class DataContextElementImpl extends MinimalEObjectImpl.Container implements DataContextElement {
+public class DataContextElementImpl extends AnnotatableImpl implements DataContextElement {
/**
* The default value of the '{@link #getName() <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextPackageImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextPackageImpl.java
index f119cb20876..1e0592c5201 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextPackageImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextPackageImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.impl;
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextRootImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextRootImpl.java
index 0f4b8b7bfd3..ead02e3a399 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextRootImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/DataContextRootImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.impl;
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/PropertyImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/PropertyImpl.java
index 9b73d535a62..fe2d7467607 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/PropertyImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/PropertyImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011, 2013, 2017 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -12,6 +12,7 @@
* CEA LIST - Initial API and implementation
* Christian W. Damus - add prototype reference to Context (CDO)
* Vincent Lorenzo - Bug 520271
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.impl;
@@ -23,7 +24,6 @@ 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.MinimalEObjectImpl;
import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.util.InternalEList;
@@ -52,7 +52,7 @@ import org.eclipse.papyrus.infra.properties.environment.Type;
*
* @generated
*/
-public class PropertyImpl extends MinimalEObjectImpl.Container implements Property {
+public class PropertyImpl extends AnnotatableImpl implements Property {
/**
* The default value of the '{@link #getName() <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/SectionImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/SectionImpl.java
index 210b00ec27b..da1b2f40364 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/SectionImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/SectionImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011, 2013 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -11,11 +11,13 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus - add prototype reference to Context (CDO)
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.impl;
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;
@@ -23,7 +25,10 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
import org.eclipse.papyrus.infra.properties.contexts.Section;
import org.eclipse.papyrus.infra.properties.contexts.Tab;
+import org.eclipse.papyrus.infra.properties.contexts.View;
+import org.eclipse.papyrus.infra.properties.contexts.operations.SectionOperations;
import org.eclipse.papyrus.infra.properties.ui.CompositeWidget;
+import org.eclipse.uml2.common.util.CacheAdapter;
/**
* <!-- begin-user-doc -->
@@ -36,6 +41,7 @@ import org.eclipse.papyrus.infra.properties.ui.CompositeWidget;
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.SectionImpl#getTab <em>Tab</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.SectionImpl#getSectionFile <em>Section File</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.SectionImpl#getWidget <em>Widget</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.SectionImpl#getViews <em>Views</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.SectionImpl#getOwner <em>Owner</em>}</li>
* </ul>
*
@@ -204,6 +210,25 @@ public class SectionImpl extends AbstractSectionImpl implements Section {
* @generated
*/
@Override
+ public EList<View> getViews() {
+ CacheAdapter cache = getCacheAdapter();
+ if (cache != null) {
+ @SuppressWarnings("unchecked")
+ EList<View> result = (EList<View>) cache.get(eResource(), this, ContextsPackage.Literals.SECTION__VIEWS);
+ if (result == null) {
+ cache.put(eResource(), this, ContextsPackage.Literals.SECTION__VIEWS, result = SectionOperations.getViews(this));
+ }
+ return result;
+ }
+ return SectionOperations.getViews(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Tab getOwner() {
Tab owner = basicGetOwner();
return owner != null && owner.eIsProxy() ? (Tab)eResolveProxy((InternalEObject)owner) : owner;
@@ -287,6 +312,8 @@ public class SectionImpl extends AbstractSectionImpl implements Section {
case ContextsPackage.SECTION__WIDGET:
if (resolve) return getWidget();
return basicGetWidget();
+ case ContextsPackage.SECTION__VIEWS:
+ return getViews();
case ContextsPackage.SECTION__OWNER:
if (resolve) return getOwner();
return basicGetOwner();
@@ -350,6 +377,8 @@ public class SectionImpl extends AbstractSectionImpl implements Section {
return SECTION_FILE_EDEFAULT == null ? sectionFile != null : !SECTION_FILE_EDEFAULT.equals(sectionFile);
case ContextsPackage.SECTION__WIDGET:
return widget != null;
+ case ContextsPackage.SECTION__VIEWS:
+ return !getViews().isEmpty();
case ContextsPackage.SECTION__OWNER:
return basicGetOwner() != null;
}
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/TabImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/TabImpl.java
index 88521e458f5..81fe6e7feba 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/TabImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/TabImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.impl;
@@ -28,6 +29,7 @@ import org.eclipse.papyrus.infra.properties.contexts.AbstractSection;
import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
import org.eclipse.papyrus.infra.properties.contexts.Section;
import org.eclipse.papyrus.infra.properties.contexts.Tab;
+import org.eclipse.uml2.common.util.CacheAdapter;
import org.eclipse.uml2.common.util.DerivedSubsetEObjectEList;
/**
@@ -622,4 +624,15 @@ public class TabImpl extends MinimalEObjectImpl.Container implements Tab {
return result.toString();
}
+ /**
+ * Retrieves the cache adapter for this '<em><b>Tab</b></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return The cache adapter for this '<em><b>Tab</b></em>'.
+ * @generated
+ */
+ protected CacheAdapter getCacheAdapter() {
+ return CacheAdapter.getInstance();
+ }
+
} // TabImpl
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/UnknownPropertyImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/UnknownPropertyImpl.java
index 72a8e92fcb5..b33e7b437e3 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/UnknownPropertyImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/UnknownPropertyImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.impl;
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ViewImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ViewImpl.java
index 71116318504..353cc194417 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ViewImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/impl/ViewImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011, 2013 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -11,9 +11,11 @@
* Contributors:
* CEA LIST - Initial API and implementation
* Christian W. Damus - add prototype reference to Context (CDO)
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.impl;
+import java.lang.reflect.InvocationTargetException;
import java.util.Collection;
import org.eclipse.emf.common.notify.Notification;
@@ -22,14 +24,20 @@ 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.EObjectContainmentWithInverseEList;
import org.eclipse.emf.ecore.util.EObjectResolvingEList;
import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.papyrus.infra.constraints.impl.DisplayUnitImpl;
+import org.eclipse.papyrus.infra.properties.contexts.Annotatable;
+import org.eclipse.papyrus.infra.properties.contexts.Annotation;
import org.eclipse.papyrus.infra.properties.contexts.Context;
import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
import org.eclipse.papyrus.infra.properties.contexts.DataContextElement;
import org.eclipse.papyrus.infra.properties.contexts.Section;
import org.eclipse.papyrus.infra.properties.contexts.View;
+import org.eclipse.papyrus.infra.properties.contexts.operations.AnnotatableOperations;
+import org.eclipse.uml2.common.util.CacheAdapter;
/**
* <!-- begin-user-doc -->
@@ -39,17 +47,28 @@ import org.eclipse.papyrus.infra.properties.contexts.View;
* The following features are implemented:
* </p>
* <ul>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.ViewImpl#getAnnotations <em>Annotations</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.ViewImpl#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.ViewImpl#getSections <em>Sections</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.ViewImpl#getContext <em>Context</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.ViewImpl#isAutomaticContext <em>Automatic Context</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.ViewImpl#getDatacontexts <em>Datacontexts</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.properties.contexts.impl.ViewImpl#getContext <em>Context</em>}</li>
* </ul>
*
* @generated
*/
public class ViewImpl extends DisplayUnitImpl implements View {
/**
+ * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAnnotations()
+ * @generated
+ * @ordered
+ */
+ protected EList<Annotation> annotations;
+
+ /**
* The default value of the '{@link #getName() <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -134,6 +153,19 @@ public class ViewImpl extends DisplayUnitImpl implements View {
* @generated
*/
@Override
+ public EList<Annotation> getAnnotations() {
+ if (annotations == null) {
+ annotations = new EObjectContainmentWithInverseEList<Annotation>(Annotation.class, this, ContextsPackage.VIEW__ANNOTATIONS, ContextsPackage.ANNOTATION__ELEMENT);
+ }
+ return annotations;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public String getName() {
return name;
}
@@ -212,6 +244,15 @@ public class ViewImpl extends DisplayUnitImpl implements View {
* <!-- end-user-doc -->
* @generated
*/
+ public Annotation getAnnotation(String source) {
+ return AnnotatableOperations.getAnnotation(this, source);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
@Override
public boolean isAutomaticContext() {
return automaticContext;
@@ -248,9 +289,12 @@ public class ViewImpl extends DisplayUnitImpl implements View {
* <!-- end-user-doc -->
* @generated
*/
+ @SuppressWarnings("unchecked")
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
+ case ContextsPackage.VIEW__ANNOTATIONS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getAnnotations()).basicAdd(otherEnd, msgs);
case ContextsPackage.VIEW__CONTEXT:
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
@@ -267,6 +311,8 @@ public class ViewImpl extends DisplayUnitImpl implements View {
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
+ case ContextsPackage.VIEW__ANNOTATIONS:
+ return ((InternalEList<?>)getAnnotations()).basicRemove(otherEnd, msgs);
case ContextsPackage.VIEW__CONTEXT:
return basicSetContext(null, msgs);
}
@@ -295,16 +341,18 @@ public class ViewImpl extends DisplayUnitImpl implements View {
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
+ case ContextsPackage.VIEW__ANNOTATIONS:
+ return getAnnotations();
case ContextsPackage.VIEW__NAME:
return getName();
case ContextsPackage.VIEW__SECTIONS:
return getSections();
+ case ContextsPackage.VIEW__CONTEXT:
+ return getContext();
case ContextsPackage.VIEW__AUTOMATIC_CONTEXT:
return isAutomaticContext();
case ContextsPackage.VIEW__DATACONTEXTS:
return getDatacontexts();
- case ContextsPackage.VIEW__CONTEXT:
- return getContext();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -318,6 +366,10 @@ public class ViewImpl extends DisplayUnitImpl implements View {
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
+ case ContextsPackage.VIEW__ANNOTATIONS:
+ getAnnotations().clear();
+ getAnnotations().addAll((Collection<? extends Annotation>)newValue);
+ return;
case ContextsPackage.VIEW__NAME:
setName((String)newValue);
return;
@@ -325,6 +377,9 @@ public class ViewImpl extends DisplayUnitImpl implements View {
getSections().clear();
getSections().addAll((Collection<? extends Section>)newValue);
return;
+ case ContextsPackage.VIEW__CONTEXT:
+ setContext((Context)newValue);
+ return;
case ContextsPackage.VIEW__AUTOMATIC_CONTEXT:
setAutomaticContext((Boolean)newValue);
return;
@@ -332,9 +387,6 @@ public class ViewImpl extends DisplayUnitImpl implements View {
getDatacontexts().clear();
getDatacontexts().addAll((Collection<? extends DataContextElement>)newValue);
return;
- case ContextsPackage.VIEW__CONTEXT:
- setContext((Context)newValue);
- return;
}
super.eSet(featureID, newValue);
}
@@ -347,21 +399,24 @@ public class ViewImpl extends DisplayUnitImpl implements View {
@Override
public void eUnset(int featureID) {
switch (featureID) {
+ case ContextsPackage.VIEW__ANNOTATIONS:
+ getAnnotations().clear();
+ return;
case ContextsPackage.VIEW__NAME:
setName(NAME_EDEFAULT);
return;
case ContextsPackage.VIEW__SECTIONS:
getSections().clear();
return;
+ case ContextsPackage.VIEW__CONTEXT:
+ setContext((Context)null);
+ return;
case ContextsPackage.VIEW__AUTOMATIC_CONTEXT:
setAutomaticContext(AUTOMATIC_CONTEXT_EDEFAULT);
return;
case ContextsPackage.VIEW__DATACONTEXTS:
getDatacontexts().clear();
return;
- case ContextsPackage.VIEW__CONTEXT:
- setContext((Context)null);
- return;
}
super.eUnset(featureID);
}
@@ -374,16 +429,18 @@ public class ViewImpl extends DisplayUnitImpl implements View {
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
+ case ContextsPackage.VIEW__ANNOTATIONS:
+ return annotations != null && !annotations.isEmpty();
case ContextsPackage.VIEW__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
case ContextsPackage.VIEW__SECTIONS:
return sections != null && !sections.isEmpty();
+ case ContextsPackage.VIEW__CONTEXT:
+ return getContext() != null;
case ContextsPackage.VIEW__AUTOMATIC_CONTEXT:
return automaticContext != AUTOMATIC_CONTEXT_EDEFAULT;
case ContextsPackage.VIEW__DATACONTEXTS:
return datacontexts != null && !datacontexts.isEmpty();
- case ContextsPackage.VIEW__CONTEXT:
- return getContext() != null;
}
return super.eIsSet(featureID);
}
@@ -394,6 +451,68 @@ public class ViewImpl extends DisplayUnitImpl implements View {
* @generated
*/
@Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == Annotatable.class) {
+ switch (derivedFeatureID) {
+ case ContextsPackage.VIEW__ANNOTATIONS: return ContextsPackage.ANNOTATABLE__ANNOTATIONS;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == Annotatable.class) {
+ switch (baseFeatureID) {
+ case ContextsPackage.ANNOTATABLE__ANNOTATIONS: return ContextsPackage.VIEW__ANNOTATIONS;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+ if (baseClass == Annotatable.class) {
+ switch (baseOperationID) {
+ case ContextsPackage.ANNOTATABLE___GET_ANNOTATION__STRING: return ContextsPackage.VIEW___GET_ANNOTATION__STRING;
+ default: return -1;
+ }
+ }
+ return super.eDerivedOperationID(baseOperationID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case ContextsPackage.VIEW___GET_ANNOTATION__STRING:
+ return getAnnotation((String)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public String toString() {
if (eIsProxy()) return super.toString();
@@ -406,4 +525,15 @@ public class ViewImpl extends DisplayUnitImpl implements View {
return result.toString();
}
+ /**
+ * Retrieves the cache adapter for this '<em><b>View</b></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return The cache adapter for this '<em><b>View</b></em>'.
+ * @generated
+ */
+ protected CacheAdapter getCacheAdapter() {
+ return CacheAdapter.getInstance();
+ }
+
} // ViewImpl
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/operations/AnnotatableOperations.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/operations/AnnotatableOperations.java
new file mode 100644
index 00000000000..3c428c56413
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/operations/AnnotatableOperations.java
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.properties.contexts.operations;
+
+import java.util.Iterator;
+
+import org.eclipse.papyrus.infra.properties.contexts.Annotatable;
+import org.eclipse.papyrus.infra.properties.contexts.Annotation;
+
+/**
+ * <!-- begin-user-doc -->
+ * A static utility class that provides operations related to '<em><b>Annotatable</b></em>' model objects.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following operations are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.Annotatable#getAnnotation(java.lang.String) <em>Get Annotation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AnnotatableOperations {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AnnotatableOperations() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public static Annotation getAnnotation(Annotatable annotatable, String source) {
+ Annotation result = null;
+
+ if (source != null) {
+ for (Iterator<Annotation> iter = annotatable.getAnnotations().iterator(); result == null && iter.hasNext();) {
+ Annotation next = iter.next();
+ if (source.equals(next.getSource())) {
+ result = next;
+ }
+ }
+ }
+
+ return result;
+ }
+
+} // AnnotatableOperations
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/operations/SectionOperations.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/operations/SectionOperations.java
new file mode 100644
index 00000000000..13242f09b85
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/operations/SectionOperations.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.infra.properties.contexts.operations;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EcoreEList;
+import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
+import org.eclipse.papyrus.infra.properties.contexts.Section;
+import org.eclipse.papyrus.infra.properties.contexts.View;
+import org.eclipse.uml2.common.util.CacheAdapter;
+
+/**
+ * <!-- begin-user-doc -->
+ * A static utility class that provides operations related to '<em><b>Section</b></em>' model objects.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following operations are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.infra.properties.contexts.Section#getViews() <em>Get Views</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SectionOperations {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SectionOperations() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public static EList<View> getViews(Section section) {
+ // As generated by the Properties model
+ Object[] result = CacheAdapter.getInstance().getInverseReferences(section).stream()
+ .filter(setting -> setting.getEStructuralFeature() == ContextsPackage.Literals.VIEW__SECTIONS)
+ .map(EStructuralFeature.Setting::getEObject)
+ .toArray();
+ return new EcoreEList.UnmodifiableEList.FastCompare<>((InternalEObject) section, ContextsPackage.Literals.SECTION__VIEWS, result.length, result);
+ }
+
+} // SectionOperations
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsAdapterFactory.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsAdapterFactory.java
index 8309f9658c3..330e344dfea 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsAdapterFactory.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsAdapterFactory.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011, 2015 CEA LIST, Christian W. Damus, and others.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,7 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
- * Christian W. Damus - bug 482927
+ * Christian W. Damus - bugs 482927, 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.util;
@@ -20,6 +20,7 @@ import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
import org.eclipse.emf.ecore.EModelElement;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.infra.constraints.DisplayUnit;
+import org.eclipse.papyrus.infra.properties.contexts.*;
import org.eclipse.papyrus.infra.properties.contexts.AbstractSection;
import org.eclipse.papyrus.infra.properties.contexts.Context;
import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
@@ -104,6 +105,14 @@ public class ContextsAdapterFactory extends AdapterFactoryImpl {
return createAbstractSectionAdapter();
}
@Override
+ public Adapter caseAnnotatable(Annotatable object) {
+ return createAnnotatableAdapter();
+ }
+ @Override
+ public Adapter caseAnnotation(Annotation object) {
+ return createAnnotationAdapter();
+ }
+ @Override
public Adapter caseProperty(Property object) {
return createPropertyAdapter();
}
@@ -212,6 +221,34 @@ public class ContextsAdapterFactory extends AdapterFactoryImpl {
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.properties.contexts.Annotatable <em>Annotatable</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.properties.contexts.Annotatable
+ * @generated
+ */
+ public Adapter createAnnotatableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.properties.contexts.Annotation <em>Annotation</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.properties.contexts.Annotation
+ * @generated
+ */
+ public Adapter createAnnotationAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.properties.contexts.Section <em>Section</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsResourceFactoryImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsResourceFactoryImpl.java
index 3fd33ae5b97..55b355fa542 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsResourceFactoryImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsResourceFactoryImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.util;
@@ -18,12 +19,12 @@ 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.properties.contexts.util.ContextsResourceImpl
* @generated
*/
@@ -32,7 +33,6 @@ public class ContextsResourceFactoryImpl extends ResourceFactoryImpl {
* Creates an instance of the resource factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- *
* @generated
*/
public ContextsResourceFactoryImpl() {
@@ -43,12 +43,11 @@ public class ContextsResourceFactoryImpl extends ResourceFactoryImpl {
* Creates an instance of the resource.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- *
* @generated
*/
@Override
public Resource createResource(URI uri) {
- Resource result = new ContextsResourceImpl(uri);
+ XMLResource result = new ContextsResourceImpl(uri);
return result;
}
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsResourceImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsResourceImpl.java
index 4fc533d9f35..ef1c89c6a9b 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsResourceImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsResourceImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,11 +10,25 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.util;
+import java.util.Map;
+
import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.xmi.XMLHelper;
+import org.eclipse.emf.ecore.xmi.XMLLoad;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.ecore.xmi.impl.SAXXMIHandler;
+import org.eclipse.emf.ecore.xmi.impl.XMIHelperImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMILoadImpl;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
+import org.eclipse.papyrus.infra.properties.contexts.Annotation;
+import org.xml.sax.helpers.DefaultHandler;
/**
* <!-- begin-user-doc -->
@@ -49,4 +63,89 @@ public class ContextsResourceImpl extends XMIResourceImpl {
return true;
}
+ @Override
+ protected XMLHelper createXMLHelper() {
+ return new ContextsXMIHelper();
+ }
+
+ @Override
+ protected XMLLoad createXMLLoad() {
+ return new ContextsXMILoad(createXMLHelper());
+ }
+
+ boolean isAnnotationDetailURI(EObject object, EStructuralFeature feature) {
+ return feature == EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY__VALUE
+ && "model".equals(((Map.Entry<?, ?>) object).getKey())
+ && object.eContainer() instanceof Annotation;
+ }
+
+ void resolveURIs(Annotation annotation) {
+ for (Map.Entry<String, String> detail : annotation.getDetails()) {
+ if ("model".equals(detail.getKey())) {
+ // The value is a URI
+ String rawValue = detail.getValue();
+ if (rawValue != null && !rawValue.isBlank()) {
+ URI uri = URI.createURI(rawValue, true);
+ if (uri.isRelative()) {
+ uri = uri.resolve(getURI());
+ detail.setValue(uri.toString());
+ }
+ }
+ }
+ }
+ }
+
+ private class ContextsXMIHelper extends XMIHelperImpl {
+
+ ContextsXMIHelper() {
+ super(ContextsResourceImpl.this);
+ }
+
+ @Override
+ public Object getValue(EObject object, EStructuralFeature feature) {
+ if (isAnnotationDetailURI(object, feature)) {
+ // Deresolve the URI
+ String rawValue = (String) ((Map.Entry<?, ?>) object).getValue();
+ if (rawValue != null && !rawValue.isBlank()) {
+ URI uri = URI.createURI(rawValue);
+ URI base = ContextsResourceImpl.this.getURI();
+ return uri.deresolve(base).toString();
+ }
+ }
+
+ return super.getValue(object, feature);
+ }
+ }
+
+ private class ContextsXMILoad extends XMILoadImpl {
+
+ ContextsXMILoad(XMLHelper helper) {
+ super(helper);
+ }
+
+ @Override
+ protected DefaultHandler makeDefaultHandler() {
+ return new ContextsXMIHandler(resource, helper, options);
+ }
+
+ }
+
+ private class ContextsXMIHandler extends SAXXMIHandler {
+
+ ContextsXMIHandler(XMLResource xmiResource, XMLHelper helper, Map<?, ?> options) {
+ super(xmiResource, helper, options);
+ }
+
+ @Override
+ public void endElement(String uri, String localName, String name) {
+ EObject object = objects.peekEObject();
+ if (object instanceof Annotation) {
+ resolveURIs((Annotation) object);
+ }
+
+ super.endElement(uri, localName, name);
+ }
+
+ }
+
} // ContextsResourceImpl
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsSwitch.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsSwitch.java
index 6c90464ea95..5e562acf9b7 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsSwitch.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/contexts/util/ContextsSwitch.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011, 2015 CEA LIST, Christian W. Damus, and others.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,7 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
- * Christian W. Damus - bug 482927
+ * Christian W. Damus - bugs 482927, 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.contexts.util;
@@ -19,6 +19,7 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.util.Switch;
import org.eclipse.papyrus.infra.constraints.DisplayUnit;
+import org.eclipse.papyrus.infra.properties.contexts.*;
import org.eclipse.papyrus.infra.properties.contexts.AbstractSection;
import org.eclipse.papyrus.infra.properties.contexts.Context;
import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
@@ -105,6 +106,7 @@ public class ContextsSwitch<T> extends Switch<T> {
T result = caseSection(section);
if (result == null) result = caseAbstractSection(section);
if (result == null) result = caseDisplayUnit(section);
+ if (result == null) result = caseAnnotatable(section);
if (result == null) result = defaultCase(theEObject);
return result;
}
@@ -112,18 +114,33 @@ public class ContextsSwitch<T> extends Switch<T> {
AbstractSection abstractSection = (AbstractSection)theEObject;
T result = caseAbstractSection(abstractSection);
if (result == null) result = caseDisplayUnit(abstractSection);
+ if (result == null) result = caseAnnotatable(abstractSection);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ContextsPackage.ANNOTATABLE: {
+ Annotatable annotatable = (Annotatable)theEObject;
+ T result = caseAnnotatable(annotatable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ContextsPackage.ANNOTATION: {
+ Annotation annotation = (Annotation)theEObject;
+ T result = caseAnnotation(annotation);
if (result == null) result = defaultCase(theEObject);
return result;
}
case ContextsPackage.PROPERTY: {
Property property = (Property)theEObject;
T result = caseProperty(property);
+ if (result == null) result = caseAnnotatable(property);
if (result == null) result = defaultCase(theEObject);
return result;
}
case ContextsPackage.DATA_CONTEXT_ELEMENT: {
DataContextElement dataContextElement = (DataContextElement)theEObject;
T result = caseDataContextElement(dataContextElement);
+ if (result == null) result = caseAnnotatable(dataContextElement);
if (result == null) result = defaultCase(theEObject);
return result;
}
@@ -131,6 +148,7 @@ public class ContextsSwitch<T> extends Switch<T> {
DataContextPackage dataContextPackage = (DataContextPackage)theEObject;
T result = caseDataContextPackage(dataContextPackage);
if (result == null) result = caseDataContextElement(dataContextPackage);
+ if (result == null) result = caseAnnotatable(dataContextPackage);
if (result == null) result = defaultCase(theEObject);
return result;
}
@@ -138,6 +156,7 @@ public class ContextsSwitch<T> extends Switch<T> {
UnknownProperty unknownProperty = (UnknownProperty)theEObject;
T result = caseUnknownProperty(unknownProperty);
if (result == null) result = caseProperty(unknownProperty);
+ if (result == null) result = caseAnnotatable(unknownProperty);
if (result == null) result = defaultCase(theEObject);
return result;
}
@@ -145,6 +164,7 @@ public class ContextsSwitch<T> extends Switch<T> {
View view = (View)theEObject;
T result = caseView(view);
if (result == null) result = caseDisplayUnit(view);
+ if (result == null) result = caseAnnotatable(view);
if (result == null) result = defaultCase(theEObject);
return result;
}
@@ -153,6 +173,7 @@ public class ContextsSwitch<T> extends Switch<T> {
T result = caseDataContextRoot(dataContextRoot);
if (result == null) result = caseDataContextPackage(dataContextRoot);
if (result == null) result = caseDataContextElement(dataContextRoot);
+ if (result == null) result = caseAnnotatable(dataContextRoot);
if (result == null) result = defaultCase(theEObject);
return result;
}
@@ -221,6 +242,36 @@ public class ContextsSwitch<T> extends Switch<T> {
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Annotatable</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>Annotatable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAnnotatable(Annotatable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Annotation</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>Annotation</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAnnotation(Annotation object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Section</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/EnvironmentPackage.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/EnvironmentPackage.java
index ac82a2af1a2..b9cff3d8f76 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/EnvironmentPackage.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/EnvironmentPackage.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.environment;
@@ -61,6 +62,14 @@ public interface EnvironmentPackage extends EPackage {
String eNS_PREFIX = "environment";
/**
+ * The package content type ID.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eCONTENT_TYPE = "org.eclipse.papyrus.infra.properties.environment";
+
+ /**
* The singleton instance of the package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/EnvironmentImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/EnvironmentImpl.java
index 2123f951d82..930659015d2 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/EnvironmentImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/EnvironmentImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.environment.impl;
@@ -31,6 +32,7 @@ import org.eclipse.papyrus.infra.properties.environment.ModelElementFactoryDescr
import org.eclipse.papyrus.infra.properties.environment.Namespace;
import org.eclipse.papyrus.infra.properties.environment.PropertyEditorType;
import org.eclipse.papyrus.infra.properties.environment.StandardWidgetType;
+import org.eclipse.uml2.common.util.CacheAdapter;
/**
* <!-- begin-user-doc -->
@@ -384,4 +386,15 @@ public class EnvironmentImpl extends ConstraintEnvironmentImpl implements Enviro
return super.eIsSet(featureID);
}
+ /**
+ * Retrieves the cache adapter for this '<em><b>Environment</b></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return The cache adapter for this '<em><b>Environment</b></em>'.
+ * @generated
+ */
+ protected CacheAdapter getCacheAdapter() {
+ return CacheAdapter.getInstance();
+ }
+
} // EnvironmentImpl
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/EnvironmentPackageImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/EnvironmentPackageImpl.java
index 40ef080c36f..d8bb7eebc09 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/EnvironmentPackageImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/EnvironmentPackageImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.environment.impl;
@@ -37,6 +38,7 @@ import org.eclipse.papyrus.infra.properties.environment.Type;
import org.eclipse.papyrus.infra.properties.environment.WidgetType;
import org.eclipse.papyrus.infra.properties.ui.UiPackage;
import org.eclipse.papyrus.infra.properties.ui.impl.UiPackageImpl;
+import org.eclipse.uml2.types.TypesPackage;
/**
* <!-- begin-user-doc -->
@@ -163,6 +165,7 @@ public class EnvironmentPackageImpl extends EPackageImpl implements EnvironmentP
// Initialize simple dependencies
ConstraintsPackage.eINSTANCE.eClass();
EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
// Obtain or create and register interdependencies
Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ContextsPackage.eNS_URI);
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/MiscClassImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/MiscClassImpl.java
index 53c1578add6..1e71f1ca18c 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/MiscClassImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/MiscClassImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.environment.impl;
@@ -21,6 +22,7 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
import org.eclipse.papyrus.infra.properties.environment.EnvironmentPackage;
import org.eclipse.papyrus.infra.properties.environment.MiscClass;
import org.eclipse.papyrus.infra.properties.environment.Namespace;
+import org.eclipse.uml2.common.util.CacheAdapter;
/**
* <!-- begin-user-doc -->
@@ -290,4 +292,15 @@ public class MiscClassImpl extends MinimalEObjectImpl.Container implements MiscC
return result.toString();
}
+ /**
+ * Retrieves the cache adapter for this '<em><b>Misc Class</b></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return The cache adapter for this '<em><b>Misc Class</b></em>'.
+ * @generated
+ */
+ protected CacheAdapter getCacheAdapter() {
+ return CacheAdapter.getInstance();
+ }
+
} // MiscClassImpl
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/ModelElementFactoryDescriptorImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/ModelElementFactoryDescriptorImpl.java
index 7d893f3c662..8573a0c7f94 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/ModelElementFactoryDescriptorImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/ModelElementFactoryDescriptorImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.environment.impl;
@@ -19,6 +20,7 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
import org.eclipse.papyrus.infra.properties.environment.EnvironmentPackage;
import org.eclipse.papyrus.infra.properties.environment.ModelElementFactoryDescriptor;
+import org.eclipse.uml2.common.util.CacheAdapter;
/**
* <!-- begin-user-doc -->
@@ -226,4 +228,15 @@ public class ModelElementFactoryDescriptorImpl extends MinimalEObjectImpl.Contai
return result.toString();
}
+ /**
+ * Retrieves the cache adapter for this '<em><b>Model Element Factory Descriptor</b></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return The cache adapter for this '<em><b>Model Element Factory Descriptor</b></em>'.
+ * @generated
+ */
+ protected CacheAdapter getCacheAdapter() {
+ return CacheAdapter.getInstance();
+ }
+
} // ModelElementFactoryDescriptorImpl
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/NamespaceImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/NamespaceImpl.java
index d4cf2afb8b5..4f7a7321eae 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/NamespaceImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/NamespaceImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.environment.impl;
@@ -19,6 +20,7 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
import org.eclipse.papyrus.infra.properties.environment.EnvironmentPackage;
import org.eclipse.papyrus.infra.properties.environment.Namespace;
+import org.eclipse.uml2.common.util.CacheAdapter;
/**
* <!-- begin-user-doc -->
@@ -282,4 +284,15 @@ public class NamespaceImpl extends MinimalEObjectImpl.Container implements Names
return result.toString();
}
+ /**
+ * Retrieves the cache adapter for this '<em><b>Namespace</b></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return The cache adapter for this '<em><b>Namespace</b></em>'.
+ * @generated
+ */
+ protected CacheAdapter getCacheAdapter() {
+ return CacheAdapter.getInstance();
+ }
+
} // NamespaceImpl
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/WidgetTypeImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/WidgetTypeImpl.java
index ca728a711da..8e76fdfe6bb 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/WidgetTypeImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/impl/WidgetTypeImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.environment.impl;
@@ -21,6 +22,7 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
import org.eclipse.papyrus.infra.properties.environment.EnvironmentPackage;
import org.eclipse.papyrus.infra.properties.environment.Namespace;
import org.eclipse.papyrus.infra.properties.environment.WidgetType;
+import org.eclipse.uml2.common.util.CacheAdapter;
/**
* <!-- begin-user-doc -->
@@ -290,4 +292,15 @@ public abstract class WidgetTypeImpl extends MinimalEObjectImpl.Container implem
return result.toString();
}
+ /**
+ * Retrieves the cache adapter for this '<em><b>Widget Type</b></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return The cache adapter for this '<em><b>Widget Type</b></em>'.
+ * @generated
+ */
+ protected CacheAdapter getCacheAdapter() {
+ return CacheAdapter.getInstance();
+ }
+
} // WidgetTypeImpl
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/util/EnvironmentResourceFactoryImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/util/EnvironmentResourceFactoryImpl.java
index 31f47d4e333..88f9ae65ea8 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/util/EnvironmentResourceFactoryImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/util/EnvironmentResourceFactoryImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.environment.util;
@@ -18,12 +19,12 @@ 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.properties.environment.util.EnvironmentResourceImpl
* @generated
*/
@@ -32,7 +33,6 @@ public class EnvironmentResourceFactoryImpl extends ResourceFactoryImpl {
* Creates an instance of the resource factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- *
* @generated
*/
public EnvironmentResourceFactoryImpl() {
@@ -43,12 +43,11 @@ public class EnvironmentResourceFactoryImpl extends ResourceFactoryImpl {
* Creates an instance of the resource.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- *
* @generated
*/
@Override
public Resource createResource(URI uri) {
- Resource result = new EnvironmentResourceImpl(uri);
+ XMLResource result = new EnvironmentResourceImpl(uri);
return result;
}
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/util/EnvironmentResourceImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/util/EnvironmentResourceImpl.java
index d6061dde2f5..127705a35aa 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/util/EnvironmentResourceImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/environment/util/EnvironmentResourceImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.environment.util;
@@ -20,7 +21,6 @@ import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
* <!-- begin-user-doc -->
* The <b>Resource </b> associated with the package.
* <!-- end-user-doc -->
- *
* @see org.eclipse.papyrus.infra.properties.environment.util.EnvironmentResourceFactoryImpl
* @generated
*/
@@ -29,9 +29,7 @@ public class EnvironmentResourceImpl extends XMIResourceImpl {
* Creates an instance of the resource.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- *
- * @param uri
- * the URI of the new resource.
+ * @param uri the URI of the new resource.
* @generated
*/
public EnvironmentResourceImpl(URI uri) {
@@ -49,4 +47,20 @@ public class EnvironmentResourceImpl extends XMIResourceImpl {
protected boolean useUUIDs() {
return true;
}
+
+ /**
+ * In order to maintain compatibility with resources created before this implementation
+ * adopted {@linkplain #useUUIDs() UUIDs for XMI IDs}, do not assign IDs to objects that
+ * do not have them while loading so that incoming HREFs will not be broken. Otherwise,
+ * every time the resource is loaded it would generate new distinct IDs for the same
+ * objects (so long as it is not saved for some reason) and HREFs created with these IDs
+ * will not work.
+ *
+ * @return {@code false}
+ */
+ @Override
+ protected boolean assignIDsWhileLoading() {
+ return false;
+ }
+
} // EnvironmentResourceImpl
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/ui/impl/ElementImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/ui/impl/ElementImpl.java
index 8af2e15b002..e14bbce86d3 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/ui/impl/ElementImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/ui/impl/ElementImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.ui.impl;
@@ -17,6 +18,7 @@ import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
import org.eclipse.papyrus.infra.properties.ui.Element;
import org.eclipse.papyrus.infra.properties.ui.UiPackage;
+import org.eclipse.uml2.common.util.CacheAdapter;
/**
* <!-- begin-user-doc -->
@@ -45,4 +47,15 @@ public class ElementImpl extends MinimalEObjectImpl.Container implements Element
return UiPackage.Literals.ELEMENT;
}
+ /**
+ * Retrieves the cache adapter for this '<em><b>Element</b></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return The cache adapter for this '<em><b>Element</b></em>'.
+ * @generated
+ */
+ protected CacheAdapter getCacheAdapter() {
+ return CacheAdapter.getInstance();
+ }
+
} // ElementImpl
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/ui/impl/UiPackageImpl.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/ui/impl/UiPackageImpl.java
index 560579da5a8..36e0a83d587 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/ui/impl/UiPackageImpl.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src-gen/org/eclipse/papyrus/infra/properties/ui/impl/UiPackageImpl.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2021 CEA LIST, Christian W. Damus, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 573986
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.ui.impl;
@@ -37,6 +38,7 @@ import org.eclipse.papyrus.infra.properties.ui.UnknownComponent;
import org.eclipse.papyrus.infra.properties.ui.ValueAttribute;
import org.eclipse.papyrus.infra.properties.ui.Widget;
import org.eclipse.papyrus.infra.properties.ui.WidgetAttribute;
+import org.eclipse.uml2.types.TypesPackage;
/**
* <!-- begin-user-doc -->
@@ -170,6 +172,7 @@ public class UiPackageImpl extends EPackageImpl implements UiPackage {
// Initialize simple dependencies
ConstraintsPackage.eINSTANCE.eClass();
EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
// Obtain or create and register interdependencies
Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(EnvironmentPackage.eNS_URI);
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src/org/eclipse/papyrus/infra/properties/contexts/util/ContextAnnotations.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src/org/eclipse/papyrus/infra/properties/contexts/util/ContextAnnotations.java
new file mode 100644
index 00000000000..5c96e1941e7
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src/org/eclipse/papyrus/infra/properties/contexts/util/ContextAnnotations.java
@@ -0,0 +1,237 @@
+/*****************************************************************************
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.properties.contexts.util;
+
+import java.util.Optional;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.papyrus.infra.properties.contexts.Annotatable;
+import org.eclipse.papyrus.infra.properties.contexts.Annotation;
+import org.eclipse.papyrus.infra.properties.contexts.ContextsFactory;
+import org.eclipse.papyrus.infra.properties.contexts.DataContextRoot;
+
+/**
+ * Utilities for working with {@link Annotation}s in context models.
+ */
+public class ContextAnnotations {
+
+ /** The source URI for annotations known by the properties framework and tooling. */
+ public static final String ANNOTATION_SOURCE = "http://www.eclipse.org/papyrus/properties/contexts"; //$NON-NLS-1$
+
+ /**
+ * Detail indicating the URI of the source model element that the context element
+ * corresponds to (often was generated from).
+ */
+ public static final String DETAIL_MODEL = "model"; //$NON-NLS-1$
+
+ /**
+ * Detail indicating the URI of the layout generator class that was used to generate
+ * the XWT sections for the data context.
+ */
+ public static final String DETAIL_LAYOUT_GENERATOR_CLASS = "layoutGenerator"; //$NON-NLS-1$
+
+ /**
+ * Not instantiable by clients.
+ */
+ private ContextAnnotations() {
+ super();
+ }
+
+ /**
+ * Query the source model element from which a <em>Properties Context</em> model element was generated.
+ *
+ * @param contextElement
+ * a properties context model element. The context element must already be attached to
+ * the resource set, otherwise the source model retrieval cannot happen
+ * @return the corresponding source model element, or {@code null} if none could be determined.
+ *
+ * @see #getSourceModel(Annotatable, EObject) {@code getSourceModel(Annotatable, EObject)}
+ * for cases where the properties context element is not yet attached
+ */
+ public static EObject getSourceModel(Annotatable contextElement) {
+ return getSourceModel(contextElement, contextElement);
+ }
+
+ /**
+ * Query the source model element from which a <em>Properties Context</em> model element was generated,
+ * in the resource set implied by the given {@code context} object.
+ *
+ * @param contextElement
+ * a properties context model element
+ * @param context
+ * some other element from the properties context model that already exists in the resource set
+ *
+ * @return the corresponding source model element, or {@code null} if none
+ */
+ public static EObject getSourceModel(Annotatable contextElement, EObject context) {
+ Resource contextResource = context.eResource();
+ if (contextResource == null) {
+ return null;
+ }
+
+ EObject result = null;
+
+ String modelURIDetail = getAnnotation(contextElement, ANNOTATION_SOURCE, DETAIL_MODEL);
+ URI modelURI = modelURIDetail == null ? null : URI.createURI(modelURIDetail, true);
+ if (modelURI != null && modelURI.isRelative()) {
+ modelURI = modelURI.resolve(contextResource.getURI());
+ }
+
+ if (modelURI != null) {
+ URI resolved = modelURI;
+ result = Optional.ofNullable(contextResource.getResourceSet()).map(rset -> safeGetEObject(rset, resolved))
+ // Create a proxy to indicate that we have a source reference, but it doesn't resolve
+ .orElseGet(() -> createProxy(resolved));
+ } else {
+ Annotation annotation = contextElement.getAnnotation(ANNOTATION_SOURCE);
+ if (annotation != null && !annotation.getReferences().isEmpty()) {
+ // Legacy case
+ result = annotation.getReferences().get(0);
+ }
+ }
+
+ return result;
+ }
+
+ private static EObject safeGetEObject(ResourceSet resourceSet, URI uri) {
+ EObject result;
+
+ try {
+ result = resourceSet.getEObject(uri, true);
+ } catch (Exception e) {
+ // Resource does not exist or is otherwise not loadable
+ result = createProxy(uri);
+ }
+
+ return result;
+ }
+
+ private static EObject createProxy(URI proxyURI) {
+ EObject result = EcoreFactory.eINSTANCE.createEObject();
+ ((InternalEObject) result).eSetProxyURI(proxyURI);
+ return result;
+ }
+
+ /**
+ * Query the URI of the source model element from which a <em>Properties Context</em> model element was generated.
+ *
+ * @param contextElement
+ * a properties context model element
+ *
+ * @return the URI of the corresponding source model element, or {@code null} if none
+ */
+ public static URI getSourceModelURI(Annotatable contextElement) {
+ return getSourceModelURI(contextElement, contextElement);
+ }
+
+ /**
+ * Query the URI of the source model element from which a <em>Properties Context</em> model element was generated.
+ *
+ * @param contextElement
+ * a properties context model element
+ * @param context
+ * some other element from the properties context model that already exists in the resource set
+ *
+ * @return the URI of the corresponding source model element, or {@code null} if none
+ */
+ public static URI getSourceModelURI(Annotatable contextElement, EObject context) {
+ String modelURIDetail = getAnnotation(contextElement, ANNOTATION_SOURCE, DETAIL_MODEL);
+ URI result = modelURIDetail == null ? null : URI.createURI(modelURIDetail, true);
+ if (result != null && result.isRelative()) {
+ Resource contextResource = context.eResource();
+ if (contextResource != null) {
+ result = result.resolve(contextResource.getURI());
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * Set the source model element from which a <em>Properties Context</em> model element was generated.
+ *
+ * @param contextElement
+ * a context model element
+ * @param the
+ * corresponding source model element
+ */
+ public static void setSourceModel(Annotatable contextElement, EObject sourceElement) {
+ URI modelURI = (sourceElement == null) ? null : EcoreUtil.getURI(sourceElement);
+
+ if (modelURI != null) {
+ setAnnotation(contextElement, ANNOTATION_SOURCE, DETAIL_MODEL, modelURI.toString());
+ } else {
+ Annotation annotation = contextElement.getAnnotation(ANNOTATION_SOURCE);
+ if (annotation != null) {
+ annotation.getDetails().removeKey(DETAIL_MODEL);
+ // Legacy case
+ annotation.getReferences().remove(sourceElement);
+ }
+ }
+ }
+
+ public static Annotation getAnnotation(Annotatable contextElement, String source) {
+ return getAnnotation(contextElement, source, false);
+ }
+
+ public static Annotation getAnnotation(Annotatable contextElement, String source, boolean create) {
+ Annotation result = contextElement.getAnnotation(source);
+ if (result == null && create) {
+ result = ContextsFactory.eINSTANCE.createAnnotation();
+ result.setSource(source);
+ contextElement.getAnnotations().add(result);
+ }
+ return result;
+ }
+
+ public static String getAnnotation(Annotatable contextElement, String source, String detail) {
+ Annotation annotation = getAnnotation(contextElement, source);
+ return annotation != null ? annotation.getDetails().get(detail) : null;
+ }
+
+ public static void setAnnotation(Annotatable contextElement, String source, String detail, String value) {
+ getAnnotation(contextElement, source, true).getDetails().put(detail, value);
+ }
+
+ /**
+ * Query the name of the class that generated the layouts of sections for the given data context.
+ *
+ * @param dataContext
+ * a data context
+ * @return the name of the layout-generator class that was used to generate its sections, or {@code null} if none
+ */
+ public static String getLayoutGeneratorClassName(DataContextRoot dataContext) {
+ return getAnnotation(dataContext, ANNOTATION_SOURCE, DETAIL_LAYOUT_GENERATOR_CLASS);
+ }
+
+ /**
+ * Set the name of the class that generated the layouts of sections in the given data context.
+ *
+ * @param dataContext
+ * a data context
+ * @return className the name of the layout-generator class that was used to generate its sections
+ */
+ public static void setLayoutGeneratorClassName(DataContextRoot dataContext, String className) {
+ setAnnotation(dataContext, ANNOTATION_SOURCE, DETAIL_LAYOUT_GENERATOR_CLASS, className);
+ }
+
+}
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src/org/eclipse/papyrus/infra/properties/contexts/util/ContextContentTreeIterator.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src/org/eclipse/papyrus/infra/properties/contexts/util/ContextContentTreeIterator.java
new file mode 100644
index 00000000000..c7c345a1a39
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src/org/eclipse/papyrus/infra/properties/contexts/util/ContextContentTreeIterator.java
@@ -0,0 +1,93 @@
+/*****************************************************************************
+ * Copyright (c) 2021 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.properties.contexts.util;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.EClassImpl;
+import org.eclipse.emf.ecore.util.EContentsEList;
+import org.eclipse.emf.ecore.util.EcoreUtil.ContentTreeIterator;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.papyrus.infra.properties.contexts.ContextsPackage;
+import org.eclipse.papyrus.infra.properties.contexts.Section;
+
+/**
+ * A custom content tree iterator that traverses the {@link Section#getWidget() Section::widget}
+ * reference as pseudo-containment.
+ */
+public class ContextContentTreeIterator extends ContentTreeIterator<EObject> {
+
+ private static final long serialVersionUID = 1L;
+
+ public ContextContentTreeIterator(Collection<?> emfObjects) {
+ super(emfObjects);
+ }
+
+ public ContextContentTreeIterator(Object object, boolean isResolveProxies) {
+ super(object, isResolveProxies);
+ }
+
+ /**
+ * @see org.eclipse.emf.ecore.util.EcoreUtil.ContentTreeIterator#getEObjectChildren(org.eclipse.emf.ecore.EObject)
+ *
+ * @param eObject
+ * @return
+ */
+ @Override
+ protected Iterator<? extends EObject> getEObjectChildren(EObject eObject) {
+ if (ContextsPackage.Literals.SECTION.isInstance(eObject)) {
+ InternalEList<EObject> containments = new SectionContentsEList(eObject);
+ return isResolveProxies() ? containments.iterator() : containments.basicIterator();
+ } else {
+ return super.getEObjectChildren(eObject);
+ }
+ }
+
+ //
+ // Nested types
+ //
+
+ private static final class SectionContentsEList extends EContentsEList<EObject> {
+
+ /**
+ * Constructor.
+ *
+ * @param eObject
+ */
+ public SectionContentsEList(EObject eObject) {
+ super(eObject, containmentFeatures(eObject));
+ }
+
+ private static EStructuralFeature[] containmentFeatures(EObject eObject) {
+ List<EStructuralFeature> containments = new ArrayList<>(Arrays.asList(((EClassImpl.FeatureSubsetSupplier) eObject.eClass().getEAllStructuralFeatures()).containments()));
+
+ if (ContextsPackage.Literals.SECTION.isInstance(eObject)) {
+ // This is logically a containment reference (albeit cross-resource containment). In any case,
+ // it is the purpose of this class to ignore this reference
+ containments.add(ContextsPackage.Literals.SECTION__WIDGET);
+ }
+
+ return containments.toArray(EStructuralFeature[]::new);
+ }
+
+ }
+}
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src/org/eclipse/papyrus/infra/properties/contexts/util/ContextUsageCrossReferencer.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties/src/org/eclipse/papyrus/infra/properties/contexts/util/ContextUsageCrossReferencer.java
new file mode 100644
index 00000000000..f890f7bb5a4
--- /dev/null
+++ b/plugins/infra/properties/org.eclipse.