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

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Closes this stream to further operations.
  `long`
  `getChecksum()`
  Returns the current checksum of bytes written so far
  `final 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, 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 Details

  - ### out

    protected final IndexOutput out

- ## Constructor Details

  - ### FilterIndexOutput

    protected FilterIndexOutput(String resourceDescription, String name, IndexOutput out)
    Creates a FilterIndexOutput with a resource description, name, and wrapped delegate IndexOutput

- ## Method Details

  - ### 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)`