Interface IRangeComparator

  • All Known Subinterfaces:
    IAtomSplitter
    All Known Implementing Classes:
    AncestorComparator, ArgumentComparator, TagComparator, TextNodeComparator, TextOnlyComparator

    public interface IRangeComparator
    For breaking an object to compare into a sequence of comparable entities.

    It is used by RangeDifferencer to find longest sequences of matching and non-matching ranges.

    For example, to compare two text documents and find longest common sequences of matching and non-matching lines, the implementation must break the document into lines. getRangeCount would return the number of lines in the document, and rangesEqual would compare a specified line given with one in another IRangeComparator.

    Clients should implement this interface; there is no standard implementation.

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      int getRangeCount()
      Returns the number of comparable entities.
      boolean rangesEqual​(int thisIndex, IRangeComparator other, int otherIndex)
      Returns whether the comparable entity given by the first index matches an entity specified by the other IRangeComparator and index.
      boolean skipRangeComparison​(int length, int maxLength, IRangeComparator other)
      Returns whether a comparison should be skipped because it would be too costly (or lengthy).
    • Method Detail

      • getRangeCount

        int getRangeCount()
        Returns the number of comparable entities.
        Returns:
        the number of comparable entities
      • rangesEqual

        boolean rangesEqual​(int thisIndex,
                            IRangeComparator other,
                            int otherIndex)
        Returns whether the comparable entity given by the first index matches an entity specified by the other IRangeComparator and index.
        Parameters:
        thisIndex - the index of the comparable entity within this IRangeComparator
        other - the IRangeComparator to compare this with
        otherIndex - the index of the comparable entity within the other IRangeComparator
        Returns:
        true if the comparable entities are equal
      • skipRangeComparison

        boolean skipRangeComparison​(int length,
                                    int maxLength,
                                    IRangeComparator other)
        Returns whether a comparison should be skipped because it would be too costly (or lengthy).
        Parameters:
        length - a number on which to base the decision whether to return true or false
        maxLength - another number on which to base the decision whether to return true or false
        other - the other IRangeComparator to compare with
        Returns:
        true to avoid a too lengthy range comparison