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

    java.lang.Object
      org.apache.poi.poifs.storage.HeaderBlockWriter

All Implemented Interfaces:
  BlockWritable, HeaderBlockConstants

    public class HeaderBlockWriter

extends java.lang.Object
implements HeaderBlockConstants, BlockWritable

The block containing the archive header

Author:
  Marc Johnson (mjohnson at apache dot org)

Field Summary

Fields inherited from interface org.apache.poi.poifs.storage.HeaderBlockConstants
`_bat_array_offset, _bat_count_offset, _max_bats_in_header, _property_start_offset, _sbat_block_count_offset, _sbat_start_offset, _signature, _signature_offset, _xbat_count_offset, _xbat_start_offset`

Constructor Summary
`HeaderBlockWriter(HeaderBlock headerBlock)` Create a single instance initialized with the specified existing values
`HeaderBlockWriter(POIFSBigBlockSize bigBlockSize)` Create a single instance initialized with default values

Method Summary
`BATBlock[]` `setBATBlocks(int blockCount, int startBlock)` Set BAT block parameters.
`void` `setPropertyStart(int startBlock)` Set start of Property Table
`void` `setSBATBlockCount(int count)` Set count of SBAT blocks
`void` `setSBATStart(int startBlock)` Set start of small block allocation table
`void` `writeBlock(java.nio.ByteBuffer block)` Write the block's data to an existing block
`void` `writeBlocks(java.io.OutputStream stream)` Write the block's data to an OutputStream

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

Constructor Detail

### HeaderBlockWriter

    public HeaderBlockWriter(POIFSBigBlockSize bigBlockSize)

  Create a single instance initialized with default values

### HeaderBlockWriter

    public HeaderBlockWriter(HeaderBlock headerBlock)

  Create a single instance initialized with the specified existing values

Method Detail

### setBATBlocks

    public BATBlock[] setBATBlocks(int blockCount,
                                   int startBlock)

  Set BAT block parameters. Assumes that all BAT blocks are contiguous. Will construct XBAT blocks if necessary and return the array of newly constructed XBAT blocks.

  Parameters:
    `blockCount` - count of BAT blocks
    `startBlock` - index of first BAT block
  Returns:
    array of XBAT blocks; may be zero length, will not be null

### setPropertyStart

    public void setPropertyStart(int startBlock)

  Set start of Property Table

  Parameters:
    `startBlock` - the index of the first block of the Property Table

### setSBATStart

    public void setSBATStart(int startBlock)

  Set start of small block allocation table

  Parameters:
    `startBlock` - the index of the first big block of the small block allocation table

### setSBATBlockCount

    public void setSBATBlockCount(int count)

  Set count of SBAT blocks

  Parameters:
    `count` - the number of SBAT blocks

### writeBlocks

    public void writeBlocks(java.io.OutputStream stream)
                     throws java.io.IOException

  Write the block's data 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

### writeBlock

    public void writeBlock(java.nio.ByteBuffer block)
                    throws java.io.IOException

  Write the block's data to an existing block

  Parameters:
    `block` - the ByteBuffer of the block to which the stored data should be written
  Throws:
    `java.io.IOException` - on problems writing to the block

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