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

EMF Compare/Specifications/FeatureMap

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