]> source.dussan.org Git - poi.git/commitdiff
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13248
authorShawn Laubach <slaubach@apache.org>
Fri, 4 Oct 2002 20:28:27 +0000 (20:28 +0000)
committerShawn Laubach <slaubach@apache.org>
Fri, 4 Oct 2002 20:28:27 +0000 (20:28 +0000)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352878 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/record/FormatRecord.java

index 1d36924e0f310592c0e842b9114ea35fe5fc38b2..5a72c9be41a41138128921318dfd83de9b1fd573 100644 (file)
@@ -64,6 +64,7 @@ import org.apache.poi.util.StringUtil;
  *
  * REFERENCE:  PG 317 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<P>
  * @author Andrew C. Oliver (acoliver at apache dot org)
+ * @author Shawn M. Laubach (shawnlaubach at cox dot net)  
  * @version 2.0-pre
  */
 
@@ -72,7 +73,7 @@ public class FormatRecord
 {
     public final static short sid = 0x41e;
     private short             field_1_index_code;
-    private byte              field_2_formatstring_len;
+    private short             field_2_formatstring_len;
     private short             field_3_unicode_len;      // unicode string length
     private boolean          field_3_unicode_flag;     // it is not undocumented - it is unicode flag
     private String            field_4_formatstring;
@@ -121,6 +122,7 @@ public class FormatRecord
         field_1_index_code       = LittleEndian.getShort(data, 0 + offset);
         // field_2_formatstring_len = data[ 2 + offset ];
         field_3_unicode_len      = LittleEndian.getShort( data, 2 + offset );
+       field_2_formatstring_len = field_3_unicode_len;
         field_3_unicode_flag     = ( data[ 4 + offset ] & (byte)0x01 ) != 0;
                                               
                                               
@@ -156,6 +158,17 @@ public class FormatRecord
     public void setFormatStringLength(byte len)
     {
         field_2_formatstring_len = len;
+       field_3_unicode_len = len;
+    }
+
+    /**
+     * set whether the string is unicode
+     *
+     * @param unicode flag for whether string is unicode
+     */
+
+    public void setUnicodeFlag(boolean unicode) {
+       field_3_unicode_flag = unicode;
     }
 
     /**
@@ -189,11 +202,21 @@ public class FormatRecord
      * @see #getFormatString()
      */
 
-    public byte getFormatStringLength()
+    public short getFormatStringLength()
     {
-        return field_2_formatstring_len;
+        return field_3_unicode_flag ? field_3_unicode_len : field_2_formatstring_len;
     }
 
+    /**
+     * get whether the string is unicode
+     *
+     * @return flag for whether string is unicode
+     */
+
+    public boolean getUnicodeFlag() {
+       return field_3_unicode_flag;
+    }    
+
     /**
      * get the format string
      *