Class BATBlock

java.lang.Object
loci.poi.poifs.storage.BATBlock
All Implemented Interfaces:
BlockWritable

public class BATBlock extends Object
A block of block allocation table entries. BATBlocks are created only through a static factory method: createBATBlocks.
Author:
Marc Johnson (mjohnson at apache dot org)
  • Method Details

    • getBigBlockSize

      public int getBigBlockSize()
    • createBATBlocks

      public static BATBlock[] createBATBlocks(int[] entries, int size)
      Create an array of BATBlocks from an array of int block allocation table entries
      Parameters:
      entries - the array of int entries
      Returns:
      the newly created array of BATBlocks
    • createXBATBlocks

      public static BATBlock[] createXBATBlocks(int[] entries, int startBlock, int size)
      Create an array of XBATBlocks from an array of int block allocation table entries
      Parameters:
      entries - the array of int entries
      startBlock - the start block of the array of XBAT blocks
      Returns:
      the newly created array of BATBlocks
    • calculateStorageRequirements

      public static int calculateStorageRequirements(int entryCount, int size)
      Calculate how many BATBlocks are needed to hold a specified number of BAT entries.
      Parameters:
      entryCount - the number of entries
      Returns:
      the number of BATBlocks needed
    • calculateXBATStorageRequirements

      public static int calculateXBATStorageRequirements(int entryCount, int size)
      Calculate how many XBATBlocks are needed to hold a specified number of BAT entries.
      Parameters:
      entryCount - the number of entries
      Returns:
      the number of XBATBlocks needed
    • entriesPerBlock

      public static final int entriesPerBlock(int size)
      Returns:
      number of entries per block
    • entriesPerXBATBlock

      public static final int entriesPerXBATBlock(int size)
      Returns:
      number of entries per XBAT block
    • getXBATChainOffset

      public static final int getXBATChainOffset(int size)
      Returns:
      offset of chain index of XBAT block
    • doWriteData

      protected void doWriteData(OutputStream stream, byte[] data) throws IOException
      Default implementation of write for extending classes that contain their data in a simple array of bytes.
      Parameters:
      stream - the OutputStream to which the data should be written.
      data - the byte array of to be written.
      Throws:
      IOException - on problems writing to the specified stream.
    • writeBlocks

      public void writeBlocks(OutputStream stream) throws IOException
      Write the storage to an OutputStream
      Specified by:
      writeBlocks in interface BlockWritable
      Parameters:
      stream - the OutputStream to which the stored data should be written
      Throws:
      IOException - on problems writing to the specified stream