org.apache.poi.hpsf

## Class SummaryInformation

- java.lang.Object
- - org.apache.poi.hpsf.PropertySet
  - - org.apache.poi.hpsf.SummaryInformation

-     public final class SummaryInformation
      extends PropertySet

  Convenience class representing a Summary Information stream in a Microsoft Office document.
  See Also:
    `DocumentSummaryInformation`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `DEFAULT_STREAM_NAME` The document name a summary information stream usually has in a POIFS filesystem.
    `static ClassID` | `FORMAT_ID` The SummaryInformation's section's format ID.

    - ### Fields inherited from class org.apache.poi.hpsf.PropertySet

      `OS_MACINTOSH, OS_WIN16, OS_WIN32`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SummaryInformation()` Creates an empty `SummaryInformation`.
    `SummaryInformation(java.io.InputStream stream)` Creates a `SummaryInformation` instance from an `InputStream` in the Horrible Property Set Format.
    `SummaryInformation(PropertySet ps)` Creates a `SummaryInformation` from a given `PropertySet`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getApplicationName()` Returns the application name (or `null`).
    `java.lang.String` | `getAuthor()` Returns the author (or `null`).
    `int` | `getCharCount()` Returns the character count or 0 if the `SummaryInformation` does not contain a char count.
    `java.lang.String` | `getComments()` Returns the comments (or `null`).
    `java.util.Date` | `getCreateDateTime()` Returns the creation time (or `null`).
    `long` | `getEditTime()` Returns the total time spent in editing the document (or `0`).
    `java.lang.String` | `getKeywords()` Returns the keywords (or `null`).
    `java.lang.String` | `getLastAuthor()` Returns the last author (or `null`).
    `java.util.Date` | `getLastPrinted()` Returns the last printed time (or `null`).
    `java.util.Date` | `getLastSaveDateTime()` Returns the last save time (or `null`).
    `int` | `getPageCount()` Returns the page count or 0 if the `SummaryInformation` does not contain a page count.
    `PropertyIDMap` | `getPropertySetIDMap()` The id to name mapping of the properties in this set.
    `java.lang.String` | `getRevNumber()` Returns the revision number (or `null`).
    `int` | `getSecurity()` Returns a security code which is one of the following values: 0 if the `SummaryInformation` does not contain a security field or if there is no security on the document.
    `java.lang.String` | `getSubject()` Returns the subject (or `null`).
    `java.lang.String` | `getTemplate()` Returns the template (or `null`).
    `byte[]` | `getThumbnail()` Returns the thumbnail (or `null`) when this method is implemented.
    `Thumbnail` | `getThumbnailThumbnail()` Returns the thumbnail (or `null`), processed as an object which is (largely) able to unpack the thumbnail image data.
    `java.lang.String` | `getTitle()`
    `int` | `getWordCount()` Returns the word count or 0 if the `SummaryInformation` does not contain a word count.
    `void` | `removeApplicationName()` Removes the application name.
    `void` | `removeAuthor()` Removes the author.
    `void` | `removeCharCount()` Removes the character count.
    `void` | `removeComments()` Removes the comments.
    `void` | `removeCreateDateTime()` Removes the creation time.
    `void` | `removeEditTime()` Remove the total time spent in editing the document.
    `void` | `removeKeywords()` Removes the keywords.
    `void` | `removeLastAuthor()` Removes the last author.
    `void` | `removeLastPrinted()` Removes the lastPrinted.
    `void` | `removeLastSaveDateTime()` Remove the total time spent in editing the document.
    `void` | `removePageCount()` Removes the page count.
    `void` | `removeRevNumber()` Removes the revision number.
    `void` | `removeSecurity()` Removes the security code.
    `void` | `removeSubject()` Removes the subject.
    `void` | `removeTemplate()` Removes the template.
    `void` | `removeThumbnail()` Removes the thumbnail.
    `void` | `removeTitle()` Removes the title.
    `void` | `removeWordCount()` Removes the word count.
    `void` | `setApplicationName(java.lang.String applicationName)` Sets the application name.
    `void` | `setAuthor(java.lang.String author)` Sets the author.
    `void` | `setCharCount(int charCount)` Sets the character count.
    `void` | `setComments(java.lang.String comments)` Sets the comments.
    `void` | `setCreateDateTime(java.util.Date createDateTime)` Sets the creation time.
    `void` | `setEditTime(long time)` Sets the total time spent in editing the document.
    `void` | `setKeywords(java.lang.String keywords)` Sets the keywords.
    `void` | `setLastAuthor(java.lang.String lastAuthor)` Sets the last author.
    `void` | `setLastPrinted(java.util.Date lastPrinted)` Sets the lastPrinted.
    `void` | `setLastSaveDateTime(java.util.Date time)` Sets the total time spent in editing the document.
    `void` | `setPageCount(int pageCount)` Sets the page count.
    `void` | `setRevNumber(java.lang.String revNumber)` Sets the revision number.
    `void` | `setSecurity(int security)` Sets the security code.
    `void` | `setSubject(java.lang.String subject)` Sets the subject.
    `void` | `setTemplate(java.lang.String template)` Sets the template.
    `void` | `setThumbnail(byte[] thumbnail)` Sets the thumbnail.
    `void` | `setTitle(java.lang.String title)` Sets the title.
    `void` | `setWordCount(int wordCount)` Sets the word count.

    - ### Methods inherited from class org.apache.poi.hpsf.PropertySet

      `addSection, clearSections, equals, getByteOrder, getClassID, getFirstSection, getFormat, getOSVersion, getProperties, getProperty, getPropertyStringValue, getSectionCount, getSections, getSingleSection, hashCode, isDocumentSummaryInformation, isPropertySetStream, isPropertySetStream, isSummaryInformation, setByteOrder, setClassID, setFormat, setOSVersion, toInputStream, toString, wasNull, write, write`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_STREAM_NAME

          public static final java.lang.String DEFAULT_STREAM_NAME

      The document name a summary information stream usually has in a POIFS filesystem.
      See Also:
        Constant Field Values

    - #### FORMAT_ID

          public static final ClassID FORMAT_ID

      The SummaryInformation's section's format ID.

  - ### Constructor Detail

    - #### SummaryInformation

          public SummaryInformation()

      Creates an empty `SummaryInformation`.

    - #### SummaryInformation

          public SummaryInformation(PropertySet ps)
                             throws UnexpectedPropertySetTypeException

      Creates a `SummaryInformation` from a given `PropertySet`.
      Parameters:
        `ps` - A property set which should be created from a summary information stream.
      Throws:
        `UnexpectedPropertySetTypeException` - if `ps` does not contain a summary information stream.

    - #### SummaryInformation

          public SummaryInformation(java.io.InputStream stream)
                             throws NoPropertySetStreamException,
                                    MarkUnsupportedException,
                                    java.io.IOException,
                                    java.io.UnsupportedEncodingException

      Creates a `SummaryInformation` instance from an `InputStream` in the Horrible Property Set Format.

      The constructor reads the first few bytes from the stream and determines whether it is really a property set stream. If it is, it parses the rest of the stream. If it is not, it resets the stream to its beginning in order to let other components mess around with the data and throws an exception.

      Parameters:
        `stream` - Holds the data making out the property set stream.
      Throws:
        `MarkUnsupportedException` - if the stream does not support the `InputStream.markSupported()` method.
        `java.io.IOException` - if the `InputStream` cannot be accessed as needed.
        `NoPropertySetStreamException` - if the input stream does not contain a property set.
        `java.io.UnsupportedEncodingException` - if a character encoding is not supported.

  - ### Method Detail

    - #### getPropertySetIDMap

          public PropertyIDMap getPropertySetIDMap()

      Description copied from class: `PropertySet`
      The id to name mapping of the properties in this set.
      Overrides:
        `getPropertySetIDMap` in class `PropertySet`
      Returns:
        the id to name mapping of the properties in this set or `null` if not applicable

    - #### getTitle

          public java.lang.String getTitle()

      Returns:
        The title or `null`

    - #### setTitle

          public void setTitle(java.lang.String title)

      Sets the title.
      Parameters:
        `title` - The title to set.

    - #### removeTitle

          public void removeTitle()

      Removes the title.

    - #### getSubject

          public java.lang.String getSubject()

      Returns the subject (or `null`).
      Returns:
        The subject or `null`

    - #### setSubject

          public void setSubject(java.lang.String subject)

      Sets the subject.
      Parameters:
        `subject` - The subject to set.

    - #### removeSubject

          public void removeSubject()

      Removes the subject.

    - #### getAuthor

          public java.lang.String getAuthor()

      Returns the author (or `null`).
      Returns:
        The author or `null`

    - #### setAuthor

          public void setAuthor(java.lang.String author)

      Sets the author.
      Parameters:
        `author` - The author to set.

    - #### removeAuthor

          public void removeAuthor()

      Removes the author.

    - #### getKeywords

          public java.lang.String getKeywords()

      Returns the keywords (or `null`).
      Returns:
        The keywords or `null`

    - #### setKeywords

          public void setKeywords(java.lang.String keywords)

      Sets the keywords.
      Parameters:
        `keywords` - The keywords to set.

    - #### removeKeywords

          public void removeKeywords()

      Removes the keywords.

    - #### getComments

          public java.lang.String getComments()

      Returns the comments (or `null`).
      Returns:
        The comments or `null`

    - #### setComments

          public void setComments(java.lang.String comments)

      Sets the comments.
      Parameters:
        `comments` - The comments to set.

    - #### removeComments

          public void removeComments()

      Removes the comments.

    - #### getTemplate

          public java.lang.String getTemplate()

      Returns the template (or `null`).
      Returns:
        The template or `null`

    - #### setTemplate

          public void setTemplate(java.lang.String template)

      Sets the template.
      Parameters:
        `template` - The template to set.

    - #### removeTemplate

          public void removeTemplate()

      Removes the template.

    - #### getLastAuthor

          public java.lang.String getLastAuthor()

      Returns the last author (or `null`).
      Returns:
        The last author or `null`

    - #### setLastAuthor

          public void setLastAuthor(java.lang.String lastAuthor)

      Sets the last author.
      Parameters:
        `lastAuthor` - The last author to set.

    - #### removeLastAuthor

          public void removeLastAuthor()

      Removes the last author.

    - #### getRevNumber

          public java.lang.String getRevNumber()

      Returns the revision number (or `null`).
      Returns:
        The revision number or `null`

    - #### setRevNumber

          public void setRevNumber(java.lang.String revNumber)

      Sets the revision number.
      Parameters:
        `revNumber` - The revision number to set.

    - #### removeRevNumber

          public void removeRevNumber()

      Removes the revision number.

    - #### getEditTime

          public long getEditTime()

      Returns the total time spent in editing the document (or `0`).
      Returns:
        The total time spent in editing the document or 0 if the `SummaryInformation` does not contain this information.

    - #### setEditTime

          public void setEditTime(long time)

      Sets the total time spent in editing the document.
      Parameters:
        `time` - The time to set.

    - #### removeEditTime

          public void removeEditTime()

      Remove the total time spent in editing the document.

    - #### getLastPrinted

          public java.util.Date getLastPrinted()

      Returns the last printed time (or `null`).
      Returns:
        The last printed time or `null`

    - #### setLastPrinted

          public void setLastPrinted(java.util.Date lastPrinted)

      Sets the lastPrinted.
      Parameters:
        `lastPrinted` - The lastPrinted to set.

    - #### removeLastPrinted

          public void removeLastPrinted()

      Removes the lastPrinted.

    - #### getCreateDateTime

          public java.util.Date getCreateDateTime()

      Returns the creation time (or `null`).
      Returns:
        The creation time or `null`

    - #### setCreateDateTime

          public void setCreateDateTime(java.util.Date createDateTime)

      Sets the creation time.
      Parameters:
        `createDateTime` - The creation time to set.

    - #### removeCreateDateTime

          public void removeCreateDateTime()

      Removes the creation time.

    - #### getLastSaveDateTime

          public java.util.Date getLastSaveDateTime()

      Returns the last save time (or `null`).
      Returns:
        The last save time or `null`

    - #### setLastSaveDateTime

          public void setLastSaveDateTime(java.util.Date time)

      Sets the total time spent in editing the document.
      Parameters:
        `time` - The time to set.

    - #### removeLastSaveDateTime

          public void removeLastSaveDateTime()

      Remove the total time spent in editing the document.

    - #### getPageCount

          public int getPageCount()

      Returns the page count or 0 if the `SummaryInformation` does not contain a page count.
      Returns:
        The page count or 0 if the `SummaryInformation` does not contain a page count.

    - #### setPageCount

          public void setPageCount(int pageCount)

      Sets the page count.
      Parameters:
        `pageCount` - The page count to set.

    - #### removePageCount

          public void removePageCount()

      Removes the page count.

    - #### getWordCount

          public int getWordCount()

      Returns the word count or 0 if the `SummaryInformation` does not contain a word count.
      Returns:
        The word count or `null`

    - #### setWordCount

          public void setWordCount(int wordCount)

      Sets the word count.
      Parameters:
        `wordCount` - The word count to set.

    - #### removeWordCount

          public void removeWordCount()

      Removes the word count.

    - #### getCharCount

          public int getCharCount()

      Returns the character count or 0 if the `SummaryInformation` does not contain a char count.
      Returns:
        The character count or `null`

    - #### setCharCount

          public void setCharCount(int charCount)

      Sets the character count.
      Parameters:
        `charCount` - The character count to set.

    - #### removeCharCount

          public void removeCharCount()

      Removes the character count.

    - #### getThumbnail

          public byte[] getThumbnail()

      Returns the thumbnail (or `null`) when this method is implemented. Please note that the return type is likely to change!

      To process this data, you may wish to make use of the `Thumbnail` class. The raw data is generally an image in WMF or Clipboard (BMP?) format

      Returns:
        The thumbnail or `null`

    - #### getThumbnailThumbnail

          public Thumbnail getThumbnailThumbnail()

      Returns the thumbnail (or `null`), processed as an object which is (largely) able to unpack the thumbnail image data.
      Returns:
        The thumbnail or `null`

    - #### setThumbnail

          public void setThumbnail(byte[] thumbnail)

      Sets the thumbnail.
      Parameters:
        `thumbnail` - The thumbnail to set.

    - #### removeThumbnail

          public void removeThumbnail()

      Removes the thumbnail.

    - #### getApplicationName

          public java.lang.String getApplicationName()

      Returns the application name (or `null`).
      Returns:
        The application name or `null`

    - #### setApplicationName

          public void setApplicationName(java.lang.String applicationName)

      Sets the application name.
      Parameters:
        `applicationName` - The application name to set.

    - #### removeApplicationName

          public void removeApplicationName()

      Removes the application name.

    - #### getSecurity

          public int getSecurity()

      Returns a security code which is one of the following values:
      - 0 if the `SummaryInformation` does not contain a security field or if there is no security on the document. Use `PropertySet.wasNull()` to distinguish between the two cases!
      - 1 if the document is password protected
      - 2 if the document is read-only recommended
      - 4 if the document is read-only enforced
      - 8 if the document is locked for annotations
      Returns:
        The security code or `null`

    - #### setSecurity

          public void setSecurity(int security)

      Sets the security code.
      Parameters:
        `security` - The security code to set.

    - #### removeSecurity

          public void removeSecurity()

      Removes the security code.

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