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 Summary
Fields Modifier and Type Field Description protected Map
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
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
Checks whether this section is equal to another object.int
getCodepage()
Gets the section's codepage, if any.Map
getDictionary()
Gets the section's dictionary.ClassID
getFormatID()
Returns the format ID.long
getOffset()
Returns the offset of the section in the stream.String
getPIDString(long pid)
Returns the PID string associated with a property ID.Property[]
getProperties()
Returns this section's properties.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()
String
toString()
boolean
wasNull()
Checks whether the property which the last call togetPropertyIntValue(long)
orgetProperty(long)
tried to access was available or not.
-
-
-
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.
-
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 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 byloci.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 towasNull
will returntrue
.- 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 returntrue
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 towasNull
will returntrue
to let the caller distinguish that case from a real property value offalse
.- 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)
orgetProperty(long)
tried to access was available or not. This information might be important for callers ofgetPropertyIntValue(long)
since the latter returns 0 if the property does not exist. UsingwasNull
the caller can distiguish this case from a property's real value of 0.- Returns:
true
if the last call togetPropertyIntValue(long)
orgetProperty(long)
tried to access a property that was not available, elsefalse
.
-
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 callsSectionIDMap.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.
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classObject
- See Also:
Object.hashCode()
-
toString
public String toString()
- Overrides:
toString
in classObject
- See Also:
Object.toString()
-
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.
-
-