Package loci.poi.poifs.storage
Class DocumentBlock
- java.lang.Object
-
- loci.poi.poifs.storage.DocumentBlock
-
- All Implemented Interfaces:
BlockWritable
public class DocumentBlock extends Object
A block of document data.- Author:
- Marc Johnson (mjohnson at apache dot org)
-
-
Constructor Summary
Constructors Constructor Description DocumentBlock(loci.common.RandomAccessInputStream stream, int size)
Create a single instance initialized with data.DocumentBlock(RawDataBlock block, int size)
create a document block from a raw data block
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static DocumentBlock[]
convert(long offset, loci.common.RandomAccessInputStream stream, int numBytes, int size, int blockSize)
convert a single long array into an array of DocumentBlock instancesprotected void
doWriteData(OutputStream stream, byte[] data)
Default implementation of write for extending classes that contain their data in a simple array of bytes.int
getBigBlockSize()
static byte
getFillByte()
boolean
partiallyRead()
Was this a partially read block?static void
read(DocumentBlock[] blocks, byte[] buffer, int offset, int blockSize, loci.common.RandomAccessInputStream stream)
read data from an array of DocumentBlocksint
size()
Get the number of bytes read for this blockvoid
writeBlocks(OutputStream stream)
Write the storage to an OutputStream
-
-
-
Constructor Detail
-
DocumentBlock
public DocumentBlock(RawDataBlock block, int size) throws IOException
create a document block from a raw data block- Parameters:
block
- the raw data blocksize
- the block size- Throws:
IOException
-
DocumentBlock
public DocumentBlock(loci.common.RandomAccessInputStream stream, int size) throws IOException
Create a single instance initialized with data.- Parameters:
stream
- the InputStream delivering the data.- Throws:
IOException
-
-
Method Detail
-
size
public int size()
Get the number of bytes read for this block- Returns:
- bytes read into the block
-
getBigBlockSize
public int getBigBlockSize()
-
partiallyRead
public boolean partiallyRead()
Was this a partially read block?- Returns:
- true if the block was only partially filled with data
-
getFillByte
public static byte getFillByte()
- Returns:
- the fill byte used
-
convert
public static DocumentBlock[] convert(long offset, loci.common.RandomAccessInputStream stream, int numBytes, int size, int blockSize)
convert a single long array into an array of DocumentBlock instances- Parameters:
offset
- the offset into the array of blocks to read fromstream
- theRandomAccessInputStream
to read fromsize
- the intended size of the array (which may be smaller)numBytes
- the number of bytesblockSize
- the size of a big block- Returns:
- an array of DocumentBlock instances, filled from the input array
-
read
public static void read(DocumentBlock[] blocks, byte[] buffer, int offset, int blockSize, loci.common.RandomAccessInputStream stream)
read data from an array of DocumentBlocks- Parameters:
blocks
- the blocks to read frombuffer
- the buffer to write the data intooffset
- the offset into the array of blocks to read from
-
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 interfaceBlockWritable
- Parameters:
stream
- the OutputStream to which the stored data should be written- Throws:
IOException
- on problems writing to the specified stream
-
-