Package loci.poi.hpsf

Class 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 Detail

      • dictionary

        protected Map dictionary

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

      • size

        protected int size
        See Also:
        getSize()
    • Constructor Detail

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