Browse Source

Support getting and setting as int, as well as short (bug #43648)

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@594097 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_0_2_BETA1
Nick Burch 16 years ago
parent
commit
ea751b7749

+ 2
- 1
src/documentation/content/xdocs/changes.xml View File

@@ -36,7 +36,8 @@

<!-- 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>

+ 2
- 0
src/documentation/content/xdocs/status.xml View File

@@ -33,6 +33,8 @@
<!-- 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>

+ 34
- 2
src/java/org/apache/poi/hssf/record/formula/IntPtg.java View File

@@ -29,8 +29,8 @@ import org.apache.poi.hssf.model.Workbook;
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)
*/
@@ -57,16 +57,48 @@ public class IntPtg
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;

Loading…
Cancel
Save