Class BaseLinkedScanner<T,​R>

java.lang.Object
io.datarouter.scanner.BaseScanner<R>
io.datarouter.scanner.BaseLinkedScanner<T,​R>
All Implemented Interfaces:
Scanner<R>, Closeable, AutoCloseable
Direct Known Subclasses:
AdvanceUntilScanner, AdvanceWhileScanner, BatchingScanner, ComparableScanner, ConcatenatingScanner, DeduplicatingScanner, DistinctScanner, EachScanner, FilteringScanner, LimitingScanner, MappingScanner, PrefetchingScanner, RetainingScanner, SamplingScanner, ShufflingScanner, SortingScanner, SplittingScanner, SteppingScanner

public abstract class BaseLinkedScanner<T,​R>
extends BaseScanner<R>
Subclasses do not have to worry about closing the input scanner.
  • Field Details

  • Constructor Details

  • Method Details

    • advanceInternal

      protected abstract boolean advanceInternal()
    • advance

      public final boolean advance()
      Description copied from interface: Scanner
      Try to update current to the next item, if there is one.
      Returns:
      True if it advanced
    • closeInternal

      protected void closeInternal()
      Extend to close internal resources before the input scanner is closed.
    • close

      public final void close()
      Description copied from interface: Scanner
      Override to cleanup any resources. The call should be propagated to all parent scanners. In the infrequent case of calling advance/current in an application, the Scanner should be explicitly closed. Because the included Scanner operations will close themselves when they fail to advance, it frequently a no-op for the application, unless closing the scanner before it stops advancing.