org.apache.poi.hpsf
Class Section

java.lang.Object
  extended by org.apache.poi.hpsf.Section
Direct Known Subclasses:
MutableSection

public class Section
extends java.lang.Object

Represents a section in a PropertySet.

Author:
Rainer Klute <klute@rainer-klute.de>, Drew Varner (Drew.Varner allUpIn sc.edu)

Constructor Summary
Section(byte[] src, int offset)
          Creates a Section instance from a byte array.
 
Method Summary
 boolean equals(java.lang.Object o)
          Checks whether this section is equal to another object.
 int getCodepage()
          Gets the section's codepage, if any.
 java.util.Map getDictionary()
          Gets the section's dictionary.
 ClassID getFormatID()
          Returns the format ID.
 long getOffset()
          Returns the offset of the section in the stream.
 java.lang.String getPIDString(long pid)
          Returns the PID string associated with a property ID.
 Property[] getProperties()
          Returns this section's properties.
 java.lang.Object getProperty(long id)
          Returns the value of the property with the specified ID.
 int getPropertyCount()
          Returns the number of properties in this section.
 int getSize()
          Returns the section's size in bytes.
 int hashCode()
           
 java.lang.String toString()
           
 boolean wasNull()
          Checks whether the property which the last call to getPropertyIntValue(long) or getProperty(long) tried to access was available or not.
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Section

public Section(byte[] src,
               int offset)
        throws java.io.UnsupportedEncodingException

Creates a Section instance from a byte array.

Parameters:
src - Contains the complete property set stream.
offset - The position in the stream that points to the section's format ID.
Throws:
java.io.UnsupportedEncodingException - if the section's codepage is not supported.
Method Detail

getFormatID

public ClassID getFormatID()

Returns the format ID. The format ID is the "type" of the section. For example, if the format ID of the first Section contains the bytes specified by org.apache.poi.hpsf.wellknown.SectionIDMap.SUMMARY_INFORMATION_ID the section (and thus the property set) is a SummaryInformation.

Returns:
The format ID

getOffset

public long getOffset()

Returns the offset of the section in the stream.

Returns:
The offset of the section in the stream.

getSize

public int getSize()

Returns the section's size in bytes.

Returns:
The section's size in bytes.

getPropertyCount

public int getPropertyCount()

Returns the number of properties in this section.

Returns:
The number of properties in this section.

getProperties

public Property[] getProperties()

Returns this section's properties.

Returns:
This section's properties.

getProperty

public java.lang.Object getProperty(long id)

Returns the value of the property with the specified ID. If the property is not available, null is returned and a subsequent call to wasNull will return true.

Parameters:
id - The property's ID
Returns:
The property's value

wasNull

public boolean wasNull()

Checks whether the property which the last call to getPropertyIntValue(long) or getProperty(long) tried to access was available or not. This information might be important for callers of getPropertyIntValue(long) 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.

Returns:
true if the last call to getPropertyIntValue(long) or getProperty(long) tried to access a property that was not available, else false.

getPIDString

public java.lang.String getPIDString(long pid)

Returns the PID string associated with a property ID. The ID is first looked up in the Section's private dictionary. If it is not found there, the method calls SectionIDMap.getPIDString(byte[], long).

Parameters:
pid - The property ID
Returns:
The property ID's string value

equals

public boolean equals(java.lang.Object o)

Checks whether this section is equal to another object. The result is false if one of the the following conditions holds:

Overrides:
equals in class java.lang.Object
Parameters:
o - The object to compare this section with
Returns:
true if the objects are equal, false if not

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object
See Also:
Object.hashCode()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object
See Also:
Object.toString()

getDictionary

public java.util.Map getDictionary()

Gets the section's dictionary. A dictionary allows an application to use human-readable property names instead of numeric property IDs. It contains mappings from property IDs to their associated string values. The dictionary is stored as the property with ID 0. The codepage for the strings in the dictionary is defined by property with ID 1.

Returns:
the dictionary or null if the section does not have a dictionary.

getCodepage

public int getCodepage()

Gets the section's codepage, if any.

Returns:
The section's codepage if one is defined, else -1.