Class 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 IndexInputs by extending this class.
NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
  • Field Details

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