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()
IDiffRelationshipComputergetMergerRegistry in interface IDiffRelationshipComputerpublic void setMergerRegistry(IMerger.Registry mergerRegistry)
IDiffRelationshipComputersetMergerRegistry in interface IDiffRelationshipComputermergerRegistry - The merger registry.public IMergeCriterion getMergeCriterion()
IDiffRelationshipComputergetMergeCriterion in interface IDiffRelationshipComputerpublic void setMergeCriterion(IMergeCriterion mergeCriterion)
IDiffRelationshipComputersetMergeCriterion in interface IDiffRelationshipComputermergeCriterion - 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)
IDiffRelationshipComputermerger
registry and the merge criterion.getMerger in interface IDiffRelationshipComputerdiff - The difference for which we seek the merger.public boolean hasMerger(Diff diff)
IDiffRelationshipComputerhasMerger in interface IDiffRelationshipComputerdiff - The difference for which we seek the merger.public Set<Diff> getDirectMergeDependencies(Diff diff, boolean mergeRightToLeft)
IDiffRelationshipComputerdiff. This
may includes the diff's requirements or any other diff that we need to merge before the given one.getDirectMergeDependencies in interface IDiffRelationshipComputerdiff - 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)
IDiffRelationshipComputerdiff. 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 IDiffRelationshipComputerdiff - 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)
IDiffRelationshipComputerdiff is merged in the given
direction.getDirectResultingRejections in interface IDiffRelationshipComputerdiff - 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)
IDiffRelationshipComputerdiff 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 IDiffRelationshipComputerdiff - 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)
IDiffRelationshipComputerdiff 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 IDiffRelationshipComputerdiff - 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)
IDiffRelationshipComputerdiff is merged, either
because of unresolveable conflicts or because of unreachable requirements.getAllResultingRejections in interface IDiffRelationshipComputerdiff - 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)
IDiffRelationshipComputerdiff is merged, either
because of unresolveable conflicts or because of unreachable requirements.getAllResultingRejections in interface IDiffRelationshipComputerdiff - 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.