org.apache.poi.poifs.storage
Class SmallDocumentBlock
- java.lang.Object
-
- org.apache.poi.poifs.storage.SmallDocumentBlock
-
- All Implemented Interfaces:
- BlockWritable, ListManagedBlock
public final class SmallDocumentBlock extends java.lang.Object implements BlockWritable, ListManagedBlock
Storage for documents that are too small to use regular DocumentBlocks for their data
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description static intcalcSize(int size)Calculate the storage size of a set of SmallDocumentBlocksstatic SmallDocumentBlock[]convert(POIFSBigBlockSize bigBlockSize, BlockWritable[] store, int size)Factory for creating SmallDocumentBlocks from DocumentBlocksstatic SmallDocumentBlock[]convert(POIFSBigBlockSize bigBlockSize, byte[] array, int size)convert a single long array into an array of SmallDocumentBlock instancesstatic java.util.Listextract(POIFSBigBlockSize bigBlockSize, ListManagedBlock[] blocks)create a list of SmallDocumentBlock's from raw datastatic intfill(POIFSBigBlockSize bigBlockSize, java.util.List blocks)fill out a List of SmallDocumentBlocks so that it fully occupies a set of big blocksPOIFSBigBlockSizegetBigBlockSize()byte[]getData()Get the data from the blockstatic DataInputBlockgetDataInputBlock(SmallDocumentBlock[] blocks, int offset)voidwriteBlocks(java.io.OutputStream stream)Write the storage to an OutputStream
-
-
-
Method Detail
-
convert
public static SmallDocumentBlock[] convert(POIFSBigBlockSize bigBlockSize, byte[] array, int size)
convert a single long array into an array of SmallDocumentBlock instances- Parameters:
array- the byte array to be convertedsize- the intended size of the array (which may be smaller)- Returns:
- an array of SmallDocumentBlock instances, filled from the array
-
fill
public static int fill(POIFSBigBlockSize bigBlockSize, java.util.List blocks)
fill out a List of SmallDocumentBlocks so that it fully occupies a set of big blocks- Parameters:
blocks- the List to be filled out- Returns:
- number of big blocks the list encompasses
-
convert
public static SmallDocumentBlock[] convert(POIFSBigBlockSize bigBlockSize, BlockWritable[] store, int size) throws java.io.IOException, java.lang.ArrayIndexOutOfBoundsException
Factory for creating SmallDocumentBlocks from DocumentBlocks- Parameters:
store- the original DocumentBlockssize- the total document size- Returns:
- an array of new SmallDocumentBlocks instances
- Throws:
java.io.IOException- on errors reading from the DocumentBlocksjava.lang.ArrayIndexOutOfBoundsException- if, somehow, the store contains less data than size indicates
-
extract
public static java.util.List extract(POIFSBigBlockSize bigBlockSize, ListManagedBlock[] blocks) throws java.io.IOException
create a list of SmallDocumentBlock's from raw data- Parameters:
blocks- the raw data containing the SmallDocumentBlock data- Returns:
- a List of SmallDocumentBlock's extracted from the input
- Throws:
java.io.IOException
-
getDataInputBlock
public static DataInputBlock getDataInputBlock(SmallDocumentBlock[] blocks, int offset)
-
calcSize
public static int calcSize(int size)
Calculate the storage size of a set of SmallDocumentBlocks- Parameters:
size- number of SmallDocumentBlocks- Returns:
- total size
-
writeBlocks
public void writeBlocks(java.io.OutputStream stream) throws java.io.IOExceptionWrite the storage to an OutputStream- Specified by:
writeBlocksin interfaceBlockWritable- Parameters:
stream- the OutputStream to which the stored data should be written- Throws:
java.io.IOException- on problems writing to the specified stream
-
getData
public byte[] getData()
Get the data from the block- Specified by:
getDatain interfaceListManagedBlock- Returns:
- the block's data as a byte array
- Throws:
java.io.IOException- if there is no data
-
getBigBlockSize
public POIFSBigBlockSize getBigBlockSize()
-
-
DataMelt 3.0 © DataMelt by jWork.ORG