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