]> source.dussan.org Git - poi.git/commitdiff
accept java string
authorSergey Vladimirov <sergey@apache.org>
Sat, 22 Oct 2011 02:01:04 +0000 (02:01 +0000)
committerSergey Vladimirov <sergey@apache.org>
Sat, 22 Oct 2011 02:01:04 +0000 (02:01 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1187637 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hpsf/UnicodeString.java

index b2595d87d539c9d6b798beff034717acd8c3a069..5d107400684a8faf606e8f599c587f5b4317b0bb 100644 (file)
@@ -2,6 +2,7 @@ package org.apache.poi.hpsf;
 
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.StringUtil;
 
 @Internal
 class UnicodeString
@@ -18,9 +19,8 @@ class UnicodeString
             return;
         }
 
-        _value = new byte[length * 2];
-        LittleEndian.getByteArray( data, offset + LittleEndian.INT_SIZE,
-                length * 2 );
+        _value = LittleEndian.getByteArray( data, offset
+                + LittleEndian.INT_SIZE, length * 2 );
 
         if ( _value[length * 2 - 1] != 0 || _value[length * 2 - 2] != 0 )
             throw new IllegalPropertySetDataException(
@@ -28,8 +28,22 @@ class UnicodeString
                             + " is not NULL-terminated" );
     }
 
+    String toJavaString()
+    {
+        if ( _value.length == 0 )
+            return null;
+
+        return StringUtil.getFromUnicodeLE( _value, 0,
+                ( _value.length - 2 ) >> 1 );
+    }
+
     int getSize()
     {
         return LittleEndian.INT_SIZE + _value.length;
     }
+
+    byte[] getValue()
+    {
+        return _value;
+    }
 }