## org.apache.poi.poifs.storage
Class BATBlock

    java.lang.Object
      org.apache.poi.poifs.storage.BigBlock
          org.apache.poi.poifs.storage.BATBlock

All Implemented Interfaces:
  BlockWritable

public class BATBlock
extends org.apache.poi.poifs.storage.BigBlock

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 Summary
`static int` `calculateStorageRequirements(int entryCount)` Calculate how many BATBlocks are needed to hold a specified number of BAT entries.
`static int` `calculateXBATStorageRequirements(int entryCount)` Calculate how many XBATBlocks are needed to hold a specified number of BAT entries.
`static BATBlock[]` `createBATBlocks(int[] entries)` Create an array of BATBlocks from an array of int block allocation table entries
`static BATBlock[]` `createXBATBlocks(int[] entries, int startBlock)` Create an array of XBATBlocks from an array of int block allocation table entries
`protected void` `doWriteData(java.io.OutputStream stream, byte[] data)` Default implementation of write for extending classes that contain their data in a simple array of bytes.
`static int` `entriesPerBlock()`
`static int` `entriesPerXBATBlock()`
`static int` `getXBATChainOffset()`
`void` `writeBlocks(java.io.OutputStream stream)` Write the storage to an OutputStream

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### createBATBlocks

    public static BATBlock[] createBATBlocks(int[] entries)

  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)

  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)

  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)

  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()

  Returns:
    number of entries per block

### entriesPerXBATBlock

    public static final int entriesPerXBATBlock()

  Returns:
    number of entries per XBAT block

### getXBATChainOffset

    public static final int getXBATChainOffset()

  Returns:
    offset of chain index of XBAT block

### doWriteData

    protected void doWriteData(java.io.OutputStream stream,
                               byte[] data)
                        throws java.io.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:
    `java.io.IOException` - on problems writing to the specified stream.

### writeBlocks

    public void writeBlocks(java.io.OutputStream stream)
                     throws java.io.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:
    `java.io.IOException` - on problems writing to the specified stream

Copyright © 2003 Apache Software Foundation.