Provide one example of how PropertyValues can be encoded and decoded, rest still needed (along with logic in PropertiesChunk to drive it)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1359243 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
eb368e205d
commit
832068ae23
@ -17,6 +17,8 @@
|
|||||||
|
|
||||||
package org.apache.poi.hsmf.datatypes;
|
package org.apache.poi.hsmf.datatypes;
|
||||||
|
|
||||||
|
import org.apache.poi.util.LittleEndian;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An instance of a {@link MAPIProperty} inside a {@link PropertiesChunk}.
|
* An instance of a {@link MAPIProperty} inside a {@link PropertiesChunk}.
|
||||||
* Where the {@link Types} type is a fixed length one, this will contain the
|
* Where the {@link Types} type is a fixed length one, this will contain the
|
||||||
@ -27,5 +29,47 @@ package org.apache.poi.hsmf.datatypes;
|
|||||||
public class PropertyValue {
|
public class PropertyValue {
|
||||||
private MAPIProperty property;
|
private MAPIProperty property;
|
||||||
private long flags;
|
private long flags;
|
||||||
private byte[] data;
|
protected byte[] data;
|
||||||
|
|
||||||
|
public PropertyValue(MAPIProperty property, long flags, byte[] data) {
|
||||||
|
this.property = property;
|
||||||
|
this.flags = flags;
|
||||||
|
this.data = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MAPIProperty getProperty() {
|
||||||
|
return property;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the raw value flags.
|
||||||
|
* TODO Also provide getters for the flag meanings
|
||||||
|
*/
|
||||||
|
public long getFlags() {
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getValue() {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
public void setRawValue(byte[] value) {
|
||||||
|
this.data = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO classes for the other important value types
|
||||||
|
public static class LongLongPropertyValue extends PropertyValue {
|
||||||
|
public LongLongPropertyValue(MAPIProperty property, long flags, byte[] data) {
|
||||||
|
super(property, flags, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getValue() {
|
||||||
|
return LittleEndian.getLong(data);
|
||||||
|
}
|
||||||
|
public void setValue(long value) {
|
||||||
|
if (data.length != 8) {
|
||||||
|
data = new byte[8];
|
||||||
|
}
|
||||||
|
LittleEndian.putLong(data, 0, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user