Package org.apache.maven.index.reader
Class IndexReader
java.lang.Object
org.apache.maven.index.reader.IndexReader
- All Implemented Interfaces:
Closeable,AutoCloseable,Iterable<ChunkReader>
Maven Index reader that handles incremental updates, if possible, and provides one or more
ChunkReaders, to
read all the required records. Instances of this class MUST BE handled as resources (have them closed once done with
them), it is user responsibility to close them, ideally in try-with-resource block.
Every involved instance, this IndexReader, provided ChunkReader, and used ResourceHandlers
are Closeable, and all have to be explicitly closed, best in try-with-resource.
- Since:
- 5.1.2
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes the underlyingResourceHandlers.Returns unmodifiable list of actual chunks that needs to be pulled from remoteResourceHandler.Returns the index context ID that published index has set.Returns theDatewhen remote index was last published.booleanReturnstrueif incremental update is about to happen.iterator()Returns anIteratorofChunkReaders, 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, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
IndexReader
- Throws:
IOException
-
-
Method Details
-
getIndexId
Returns the index context ID that published index has set. Usually it is equal to "repository ID" used inRecord.Type.DESCRIPTORbut does not have to be. -
getPublishedTimestamp
Returns theDatewhen remote index was last published. -
isIncremental
public boolean isIncremental()Returnstrueif incremental update is about to happen. If incremental update, theiterator()will return only the diff from the last update. -
getChunkNames
Returns unmodifiable list of actual chunks that needs to be pulled from remoteResourceHandler. Those are incremental chunks or the big main file, depending on result ofisIncremental(). Empty list means local index is up to date, anditerator()will return empty iterator. -
close
Closes the underlyingResourceHandlers. In case of incremental update use, it also assumes that user consumed all the iterator and integrated it, hence, it will update theWritableResourceHandlercontents 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 theResourceHandlers that caller provided in constructor of this class should be closed manually.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
iterator
Returns anIteratorofChunkReaders, 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 currentChunkReaderif aborting.- Specified by:
iteratorin interfaceIterable<ChunkReader>
-