Class DiffTreeIterator

java.lang.Object
org.eclipse.emf.compare.internal.conflict.DiffTreeIterator
All Implemented Interfaces:
java.util.Iterator<Diff>

public class DiffTreeIterator
extends java.lang.Object
implements java.util.Iterator<Diff>
A custom iterator that will walk a Match->submatch tree, and allow iteration over the Diffs of these Matches.

Since we're walking over Matches but returning Diffs, this is not a good candidate for guava's filters. We're providing the custom setFilter(Predicate) and setPruningFilter(Predicate) to allow for filtering or pruning the the iteration.

  • Constructor Summary

    Constructors 
    Constructor Description
    DiffTreeIterator​(Match start)
    Constructs our iterator given the root of the Match tree to iterate over.
  • Method Summary

    Modifier and Type Method Description
    boolean hasNext()
    Diff next()
    void remove()
    void setFilter​(java.util.function.Predicate<? super Diff> filter)
    Sets the criterion that Diffs must meet to be returned by this iterator.
    void setPruningFilter​(java.util.function.Predicate<? super Match> pruningFilter)
    Sets the pruning filter for this iterator.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface java.util.Iterator

    forEachRemaining
  • Constructor Details

    • DiffTreeIterator

      public DiffTreeIterator​(Match start)
      Constructs our iterator given the root of the Match tree to iterate over.
      Parameters:
      start - Starting match of the tree we'll iterate over.
  • Method Details

    • setFilter

      public void setFilter​(java.util.function.Predicate<? super Diff> filter)
      Sets the criterion that Diffs must meet to be returned by this iterator.
      Parameters:
      filter - The filter differences must meet.
    • setPruningFilter

      public void setPruningFilter​(java.util.function.Predicate<? super Match> pruningFilter)
      Sets the pruning filter for this iterator. Any Match that meets this criterion will be pruned along with all of its differences and sub-differences.
      Parameters:
      pruningFilter - The pruning filter for this iterator.
    • hasNext

      public boolean hasNext()
      Specified by:
      hasNext in interface java.util.Iterator<Diff>
      See Also:
      Iterator.hasNext()
    • next

      public Diff next()
      Specified by:
      next in interface java.util.Iterator<Diff>
      See Also:
      Iterator.next()
    • remove

      public void remove()
      Specified by:
      remove in interface java.util.Iterator<Diff>
      See Also:
      Iterator.remove()