You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2013/06/26 18:17:00 UTC
svn commit: r1496988 - in
/poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes:
PropertiesChunk.java PropertyValue.java
Author: nick
Date: Wed Jun 26 16:17:00 2013
New Revision: 1496988
URL: http://svn.apache.org/r1496988
Log:
Support decoding a few more property types
Modified:
poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/PropertiesChunk.java
poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/PropertyValue.java
Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/PropertiesChunk.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/PropertiesChunk.java?rev=1496988&r1=1496987&r2=1496988&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/PropertiesChunk.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/PropertiesChunk.java Wed Jun 26 16:17:00 2013
@@ -26,6 +26,8 @@ import java.util.List;
import java.util.Map;
import org.apache.poi.hsmf.datatypes.PropertyValue.LongLongPropertyValue;
+import org.apache.poi.hsmf.datatypes.PropertyValue.LongPropertyValue;
+import org.apache.poi.hsmf.datatypes.PropertyValue.ShortPropertyValue;
import org.apache.poi.hsmf.datatypes.PropertyValue.TimePropertyValue;
import org.apache.poi.hsmf.datatypes.Types.MAPIType;
import org.apache.poi.util.IOUtils;
@@ -177,13 +179,19 @@ public abstract class PropertiesChunk ex
// We'll match up the chunk later
propVal = new ChunkBasedPropertyValue(prop, flags, data);
}
+ else if (type == Types.SHORT) {
+ propVal = new ShortPropertyValue(prop, flags, data);
+ }
+ else if (type == Types.LONG) {
+ propVal = new LongPropertyValue(prop, flags, data);
+ }
else if (type == Types.LONG_LONG) {
propVal = new LongLongPropertyValue(prop, flags, data);
}
else if (type == Types.TIME) {
propVal = new TimePropertyValue(prop, flags, data);
}
- // TODO Add in the rest of the type
+ // TODO Add in the rest of the types
else {
propVal = new PropertyValue(prop, flags, data);
}
Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/PropertyValue.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/PropertyValue.java?rev=1496988&r1=1496987&r2=1496988&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/PropertyValue.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/PropertyValue.java Wed Jun 26 16:17:00 2013
@@ -73,6 +73,39 @@ public class PropertyValue {
}
// TODO classes for the other important value types
+
+ public static class ShortPropertyValue extends PropertyValue {
+ public ShortPropertyValue(MAPIProperty property, long flags, byte[] data) {
+ super(property, flags, data);
+ }
+
+ public Short getValue() {
+ return LittleEndian.getShort(data);
+ }
+ public void setValue(short value) {
+ if (data.length != 2) {
+ data = new byte[2];
+ }
+ LittleEndian.putShort(data, 0, value);
+ }
+ }
+
+ public static class LongPropertyValue extends PropertyValue {
+ public LongPropertyValue(MAPIProperty property, long flags, byte[] data) {
+ super(property, flags, data);
+ }
+
+ public Integer getValue() {
+ return LittleEndian.getInt(data);
+ }
+ public void setValue(int value) {
+ if (data.length != 4) {
+ data = new byte[4];
+ }
+ LittleEndian.putInt(data, 0, value);
+ }
+ }
+
public static class LongLongPropertyValue extends PropertyValue {
public LongLongPropertyValue(MAPIProperty property, long flags, byte[] data) {
super(property, flags, data);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org