Fix diff, conflict detection and merging of non-unique attributes90/148590/4
commitb66be13a918e0a83aae89b6f38fa087672e524ee
authorlgoubet <laurent.goubet@obeo.fr>
Thu, 29 Aug 2019 13:25:22 +0000 (29 15:25 +0200)
committerlgoubet <laurent.goubet@obeo.fr>
Fri, 30 Aug 2019 12:33:13 +0000 (30 14:33 +0200)
treeffa59ef23e99b5846d9b688feb6611fbb3ec5cde
parenta9a46d1dca11195b5c899f5787df0e3ed58f4b99
Fix diff, conflict detection and merging of non-unique attributes

Non-unique multi-valued attributes had been completely ignored during
the conception of EMF Compare and thus every step of the process was
failing.

Change-Id: I09c7ff8cf3eee5fff6c76128a3142a29acb15987
61 files changed:
plugins/org.eclipse.emf.compare.rcp.ui.tests/src/org/eclipse/emf/compare/rcp/ui/tests/structuremergeviewer/groups/TestBasicDifferenceGroupImpl.java
plugins/org.eclipse.emf.compare.rcp.ui.tests/src/org/eclipse/emf/compare/rcp/ui/tests/structuremergeviewer/groups/provider/TestReferenceChangeTreeNodeItemProviderSpec.java
plugins/org.eclipse.emf.compare.tests/model/nodes.ecore
plugins/org.eclipse.emf.compare.tests/model/nodes.genmodel
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/Node.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeEnum.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeFeatureMapContainment.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeFeatureMapContainment2.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeFeatureMapNonContainment.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeMultiValueEEnumAttribute.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeMultiValueReference.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeMultiValuedAttribute.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeMultiValuedNonUniqueAttribute.java [copied from plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeMultiValuedAttribute.java with 84% similarity]
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeMultipleContainment.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeOppositeRefManyToMany.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeOppositeRefOneToMany.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeOppositeRefOneToOne.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeSingleValueAttribute.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeSingleValueContainment.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeSingleValueEEnumAttribute.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodeSingleValueReference.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodesFactory.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/NodesPackage.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeFeatureMapContainment2Impl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeFeatureMapContainmentImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeFeatureMapNonContainmentImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeMultiValueEEnumAttributeImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeMultiValueReferenceImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeMultiValuedAttributeImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeMultiValuedNonUniqueAttributeImpl.java [copied from plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeMultiValuedAttributeImpl.java with 77% similarity]
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeMultipleContainmentImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeOppositeRefManyToManyImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeOppositeRefOneToManyImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeOppositeRefOneToOneImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeSingleValueAttributeImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeSingleValueContainmentImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeSingleValueEEnumAttributeImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodeSingleValueReferenceImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodesFactoryImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/impl/NodesPackageImpl.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/util/NodesAdapterFactory.java
plugins/org.eclipse.emf.compare.tests/src-gen/org/eclipse/emf/compare/tests/nodes/util/NodesSwitch.java
plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/diff/NonUniqueMultiValuedAttributeTest.java [new file with mode: 0644]
plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/diff/SingleValuedAttributePseudoConflictTest.java
plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/diff/data/nonuniquemultivaluedattribute/NonUniqueMultiValuedAttributeInputData.java [new file with mode: 0644]
plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/diff/data/nonuniquemultivaluedattribute/a/left.nodes [new file with mode: 0644]
plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/diff/data/nonuniquemultivaluedattribute/a/origin.nodes [new file with mode: 0644]
plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/diff/data/nonuniquemultivaluedattribute/a/right.nodes [new file with mode: 0644]
plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/diff/data/nonuniquemultivaluedattribute/b/left.nodes [new file with mode: 0644]
plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/diff/data/nonuniquemultivaluedattribute/b/origin.nodes [new file with mode: 0644]
plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/diff/data/nonuniquemultivaluedattribute/b/right.nodes [new file with mode: 0644]
plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/diff/data/nonuniquemultivaluedattribute/c/left.nodes [new file with mode: 0644]
plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/diff/data/nonuniquemultivaluedattribute/c/origin.nodes [new file with mode: 0644]
plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/diff/data/nonuniquemultivaluedattribute/c/right.nodes [new file with mode: 0644]
plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/suite/AllTests.java
plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/conflict/DefaultConflictDetector.java
plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/diff/DefaultDiffEngine.java
plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/conflict/AttributeChangeConflictSearch.java
plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/internal/utils/DiffUtil.java
plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AttributeChangeMerger.java