Skip to main content

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.

Jump to: navigation, search

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: handling of FetaureMaps in EMF Compare  =
+
= Evolution Specification: FeatureMaps in EMF Compare  =
  
 
Current status is '''DRAFT'''
 
Current status is '''DRAFT'''
Line 5: Line 5:
 
== Preamble  ==
 
== Preamble  ==
  
''Summary'': Define how to graphically represent feature maps changes.
+
''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, 1 refinement''
+
'''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 reference
+
* 1 difference on the orders : EFeatureMapEntry attribute
 
* 1 difference on the standardOrders/priorityOrders reference
 
* 1 difference on the standardOrders/priorityOrders reference
* 1 refinement of the previous differences (the second one is the prime refining), with a new FeatureMap filter
+
* 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'''
  
''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" |  
 +
|}
  
''Solution 2: new merge viewer''
+
{| 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

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.

EMFCompare FeatureMap MM.png

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

EMFCompare FeatureMap 1.png EMFCompare FeatureMap 2.png EMFCompare FeatureMap 3.png

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

EMFCompare FeatureMap 4.png

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

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)

EMFCompare FeatureMap 6.png

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    

Back to the top