Class Property
- java.lang.Object
-
- loci.poi.hpsf.Property
-
- Direct Known Subclasses:
MutableProperty
public class Property extends Object
A property in a
Section
of aPropertySet
.The property's ID gives the property a meaning in the context of its
Section
. EachSection
spans its own name space of property IDs.The property's type determines how its value is interpreted. For example, if the type is
Variant.VT_LPSTR
(byte string), the value consists of a DWord telling how many bytes the string contains. The bytes follow immediately, including any null bytes that terminate the string. The typeVariant.VT_I4
denotes a four-byte integer value,Variant.VT_FILETIME
some date and time (of a file).Please note that not all
Variant
types yet. This might change over time but largely depends on your feedback so that the POI team knows which variant types are really needed. So please feel free to submit error reports or patches for the types you need.Microsoft documentation: Property Set Display Name Dictionary.
- Since:
- 2002-02-09
- Version:
- $Id: Property.java 489730 2006-12-22 19:18:16Z bayard $
- Author:
- Rainer Klute <klute@rainer-klute.de>, Drew Varner (Drew.Varner InAndAround sc.edu)
- See Also:
Section
,Variant
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
Property()
Creates an empty property.Property(long id, byte[] src, long offset, int length, int codepage)
Creates aProperty
instance by reading its bytes from the property set stream.Property(long id, long type, Object value)
Creates a property.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
Compares two properties.long
getID()
Returns the property's ID.protected int
getSize()
Returns the property's size in bytes.long
getType()
Returns the property's type.Object
getValue()
Returns the property's value.int
hashCode()
protected Map
readDictionary(byte[] src, long offset, int length, int codepage)
Reads a dictionary.String
toString()
-
-
-
Field Detail
-
id
protected long id
The property's ID.
-
type
protected long type
The property's type.
-
value
protected Object value
The property's value.
-
-
Constructor Detail
-
Property
public Property(long id, long type, Object value)
Creates a property.
-
Property
public Property(long id, byte[] src, long offset, int length, int codepage) throws UnsupportedEncodingException
Creates a
Property
instance by reading its bytes from the property set stream.- Parameters:
id
- The property's ID.src
- The bytes the property set stream consists of.offset
- The property's type/value pair's offset in the section.length
- The property's type/value pair's length in bytes.codepage
- The section's and thus the property's codepage. It is needed only when reading string values.- Throws:
UnsupportedEncodingException
- if the specified codepage is not supported.
-
Property
protected Property()
Creates an empty property. It must be filled using the set method to be usable.
-
-
Method Detail
-
getID
public long getID()
Returns the property's ID.
- Returns:
- The ID value
-
getType
public long getType()
Returns the property's type.
- Returns:
- The type value
-
getValue
public Object getValue()
Returns the property's value.
- Returns:
- The property's value
-
readDictionary
protected Map readDictionary(byte[] src, long offset, int length, int codepage) throws UnsupportedEncodingException
Reads a dictionary.
- Parameters:
src
- The byte array containing the bytes making out the dictionary.offset
- At this offset within src the dictionary starts.length
- The dictionary contains at most this many bytes.codepage
- The codepage of the string values.- Returns:
- The dictonary
- Throws:
UnsupportedEncodingException
- if the dictionary's codepage is not (yet) supported.
-
getSize
protected int getSize() throws WritingNotSupportedException
Returns the property's size in bytes. This is always a multiple of 4.
- Returns:
- the property's size in bytes
- Throws:
WritingNotSupportedException
- if HPSF does not yet support the property's variant type.
-
equals
public boolean equals(Object o)
Compares two properties.
Please beware that a property with ID == 0 is a special case: It does not have a type, and its value is the section's dictionary. Another special case are strings: Two properties may have the different types Variant.VT_LPSTR and Variant.VT_LPWSTR;
- Overrides:
equals
in classObject
- See Also:
Object.equals(java.lang.Object)
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classObject
- See Also:
Object.hashCode()
-
toString
public String toString()
- Overrides:
toString
in classObject
- See Also:
Object.toString()
-
-