<!-- Don't forget to update status.xml too! -->
<release version="3.0.2-FINAL" date="2007-??-??">
- <action dev="POI-DEVELOPERS" type="add">43751 - [PATCH] - Fix for handling rotated text in HSSFSheet.autoSizeColumn</action>
+ <action dev="POI-DEVELOPERS" type="fix">43648 - Fix for IntPtg and short vs int</action>
+ <action dev="POI-DEVELOPERS" type="fix">43751 - [PATCH] - Fix for handling rotated text in HSSFSheet.autoSizeColumn</action>
<action dev="POI-DEVELOPERS" type="add">Include an Excel text extractor, and put all existing text extractors under a common superclass</action>
<action dev="POI-DEVELOPERS" type="add">Improvements to the LZW compression engine used by HDGF</action>
<action dev="POI-DEVELOPERS" type="add">HSSFPicture.resize() - a handy method to reset a picture to its original width and height</action>
<!-- Don't forget to update changes.xml too! -->
<changes>
<release version="3.0.2-FINAL" date="2007-??-??">
+ <action dev="POI-DEVELOPERS" type="fix">43648 - Fix for IntPtg and short vs int</action>
+ <action dev="POI-DEVELOPERS" type="fix">43751 - [PATCH] - Fix for handling rotated text in HSSFSheet.autoSizeColumn</action>
<action dev="POI-DEVELOPERS" type="add">Include an Excel text extractor, and put all existing text extractors under a common superclass</action>
<action dev="POI-DEVELOPERS" type="add">Improvements to the LZW compression engine used by HDGF</action>
<action dev="POI-DEVELOPERS" type="add">HSSFPicture.resize() - a handy method to reset a picture to its original width and height</action>
import org.apache.poi.hssf.record.RecordInputStream;
/**
- * Integer (short intger)
- * Stores a (java) short value in a formula
+ * Integer (unsigned short intger)
+ * Stores an unsigned short value (java int) in a formula
* @author Andrew C. Oliver (acoliver at apache dot org)
* @author Jason Height (jheight at chariot dot net dot au)
*/
setValue(Short.parseShort(formulaToken));
}
+ /**
+ * Sets the wrapped value.
+ * Normally you should call with a positive int.
+ */
public void setValue(short value)
{
field_1_value = value;
}
+ /**
+ * Sets the unsigned value.
+ * (Handles conversion to the internal short value)
+ */
+ public void setValue(int value)
+ {
+ if(value > Short.MAX_VALUE) {
+ // Need to wrap
+ value -= (Short.MAX_VALUE+1)*2;
+ }
+ field_1_value = (short)value;
+ }
+
+ /**
+ * Returns the value as a short, which may have
+ * been wrapped into negative numbers
+ */
public short getValue()
{
return field_1_value;
}
+ /**
+ * Returns the value as an unsigned positive int.
+ */
+ public int getValueAsInt()
+ {
+ if(field_1_value < 0) {
+ return (Short.MAX_VALUE + 1)*2 + field_1_value;
+ }
+ return field_1_value;
+ }
+
public void writeBytes(byte [] array, int offset)
{
array[ offset + 0 ] = sid;