Class Property
- java.lang.Object
-
- org.apache.poi.hpsf.Property
-
- Direct Known Subclasses:
CustomProperty
public class Property extends Object
A property in aSection
of aPropertySet
.The property's
ID
gives the property a meaning in the context of itsSection
. EachSection
spans its own name space of property IDs.The property's
type
determines how itsvalue
is interpreted. For example, if the type isVariant.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.
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_CODEPAGE
Default codepage forCodePageStrings
-
Constructor Summary
Constructors Constructor Description 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.Property(long id, LittleEndianByteArrayInputStream leis, int length, int codepage)
Creates a Property instance by reading its bytes from the property set stream.Property(Property p)
Creates aProperty
as a copy of an existingProperty
.
-
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(int property)
Returns the property's size in bytes.long
getType()
Returns the property's type.Object
getValue()
Returns the property's value.int
hashCode()
void
setID(long id)
Sets the property's ID.void
setType(long type)
Sets the property's type.void
setValue(Object value)
Sets the property's value.String
toString()
String
toString(int codepage, PropertyIDMap idMap)
int
write(OutputStream out, int codepage)
Writes the property to an output stream.
-
-
-
Field Detail
-
DEFAULT_CODEPAGE
public static final int DEFAULT_CODEPAGE
Default codepage forCodePageStrings
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Property
public Property()
Creates an empty property. It must be filled using the set method to be usable.
-
Property
public Property(Property p)
Creates aProperty
as a copy of an existingProperty
.- Parameters:
p
- The property to copy.
-
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
public Property(long id, LittleEndianByteArrayInputStream leis, 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.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 Detail
-
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
public Object getValue()
Returns the property's value.- Returns:
- The property's value
-
setValue
public void setValue(Object value)
Sets the property's value.- Parameters:
value
- the property's value
-
getSize
protected int getSize(int property) throws WritingNotSupportedException
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
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;
-
toString
public String toString(int codepage, PropertyIDMap idMap)
-
write
public int write(OutputStream out, int codepage) throws IOException, WritingNotSupportedException
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
-
-