Package loci.poi.hpsf

Class Section

java.lang.Object
loci.poi.hpsf.Section
Direct Known Subclasses:
MutableSection

public class Section extends Object

Represents a section in a PropertySet.

Since:
2002-02-09
Version:
$Id: Section.java 550021 2007-06-23 07:44:47Z klute $
Author:
Rainer Klute <klute@rainer-klute.de>, Drew Varner (Drew.Varner allUpIn sc.edu)
  • Field Details

    • dictionary

      protected Map 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:
    • size

      protected int size
      See Also:
    • properties

      protected Property[] properties
      See Also:
  • Constructor Details

    • Section

      protected Section()

      Creates an empty and uninitialized Section.

    • Section

      public Section(byte[] src, int offset) throws 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:
      UnsupportedEncodingException - if the section's codepage is not supported.
  • Method Details

    • 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 loci.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 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 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(Object o)

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

      • The other object is not a Section.

      • The format IDs of the two sections are not equal.

      • The sections have a different number of properties. However, properties with ID 1 (codepage) are not counted.

      • The other object is not a Section.

      • The properties have different values. The order of the properties is irrelevant.

      Overrides:
      equals in class 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 Object
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object
      See Also:
    • getDictionary

      public 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.