|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.apache.poi.hpsf.PropertySet
public class PropertySet
Represents a property set in the Horrible Property Set Format (HPSF). These are usually metadata of a Microsoft Office document.
An application that wants to access these metadata should create
an instance of this class or one of its subclasses by calling the
factory method PropertySetFactory.create(org.apache.poi.poifs.filesystem.DirectoryEntry, java.lang.String) and then retrieve
the information its needs by calling appropriate methods.
PropertySetFactory.create(org.apache.poi.poifs.filesystem.DirectoryEntry, java.lang.String) does its work by calling one
of the constructors PropertySet(InputStream) or
PropertySet(byte[]). If the constructor's
argument is not in the Horrible Property Set Format, i.e. not a
property set stream, or if any other error occurs, an appropriate
exception is thrown.
A PropertySet has a list of Sections, and each
Section has a Property array. Use getSections() to retrieve the Sections, then call Section.getProperties() for each Section to get hold of the
Property arrays.
Since the vast majority of PropertySets contains only a single
Section, the convenience method getProperties() returns
the properties of a PropertySet's Section (throwing a
NoSingleSectionException if the PropertySet contains
more (or less) than exactly one Section).
| Field Summary | |
|---|---|
static int |
OS_MACINTOSH
If the OS version field holds this value the property set stream was created on a Macintosh system. |
static int |
OS_WIN16
If the OS version field holds this value the property set stream was created on a 16-bit Windows system. |
static int |
OS_WIN32
If the OS version field holds this value the property set stream was created on a 32-bit Windows system. |
| Constructor Summary | |
|---|---|
PropertySet()
Constructs a PropertySet instance. |
|
PropertySet(byte[] stream)
Creates a PropertySet instance from a byte array
that represents a stream in the Horrible Property Set Format. |
|
PropertySet(byte[] stream,
int offset,
int length)
Creates a PropertySet instance from a byte array that
represents a stream in the Horrible Property Set Format. |
|
PropertySet(java.io.InputStream stream)
Creates a PropertySet instance from an InputStream in the Horrible Property Set Format. |
|
PropertySet(PropertySet ps)
Constructs a PropertySet 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. |
boolean |
equals(java.lang.Object o)
Returns true if the PropertySet is equal
to the specified parameter, else false. |
int |
getByteOrder()
|
ClassID |
getClassID()
|
Section |
getFirstSection()
Gets the PropertySet's first section. |
int |
getFormat()
|
int |
getOSVersion()
|
Property[] |
getProperties()
Convenience method returning the Property array contained in this
property set. |
protected java.lang.Object |
getProperty(int id)
Convenience method returning the value of the property with the specified ID. |
protected boolean |
getPropertyBooleanValue(int id)
Convenience method returning the value of a boolean property with the specified ID. |
protected int |
getPropertyIntValue(int id)
Convenience method returning the value of the numeric property with the specified ID. |
PropertyIDMap |
getPropertySetIDMap()
The id to name mapping of the properties in this set. |
protected java.lang.String |
getPropertyStringValue(int propertyId)
Fetches the property with the given ID, then does its best to return it as a String |
static java.lang.String |
getPropertyStringValue(java.lang.Object propertyValue)
Return the string representation of a property value |
int |
getSectionCount()
|
java.util.List<Section> |
getSections()
|
Section |
getSingleSection()
If the PropertySet has only a single section this method returns it. |
int |
hashCode()
|
boolean |
isDocumentSummaryInformation()
Checks whether this PropertySet is a Document Summary Information. |
static boolean |
isPropertySetStream(byte[] src,
int offset,
int length)
Checks whether a byte array is in the Horrible Property Set Format. |
static boolean |
isPropertySetStream(java.io.InputStream stream)
Checks whether an InputStream is in the Horrible
Property Set Format. |
boolean |
isSummaryInformation()
Checks whether this PropertySet represents a Summary Information. |
protected void |
remove1stProperty(long id)
|
protected void |
set1stProperty(long id,
boolean value)
|
protected void |
set1stProperty(long id,
byte[] value)
|
protected void |
set1stProperty(long id,
int value)
|
protected void |
set1stProperty(long id,
java.lang.String value)
|
void |
setByteOrder(int byteOrder)
Returns the property set stream's low-level "byte order" field. |
void |
setClassID(ClassID classID)
Sets the property set stream's low-level "class ID" field. |
void |
setFormat(int format)
Sets the property set stream's low-level "format" field. |
void |
setOSVersion(int osVersion)
Sets the property set stream's low-level "OS version" field. |
java.io.InputStream |
toInputStream()
Returns the contents of this property set stream as an input stream. |
java.lang.String |
toString()
|
boolean |
wasNull()
Checks whether the property which the last call to getPropertyIntValue(int) or getProperty(int) tried to access
was available or not. |
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 java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final int OS_WIN16
public static final int OS_MACINTOSH
public static final int OS_WIN32
| Constructor Detail |
|---|
public PropertySet()
PropertySet instance. Its
primary task is to initialize the field with their proper values.
It also sets fields that might change to reasonable defaults.
public PropertySet(java.io.InputStream stream)
throws NoPropertySetStreamException,
MarkUnsupportedException,
java.io.IOException,
java.io.UnsupportedEncodingException
PropertySet 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.
stream - Holds the data making out the property set
stream.
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.
public PropertySet(byte[] stream,
int offset,
int length)
throws NoPropertySetStreamException,
java.io.UnsupportedEncodingException
PropertySet instance from a byte array that
represents a stream in the Horrible Property Set Format.
stream - The byte array holding the stream data.offset - The offset in stream where the stream
data begin. If the stream data begin with the first byte in the
array, the offset is 0.length - The length of the stream data.
NoPropertySetStreamException - if the byte array is not a
property set stream.
java.io.UnsupportedEncodingException - if the codepage is not supported.
public PropertySet(byte[] stream)
throws NoPropertySetStreamException,
java.io.UnsupportedEncodingException
PropertySet instance from a byte array
that represents a stream in the Horrible Property Set Format.
stream - The byte array holding the stream data. The
complete byte array contents is the stream data.
NoPropertySetStreamException - if the byte array is not a
property set stream.
java.io.UnsupportedEncodingException - if the codepage is not supported.public PropertySet(PropertySet ps)
PropertySet by doing a deep copy of
an existing PropertySet. All nested elements, i.e.
Sections and Property instances, will be their
counterparts in the new PropertySet.
ps - The property set to copy| Method Detail |
|---|
public int getByteOrder()
0xFFFE.public void setByteOrder(int byteOrder)
byteOrder - The property set stream's low-level "byte order" field.public int getFormat()
0x0000.public void setFormat(int format)
format - The property set stream's low-level "format" field.public int getOSVersion()
public void setOSVersion(int osVersion)
osVersion - The property set stream's low-level "OS version" field.public ClassID getClassID()
public void setClassID(ClassID classID)
classID - The property set stream's low-level "class ID" field.public int getSectionCount()
Sections in the property set.public java.util.List<Section> getSections()
Sections in the property set.public void addSection(Section section)
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.public void clearSections()
public PropertyIDMap getPropertySetIDMap()
null if not applicable
public static boolean isPropertySetStream(java.io.InputStream stream)
throws MarkUnsupportedException,
java.io.IOException
InputStream is in the Horrible
Property Set Format.
stream - The InputStream to check. In order to
perform the check, the method reads the first bytes from the
stream. After reading, the stream is reset to the position it
had before reading. The InputStream must support the
InputStream.mark(int) method.
true if the stream is a property set
stream, else false.
MarkUnsupportedException - if the InputStream
does not support the InputStream.mark(int) method.
java.io.IOException - if an I/O error occurs
public static boolean isPropertySetStream(byte[] src,
int offset,
int length)
src - The byte array to check.offset - The offset in the byte array.length - The significant number of bytes in the byte
array. Only this number of bytes will be checked.
true if the byte array is a property set
stream, false if not.
public void write(java.io.OutputStream out)
throws WritingNotSupportedException,
java.io.IOException
out - the output stream to write the section to
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.
public void write(DirectoryEntry dir,
java.lang.String name)
throws WritingNotSupportedException,
java.io.IOException
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.
WritingNotSupportedException - if the filesystem doesn't support writing
java.io.IOException - if the old entry can't be deleted or the new entry be written
public java.io.InputStream toInputStream()
throws java.io.IOException,
WritingNotSupportedException
MutablePropertySet only.
WritingNotSupportedException - if HPSF does not yet support writing
of a property's variant type.
java.io.IOException - if an I/O exception occurs.protected java.lang.String getPropertyStringValue(int propertyId)
propertyId - the property id
public static java.lang.String getPropertyStringValue(java.lang.Object propertyValue)
propertyValue - the property value
public boolean isSummaryInformation()
PropertySet represents a Summary Information.
true if this PropertySet
represents a Summary Information, else false.public boolean isDocumentSummaryInformation()
PropertySet is a Document Summary Information.
true if this PropertySet
represents a Document Summary Information, else false.
public Property[] getProperties()
throws NoSingleSectionException
Property array contained in this
property set. It is a shortcut for getting he PropertySet's
Sections list and then getting the Property array from the
first Section.
Section of this
PropertySet.
NoSingleSectionException - if the PropertySet has
more or less than one Section.
protected java.lang.Object getProperty(int id)
throws NoSingleSectionException
null is returned and a subsequent
call to wasNull() will return true.
id - The property ID
NoSingleSectionException - if the PropertySet has
more or less than one Section.
protected boolean getPropertyBooleanValue(int id)
throws NoSingleSectionException
false is returned.
A subsequent call to wasNull() will return true to let the
caller distinguish that case from a real property value of false.
id - The property ID
NoSingleSectionException - if the PropertySet has
more or less than one Section.
protected int getPropertyIntValue(int id)
throws NoSingleSectionException
wasNull()
will return true to let the caller distinguish
that case from a real property value of 0.
id - The property ID
NoSingleSectionException - if the PropertySet has
more or less than one Section.
public boolean wasNull()
throws NoSingleSectionException
getPropertyIntValue(int) or getProperty(int) tried to access
was available or not. This information might be important for
callers of getPropertyIntValue(int) since the latter
returns 0 if the property does not exist. Using wasNull(), the caller can distiguish this case from a
property's real value of 0.
true if the last call to getPropertyIntValue(int) or getProperty(int) tried to access a
property that was not available, else false.
NoSingleSectionException - if the PropertySet has
more than one Section.public Section getFirstSection()
PropertySet's first section.
PropertySet's first section.public Section getSingleSection()
PropertySet has only a single section this method returns it.
public boolean equals(java.lang.Object o)
true if the PropertySet is equal
to the specified parameter, else false.
equals in class java.lang.Objecto - the object to compare this PropertySet with
true if the objects are equal, false
if not@NotImplemented public int hashCode()
hashCode in class java.lang.ObjectObject.hashCode()public java.lang.String toString()
toString in class java.lang.ObjectObject.toString()protected void remove1stProperty(long id)
protected void set1stProperty(long id,
java.lang.String value)
protected void set1stProperty(long id,
int value)
protected void set1stProperty(long id,
boolean value)
protected void set1stProperty(long id,
byte[] value)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||