public class Property extends Object
A property in a Section
of a PropertySet
.
The property's ID gives the property a meaning
in the context of its Section
. Each Section
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 type Variant.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.
Section
,
Variant
Modifier and Type | Field and Description |
---|---|
protected long |
id
The property's ID.
|
protected long |
type
The property's type.
|
protected Object |
value
The property's value.
|
Modifier | Constructor and Description |
---|---|
protected |
Property()
Creates an empty property.
|
|
Property(long id,
byte[] src,
long offset,
int length,
int codepage)
Creates a
Property instance by reading its bytes
from the property set stream. |
|
Property(long id,
long type,
Object value)
Creates a property.
|
Modifier and Type | Method and 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() |
private boolean |
typesAreEqual(long t1,
long t2) |
protected long id
The property's ID.
protected long type
The property's type.
protected Object value
The property's value.
public Property(long id, long type, Object value)
Creates a 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.
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.UnsupportedEncodingException
- if the specified codepage is not
supported.protected Property()
Creates an empty property. It must be filled using the set method to be usable.
public long getID()
Returns the property's ID.
public long getType()
Returns the property's type.
public Object getValue()
Returns the property's value.
protected Map readDictionary(byte[] src, long offset, int length, int codepage) throws UnsupportedEncodingException
Reads a dictionary.
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.UnsupportedEncodingException
- if the dictionary's codepage is not
(yet) supported.protected int getSize() throws WritingNotSupportedException
Returns the property's size in bytes. This is always a multiple of 4.
WritingNotSupportedException
- if HPSF does not yet support the
property's variant type.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;
equals
in class Object
Object.equals(java.lang.Object)
private boolean typesAreEqual(long t1, long t2)
public int hashCode()
hashCode
in class Object
Object.hashCode()
public String toString()
toString
in class Object
Object.toString()
Copyright © 2015 Open Microscopy Environment