[457839] Introduces model update strategies for content merge viewers

Content merge viewers may enable users to actually perform model
updates. Currently, the EMFCompareTextMergeViewer has that functionality
to update EAttribute values. This update functionality is tightly bound
to the diff type though (AttributeChange in this case). Diff extensions
may re-use these content merge viewers for other change types, as it is
the case with OpaqueElementBodyChanges right now. However, as
EMFCompareTextMergeViewer expects attribute changes only, the model
update is not working for such extensions.

To enable model updates for other change types, we introduced
IModelUpdateStrategies and adapted EMFCompareTextMergeViewer to perform
the actual update using a specific model update strategy only without
assuming a specific diff type; model update strategies therefore
encapsulate the knowledge on how to perform the actual model update.
Accessors may now implement IModelUpdateStrategyProviders and provide
such a specific strategy to the content merge viewers they have
selected.

Bug: 457839
Change-Id: I9a2893bc5dac14e333816eae199f1c27ce6840c6
Signed-off-by: Philip Langer <planger@eclipsesource.com>
7 files changed