Package com.complexible.common.collect

# Interface RestrictedMarkResetIterator<T>

All Superinterfaces:
  `AutoCloseable`, `CloseableIterator<T>`, `Copyable<MarkResetIterator<T>>`, `Iterator<T>`, `MarkResetIterator<T>`, `ResettableIterator<T>`

All Known Implementing Classes:
  `MarkResetSkippingIterator`, `SpoolingMarkResetIterator`

public interface RestrictedMarkResetIterator<T> extends MarkResetIterator<T>
An extension to the base interface to support restrictions on the base iterator, for example, to implement the mark-reset behaviour for the cross phase of the merge join. In that case the predicate would restrict the base iterator to the current value of the join key.

Author:
  Pavel Klinov

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface com.complexible.common.base.CloseableIterator

  `CloseableIterator.AbstractCloseableIterator<T>, CloseableIterator.DelegatingCloseableIterator<T>, CloseableIterator.EmptyCloseableIterator<T>`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `RestrictedMarkResetIterator<T>`
  `copy()`
  Create a deep copy of the object which does not share any references with the original.
  `static <T> RestrictedMarkResetIterator<T>`
  `empty()`
  `void`
  `restrict(Predicate<T> restriction)`

  ### Methods inherited from interface com.complexible.common.base.CloseableIterator

  `close`

  ### Methods inherited from interface java.util.Iterator

  `forEachRemaining, hasNext, next, remove`

  ### Methods inherited from interface com.complexible.common.collect.MarkResetIterator

  `mark, resetToMark`

  ### Methods inherited from interface com.complexible.common.collect.ResettableIterator

  `reset`

- ## Method Details

  - ### restrict

    void restrict(Predicate<T> restriction)

  - ### copy

    RestrictedMarkResetIterator<T> copy()
    Description copied from interface: `Copyable`
    Create a deep copy of the object which does not share any references with the original.
    Specified by:
      `copy` in interface `Copyable<T>`
    Returns:
      a copy of the object

  - ### empty

    static <T> RestrictedMarkResetIterator<T> empty()