Package org.apache.lucene.index

# Class ExitableDirectoryReader

java.lang.Object
org.apache.lucene.index.IndexReader
org.apache.lucene.index.CompositeReader
org.apache.lucene.index.BaseCompositeReader<LeafReader>
org.apache.lucene.index.DirectoryReader
org.apache.lucene.index.FilterDirectoryReader
org.apache.lucene.index.ExitableDirectoryReader

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

public class ExitableDirectoryReader extends FilterDirectoryReader
The `ExitableDirectoryReader` wraps a real index `DirectoryReader` and allows for a `QueryTimeout` implementation object to be checked periodically to see if the thread should exit or not. If `QueryTimeout.shouldExit()` returns true, an `ExitableDirectoryReader.ExitingReaderException` is thrown.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`ExitableDirectoryReader.ExitableFilterAtomicReader`
Wrapper class for another FilterAtomicReader.
`static class`
`ExitableDirectoryReader.ExitableSubReaderWrapper`
Wrapper class for a SubReaderWrapper that is used by the ExitableDirectoryReader.
`static class`
`ExitableDirectoryReader.ExitableTerms`
Wrapper class for another Terms implementation that is used by ExitableFields.
`static class`
`ExitableDirectoryReader.ExitableTermsEnum`
Wrapper class for TermsEnum that is used by ExitableTerms for implementing an exitable enumeration of terms.
`static class`
`ExitableDirectoryReader.ExitingReaderException`
Exception that is thrown to prematurely terminate a term enumeration.

## Nested classes/interfaces inherited from class org.apache.lucene.index.FilterDirectoryReader

`FilterDirectoryReader.DelegatingCacheHelper, FilterDirectoryReader.SubReaderWrapper`

## Nested classes/interfaces inherited from class org.apache.lucene.index.IndexReader

`IndexReader.CacheHelper, IndexReader.CacheKey, IndexReader.ClosedListener`

## Field Summary

### Fields inherited from class org.apache.lucene.index.FilterDirectoryReader

`in`

### Fields inherited from class org.apache.lucene.index.DirectoryReader

`directory`

### Fields inherited from class org.apache.lucene.index.BaseCompositeReader

`subReadersSorter`

## Constructor Summary

Constructors
Constructor
Description
`ExitableDirectoryReader(DirectoryReader in, QueryTimeout queryTimeout)`
Constructor

## Method Summary

Modifier and Type
Method
Description
`protected DirectoryReader`
`doWrapDirectoryReader(DirectoryReader in)`
Called by the doOpenIfChanged() methods to return a new wrapped DirectoryReader.
`IndexReader.CacheHelper`
`getReaderCacheHelper()`
Optional method: Return a `IndexReader.CacheHelper` that can be used to cache based on the content of this reader.
`String`
`toString()`
`static DirectoryReader`
`wrap(DirectoryReader in, QueryTimeout queryTimeout)`
Wraps a provided DirectoryReader.

### Methods inherited from class org.apache.lucene.index.FilterDirectoryReader

`doClose, doOpenIfChanged, doOpenIfChanged, doOpenIfChanged, getDelegate, getIndexCommit, getVersion, isCurrent, unwrap`

### Methods inherited from class org.apache.lucene.index.DirectoryReader

`directory, indexExists, listCommits, open, open, open, open, open, open, openIfChanged, openIfChanged, openIfChanged, openIfChanged`

### Methods inherited from class org.apache.lucene.index.BaseCompositeReader

`docFreq, getDocCount, getSequentialSubReaders, getSumDocFreq, getSumTotalTermFreq, maxDoc, numDocs, readerBase, readerIndex, storedFields, termVectors, totalTermFreq`

### Methods inherited from class org.apache.lucene.index.CompositeReader

`getContext`

### Methods inherited from class org.apache.lucene.index.IndexReader

`close, decRef, ensureOpen, equals, getRefCount, hasDeletions, hashCode, incRef, leaves, notifyReaderClosedListeners, numDeletedDocs, registerParentReader, tryIncRef`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Constructor Details

### ExitableDirectoryReader

public ExitableDirectoryReader(DirectoryReader in, QueryTimeout queryTimeout) throws IOException
Constructor

Parameters:
  `in` - DirectoryReader that this ExitableDirectoryReader wraps around to make it Exitable.
  `queryTimeout` - The object to periodically check if the query should time out.
Throws:
  `IOException`

## Method Details

### doWrapDirectoryReader

protected DirectoryReader doWrapDirectoryReader(DirectoryReader in) throws IOException
Description copied from class: `FilterDirectoryReader`
Called by the doOpenIfChanged() methods to return a new wrapped DirectoryReader.

Implementations should just return an instantiation of themselves, wrapping the passed in DirectoryReader.

Specified by:
  `doWrapDirectoryReader` in class `FilterDirectoryReader`
Parameters:
  `in` - the DirectoryReader to wrap
Returns:
  the wrapped DirectoryReader
Throws:
  `IOException`

### wrap

public static DirectoryReader wrap(DirectoryReader in, QueryTimeout queryTimeout) throws IOException
Wraps a provided DirectoryReader. Note that for convenience, the returned reader can be used normally (e.g. passed to `DirectoryReader.openIfChanged(DirectoryReader)`) and so on.

Throws:
  `IOException`

### getReaderCacheHelper

public IndexReader.CacheHelper getReaderCacheHelper()
Description copied from class: `IndexReader`
Optional method: Return a `IndexReader.CacheHelper` that can be used to cache based on the content of this reader. Two readers that have different data or different sets of deleted documents will be considered different.

A return value of `null` indicates that this reader is not suited for caching, which is typically the case for short-lived wrappers that alter the content of the wrapped reader.

Specified by:
  `getReaderCacheHelper` in class `IndexReader`

### toString

public String toString()

Overrides:
  `toString` in class `CompositeReader`