Package org.apache.lucene.store

## Class FilterIndexOutput

- java.lang.Object
- - org.apache.lucene.store.DataOutput
  - - org.apache.lucene.store.IndexOutput
    - - org.apache.lucene.store.FilterIndexOutput

- All Implemented Interfaces:
    `Closeable`, `AutoCloseable`
  Direct Known Subclasses:
    `RateLimitedIndexOutput`

      public class FilterIndexOutput
      extends IndexOutput

  IndexOutput implementation that delegates calls to another directory. This class can be used to add limitations on top of an existing `IndexOutput` implementation such as `ByteBuffersIndexOutput` or to add additional sanity checks for tests. However, if you plan to write your own `IndexOutput` implementation, you should consider extending directly `IndexOutput` or `DataOutput` rather than try to reuse functionality of existing `IndexOutput`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 IndexOutput` | `out` |

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `FilterIndexOutput​(String resourceDescription, String name, IndexOutput out)` | Creates a FilterIndexOutput with a resource description, name, and wrapped delegate IndexOutput

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` | Closes this stream to further operations.
    `long` | `getChecksum()` | Returns the current checksum of bytes written so far
    `IndexOutput` | `getDelegate()` | Gets the delegate that was passed in on creation
    `long` | `getFilePointer()` | Returns the current position in this file, where the next write will occur.
    `static IndexOutput` | `unwrap​(IndexOutput out)` | Unwraps all FilterIndexOutputs until the first non-FilterIndexOutput IndexOutput instance and returns it
    `void` | `writeByte​(byte b)` | Writes a single byte.
    `void` | `writeBytes​(byte[] b, int offset, int length)` | Writes an array of bytes.

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

      `alignFilePointer, alignOffset, getName, toString`

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

      `copyBytes, writeBytes, writeGroupVInts, writeInt, writeLong, writeMapOfStrings, writeSetOfStrings, writeShort, writeString, writeVInt, writeVLong, writeZInt, writeZLong`

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

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

- - ### Field Detail

    - #### out

          protected final IndexOutput out

  - ### Constructor Detail

    - #### FilterIndexOutput

          protected FilterIndexOutput​(String resourceDescription,
                                      String name,
                                      IndexOutput out)

      Creates a FilterIndexOutput with a resource description, name, and wrapped delegate IndexOutput

  - ### Method Detail

    - #### unwrap

          public static IndexOutput unwrap​(IndexOutput out)

      Unwraps all FilterIndexOutputs until the first non-FilterIndexOutput IndexOutput instance and returns it

    - #### getDelegate

          public final IndexOutput getDelegate()

      Gets the delegate that was passed in on creation

    - #### close

          public void close()
                     throws IOException

      Description copied from class: `IndexOutput`
      Closes this stream to further operations.
      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in class `IndexOutput`
      Throws:
        `IOException`

    - #### getFilePointer

          public long getFilePointer()

      Description copied from class: `IndexOutput`
      Returns the current position in this file, where the next write will occur.
      Specified by:
        `getFilePointer` in class `IndexOutput`

    - #### getChecksum

          public long getChecksum()
                           throws IOException

      Description copied from class: `IndexOutput`
      Returns the current checksum of bytes written so far
      Specified by:
        `getChecksum` in class `IndexOutput`
      Throws:
        `IOException`

    - #### writeByte

          public void writeByte​(byte b)
                         throws IOException

      Description copied from class: `DataOutput`
      Writes a single byte.

      The most primitive data type is an eight-bit byte. Files are accessed as sequences of bytes. All other data types are defined as sequences of bytes, so file formats are byte-order independent.

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

    - #### writeBytes

          public void writeBytes​(byte[] b,
                                 int offset,
                                 int length)
                          throws IOException

      Description copied from class: `DataOutput`
      Writes an array of bytes.
      Specified by:
        `writeBytes` in class `DataOutput`
      Parameters:
        `b` - the bytes to write
        `offset` - the offset in the byte array
        `length` - the number of bytes to write
      Throws:
        `IOException`
      See Also:
        `DataInput.readBytes(byte[],int,int)`