Class CompoundDocument

java.lang.Object
com.twelvemonkeys.io.ole2.CompoundDocument
All Implemented Interfaces:
AutoCloseable

public final class CompoundDocument extends Object implements AutoCloseable
Represents a read-only OLE2 compound document.

NOTE: This class is not synchronized. Accessing the document or its entries from different threads, will need synchronization on the document instance.

Version:
$Id: //depot/branches/personal/haraldk/twelvemonkeys/release-2/twelvemonkeys-core/src/main/java/com/twelvemonkeys/io/ole2/CompoundDocument.java#4 $
Author:
Harald Kuhr, last modified by $Author: haku $
  • Field Details

    • HEADER_SIZE

      public static final int HEADER_SIZE
      See Also:
    • EPOCH_OFFSET

      public static final long EPOCH_OFFSET
      The epoch offset of CompoundDocument time stamps
      See Also:
  • Constructor Details

    • CompoundDocument

      public CompoundDocument(File file) throws IOException
      Creates a (for now) read only CompoundDocument.

      Warning! You must invoke close() on the compound document created from this constructor when done, to avoid leaking file descriptors.

      Parameters:
      file - the file to read from
      Throws:
      IOException - if an I/O exception occurs while reading the header
    • CompoundDocument

      public CompoundDocument(InputStream pInput) throws IOException
      Creates a read only CompoundDocument.
      Parameters:
      pInput - the input to read from.
      Throws:
      IOException - if an I/O exception occurs while reading the header
    • CompoundDocument

      public CompoundDocument(ImageInputStream input) throws IOException
      Creates a read only CompoundDocument.
      Parameters:
      input - the input to read from
      Throws:
      IOException - if an I/O exception occurs while reading the header
  • Method Details

    • close

      public void close() throws IOException
      This method will close the underlying RandomAccessFile if any, but will leave any stream created outside the document open.
      Specified by:
      close in interface AutoCloseable
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • canRead

      public static boolean canRead(DataInput pInput)
    • getRootEntry

      public Entry getRootEntry() throws IOException
      Throws:
      IOException
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toJavaTimeInMillis

      public static long toJavaTimeInMillis(long pMSTime)
      Converts the given time stamp to standard Java time representation, milliseconds since January 1, 1970. The time stamp parameter is assumed to be in units of 100 nano seconds since January 1, 1601.

      If the timestamp is 0L (meaning not specified), no conversion is done, to behave like java.io.File.

      Parameters:
      pMSTime - an unsigned long value representing the time stamp (in units of 100 nano seconds since January 1, 1601).
      Returns:
      the time stamp converted to Java time stamp in milliseconds, or 0L if pMSTime == 0L