Package org.apache.lucene.store

# Class FilterIndexInput

java.lang.Object
org.apache.lucene.store.DataInput
org.apache.lucene.store.IndexInput
org.apache.lucene.store.FilterIndexInput

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`, `Cloneable`

public class FilterIndexInput extends IndexInput
IndexInput implementation that delegates calls to another directory. This class can be used to add limitations on top of an existing `IndexInput` implementation or to add additional sanity checks for tests. However, if you plan to write your own `IndexInput` implementation, you should consider extending directly `IndexInput` or `DataInput` rather than try to reuse functionality of existing `IndexInput`s by extending this class.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final IndexInput`
`in`

## Constructor Summary

Constructors
Constructor
Description
`FilterIndexInput(String resourceDescription, IndexInput in)`
Creates a FilterIndexInput with a resource description and wrapped delegate IndexInput

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
Closes the stream to further operations.
`IndexInput`
`getDelegate()`
Gets the delegate that was passed in on creation
`long`
`getFilePointer()`
Returns the current position in this file, where the next read will occur.
`long`
`length()`
The number of bytes in the file.
`byte`
`readByte()`
Reads and returns a single byte.
`void`
`readBytes(byte[] b, int offset, int len)`
Reads a specified number of bytes into an array at the specified offset.
`void`
`seek(long pos)`
Sets current position in this file, where the next read will occur.
`IndexInput`
`slice(String sliceDescription, long offset, long length)`
Creates a slice of this index input, with the given description, offset, and length.
`static IndexInput`
`unwrap(IndexInput in)`
Unwraps all FilterIndexInputs until the first non-FilterIndexInput IndexInput instance and returns it
`static IndexInput`
`unwrapOnlyTest(IndexInput in)`
Unwraps all test FilterIndexInputs until the first non-test FilterIndexInput IndexInput instance and returns it

### Methods inherited from class org.apache.lucene.store.IndexInput

`clone, getFullSliceDescription, prefetch, randomAccessSlice, skipBytes, slice, toString`

### Methods inherited from class org.apache.lucene.store.DataInput

`readBytes, readFloats, readGroupVInt, readInt, readInts, readLong, readLongs, readMapOfStrings, readSetOfStrings, readShort, readString, readVInt, readVLong, readZInt, readZLong`

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

`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### in

protected final IndexInput in

## Constructor Details

### FilterIndexInput

public FilterIndexInput(String resourceDescription, IndexInput in)
Creates a FilterIndexInput with a resource description and wrapped delegate IndexInput

## Method Details

### unwrap

public static IndexInput unwrap(IndexInput in)
Unwraps all FilterIndexInputs until the first non-FilterIndexInput IndexInput instance and returns it

### unwrapOnlyTest

public static IndexInput unwrapOnlyTest(IndexInput in)
Unwraps all test FilterIndexInputs until the first non-test FilterIndexInput IndexInput instance and returns it

### getDelegate

public IndexInput getDelegate()
Gets the delegate that was passed in on creation

### close

public void close() throws IOException
Description copied from class: `IndexInput`
Closes the stream to further operations.

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in class `IndexInput`
Throws:
  `IOException`

### getFilePointer

public long getFilePointer()
Description copied from class: `IndexInput`
Returns the current position in this file, where the next read will occur.

Specified by:
  `getFilePointer` in class `IndexInput`
See Also:
  - `IndexInput.seek(long)`

### seek

public void seek(long pos) throws IOException
Description copied from class: `IndexInput`
Sets current position in this file, where the next read will occur. If this is beyond the end of the file then this will throw `EOFException` and then the stream is in an undetermined state.

Specified by:
  `seek` in class `IndexInput`
Throws:
  `IOException`
See Also:
  - `IndexInput.getFilePointer()`

### length

public long length()
Description copied from class: `IndexInput`
The number of bytes in the file.

Specified by:
  `length` in class `IndexInput`

### slice

public IndexInput slice(String sliceDescription, long offset, long length) throws IOException
Description copied from class: `IndexInput`
Creates a slice of this index input, with the given description, offset, and length. The slice is sought to the beginning.

Specified by:
  `slice` in class `IndexInput`
Throws:
  `IOException`

### readByte

public byte readByte() throws IOException
Description copied from class: `DataInput`
Reads and returns a single byte.

Specified by:
  `readByte` in class `DataInput`
Throws:
  `IOException`
See Also:
  - `DataOutput.writeByte(byte)`

### readBytes

public void readBytes(byte[] b, int offset, int len) throws IOException
Description copied from class: `DataInput`
Reads a specified number of bytes into an array at the specified offset.

Specified by:
  `readBytes` in class `DataInput`
Parameters:
  `b` - the array to read bytes into
  `offset` - the offset in the array to start storing bytes
  `len` - the number of bytes to read
Throws:
  `IOException`
See Also:
  - `DataOutput.writeBytes(byte[],int)`