public class DiffRelationshipComputer extends Object implements IDiffRelationshipComputer
IMerger2
Modifier and Type | Field and Description |
---|---|
protected IMergeCriterion |
criterion
Merge criterion used to retrieve the correct merger.
|
protected IMerger.Registry |
registry
Merger registry used to retrieve the correct merger.
|
Constructor and Description |
---|
DiffRelationshipComputer(IMerger.Registry registry)
Creates a new relationship computer.
|
DiffRelationshipComputer(IMerger.Registry registry,
IMergeCriterion criterion)
Creates a new relationship computer.
|
Modifier and Type | Method and Description |
---|---|
Set<Diff> |
getAllResultingMerges(Diff diff,
boolean rightToLeft)
Retrieves the set of all diffs related to the given
diff when merging in the given
direction. |
Set<Diff> |
getAllResultingMerges(Diff diff,
boolean rightToLeft,
com.google.common.base.Predicate<? super Diff> filter)
Retrieves the set of all diffs related to the given
diff when merging in the given
direction. |
Set<Diff> |
getAllResultingRejections(Diff diff,
boolean mergeRightToLeft)
Retrieves the set of all diffs that will be rejected if the given
diff is merged, either
because of unresolveable conflicts or because of unreachable requirements. |
Set<Diff> |
getAllResultingRejections(Diff diff,
boolean mergeRightToLeft,
com.google.common.base.Predicate<? super Diff> filter)
Retrieves the set of all diffs that will be rejected if the given
diff is merged, either
because of unresolveable conflicts or because of unreachable requirements. |
Set<Diff> |
getDirectMergeDependencies(Diff diff,
boolean mergeRightToLeft)
Retrieves the set of directly required diffs needed in order to merge the given
diff . |
Set<Diff> |
getDirectResultingMerges(Diff diff,
boolean mergeRightToLeft)
Returns all differences that will be merged because of our merging the given
diff . |
Set<Diff> |
getDirectResultingRejections(Diff diff,
boolean mergeRightToLeft)
Returns the set of all differences that need to be rejected if
diff is merged in the given
direction. |
IMergeCriterion |
getMergeCriterion()
Returns the merge criterion considered for calculating the diff relationships.
|
IMerger2 |
getMerger(Diff diff)
Returns the best-fitting merger for the given diff according to the
merger
registry and the merge criterion . |
IMerger.Registry |
getMergerRegistry()
Returns the merger registry used for calculating the diff relationships.
|
protected IMerger.Registry2 |
getMergerRegistry2()
Returns the
merger registry as IMerger.Registry2 , if possible. |
boolean |
hasMerger(Diff diff)
Indicates whether a best-fitting merger for the given diff is available.
|
protected Set<Diff> |
internalGetAllResultingMerges(Diff diff,
boolean rightToLeft)
Returns the set of all differences directly related to the given one, either as dependencies or
as implications.
|
void |
setMergeCriterion(IMergeCriterion mergeCriterion)
Sets the merge criterion considered for calculating the diff relationships.
|
void |
setMergerRegistry(IMerger.Registry mergerRegistry)
Sets the merger registry used for calculating the diff relationships.
|
protected IMerger.Registry registry
protected IMergeCriterion criterion
public DiffRelationshipComputer(IMerger.Registry registry)
registry
- merger registrypublic DiffRelationshipComputer(IMerger.Registry registry, IMergeCriterion criterion)
registry
- merger registrycriterion
- merge criterion used to get the merger from the registry, use IMergeCriterion.NONE
if no special criterion should be set.public IMerger.Registry getMergerRegistry()
IDiffRelationshipComputer
getMergerRegistry
in interface IDiffRelationshipComputer
public void setMergerRegistry(IMerger.Registry mergerRegistry)
IDiffRelationshipComputer
setMergerRegistry
in interface IDiffRelationshipComputer
mergerRegistry
- The merger registry.public IMergeCriterion getMergeCriterion()
IDiffRelationshipComputer
getMergeCriterion
in interface IDiffRelationshipComputer
public void setMergeCriterion(IMergeCriterion mergeCriterion)
IDiffRelationshipComputer
setMergeCriterion
in interface IDiffRelationshipComputer
mergeCriterion
- The merger criterion.protected IMerger.Registry2 getMergerRegistry2()
merger registry
as IMerger.Registry2
, if possible. If the
merger registry is not an instance of IMerger.Registry2
, null is returned.IMerger.Registry2
instance or null.public IMerger2 getMerger(Diff diff)
IDiffRelationshipComputer
merger
registry
and the merge criterion
.getMerger
in interface IDiffRelationshipComputer
diff
- The difference for which we seek the merger.public boolean hasMerger(Diff diff)
IDiffRelationshipComputer
hasMerger
in interface IDiffRelationshipComputer
diff
- The difference for which we seek the merger.public Set<Diff> getDirectMergeDependencies(Diff diff, boolean mergeRightToLeft)
IDiffRelationshipComputer
diff
. This
may includes the diff's requirements or any other diff that we need to merge before the given one.getDirectMergeDependencies
in interface IDiffRelationshipComputer
diff
- The difference for which we seek the direct merge dependencies.mergeRightToLeft
- The direction in which we're considering a merge.IMerger2.getDirectMergeDependencies(Diff, boolean)
public Set<Diff> getDirectResultingMerges(Diff diff, boolean mergeRightToLeft)
IDiffRelationshipComputer
diff
. This
may include the diff's implications, the diff's equivalences, the diff's refinements or any other diff
that we need to merge together with the given diff.getDirectResultingMerges
in interface IDiffRelationshipComputer
diff
- The difference for which we seek the direct merge dependencies.mergeRightToLeft
- The direction in which we're considering a merge.IMerger2.getDirectResultingMerges(Diff, boolean)
public Set<Diff> getDirectResultingRejections(Diff diff, boolean mergeRightToLeft)
IDiffRelationshipComputer
diff
is merged in the given
direction.getDirectResultingRejections
in interface IDiffRelationshipComputer
diff
- The difference for which we seek the direct resulting rejections.mergeRightToLeft
- The direction in which we're considering a merge.IDiffRelationshipComputer.getAllResultingRejections(Diff, boolean)
,
IMerger2.getDirectResultingRejections(Diff, boolean)
public Set<Diff> getAllResultingMerges(Diff diff, boolean rightToLeft)
IDiffRelationshipComputer
diff
when merging in the given
direction.
This is expected to return the set of all differences that will be need to merged along when a user
wishes to merge diff
, either because they are required by it or because they are implied
by it one way or another.
Note that diff
will be included in the returned set.
Also note that the resulting merges will contain the resulting rejections (diffs from the other side that will be rejected)
getAllResultingMerges
in interface IDiffRelationshipComputer
diff
- The difference for which we seek all related ones.rightToLeft
- The direction in which we're considering a merge.diff
when merging in the given
direction.public Set<Diff> getAllResultingMerges(Diff diff, boolean rightToLeft, com.google.common.base.Predicate<? super Diff> filter)
IDiffRelationshipComputer
diff
when merging in the given
direction.
This is expected to return the set of all differences that will be need to merged along when a user
wishes to merge diff
, either because they are required by it or because they are implied
by it one way or another.
Note that diff
will be included in the returned set.
Also note that the resulting merges will contain the resulting rejections (diffs from the other side that will be rejected)
getAllResultingMerges
in interface IDiffRelationshipComputer
diff
- The difference for which we seek all related ones.rightToLeft
- The direction in which we're considering a merge.filter
- The filter to control which diffs are visted when collecting the result.diff
when merging in the given
direction.protected Set<Diff> internalGetAllResultingMerges(Diff diff, boolean rightToLeft)
diff
- The difference for which we seek all directly related others.rightToLeft
- The direction in which we're considering a merge.public Set<Diff> getAllResultingRejections(Diff diff, boolean mergeRightToLeft)
IDiffRelationshipComputer
diff
is merged, either
because of unresolveable conflicts or because of unreachable requirements.getAllResultingRejections
in interface IDiffRelationshipComputer
diff
- The difference for which we seek all opposite ones.mergeRightToLeft
- The direction in which we're considering a merge.diff
is merged in
the given direction.public Set<Diff> getAllResultingRejections(Diff diff, boolean mergeRightToLeft, com.google.common.base.Predicate<? super Diff> filter)
IDiffRelationshipComputer
diff
is merged, either
because of unresolveable conflicts or because of unreachable requirements.getAllResultingRejections
in interface IDiffRelationshipComputer
diff
- The difference for which we seek all opposite ones.mergeRightToLeft
- The direction in which we're considering a merge.filter
- The filter to control which diffs are visted when collecting the result.diff
is merged in
the given direction.
Copyright (c) 2006, 2015 Obeo and others. All rights reserved.