FileDocCategorySizeDatePackage
Stream.javaAPI DocApache Poi 3.0.13348Tue Jun 26 22:12:10 BST 2007org.apache.poi.hdgf.streams

Stream

public abstract class Stream extends Object
Base of all Streams within a HDGF document. Streams are what hold the data (the metadata of a stream is held in the pointer that points to the stream). A stream may be stored compressed or un-compressed on the disk, but that doesn't appear to change their use.

Fields Summary
private Pointer
pointer
private StreamStore
store
Constructors Summary
protected Stream(Pointer pointer, StreamStore store)
Creates a new Stream, having already used the pointer to build a store

		this.pointer = pointer;
		this.store = store;
	
Methods Summary
public int_getContentsLength()

 return store.getContents().length; 
public org.apache.poi.hdgf.streams.StreamStore_getStore()

 return store; 
public static org.apache.poi.hdgf.streams.StreamcreateStream(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.

param
pointer The Pointer to create a stream for
param
documentData The raw document data

		// 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);
	
public org.apache.poi.hdgf.pointers.PointergetPointer()

 return pointer; 
protected org.apache.poi.hdgf.streams.StreamStoregetStore()

 return store;