Package loci.poi.poifs.storage
Class BlockAllocationTableWriter
- java.lang.Object
-
- loci.poi.poifs.storage.BlockAllocationTableWriter
-
- All Implemented Interfaces:
BATManaged
,BlockWritable
public class BlockAllocationTableWriter extends Object implements BlockWritable, BATManaged
This class manages and creates the Block Allocation Table, which is basically a set of linked lists of block indices.Each block of the filesystem has an index. The first block, the header, is skipped; the first block after the header is index 0, the next is index 1, and so on.
A block's index is also its index into the Block Allocation Table. The entry that it finds in the Block Allocation Table is the index of the next block in the linked list of blocks making up a file, or it is set to -2: end of list.
- Author:
- Marc Johnson (mjohnson at apache dot org)
-
-
Constructor Summary
Constructors Constructor Description BlockAllocationTableWriter()
create a BlockAllocationTableWriter
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
allocateSpace(int blockCount)
Allocate space for a block of indicesint
countBlocks()
Return the number of BigBlock's this instance usesint
createBlocks(int size)
Create the BATBlocks we needint
getStartBlock()
get the starting blockvoid
setStartBlock(int start_block)
Set the start block for this instancevoid
writeBlocks(OutputStream stream)
Write the storage to an OutputStream
-
-
-
Method Detail
-
createBlocks
public int createBlocks(int size)
Create the BATBlocks we need- Returns:
- start block index of BAT blocks
-
allocateSpace
public int allocateSpace(int blockCount)
Allocate space for a block of indices- Parameters:
blockCount
- the number of blocks to allocate space for- Returns:
- the starting index of the blocks
-
getStartBlock
public int getStartBlock()
get the starting block- Returns:
- the starting block index
-
writeBlocks
public void writeBlocks(OutputStream stream) throws IOException
Write the storage to an OutputStream- Specified by:
writeBlocks
in interfaceBlockWritable
- Parameters:
stream
- the OutputStream to which the stored data should be written- Throws:
IOException
- on problems writing to the specified stream
-
countBlocks
public int countBlocks()
Return the number of BigBlock's this instance uses- Specified by:
countBlocks
in interfaceBATManaged
- Returns:
- count of BigBlock instances
-
setStartBlock
public void setStartBlock(int start_block)
Set the start block for this instance- Specified by:
setStartBlock
in interfaceBATManaged
- Parameters:
start_block
-
-
-