org.apache.poi.poifs.filesystem

## Class POIFSMiniStore

- java.lang.Object
- - org.apache.poi.poifs.filesystem.BlockStore
  - - org.apache.poi.poifs.filesystem.POIFSMiniStore

-     public class POIFSMiniStore
      extends BlockStore

  This class handles the MiniStream (small block store) in the NIO case for `POIFSFileSystem`

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.poi.poifs.filesystem.BlockStore

      `BlockStore.ChainLoopDetector`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected java.nio.ByteBuffer` | `createBlockIfNeeded(int offset)` Load the block, extending the underlying stream if needed
    `protected BATBlock.BATBlockAndIndex` | `getBATBlockAndIndex(int offset)` Returns the BATBlock that handles the specified offset, and the relative index within it
    `protected java.nio.ByteBuffer` | `getBlockAt(int offset)` Load the block at the given offset.
    `protected int` | `getBlockStoreBlockSize()` Returns the size of the blocks managed through the block store.
    `protected BlockStore.ChainLoopDetector` | `getChainLoopDetector()` Creates a Detector for loops in the chain
    `protected int` | `getFreeBlock()` Finds a free block, and returns its offset.
    `protected int` | `getNextBlock(int offset)` Works out what block follows the specified one.
    `protected void` | `setNextBlock(int offset, int nextBlock)` Changes the record of what block follows the specified one.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### getBlockAt

          protected java.nio.ByteBuffer getBlockAt(int offset)

      Load the block at the given offset.
      Specified by:
        `getBlockAt` in class `BlockStore`

    - #### createBlockIfNeeded

          protected java.nio.ByteBuffer createBlockIfNeeded(int offset)
                                                     throws java.io.IOException

      Load the block, extending the underlying stream if needed
      Specified by:
        `createBlockIfNeeded` in class `BlockStore`
      Throws:
        `java.io.IOException`

    - #### getBATBlockAndIndex

          protected BATBlock.BATBlockAndIndex getBATBlockAndIndex(int offset)

      Returns the BATBlock that handles the specified offset, and the relative index within it
      Specified by:
        `getBATBlockAndIndex` in class `BlockStore`

    - #### getNextBlock

          protected int getNextBlock(int offset)

      Works out what block follows the specified one.
      Specified by:
        `getNextBlock` in class `BlockStore`

    - #### setNextBlock

          protected void setNextBlock(int offset,
                                      int nextBlock)

      Changes the record of what block follows the specified one.
      Specified by:
        `setNextBlock` in class `BlockStore`

    - #### getFreeBlock

          protected int getFreeBlock()
                              throws java.io.IOException

      Finds a free block, and returns its offset. This method will extend the file if needed, and if doing so, allocate new FAT blocks to address the extra space.
      Specified by:
        `getFreeBlock` in class `BlockStore`
      Throws:
        `java.io.IOException`

    - #### getChainLoopDetector

          protected BlockStore.ChainLoopDetector getChainLoopDetector()

      Description copied from class: `BlockStore`
      Creates a Detector for loops in the chain
      Specified by:
        `getChainLoopDetector` in class `BlockStore`

    - #### getBlockStoreBlockSize

          protected int getBlockStoreBlockSize()

      Description copied from class: `BlockStore`
      Returns the size of the blocks managed through the block store.
      Specified by:
        `getBlockStoreBlockSize` in class `BlockStore`

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.