Interface IDiffRelationshipComputer

All Known Implementing Classes:
CachingDiffRelationshipComputer, DiffRelationshipComputer

public interface IDiffRelationshipComputer
A computer to retrieve the dependent diffs, resulting merges and resulting rejections for a diff.
Since:
3.5
See Also:
  • Method Details

    • getDirectMergeDependencies

      Set<Diff> getDirectMergeDependencies(Diff diff, boolean mergeRightToLeft)
      Retrieves the set of directly required diffs needed in order to merge the given diff. This may includes the diff's requirements or any other diff that we need to merge before the given one.
      Parameters:
      diff - The difference for which we seek the direct merge dependencies.
      mergeRightToLeft - The direction in which we're considering a merge.
      Returns:
      A non-null set of direct merge dependencies.
      See Also:
    • getDirectResultingMerges

      Set<Diff> getDirectResultingMerges(Diff diff, boolean mergeRightToLeft)
      Returns all differences that will be merged because of our merging the given 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.
      Parameters:
      diff - The difference for which we seek the direct merge dependencies.
      mergeRightToLeft - The direction in which we're considering a merge.
      Returns:
      A non-null set of direct resulting merges.
      See Also:
    • getDirectResultingRejections

      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.
      Parameters:
      diff - The difference for which we seek the direct resulting rejections.
      mergeRightToLeft - The direction in which we're considering a merge.
      Returns:
      A non-null set of direct resulting rejections.
      See Also:
    • getAllResultingMerges

      Set<Diff> getAllResultingMerges(Diff diff, boolean rightToLeft)
      Retrieves the set of all diffs related to the given 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)

      Parameters:
      diff - The difference for which we seek all related ones.
      rightToLeft - The direction in which we're considering a merge.
      Returns:
      A non-null set of all diffs related to the given diff when merging in the given direction.
    • getAllResultingMerges

      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.

      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)

      Parameters:
      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.
      Returns:
      A non-null set of all diffs related to the given diff when merging in the given direction.
    • getAllResultingRejections

      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.
      Parameters:
      diff - The difference for which we seek all opposite ones.
      mergeRightToLeft - The direction in which we're considering a merge.
      Returns:
      A non-null set of all diffs that will be rejected if the given diff is merged in the given direction.
    • getAllResultingRejections

      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.
      Parameters:
      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.
      Returns:
      A non-null set of all diffs that will be rejected if the given diff is merged in the given direction.
    • getMergerRegistry

      IMerger.Registry getMergerRegistry()
      Returns the merger registry used for calculating the diff relationships.
      Returns:
      The merger registry.
    • setMergerRegistry

      void setMergerRegistry(IMerger.Registry mergerRegistry)
      Sets the merger registry used for calculating the diff relationships.
      Parameters:
      mergerRegistry - The merger registry.
    • getMergeCriterion

      IMergeCriterion getMergeCriterion()
      Returns the merge criterion considered for calculating the diff relationships.
      Returns:
      The merge criterion.
    • setMergeCriterion

      void setMergeCriterion(IMergeCriterion mergeCriterion)
      Sets the merge criterion considered for calculating the diff relationships.
      Parameters:
      mergeCriterion - The merger criterion.
    • getMerger

      IMerger2 getMerger(Diff diff)
      Returns the best-fitting merger for the given diff according to the merger registry and the merge criterion.
      Parameters:
      diff - The difference for which we seek the merger.
      Returns:
      The best-fitting merger for the given diff or null if no merger fits.
    • hasMerger

      boolean hasMerger(Diff diff)
      Indicates whether a best-fitting merger for the given diff is available.
      Parameters:
      diff - The difference for which we seek the merger.
      Returns:
      Returns true if a best-fitting merger is available, false otherwise.