package org.apache.poi.hpsf; import java.io.IOException; import java.io.OutputStream; /** *

Adds writing capability to the {@link Property} class.

* *

Please be aware that this class' functionality will be merged into the * {@link Property} class at a later time, so the API will change.

* * @author Rainer Klute <klute@rainer-klute.de> * @since 2003-08-03 * @version $Id$ */ public class MutableProperty extends Property { /** *

Creates an empty property. It must be filled using the set method to * be usable.

*/ public MutableProperty() { } /** *

Creates a MutableProperty as a copy of an existing * Property.

* * @param p The property to copy. */ public MutableProperty(final Property p) { setID(p.getID()); setType(p.getType()); setValue(p.getValue()); } /** *

Sets the property's ID.

* * @param id the ID */ public void setID(final long id) { this.id = id; } /** *

Sets the property's type.

* * @param type the property's type */ public void setType(final long type) { this.type = type; } /** *

Sets the property's value.

* * @param value the property's value */ public void setValue(final Object value) { this.value = value; } /** *

Writes the property to an output stream.

* * @param out The output stream to write to. * @return the number of bytes written to the stream * * @exception IOException if an I/O error occurs * @exception WritingNotSupportedException if a variant type is to be * written that is not yet supported */ public int write(final OutputStream out) throws IOException, WritingNotSupportedException { int length = 0; long variantType = getType(); length += TypeWriter.writeUIntToStream(out, variantType); length += VariantSupport.write(out, variantType, getValue()); return length; } }