Class Property
- Direct Known Subclasses:
CustomProperty
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.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionProperty()Creates an empty property.Property(long id, byte[] src, long offset, int length, int codepage) Creates aPropertyinstance by reading its bytes from the property set stream.Creates a property.Property(long id, LittleEndianByteArrayInputStream leis, int length, int codepage) Creates aPropertyinstance by reading its bytes from the property set stream.Creates aPropertyas a copy of an existingProperty. -
Method Summary
Modifier and TypeMethodDescriptionbooleanCompares two properties.longgetID()Returns the property's ID.protected intgetSize(int property) Returns the property's size in bytes.longgetType()Returns the property's type.getValue()Returns the property's value.inthashCode()voidsetID(long id) Sets the property's ID.voidsetType(long type) Sets the property's type.voidSets the property's value.toString()toString(int codepage, PropertyIDMap idMap) intwrite(OutputStream out, int codepage) Writes the property to an output stream.
-
Field Details
-
DEFAULT_CODEPAGE
public static final int DEFAULT_CODEPAGEDefault codepage forCodePageStrings- See Also:
-
-
Constructor Details
-
Property
public Property()Creates an empty property. It must be filled using the set method to be usable. -
Property
Creates aPropertyas a copy of an existingProperty.- Parameters:
p- The property to copy.
-
Property
Creates a property. -
Property
public Property(long id, byte[] src, long offset, int length, int codepage) throws UnsupportedEncodingException Creates aPropertyinstance 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
public Property(long id, LittleEndianByteArrayInputStream leis, int length, int codepage) throws UnsupportedEncodingException Creates aPropertyinstance by reading its bytes from the property set stream.- Parameters:
id- The property's ID.leis- The bytes the property set stream consists of.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.
-
-
Method Details
-
getID
public long getID()Returns the property's ID.- Returns:
- The ID value
-
setID
public void setID(long id) Sets the property's ID.- Parameters:
id- the ID
-
getType
public long getType()Returns the property's type.- Returns:
- The type value
-
setType
public void setType(long type) Sets the property's type.- Parameters:
type- the property's type
-
getValue
Returns the property's value.- Returns:
- The property's value
-
setValue
Sets the property's value.- Parameters:
value- the property's value
-
getSize
Returns the property's size in bytes. This is always a multiple of 4.- Parameters:
property- The integer property to check- Returns:
- the property's size in bytes
- Throws:
WritingNotSupportedException- if HPSF does not yet support the property's variant type.
-
equals
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;
-
hashCode
public int hashCode() -
toString
-
toString
-
write
Writes the property to an output stream.- Parameters:
out- The output stream to write to.codepage- The codepage to use for writing non-wide strings- Returns:
- the number of bytes written to the stream
- Throws:
IOException- if an I/O error occursWritingNotSupportedException- if a variant type is to be written that is not yet supported
-