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 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

    All Methods Static Methods Instance Methods Concrete Methods
    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

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

      `clone, getFullSliceDescription, randomAccessSlice, skipBytes, toString`

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

      `readBytes, readFloats, readGroupVInt, readGroupVInts, 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 Detail

    - #### in

          protected final IndexInput in

  - ### Constructor Detail

    - #### FilterIndexInput

          public FilterIndexInput​(String resourceDescription,
                                  IndexInput in)

      Creates a FilterIndexInput with a resource description and wrapped delegate IndexInput

  - ### Method Detail

    - #### unwrap

          public static IndexInput unwrap​(IndexInput in)

      Unwraps all FilterIndexInputs until the first non-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)`