Class IndexReader

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, java.lang.Iterable<ChunkReader>

    public class IndexReader
    extends java.lang.Object
    implements java.lang.Iterable<ChunkReader>, java.io.Closeable
    Maven 2 Index reader that handles incremental updates if possible and provides one or more ChunkReaders, to read all the required records.
    Since:
    5.1.2
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      Closes the underlying ResourceHandlers.
      java.util.List<java.lang.String> getChunkNames()
      Returns unmodifiable list of actual chunks that needs to be pulled from remote ResourceHandler.
      java.lang.String getIndexId()
      Returns the index context ID that published index has set.
      java.util.Date getPublishedTimestamp()
      Returns the Date when remote index was last published.
      boolean isIncremental()
      Returns true if incremental update is about to happen.
      java.util.Iterator<ChunkReader> iterator()
      Returns an Iterator of ChunkReaders, that if read in sequence, provide all the (incremental) updates from the index.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Method Detail

      • getIndexId

        public java.lang.String getIndexId()
        Returns the index context ID that published index has set. Usually it is equal to "repository ID" used in Record.Type.DESCRIPTOR but does not have to be.
      • getPublishedTimestamp

        public java.util.Date getPublishedTimestamp()
        Returns the Date when remote index was last published.
      • isIncremental

        public boolean isIncremental()
        Returns true if incremental update is about to happen. If incremental update, the iterator() will return only the diff from the last update.
      • getChunkNames

        public java.util.List<java.lang.String> getChunkNames()
        Returns unmodifiable list of actual chunks that needs to be pulled from remote ResourceHandler. Those are incremental chunks or the big main file, depending on result of isIncremental(). Empty list means local index is up to date, and iterator() will return empty iterator.
      • close

        public void close()
                   throws java.io.IOException
        Closes the underlying ResourceHandlers. In case of incremental update use, it also assumes that user consumed all the iterator and integrated it, hence, it will update the WritableResourceHandler contents to prepare it for future incremental update. If this is not desired (ie. due to aborted update), then this method should NOT be invoked, but rather the ResourceHandlers that caller provided in constructor of this class should be closed manually.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException
      • iterator

        public java.util.Iterator<ChunkReader> iterator()
        Returns an Iterator of ChunkReaders, that if read in sequence, provide all the (incremental) updates from the index. It is caller responsibility to either consume fully this iterator, or to close current ChunkReader if aborting.
        Specified by:
        iterator in interface java.lang.Iterable<ChunkReader>