public class Property
extends java.lang.Object
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.
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_CODEPAGE
Default codepage for
CodePageStrings
(CodePageStrings 的默认代码页)
|
Constructor and 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, LittleEndianByteArrayInputStream leis, int length, int codepage)
Creates a
Property instance by reading its bytes from the property set stream.
|
Property(long id, long type, java.lang.Object value)
Creates a property.
|
Property(Property p)
Creates a
Property as a copy of an existing
Property .
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object o)
Compares two properties.
(比较两个属性。)
|
long |
getID()
Returns the property's ID.
(返回属性的 ID。)
|
protected int |
getSize(int property)
Returns the property's size in bytes.
(返回属性的大小(以字节为单位)。)
|
long |
getType()
Returns the property's type.
(返回属性的类型。)
|
java.lang.Object |
getValue()
Returns the property's value.
(返回属性的值。)
|
int |
hashCode() |
void |
setID(long id)
Sets the property's ID.
(设置属性的 ID。)
|
void |
setType(long type)
Sets the property's type.
(设置属性的类型。)
|
void |
setValue(java.lang.Object value)
Sets the property's value.
(设置属性的值。)
|
java.lang.String |
toString() |
java.lang.String |
toString(int codepage, PropertyIDMap idMap) |
int |
write(java.io.OutputStream out, int codepage)
Writes the property to an output stream.
(将属性写入输出流。)
|
public static final int DEFAULT_CODEPAGE
CodePageStrings
(CodePageStrings 的默认代码页)
public Property()
public Property(Property p)
Property
as a copy of an existing
Property
.
(创建一个属性作为现有属性的副本。)
p
- The property to copy.
(p - 要复制的属性。)
public Property(long id, long type, java.lang.Object value)
public Property(long id, byte[] src, long offset, int length, int codepage) throws java.io.UnsupportedEncodingException
Property
instance by reading its bytes from the property set stream.
(通过从属性集流中读取其字节来创建一个 Property 实例。)
id
- The property's ID.
(id - 属性的 ID。)
src
- The bytes the property set stream consists of.
(src - 属性集流包含的字节。)
offset
- The property's type/value pair's offset in the section.
(offset - 部分中属性的类型/值对的偏移量。)
length
- The property's type/value pair's length in bytes.
(length - 属性的类型/值对的长度(以字节为单位)。)
codepage
- The section's and thus the property's codepage. It is needed only when reading string values.
(代码页 - 部分的代码页以及属性的代码页。只有在读取字符串值时才需要它。)
java.io.UnsupportedEncodingException
- if the specified codepage is not supported.
(java.io.UnsupportedEncodingException - 如果指定的代码页不受支持。)
public Property(long id, LittleEndianByteArrayInputStream leis, int length, int codepage) throws java.io.UnsupportedEncodingException
Property
instance by reading its bytes from the property set stream.
(通过从属性集流中读取其字节来创建一个 Property 实例。)
id
- The property's ID.
(id - 属性的 ID。)
leis
- The bytes the property set stream consists of.
(leis - 属性集流包含的字节。)
length
- The property's type/value pair's length in bytes.
(length - 属性的类型/值对的长度(以字节为单位)。)
codepage
- The section's and thus the property's codepage. It is needed only when reading string values.
(代码页 - 部分的代码页以及属性的代码页。只有在读取字符串值时才需要它。)
java.io.UnsupportedEncodingException
- if the specified codepage is not supported.
(java.io.UnsupportedEncodingException - 如果指定的代码页不受支持。)
public long getID()
public void setID(long id)
id
- the ID
(id - 标识)
public long getType()
public void setType(long type)
type
- the property's type
(type - 属性的类型)
public java.lang.Object getValue()
public void setValue(java.lang.Object value)
value
- the property's value
(value - 属性的值)
protected int getSize(int property) throws WritingNotSupportedException
property
- The integer property to check
(property - 要检查的整数属性)
WritingNotSupportedException
- if HPSF does not yet support the property's variant type.
(WritingNotSupportedException - 如果 HPSF 还不支持属性的变体类型。)
public boolean equals(java.lang.Object o)
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;
(比较两个属性。请注意 ID == 0 的属性是一种特殊情况:它没有类型,其值是该部分的字典。另一种特殊情况是字符串:两个属性可能具有不同的类型 Variant.VT_LPSTR 和 Variant.VT_LPWSTR;)equals
in class
java.lang.Object
Object.equals(java.lang.Object)
public int hashCode()
hashCode
in class
java.lang.Object
Object.hashCode()
public java.lang.String toString()
toString
in class
java.lang.Object
Object.toString()
public java.lang.String toString(int codepage, PropertyIDMap idMap)
public int write(java.io.OutputStream out, int codepage) throws java.io.IOException, WritingNotSupportedException
out
- The output stream to write to.
(out - 要写入的输出流。)
codepage
- The codepage to use for writing non-wide strings
(codepage - 用于编写非宽字符串的代码页)
java.io.IOException
- if an I/O error occurs
(java.io.IOException - 如果发生 I/O 错误)
WritingNotSupportedException
- if a variant type is to be written that is not yet supported
(WritingNotSupportedException - 如果要编写尚不支持的变体类型)
Copyright 2021 The Apache Software Foundation or its licensors, as applicable.