org.apache.poi.poifs.filesystem
Class POIFSDocument

java.lang.Object
  extended by org.apache.poi.poifs.filesystem.POIFSDocument
All Implemented Interfaces:
POIFSViewable, BATManaged, BlockWritable

public class POIFSDocument
extends java.lang.Object
implements BATManaged, BlockWritable, POIFSViewable

This class manages a document in the POIFS filesystem.

Author:
Marc Johnson (mjohnson at apache dot org)

Constructor Summary
POIFSDocument(java.lang.String name, java.io.InputStream stream)
          Constructor
POIFSDocument(java.lang.String name, int size, POIFSDocumentPath path, POIFSWriterListener writer)
          Constructor
POIFSDocument(java.lang.String name, ListManagedBlock[] blocks, int length)
          Constructor from small blocks
POIFSDocument(java.lang.String name, RawDataBlock[] blocks, int length)
          Constructor from large blocks
POIFSDocument(java.lang.String name, SmallDocumentBlock[] blocks, int length)
          Constructor from small blocks
 
Method Summary
 int countBlocks()
          Return the number of BigBlock's this instance uses
 java.lang.String getShortDescription()
          Provides a short description of the object, to be used when a POIFSViewable object has not provided its contents.
 int getSize()
           
 BlockWritable[] getSmallBlocks()
          return the array of SmallDocumentBlocks used
 java.lang.Object[] getViewableArray()
          Get an array of objects, some of which may implement POIFSViewable
 java.util.Iterator getViewableIterator()
          Get an Iterator of objects, some of which may implement POIFSViewable
 boolean preferArray()
          Give viewers a hint as to whether to call getViewableArray or getViewableIterator
 void setStartBlock(int index)
          Set the start block for this instance
 void writeBlocks(java.io.OutputStream stream)
          Write the storage to an OutputStream
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

POIFSDocument

public POIFSDocument(java.lang.String name,
                     RawDataBlock[] blocks,
                     int length)
              throws java.io.IOException
Constructor from large blocks

Parameters:
name - the name of the POIFSDocument
blocks - the big blocks making up the POIFSDocument
length - the actual length of the POIFSDocument
Throws:
java.io.IOException

POIFSDocument

public POIFSDocument(java.lang.String name,
                     SmallDocumentBlock[] blocks,
                     int length)
Constructor from small blocks

Parameters:
name - the name of the POIFSDocument
blocks - the small blocks making up the POIFSDocument
length - the actual length of the POIFSDocument

POIFSDocument

public POIFSDocument(java.lang.String name,
                     ListManagedBlock[] blocks,
                     int length)
              throws java.io.IOException
Constructor from small blocks

Parameters:
name - the name of the POIFSDocument
blocks - the small blocks making up the POIFSDocument
length - the actual length of the POIFSDocument
Throws:
java.io.IOException

POIFSDocument

public POIFSDocument(java.lang.String name,
                     java.io.InputStream stream)
              throws java.io.IOException
Constructor

Parameters:
name - the name of the POIFSDocument
stream - the InputStream we read data from
Throws:
java.io.IOException - thrown on read errors

POIFSDocument

public POIFSDocument(java.lang.String name,
                     int size,
                     POIFSDocumentPath path,
                     POIFSWriterListener writer)
              throws java.io.IOException
Constructor

Parameters:
name - the name of the POIFSDocument
size - the length of the POIFSDocument
path - the path of the POIFSDocument
writer - the writer who will eventually write the document contents
Throws:
java.io.IOException - thrown on read errors
Method Detail

getSmallBlocks

public BlockWritable[] getSmallBlocks()
return the array of SmallDocumentBlocks used

Returns:
array of SmallDocumentBlocks; may be empty, cannot be null

getSize

public int getSize()
Returns:
size of the document

writeBlocks

public void writeBlocks(java.io.OutputStream stream)
                 throws java.io.IOException
Write the storage to an OutputStream

Specified by:
writeBlocks in interface BlockWritable
Parameters:
stream - the OutputStream to which the stored data should be written
Throws:
java.io.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 interface BATManaged
Returns:
count of BigBlock instances

setStartBlock

public void setStartBlock(int index)
Set the start block for this instance

Specified by:
setStartBlock in interface BATManaged
Parameters:
index - index into the array of blocks making up the filesystem

getViewableArray

public java.lang.Object[] getViewableArray()
Get an array of objects, some of which may implement POIFSViewable

Specified by:
getViewableArray in interface POIFSViewable
Returns:
an array of Object; may not be null, but may be empty

getViewableIterator

public java.util.Iterator getViewableIterator()
Get an Iterator of objects, some of which may implement POIFSViewable

Specified by:
getViewableIterator in interface POIFSViewable
Returns:
an Iterator; may not be null, but may have an empty back end store

preferArray

public boolean preferArray()
Give viewers a hint as to whether to call getViewableArray or getViewableIterator

Specified by:
preferArray in interface POIFSViewable
Returns:
true if a viewer should call getViewableArray, false if a viewer should call getViewableIterator

getShortDescription

public java.lang.String getShortDescription()
Provides a short description of the object, to be used when a POIFSViewable object has not provided its contents.

Specified by:
getShortDescription in interface POIFSViewable
Returns:
short description


Copyright 2008 The Apache Software Foundation or its licensors, as applicable.