public static org.apache.poi.hdgf.streams.Stream | createStream(org.apache.poi.hdgf.pointers.Pointer pointer, byte[] documentData, org.apache.poi.hdgf.chunks.ChunkFactory chunkFactory, org.apache.poi.hdgf.pointers.PointerFactory pointerFactory)Uses the pointer to locate a Stream within the document
data, and creates it.
// Create the store
StreamStore store;
if(pointer.destinationCompressed()) {
try {
store = new CompressedStreamStore(
documentData, pointer.getOffset(), pointer.getLength()
);
} catch(IOException e) {
// Should never occur
throw new HDGFException(e);
}
} else {
store = new StreamStore(
documentData, pointer.getOffset(), pointer.getLength()
);
}
// Figure out what sort of Stream to create, create and return it
if(pointer.getType() == 20) {
return new TrailerStream(pointer, store, chunkFactory, pointerFactory);
}
else if(pointer.destinationHasPointers()) {
return new PointerContainingStream(pointer, store, chunkFactory, pointerFactory);
}
else if(pointer.destinationHasChunks()) {
return new ChunkStream(pointer, store, chunkFactory);
}
else if(pointer.destinationHasStrings()) {
return new StringsStream(pointer, store, chunkFactory);
}
// Give up and return a generic one
return new UnknownStream(pointer, store);
|