Class AbstractConflictSearch<T extends Diff>
java.lang.Object
org.eclipse.emf.compare.internal.conflict.AbstractConflictSearch<T>
- Type Parameters:
T
- The type of diff for which conflict are researched
- Direct Known Subclasses:
AttributeChangeConflictSearch.Add
,AttributeChangeConflictSearch.Change
,AttributeChangeConflictSearch.Delete
,AttributeChangeConflictSearch.Move
,ContainmentRefChangeConflictSearch.Add
,ContainmentRefChangeConflictSearch.Change
,ContainmentRefChangeConflictSearch.Delete
,ContainmentRefChangeConflictSearch.Move
,FeatureMapChangeConflictSearch.Add
,FeatureMapChangeConflictSearch.Change
,FeatureMapChangeConflictSearch.Delete
,FeatureMapChangeConflictSearch.Move
,NonContainmentRefChangeConflictSearch.Add
,NonContainmentRefChangeConflictSearch.Change
,NonContainmentRefChangeConflictSearch.Delete
,NonContainmentRefChangeConflictSearch.Move
,ResourceAttachmentChangeConflictSearch.Add
,ResourceAttachmentChangeConflictSearch.Change
,ResourceAttachmentChangeConflictSearch.Delete
,ResourceAttachmentChangeConflictSearch.Move
Class in charge of finding conflicting diffs for a given diff of type T.
-
Field Summary
Modifier and TypeFieldDescriptionprotected final Comparison
The comparison that contains diff.protected final T
The difference, nevernull
.protected final ComparisonIndex
The index of the comparison.protected final Monitor
The monitor to report progress to. -
Constructor Summary
ConstructorDescriptionAbstractConflictSearch
(T diff, ComparisonIndex index, Monitor monitor) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
areMergeableStringAttributeChanges
(Diff diff1, Diff diff2) Specifies whether the two given diffs,diff1
anddiff2
, are bothattribute changes
of String attributes and can be merged with a line-based three-way merge.protected void
conflict
(Diff other, ConflictKind kind) This will be called whenever we detect a new conflict in order to create (or update) the actual association.abstract void
Detect conflicts withdiff
in its comparison.protected String
getChangedValue
(AttributeChange attributeChange) Returns the changed attribute value denoted by the givendiff
.Get the diffs in the sameMatch
as diff.protected FeatureFilter
getFeatureFilter
(Comparison comp) Returns the feature filter attached to the given comparison if any.protected MatchResource
getMatchResource
(Resource resource) Returns the MatchResource corresponding to the givenresource
.protected EObject
Provide the model element the given diff applies to.protected EObject
Provide the non-null model element the given diff applies to.This predicate will betrue
for any Match which represents a containment deletion.protected boolean
isFeatureMapChange
(Diff toCheck) Specifies whether the givendiff
is aFeatureMapChange
.protected boolean
isFeatureMapChangeOrMergeableStringAttributeChange
(Diff diff1, Diff diff2) Specifies whether the givendiff1
anddiff2
are eitherfeature map changes
or mergeableattribute changes
of String attributes.protected boolean
isMergeable
(AttributeChange diff1, AttributeChange diff2) Specifies whether the two given attribute changes,diff1
anddiff2
, can be merged with a line-based three-way merge.protected boolean
isMergeableText
(String left, String right, String origin) Specifies whether the given three versions of a textleft
,right
, andorigin
are mergeable with a line-based three-way merge.protected boolean
isStringAttributeChange
(Diff toCheck) Specifies whether the givendiff
is aAttributeChange
of a String attribute.
-
Field Details
-
diff
The difference, nevernull
. -
comparison
The comparison that contains diff. -
index
The index of the comparison. -
monitor
The monitor to report progress to.
-
-
Constructor Details
-
AbstractConflictSearch
Constructor.- Parameters:
diff
- The diff to search conflicts with, must not benull
and have a non-null match that belongs to a non-null comparison. It must also have a non-nullDifferenceKind
andDifferenceSource
.index
- Comparison index, must not be nullmonitor
- the monitor to report progress to, must not be null
-
-
Method Details
-
detectConflicts
public abstract void detectConflicts()Detect conflicts withdiff
in its comparison. This will add or update conflicts indiff
's comparison. -
getDiffsInSameMatch
Get the diffs in the sameMatch
as diff.- Returns:
- A never-null EList of differences in the same
Match
as diff, including diff.
-
isFeatureMapChangeOrMergeableStringAttributeChange
Specifies whether the givendiff1
anddiff2
are eitherfeature map changes
or mergeableattribute changes
of String attributes.- Parameters:
diff1
- One of the diffs to check.diff2
- The other diff to check.- Returns:
true
if it is aFeatureMapChange
or a mergeableAttributeChange
,false
otherwise.
-
isFeatureMapChange
Specifies whether the givendiff
is aFeatureMapChange
.- Parameters:
toCheck
- The diff to check.- Returns:
true
if it is aFeatureMapChange
,false
otherwise.
-
areMergeableStringAttributeChanges
Specifies whether the two given diffs,diff1
anddiff2
, are bothattribute changes
of String attributes and can be merged with a line-based three-way merge.- Parameters:
diff1
- One of the diffs to check.diff2
- The other diff to check.- Returns:
true
if the diffs are mergeable changes of a string attribute,false
otherwise.- See Also:
-
isStringAttributeChange
Specifies whether the givendiff
is aAttributeChange
of a String attribute.- Parameters:
toCheck
- The diff to check.- Returns:
true
if it is aAttributeChange
of a String attribute,false
otherwise.
-
isMergeable
Specifies whether the two given attribute changes,diff1
anddiff2
, can be merged with a line-based three-way merge.- Parameters:
diff1
- One of the attribute changes to check.diff2
- The other attribute change to check.- Returns:
true
if the attribute changes are mergeable,false
otherwise.- See Also:
-
isMergeableText
Specifies whether the given three versions of a textleft
,right
, andorigin
are mergeable with a line-based three-way merge.- Parameters:
left
- The left version.right
- The right version.origin
- The original version.- Returns:
true
if they are mergeable, false otherwise.- Since:
- 3.2
-
getChangedValue
Returns the changed attribute value denoted by the givendiff
.- Parameters:
attributeChange
- The attribute change for which the changed value is requested.- Returns:
- The changed attribute value.
-
conflict
This will be called whenever we detect a new conflict in order to create (or update) the actual association.- Parameters:
other
- Second of the two differences for which we detected a conflict.kind
- Kind of this conflict.
-
getMatchResource
Returns the MatchResource corresponding to the givenresource
.- Parameters:
resource
- Resource for which we need a MatchResource.- Returns:
- The MatchResource corresponding to the given
resource
.
-
getRelatedModelElement
Provide the model element the given diff applies to.- Parameters:
rac
- The change- Returns:
- The model element of the given diff, or null if it cannot be found.
-
getValue
Provide the non-null model element the given diff applies to.- Parameters:
rac
- The change- Returns:
- The model element of the given diff, cannot be null.
-
isContainmentDelete
This predicate will betrue
for any Match which represents a containment deletion.- Returns:
- A Predicate that will be met by containment deletions.
-
getFeatureFilter
Returns the feature filter attached to the given comparison if any.- Parameters:
comp
- The comparison.- Returns:
- The feature filter attached to the given comparison if any.
-