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