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)

Field Summary
protected  java.util.Map<java.lang.Long,java.lang.String> dictionary
          Maps property IDs to section-private PID strings.
protected  ClassID formatID
          The section's format ID, getFormatID().
protected  long offset
           
protected  Property[] properties
           
protected  int size
           
 
Constructor Summary
protected Section()
          Creates an empty and uninitialized Section.
  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<java.lang.Long,java.lang.String> 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.
protected  boolean getPropertyBooleanValue(int id)
          Returns the value of the boolean property with the specified ID.
 int getPropertyCount()
          Returns the number of properties in this section.
protected  int getPropertyIntValue(long id)
          Returns the value of the numeric property with the specified ID.
 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
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

dictionary

protected java.util.Map<java.lang.Long,java.lang.String> dictionary

Maps property IDs to section-private PID strings. These strings can be found in the property with ID 0.


formatID

protected ClassID formatID

The section's format ID, getFormatID().


offset

protected long offset
See Also:
getOffset()

size

protected int size
See Also:
getSize()

properties

protected Property[] properties
See Also:
getProperties()
Constructor Detail

Section

protected Section()

Creates an empty and uninitialized Section.


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

getPropertyIntValue

protected int getPropertyIntValue(long id)

Returns the value of the numeric property with the specified ID. If the property is not available, 0 is returned. A subsequent call to wasNull will return true to let the caller distinguish that case from a real property value of 0.

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

getPropertyBooleanValue

protected boolean getPropertyBooleanValue(int id)

Returns the value of the boolean property with the specified ID. If the property is not available, 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.

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<java.lang.Long,java.lang.String> 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.


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