Class FilterIndexInput

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, java.lang.Cloneable
    Direct Known Subclasses:
    EndiannessReverserIndexInput

    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.
    • Field Detail

      • TEST_FILTER_INPUTS

        static final java.util.concurrent.CopyOnWriteArrayList<java.lang.Class<?>> TEST_FILTER_INPUTS
    • Constructor Detail

      • FilterIndexInput

        public FilterIndexInput​(java.lang.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
      • 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 java.io.IOException
        Description copied from class: IndexInput
        Closes the stream to further operations.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in class IndexInput
        Throws:
        java.io.IOException
      • seek

        public void seek​(long pos)
                  throws java.io.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:
        java.io.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​(java.lang.String sliceDescription,
                                long offset,
                                long length)
                         throws java.io.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:
        java.io.IOException
      • readBytes

        public void readBytes​(byte[] b,
                              int offset,
                              int len)
                       throws java.io.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:
        java.io.IOException
        See Also:
        DataOutput.writeBytes(byte[],int)