Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EMF Compare/Specifications/FeatureMap"
(Created page with "= Evolution Specification: handling of FetaureMaps in EMF Compare = Current status is '''DRAFT''' == Preamble == ''Summary'': Define how to graphically represent feature ...") |
(→Progression) |
||
(25 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | = Evolution Specification: | + | = Evolution Specification: FeatureMaps in EMF Compare = |
Current status is '''DRAFT''' | Current status is '''DRAFT''' | ||
Line 5: | Line 5: | ||
== Preamble == | == Preamble == | ||
− | ''Summary'': Define how to | + | ''Summary'': Define how to represent feature maps changes. |
== Introduction == | == Introduction == | ||
− | |||
The following metamodel will be use for the specification. | The following metamodel will be use for the specification. | ||
+ | |||
+ | [[file:EMFCompare_FeatureMap_MM.png]] | ||
== Detailed Specification == | == Detailed Specification == | ||
Line 16: | Line 17: | ||
=== Addition/deletion of a value for a given key === | === Addition/deletion of a value for a given key === | ||
− | ''Solution 1: 2 differences | + | '''Solution 1: 2 differences''' |
+ | |||
+ | In the core: | ||
+ | * 1 difference on the orders : EFeatureMapEntry attribute | ||
+ | * 1 difference on the standardOrders/priorityOrders reference (derived, transient, volatile) | ||
+ | * the merge of a diff implies the merge of the other diff (equivalence relation) | ||
+ | * if the changes are too heavy in the code, add a new type of Diff: FeatureMapChange | ||
In the structure merge viewer: | In the structure merge viewer: | ||
− | * 1 difference on the orders : EFeatureMapEntry | + | * 1 difference on the orders : EFeatureMapEntry attribute |
* 1 difference on the standardOrders/priorityOrders reference | * 1 difference on the standardOrders/priorityOrders reference | ||
− | * | + | * a new FeatureMap filter (that hides the orders : EFeatureMapEntry difference |
+ | * when select a diff, the other diff is higlighted in green | ||
In the content merge viewer: | In the content merge viewer: | ||
− | * For the difference on the orders : EFeatureMapEntry reference: | + | * For the difference on the orders : EFeatureMapEntry attribute: table merge viewer |
+ | * For the standardOrders/priorityOrders reference: tree merge viewer | ||
+ | [[file:EMFCompare_FeatureMap_1.png]] [[file:EMFCompare_FeatureMap_2.png]] [[file:EMFCompare_FeatureMap_3.png]] | ||
+ | '''Solution 2: 1 difference''' | ||
− | + | In the core: | |
+ | * 1 new type of difference: FeatureMapChange | ||
In the structure merge viewer: | In the structure merge viewer: | ||
* 1 difference on the standardOrders/priorityOrders reference | * 1 difference on the standardOrders/priorityOrders reference | ||
+ | |||
+ | In the content merge viewer: | ||
+ | * For the standardOrders/priorityOrders reference: tree merge viewer | ||
+ | |||
+ | [[file:EMFCompare_FeatureMap_4.png]] | ||
=== Key change for a given value === | === Key change for a given value === | ||
− | ''Solution 1: table merge viewer'' | + | '''Solution 1: table merge viewer''' |
+ | |||
+ | In the core: | ||
+ | * 1 new type of difference on the the standardOrders/priorityOrders references: FeatureMapKeyChange | ||
+ | |||
+ | In the structure merge viewer: | ||
+ | * 1 new type of difference on the the standardOrders/priorityOrders references: FeatureMapKeyChange | ||
+ | |||
+ | In the content merge viewer: | ||
+ | * table merge viewer | ||
+ | |||
+ | [[file:EMFCompare_FeatureMap_5.png]] | ||
+ | |||
+ | '''Solution 2: new merge viewer''' | ||
+ | |||
+ | In the core: | ||
+ | * 1 new type of difference on the the standardOrders/priorityOrders references: FeatureMapKeyChange | ||
+ | * new table merge viewer : FeatureMapKeyContentMergeViewer | ||
+ | |||
+ | In the structure merge viewer: | ||
+ | * 1 new type of difference on the the standardOrders/priorityOrders references: FeatureMapKeyChange | ||
+ | |||
+ | In the content merge viewer: | ||
+ | * new merge viewer: FeatureMapKeyContentMergeViewer (modified TableMergeViewer) | ||
+ | |||
+ | [[file:EMFCompare_FeatureMap_6.png]] | ||
+ | |||
+ | === Progression === | ||
+ | |||
+ | {| border="1" | ||
+ | |- | ||
+ | ! align="center" | 2-way | ||
+ | ! align="center" | Containment | ||
+ | ! align="center" | Non containment | ||
+ | |- | ||
+ | | align="left" | ADD | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | DELETE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | KEY CHANGE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in same container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | MOVE in different container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in diff container + KEY CHANGE | ||
+ | | bgcolor="#9d261d" | | ||
+ | | bgcolor="#9d261d" | | ||
+ | |} | ||
+ | |||
+ | {| border="1" | ||
+ | |- | ||
+ | ! align="center" | 3-way | ||
+ | ! align="center" | Containment | ||
+ | ! align="center" | Non containment | ||
+ | |- | ||
+ | | align="left" | ADD | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | DELETE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | KEY CHANGE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in same container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | MOVE in different container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in diff container + KEY CHANGE | ||
+ | | bgcolor="#9d261d" | | ||
+ | | bgcolor="#9d261d" | | ||
+ | |} | ||
+ | |||
+ | {| border="1" | ||
+ | |- | ||
+ | ! align="center" | Conflicts | ||
+ | ! align="center" | Containment | ||
+ | ! align="center" | Non containment | ||
+ | |- | ||
+ | | align="left" | ADD | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | DELETE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | KEY CHANGE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in same container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | MOVE in different container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in diff container + KEY CHANGE | ||
+ | | bgcolor="#9d261d" | | ||
+ | | bgcolor="#9d261d" | | ||
+ | |} | ||
− | + | {| border="1" | |
+ | |- | ||
+ | ! align="center" | Pseudo-Conflicts | ||
+ | ! align="center" | Containment | ||
+ | ! align="center" | Non containment | ||
+ | |- | ||
+ | | align="left" | ADD | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | DELETE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | KEY CHANGE | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in same container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#46a546" | | ||
+ | |- | ||
+ | | align="left" | MOVE in different container | ||
+ | | bgcolor="#46a546" | | ||
+ | | bgcolor="#cccccc" | | ||
+ | |- | ||
+ | | align="left" | MOVE in diff container + KEY CHANGE | ||
+ | | bgcolor="#9d261d" | | ||
+ | | bgcolor="#9d261d" | | ||
+ | |} | ||
[[Category:EMF Compare/Specification]] | [[Category:EMF Compare/Specification]] |
Latest revision as of 10:04, 11 June 2014
Contents
Evolution Specification: FeatureMaps in EMF Compare
Current status is DRAFT
Preamble
Summary: Define how to represent feature maps changes.
Introduction
The following metamodel will be use for the specification.
Detailed Specification
Addition/deletion of a value for a given key
Solution 1: 2 differences
In the core:
- 1 difference on the orders : EFeatureMapEntry attribute
- 1 difference on the standardOrders/priorityOrders reference (derived, transient, volatile)
- the merge of a diff implies the merge of the other diff (equivalence relation)
- if the changes are too heavy in the code, add a new type of Diff: FeatureMapChange
In the structure merge viewer:
- 1 difference on the orders : EFeatureMapEntry attribute
- 1 difference on the standardOrders/priorityOrders reference
- a new FeatureMap filter (that hides the orders : EFeatureMapEntry difference
- when select a diff, the other diff is higlighted in green
In the content merge viewer:
- For the difference on the orders : EFeatureMapEntry attribute: table merge viewer
- For the standardOrders/priorityOrders reference: tree merge viewer
Solution 2: 1 difference
In the core:
- 1 new type of difference: FeatureMapChange
In the structure merge viewer:
- 1 difference on the standardOrders/priorityOrders reference
In the content merge viewer:
- For the standardOrders/priorityOrders reference: tree merge viewer
Key change for a given value
Solution 1: table merge viewer
In the core:
- 1 new type of difference on the the standardOrders/priorityOrders references: FeatureMapKeyChange
In the structure merge viewer:
- 1 new type of difference on the the standardOrders/priorityOrders references: FeatureMapKeyChange
In the content merge viewer:
- table merge viewer
Solution 2: new merge viewer
In the core:
- 1 new type of difference on the the standardOrders/priorityOrders references: FeatureMapKeyChange
- new table merge viewer : FeatureMapKeyContentMergeViewer
In the structure merge viewer:
- 1 new type of difference on the the standardOrders/priorityOrders references: FeatureMapKeyChange
In the content merge viewer:
- new merge viewer: FeatureMapKeyContentMergeViewer (modified TableMergeViewer)
Progression
2-way | Containment | Non containment |
---|---|---|
ADD | ||
DELETE | ||
KEY CHANGE | ||
MOVE in same container | ||
MOVE in different container | ||
MOVE in diff container + KEY CHANGE |
3-way | Containment | Non containment |
---|---|---|
ADD | ||
DELETE | ||
KEY CHANGE | ||
MOVE in same container | ||
MOVE in different container | ||
MOVE in diff container + KEY CHANGE |
Conflicts | Containment | Non containment |
---|---|---|
ADD | ||
DELETE | ||
KEY CHANGE | ||
MOVE in same container | ||
MOVE in different container | ||
MOVE in diff container + KEY CHANGE |
Pseudo-Conflicts | Containment | Non containment |
---|---|---|
ADD | ||
DELETE | ||
KEY CHANGE | ||
MOVE in same container | ||
MOVE in different container | ||
MOVE in diff container + KEY CHANGE |