public long getFilePointer() throws IOException {
        if (input instanceof RandomAccessFile) {
            return ((RandomAccessFile) input).getFilePointer();
        } else if (input instanceof DataInputStream) {
            throw new UnsupportedOperationException("Can not get file pointer for Hollow Blob Input of type DataInputStream");
        } else {
            throw new UnsupportedOperationException("Unknown Hollow Blob Input type");
        }
    }
@Test
    public void testGetFilePointer() throws IOException {
        try (HollowBlobInput inStream = HollowBlobInput.modeBasedSelector(MemoryMode.ON_HEAP, mockBlob)) {
            inStream.getFilePointer();
            fail();
        } catch (UnsupportedOperationException e) {
            // pass
        } catch (Exception e) {
            fail();
        }

        HollowBlobInput inBuffer = HollowBlobInput.modeBasedSelector(MemoryMode.SHARED_MEMORY_LAZY, mockBlob);
        assertEquals(0, inBuffer.getFilePointer()); // first byte is 0
    }