## org.apache.poi.hpsf
Class MutablePropertySet

    java.lang.Object
      org.apache.poi.hpsf.PropertySet
          org.apache.poi.hpsf.MutablePropertySet

Direct Known Subclasses:
  SpecialPropertySet

    public class MutablePropertySet

extends PropertySet

Adds writing support to the `PropertySet` class.

Please be aware that this class' functionality will be merged into the `PropertySet` class at a later time, so the API will change.

Author:
  Rainer Klute <klute@rainer-klute.de>

Field Summary

Fields inherited from class org.apache.poi.hpsf.PropertySet
`byteOrder, classID, format, OS_MACINTOSH, OS_WIN16, OS_WIN32, osVersion, sections`

Constructor Summary
`MutablePropertySet()` Constructs a `MutablePropertySet` instance.
`MutablePropertySet(PropertySet ps)` Constructs a `MutablePropertySet` by doing a deep copy of an existing `PropertySet`.

Method Summary
`void` `addSection(Section section)` Adds a section to this property set.
`void` `clearSections()` Removes all sections from this property set.
`void` `setByteOrder(int byteOrder)` Sets the "byteOrder" property.
`void` `setClassID(ClassID classID)` Sets the property set stream's low-level "class ID" field.
`void` `setFormat(int format)` Sets the "format" property.
`void` `setOSVersion(int osVersion)` Sets the "osVersion" property.
`java.io.InputStream` `toInputStream()` Returns the contents of this property set stream as an input stream.
`void` `write(DirectoryEntry dir, java.lang.String name)` Writes a property set to a document in a POI filesystem directory.
`void` `write(java.io.OutputStream out)` Writes the property set to an output stream.

Methods inherited from class org.apache.poi.hpsf.PropertySet
`equals, getByteOrder, getClassID, getFirstSection, getFormat, getOSVersion, getProperties, getProperty, getPropertyBooleanValue, getPropertyIntValue, getSectionCount, getSections, getSingleSection, hashCode, isDocumentSummaryInformation, isPropertySetStream, isPropertySetStream, isSummaryInformation, toString, wasNull`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### MutablePropertySet

    public MutablePropertySet()

  Constructs a `MutablePropertySet` instance. Its primary task is to initialize the immutable field with their proper values. It also sets fields that might change to reasonable defaults.

### MutablePropertySet

    public MutablePropertySet(PropertySet ps)

  Constructs a `MutablePropertySet` by doing a deep copy of an existing `PropertySet`. All nested elements, i.e. `Section`s and `Property` instances, will be their mutable counterparts in the new `MutablePropertySet`.

  Parameters:
    `ps` - The property set to copy

Method Detail

### setByteOrder

    public void setByteOrder(int byteOrder)

  Sets the "byteOrder" property.

  Parameters:
    `byteOrder` - the byteOrder value to set

### setFormat

    public void setFormat(int format)

  Sets the "format" property.

  Parameters:
    `format` - the format value to set

### setOSVersion

    public void setOSVersion(int osVersion)

  Sets the "osVersion" property.

  Parameters:
    `osVersion` - the osVersion value to set

### setClassID

    public void setClassID(ClassID classID)

  Sets the property set stream's low-level "class ID" field.

  Parameters:
    `classID` - The property set stream's low-level "class ID" field.
  See Also:
    `PropertySet.getClassID()`

### clearSections

    public void clearSections()

  Removes all sections from this property set.

### addSection

    public void addSection(Section section)

  Adds a section to this property set.

  Parameters:
    `section` - The `Section` to add. It will be appended after any sections that are already present in the property set and thus become the last section.

### write

    public void write(java.io.OutputStream out)
               throws WritingNotSupportedException,
                      java.io.IOException

  Writes the property set to an output stream.

  Parameters:
    `out` - the output stream to write the section to
  Throws:
    `java.io.IOException` - if an error when writing to the output stream occurs
    `WritingNotSupportedException` - if HPSF does not yet support writing a property's variant type.

### toInputStream

    public java.io.InputStream toInputStream()
                                      throws java.io.IOException,
                                             WritingNotSupportedException

  Returns the contents of this property set stream as an input stream. The latter can be used for example to write the property set into a POIFS document. The input stream represents a snapshot of the property set. If the latter is modified while the input stream is still being read, the modifications will not be reflected in the input stream but in the `MutablePropertySet` only.

  Returns:
    the contents of this property set stream
  Throws:
    `WritingNotSupportedException` - if HPSF does not yet support writing of a property's variant type.
    `java.io.IOException` - if an I/O exception occurs.

### write

    public void write(DirectoryEntry dir,
                      java.lang.String name)
               throws WritingNotSupportedException,
                      java.io.IOException

  Writes a property set to a document in a POI filesystem directory.

  Parameters:
    `dir` - The directory in the POI filesystem to write the document to.
    `name` - The document's name. If there is already a document with the same name in the directory the latter will be overwritten.
  Throws:
    `WritingNotSupportedException`
    `java.io.IOException`

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