You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by jo...@apache.org on 2008/10/24 04:08:48 UTC
svn commit: r707525 - in /poi/trunk/src: java/org/apache/poi/hssf/record/
java/org/apache/poi/hssf/record/constant/
java/org/apache/poi/hssf/record/formula/ java/org/apache/poi/util/
testcases/org/apache/poi/hssf/record/constant/ testcases/org/apache/p...
Author: josh
Date: Thu Oct 23 19:08:47 2008
New Revision: 707525
URL: http://svn.apache.org/viewvc?rev=707525&view=rev
Log:
Further conversion of Ptg classes to use LittleEndian input/output interfaces
Modified:
poi/trunk/src/java/org/apache/poi/hssf/record/CRNRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/constant/ConstantValueParser.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area2DPtgBase.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AttrPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/DeletedArea3DPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/DeletedRef3DPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/NamePtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/NumberPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ptg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ref2DPtgBase.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefErrorPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefNPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefPtgBase.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/StringPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/TblPtg.java
poi/trunk/src/java/org/apache/poi/util/LittleEndianByteArrayOutputStream.java
poi/trunk/src/java/org/apache/poi/util/StringUtil.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/constant/TestConstantValueParser.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/TestArrayPtg.java
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/CRNRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/CRNRecord.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/CRNRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/CRNRecord.java Thu Oct 23 19:08:47 2008
@@ -18,17 +18,18 @@
package org.apache.poi.hssf.record;
import org.apache.poi.hssf.record.constant.ConstantValueParser;
-import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.LittleEndianByteArrayOutputStream;
+import org.apache.poi.util.LittleEndianOutput;
/**
- * Title: CRN <P>
- * Description: This record stores the contents of an external cell or cell range <P>
- * REFERENCE: 5.23<P>
+ * Title: CRN(0x005A) <p/>
+ * Description: This record stores the contents of an external cell or cell range <p/>
+ * REFERENCE: OOO 5.23<p/>
*
* @author josh micich
*/
public final class CRNRecord extends Record {
- public final static short sid = 0x5A;
+ public final static short sid = 0x005A;
private int field_1_last_column_index;
private int field_2_first_column_index;
@@ -45,8 +46,8 @@
public CRNRecord(RecordInputStream in) {
- field_1_last_column_index = in.readByte() & 0x00FF;
- field_2_first_column_index = in.readByte() & 0x00FF;
+ field_1_last_column_index = in.readUByte();
+ field_2_first_column_index = in.readUByte();
field_3_row_index = in.readShort();
int nValues = field_1_last_column_index - field_2_first_column_index + 1;
field_4_constant_values = ConstantValueParser.parse(in, nValues);
@@ -68,13 +69,15 @@
public int serialize(int offset, byte [] data) {
int dataSize = getDataSize();
- LittleEndian.putShort(data, 0 + offset, sid);
- LittleEndian.putShort(data, 2 + offset, (short) dataSize);
- LittleEndian.putByte(data, 4 + offset, field_1_last_column_index);
- LittleEndian.putByte(data, 5 + offset, field_2_first_column_index);
- LittleEndian.putShort(data, 6 + offset, (short) field_3_row_index);
- ConstantValueParser.encode(data, 8 + offset, field_4_constant_values);
- return getRecordSize();
+ int recSize = 4 + dataSize;
+ LittleEndianOutput out = new LittleEndianByteArrayOutputStream(data, offset, recSize);
+ out.writeShort(sid);
+ out.writeShort(dataSize);
+ out.writeByte(field_1_last_column_index);
+ out.writeByte(field_2_first_column_index);
+ out.writeShort(field_3_row_index);
+ ConstantValueParser.encode(out, field_4_constant_values);
+ return recSize;
}
public int getRecordSize() {
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/constant/ConstantValueParser.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/constant/ConstantValueParser.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/constant/ConstantValueParser.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/constant/ConstantValueParser.java Thu Oct 23 19:08:47 2008
@@ -17,10 +17,11 @@
package org.apache.poi.hssf.record.constant;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.UnicodeString;
import org.apache.poi.hssf.record.UnicodeString.UnicodeRecordStats;
-import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.LittleEndianInput;
+import org.apache.poi.util.LittleEndianOutput;
+import org.apache.poi.util.StringUtil;
/**
* To support Constant Values (2.5.7) as required by the CRN record.
@@ -47,7 +48,7 @@
// no instances of this class
}
- public static Object[] parse(RecordInputStream in, int nValues) {
+ public static Object[] parse(LittleEndianInput in, int nValues) {
Object[] result = new Object[nValues];
for (int i = 0; i < result.length; i++) {
result[i] = readAConstantValue(in);
@@ -55,7 +56,7 @@
return result;
}
- private static Object readAConstantValue(RecordInputStream in) {
+ private static Object readAConstantValue(LittleEndianInput in) {
byte grbit = in.readByte();
switch(grbit) {
case TYPE_EMPTY:
@@ -64,7 +65,7 @@
case TYPE_NUMBER:
return new Double(in.readDouble());
case TYPE_STRING:
- return in.readUnicodeString();
+ return new UnicodeString(StringUtil.readUnicodeString(in));
case TYPE_BOOLEAN:
return readBoolean(in);
case TYPE_ERROR_CODE:
@@ -77,7 +78,7 @@
throw new RuntimeException("Unknown grbit value (" + grbit + ")");
}
- private static Object readBoolean(RecordInputStream in) {
+ private static Object readBoolean(LittleEndianInput in) {
byte val = (byte)in.readLong(); // 7 bytes 'not used'
switch(val) {
case FALSE_ENCODING:
@@ -116,46 +117,43 @@
return urs.recordSize;
}
- public static void encode(byte[] data, int offset, Object[] values) {
- int currentOffset = offset;
+ public static void encode(LittleEndianOutput out, Object[] values) {
for (int i = 0; i < values.length; i++) {
- currentOffset += encodeSingleValue(data, currentOffset, values[i]);
+ encodeSingleValue(out, values[i]);
}
}
- private static int encodeSingleValue(byte[] data, int offset, Object value) {
+ private static void encodeSingleValue(LittleEndianOutput out, Object value) {
if (value == EMPTY_REPRESENTATION) {
- LittleEndian.putByte(data, offset, TYPE_EMPTY);
- LittleEndian.putLong(data, offset+1, 0L);
- return 9;
+ out.writeByte(TYPE_EMPTY);
+ out.writeLong(0L);
+ return;
}
if (value instanceof Boolean) {
Boolean bVal = ((Boolean)value);
- LittleEndian.putByte(data, offset, TYPE_BOOLEAN);
+ out.writeByte(TYPE_BOOLEAN);
long longVal = bVal.booleanValue() ? 1L : 0L;
- LittleEndian.putLong(data, offset+1, longVal);
- return 9;
+ out.writeLong(longVal);
+ return;
}
if (value instanceof Double) {
Double dVal = (Double) value;
- LittleEndian.putByte(data, offset, TYPE_NUMBER);
- LittleEndian.putDouble(data, offset+1, dVal.doubleValue());
- return 9;
+ out.writeByte(TYPE_NUMBER);
+ out.writeDouble(dVal.doubleValue());
+ return;
}
if (value instanceof UnicodeString) {
UnicodeString usVal = (UnicodeString) value;
- LittleEndian.putByte(data, offset, TYPE_STRING);
- UnicodeRecordStats urs = new UnicodeRecordStats();
- usVal.serialize(urs, offset +1, data);
- return 1 + urs.recordSize;
+ out.writeByte(TYPE_STRING);
+ StringUtil.writeUnicodeString(out, usVal.getString());
+ return;
}
if (value instanceof ErrorConstant) {
ErrorConstant ecVal = (ErrorConstant) value;
- LittleEndian.putByte(data, offset, TYPE_ERROR_CODE);
- LittleEndian.putUShort(data, offset+1, ecVal.getErrorCode());
- LittleEndian.putUShort(data, offset+3, 0);
- LittleEndian.putInt(data, offset+5, 0);
- return 9;
+ out.writeByte(TYPE_ERROR_CODE);
+ long longVal = ecVal.getErrorCode();
+ out.writeLong(longVal);
+ return;
}
throw new IllegalStateException("Unexpected value type (" + value.getClass().getName() + "'");
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area2DPtgBase.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area2DPtgBase.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area2DPtgBase.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area2DPtgBase.java Thu Oct 23 19:08:47 2008
@@ -17,7 +17,7 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -30,7 +30,7 @@
super(firstRow, lastRow, firstColumn, lastColumn, firstRowRelative, lastRowRelative, firstColRelative, lastColRelative);
}
- protected Area2DPtgBase(RecordInputStream in) {
+ protected Area2DPtgBase(LittleEndianInput in) {
readCoordinates(in);
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java Thu Oct 23 19:08:47 2008
@@ -17,10 +17,10 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.ss.formula.ExternSheetReferenceToken;
import org.apache.poi.ss.formula.FormulaRenderingWorkbook;
import org.apache.poi.ss.formula.WorkbookDependentFormula;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -44,7 +44,7 @@
setExternSheetIndex( externIdx );
}
- public Area3DPtg(RecordInputStream in) {
+ public Area3DPtg(LittleEndianInput in) {
field_1_index_extern_sheet = in.readShort();
readCoordinates(in);
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java Thu Oct 23 19:08:47 2008
@@ -17,8 +17,8 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.usermodel.HSSFErrorConstants;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -36,7 +36,7 @@
unused2 = 0;
}
- public AreaErrPtg(RecordInputStream in) {
+ public AreaErrPtg(LittleEndianInput in) {
// 8 bytes unused:
unused1 = in.readInt();
unused2 = in.readInt();
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java Thu Oct 23 19:08:47 2008
@@ -17,7 +17,7 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndianInput;
/**
* Specifies a rectangular area of cells A1:A4 for instance.
@@ -26,7 +26,7 @@
public final class AreaNPtg extends Area2DPtgBase {
public final static short sid = 0x2D;
- public AreaNPtg(RecordInputStream in) {
+ public AreaNPtg(LittleEndianInput in) {
super(in);
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java Thu Oct 23 19:08:47 2008
@@ -17,7 +17,7 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndianInput;
/**
* Specifies a rectangular area of cells A1:A4 for instance.
@@ -29,7 +29,7 @@
public AreaPtg(int firstRow, int lastRow, int firstColumn, int lastColumn, boolean firstRowRelative, boolean lastRowRelative, boolean firstColRelative, boolean lastColRelative) {
super(firstRow, lastRow, firstColumn, lastColumn, firstRowRelative, lastRowRelative, firstColRelative, lastColRelative);
}
- public AreaPtg(RecordInputStream in) {
+ public AreaPtg(LittleEndianInput in) {
super(in);
}
public AreaPtg(String arearef) {
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java Thu Oct 23 19:08:47 2008
@@ -17,11 +17,11 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.util.AreaReference;
import org.apache.poi.hssf.util.CellReference;
import org.apache.poi.util.BitField;
import org.apache.poi.util.BitFieldFactory;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -113,7 +113,7 @@
}
}
- protected final void readCoordinates(RecordInputStream in) {
+ protected final void readCoordinates(LittleEndianInput in) {
field_1_first_row = in.readUShort();
field_2_last_row = in.readUShort();
field_3_first_column = in.readUShort();
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java Thu Oct 23 19:08:47 2008
@@ -17,11 +17,10 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.UnicodeString;
import org.apache.poi.hssf.record.constant.ConstantValueParser;
import org.apache.poi.hssf.record.constant.ErrorConstant;
-import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -55,7 +54,7 @@
private short token_2_rows;
private Object[] token_3_arrayValues;
- public ArrayPtg(RecordInputStream in) {
+ public ArrayPtg(LittleEndianInput in) {
field_1_reserved = new byte[RESERVED_FIELD_LEN];
// TODO - add readFully method to RecordInputStream
for(int i=0; i< RESERVED_FIELD_LEN; i++) {
@@ -109,7 +108,7 @@
* AFTER the last Ptg in the expression.
* See page 304-305 of Excel97-2007BinaryFileFormat(xls)Specification.pdf
*/
- public void readTokenValues(RecordInputStream in) {
+ public void readTokenValues(LittleEndianInput in) {
int nColumns = in.readUByte();
short nRows = in.readShort();
//The token_1_columns and token_2_rows do not follow the documentation.
@@ -133,7 +132,7 @@
if (token_3_arrayValues == null) {
sb.append(" #values#uninitialised#\n");
} else {
- sb.append(" ").append(formatAsString());
+ sb.append(" ").append(toFormulaString());
}
return sb.toString();
}
@@ -159,11 +158,11 @@
out.write(field_1_reserved);
}
- public int writeTokenValueBytes(byte[] data, int offset) {
+ public int writeTokenValueBytes(LittleEndianOutput out) {
- LittleEndian.putByte(data, offset + 0, token_1_columns-1);
- LittleEndian.putUShort(data, offset + 1, token_2_rows-1);
- ConstantValueParser.encode(data, offset + 3, token_3_arrayValues);
+ out.writeByte(token_1_columns-1);
+ out.writeShort(token_2_rows-1);
+ ConstantValueParser.encode(out, token_3_arrayValues);
return 3 + ConstantValueParser.getEncodedSize(token_3_arrayValues);
}
@@ -183,7 +182,7 @@
+ ConstantValueParser.getEncodedSize(token_3_arrayValues);
}
- public String formatAsString() { // TODO - fold into toFormulaString
+ public String toFormulaString() {
StringBuffer b = new StringBuffer();
b.append("{");
for (int y=0;y<getRowCount();y++) {
@@ -201,9 +200,6 @@
b.append("}");
return b.toString();
}
- public String toFormulaString() {
- return formatAsString();
- }
private static String getConstantText(Object o) {
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/AttrPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/AttrPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/AttrPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/AttrPtg.java Thu Oct 23 19:08:47 2008
@@ -17,10 +17,10 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.util.BitField;
import org.apache.poi.util.BitFieldFactory;
import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -79,7 +79,7 @@
_chooseFuncOffset = -1;
}
- public AttrPtg(RecordInputStream in)
+ public AttrPtg(LittleEndianInput in)
{
field_1_options = in.readByte();
field_2_data = in.readShort();
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java Thu Oct 23 19:08:47 2008
@@ -17,7 +17,7 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -32,7 +32,7 @@
public final static byte sid = 0x1D;
private final boolean _value;
- public BoolPtg(RecordInputStream in) {
+ public BoolPtg(LittleEndianInput in) {
_value = (in.readByte() == 1);
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/DeletedArea3DPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/DeletedArea3DPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/DeletedArea3DPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/DeletedArea3DPtg.java Thu Oct 23 19:08:47 2008
@@ -17,10 +17,10 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.usermodel.HSSFErrorConstants;
import org.apache.poi.ss.formula.FormulaRenderingWorkbook;
import org.apache.poi.ss.formula.WorkbookDependentFormula;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -42,7 +42,7 @@
unused2 = 0;
}
- public DeletedArea3DPtg(RecordInputStream in) {
+ public DeletedArea3DPtg(LittleEndianInput in) {
field_1_index_extern_sheet = in.readUShort();
unused1 = in.readInt();
unused2 = in.readInt();
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/DeletedRef3DPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/DeletedRef3DPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/DeletedRef3DPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/DeletedRef3DPtg.java Thu Oct 23 19:08:47 2008
@@ -18,10 +18,10 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.usermodel.HSSFErrorConstants;
import org.apache.poi.ss.formula.FormulaRenderingWorkbook;
import org.apache.poi.ss.formula.WorkbookDependentFormula;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -37,7 +37,7 @@
private final int unused1;
/** Creates new DeletedRef3DPtg */
- public DeletedRef3DPtg(RecordInputStream in) {
+ public DeletedRef3DPtg(LittleEndianInput in) {
field_1_index_extern_sheet = in.readUShort();
unused1 = in.readInt();
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java Thu Oct 23 19:08:47 2008
@@ -17,8 +17,8 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.usermodel.HSSFErrorConstants;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -58,7 +58,7 @@
field_1_error_code = errorCode;
}
- public static ErrPtg read(RecordInputStream in) {
+ public static ErrPtg read(LittleEndianInput in) {
return valueOf(in.readByte());
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java Thu Oct 23 19:08:47 2008
@@ -18,7 +18,7 @@
package org.apache.poi.hssf.record.formula;
import org.apache.poi.hssf.record.RecordFormatException;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -33,7 +33,7 @@
private final short field_1_first_row;
private final short field_2_first_col;
- public ExpPtg(RecordInputStream in)
+ public ExpPtg(LittleEndianInput in)
{
field_1_first_row = in.readShort();
field_2_first_col = in.readShort();
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java Thu Oct 23 19:08:47 2008
@@ -16,9 +16,9 @@
==================================================================== */
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.formula.function.FunctionMetadata;
import org.apache.poi.hssf.record.formula.function.FunctionMetadataRegistry;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -35,7 +35,7 @@
/**Creates new function pointer from a byte array
* usually called while reading an excel file.
*/
- public FuncPtg(RecordInputStream in) {
+ public FuncPtg(LittleEndianInput in) {
//field_1_num_args = data[ offset + 0 ];
field_2_fnc_index = in.readShort();
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java Thu Oct 23 19:08:47 2008
@@ -16,9 +16,9 @@
==================================================================== */
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.formula.function.FunctionMetadata;
import org.apache.poi.hssf.record.formula.function.FunctionMetadataRegistry;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -33,7 +33,7 @@
/**Creates new function pointer from a byte array
* usually called while reading an excel file.
*/
- public FuncVarPtg(RecordInputStream in) {
+ public FuncVarPtg(LittleEndianInput in) {
field_1_num_args = in.readByte();
field_2_fnc_index = in.readShort();
FunctionMetadata fm = FunctionMetadataRegistry.getFunctionByIndex(field_2_fnc_index);
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntPtg.java Thu Oct 23 19:08:47 2008
@@ -17,7 +17,7 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -46,7 +46,7 @@
public final static byte sid = 0x1e;
private final int field_1_value;
- public IntPtg(RecordInputStream in) {
+ public IntPtg(LittleEndianInput in) {
this(in.readUShort());
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java Thu Oct 23 19:08:47 2008
@@ -17,7 +17,7 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -36,7 +36,7 @@
field_2_subex_len = subexLen;
}
- public MemAreaPtg(RecordInputStream in) {
+ public MemAreaPtg(LittleEndianInput in) {
field_1_reserved = in.readInt();
field_2_subex_len = in.readShort();
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java Thu Oct 23 19:08:47 2008
@@ -17,7 +17,7 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -32,7 +32,7 @@
private int field_1_reserved;
private short field_2_subex_len;
- public MemErrPtg(RecordInputStream in) {
+ public MemErrPtg(LittleEndianInput in) {
field_1_reserved = in.readInt();
field_2_subex_len = in.readShort();
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java Thu Oct 23 19:08:47 2008
@@ -17,7 +17,7 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -32,7 +32,7 @@
* Creates new function pointer from a byte array usually called while
* reading an excel file.
*/
- public MemFuncPtg(RecordInputStream in) {
+ public MemFuncPtg(LittleEndianInput in) {
this(in.readUShort());
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/NamePtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/NamePtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/NamePtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/NamePtg.java Thu Oct 23 19:08:47 2008
@@ -17,9 +17,9 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.ss.formula.FormulaRenderingWorkbook;
import org.apache.poi.ss.formula.WorkbookDependentFormula;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -43,7 +43,7 @@
/** Creates new NamePtg */
- public NamePtg(RecordInputStream in) {
+ public NamePtg(LittleEndianInput in) {
field_1_label_index = in.readShort();
field_2_zero = in.readShort();
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java Thu Oct 23 19:08:47 2008
@@ -17,9 +17,9 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.ss.formula.FormulaRenderingWorkbook;
import org.apache.poi.ss.formula.WorkbookDependentFormula;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -51,7 +51,7 @@
this(sheetRefIndex, nameIndex + 1, 0);
}
- public NameXPtg(RecordInputStream in) {
+ public NameXPtg(LittleEndianInput in) {
this(in.readUShort(), in.readUShort(), in.readUShort());
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/NumberPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/NumberPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/NumberPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/NumberPtg.java Thu Oct 23 19:08:47 2008
@@ -17,7 +17,7 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -32,7 +32,7 @@
public final static byte sid = 0x1f;
private final double field_1_value;
- public NumberPtg(RecordInputStream in) {
+ public NumberPtg(LittleEndianInput in) {
this(in.readDouble());
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ptg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ptg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ptg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ptg.java Thu Oct 23 19:08:47 2008
@@ -20,8 +20,8 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.util.LittleEndianByteArrayOutputStream;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -48,12 +48,12 @@
* Reads <tt>size</tt> bytes of the input stream, to create an array of <tt>Ptg</tt>s.
* Extra data (beyond <tt>size</tt>) may be read if and <tt>ArrayPtg</tt>s are present.
*/
- public static Ptg[] readTokens(int size, RecordInputStream in) {
+ public static Ptg[] readTokens(int size, LittleEndianInput in) {
List temp = new ArrayList(4 + size / 2);
int pos = 0;
List arrayPtgs = null;
while (pos < size) {
- Ptg ptg = Ptg.createPtg( in );
+ Ptg ptg = Ptg.createPtg(in);
if (ptg instanceof ArrayPtg) {
if (arrayPtgs == null) {
arrayPtgs = new ArrayList(5);
@@ -77,7 +77,7 @@
return toPtgArray(temp);
}
- public static Ptg createPtg(RecordInputStream in) {
+ public static Ptg createPtg(LittleEndianInput in) {
byte id = in.readByte();
if (id < 0x20) {
@@ -97,7 +97,7 @@
return retval;
}
- private static Ptg createClassifiedPtg(byte id, RecordInputStream in) {
+ private static Ptg createClassifiedPtg(byte id, LittleEndianInput in) {
int baseId = id & 0x1F | 0x20;
@@ -126,7 +126,7 @@
Integer.toHexString(id) + " (" + ( int ) id + ")");
}
- private static Ptg createBasePtg(byte id, RecordInputStream in) {
+ private static Ptg createBasePtg(byte id, LittleEndianInput in) {
switch(id) {
case 0x00: return new UnknownPtg(id); // TODO - not a real Ptg
case ExpPtg.sid: return new ExpPtg(in); // 0x01
@@ -228,10 +228,9 @@
* @return number of bytes written
*/
public static int serializePtgs(Ptg[] ptgs, byte[] array, int offset) {
- int pos = 0;
int nTokens = ptgs.length;
- LittleEndianOutput out = new LittleEndianByteArrayOutputStream(array, offset);
+ LittleEndianByteArrayOutputStream out = new LittleEndianByteArrayOutputStream(array, offset);
List arrayPtgs = null;
@@ -244,18 +243,15 @@
arrayPtgs = new ArrayList(5);
}
arrayPtgs.add(ptg);
- pos += ArrayPtg.PLAIN_TOKEN_SIZE;
- } else {
- pos += ptg.getSize();
}
}
if (arrayPtgs != null) {
for (int i=0;i<arrayPtgs.size();i++) {
ArrayPtg p = (ArrayPtg)arrayPtgs.get(i);
- pos += p.writeTokenValueBytes(array, pos + offset);
+ p.writeTokenValueBytes(out);
}
}
- return pos;
+ return out.getWriteIndex() - offset;
}
/**
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ref2DPtgBase.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ref2DPtgBase.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ref2DPtgBase.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ref2DPtgBase.java Thu Oct 23 19:08:47 2008
@@ -17,7 +17,7 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -41,7 +41,7 @@
setColRelative(isColumnRelative);
}
- protected Ref2DPtgBase(RecordInputStream in) {
+ protected Ref2DPtgBase(LittleEndianInput in) {
readCoordinates(in);
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java Thu Oct 23 19:08:47 2008
@@ -17,11 +17,11 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.util.CellReference;
import org.apache.poi.ss.formula.ExternSheetReferenceToken;
import org.apache.poi.ss.formula.FormulaRenderingWorkbook;
import org.apache.poi.ss.formula.WorkbookDependentFormula;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -41,7 +41,7 @@
/** Creates new AreaPtg */
public Ref3DPtg() {}
- public Ref3DPtg(RecordInputStream in) {
+ public Ref3DPtg(LittleEndianInput in) {
field_1_index_extern_sheet = in.readShort();
readCoordinates(in);
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefErrorPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefErrorPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefErrorPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefErrorPtg.java Thu Oct 23 19:08:47 2008
@@ -17,8 +17,8 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.usermodel.HSSFErrorConstants;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -34,7 +34,7 @@
public RefErrorPtg() {
field_1_reserved = 0;
}
- public RefErrorPtg(RecordInputStream in) {
+ public RefErrorPtg(LittleEndianInput in) {
field_1_reserved = in.readInt();
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefNPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefNPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefNPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefNPtg.java Thu Oct 23 19:08:47 2008
@@ -17,7 +17,7 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndianInput;
/**
* RefNPtg
@@ -26,7 +26,7 @@
public final class RefNPtg extends Ref2DPtgBase {
public final static byte sid = 0x2C;
- public RefNPtg(RecordInputStream in) {
+ public RefNPtg(LittleEndianInput in) {
super(in);
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefPtg.java Thu Oct 23 19:08:47 2008
@@ -17,7 +17,7 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndianInput;
/**
* ReferencePtg - handles references (such as A1, A2, IA4)
@@ -39,7 +39,7 @@
super(row, column, isRowRelative, isColumnRelative);
}
- public RefPtg(RecordInputStream in) {
+ public RefPtg(LittleEndianInput in) {
super(in);
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefPtgBase.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefPtgBase.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefPtgBase.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefPtgBase.java Thu Oct 23 19:08:47 2008
@@ -17,10 +17,10 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.util.CellReference;
import org.apache.poi.util.BitField;
import org.apache.poi.util.BitFieldFactory;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -67,7 +67,7 @@
setColRelative(isColumnRelative);
}
- protected final void readCoordinates(RecordInputStream in) {
+ protected final void readCoordinates(LittleEndianInput in) {
field_1_row = in.readUShort();
field_2_col = in.readUShort();
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/StringPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/StringPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/StringPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/StringPtg.java Thu Oct 23 19:08:47 2008
@@ -17,9 +17,9 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.util.BitField;
import org.apache.poi.util.BitFieldFactory;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
import org.apache.poi.util.StringUtil;
@@ -47,7 +47,7 @@
private final String field_3_string;
/** Create a StringPtg from a stream */
- public StringPtg(RecordInputStream in) {
+ public StringPtg(LittleEndianInput in) {
field_1_length = in.readUByte();
field_2_options = in.readByte();
if (fHighByte.isSet(field_2_options)) {
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/TblPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/TblPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/TblPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/TblPtg.java Thu Oct 23 19:08:47 2008
@@ -18,7 +18,7 @@
package org.apache.poi.hssf.record.formula;
import org.apache.poi.hssf.record.RecordFormatException;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
/**
@@ -43,7 +43,7 @@
/** The column number of the upper left corner */
private final int field_2_first_col;
- public TblPtg(RecordInputStream in) {
+ public TblPtg(LittleEndianInput in) {
field_1_first_row = in.readUShort();
field_2_first_col = in.readUShort();
}
Modified: poi/trunk/src/java/org/apache/poi/util/LittleEndianByteArrayOutputStream.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/util/LittleEndianByteArrayOutputStream.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/util/LittleEndianByteArrayOutputStream.java (original)
+++ poi/trunk/src/java/org/apache/poi/util/LittleEndianByteArrayOutputStream.java Thu Oct 23 19:08:47 2008
@@ -81,4 +81,7 @@
System.arraycopy(b, 0, _buf, _writeIndex, len);
_writeIndex += len;
}
+ public int getWriteIndex() {
+ return _writeIndex;
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/util/StringUtil.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/util/StringUtil.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/util/StringUtil.java (original)
+++ poi/trunk/src/java/org/apache/poi/util/StringUtil.java Thu Oct 23 19:08:47 2008
@@ -140,6 +140,27 @@
}
return readUnicodeLE(in, nChars);
}
+ /**
+ * OutputStream <tt>out</tt> will get:
+ * <ol>
+ * <li>ushort nChars</li>
+ * <li>byte is16BitFlag</li>
+ * <li>byte[]/char[] characterData</li>
+ * </ol>
+ * For this encoding, the is16BitFlag is always present even if nChars==0.
+ */
+ public static void writeUnicodeString(LittleEndianOutput out, String value) {
+
+ int nChars = value.length();
+ out.writeShort(nChars);
+ boolean is16Bit = hasMultibyte(value);
+ out.writeByte(is16Bit ? 0x01 : 0x00);
+ if (is16Bit) {
+ putUnicodeLE(value, out);
+ } else {
+ putCompressedUnicode(value, out);
+ }
+ }
/**
* Takes a unicode (java) string, and returns it as 8 bit data (in ISO-8859-1
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/constant/TestConstantValueParser.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/constant/TestConstantValueParser.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/constant/TestConstantValueParser.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/constant/TestConstantValueParser.java Thu Oct 23 19:08:47 2008
@@ -26,6 +26,7 @@
import org.apache.poi.hssf.record.UnicodeString;
import org.apache.poi.hssf.usermodel.HSSFErrorConstants;
import org.apache.poi.util.HexRead;
+import org.apache.poi.util.LittleEndianByteArrayOutputStream;
/**
*
* @author Josh Micich
@@ -52,7 +53,8 @@
public void testEncode() {
int size = ConstantValueParser.getEncodedSize(SAMPLE_VALUES);
byte[] data = new byte[size];
- ConstantValueParser.encode(data, 0, SAMPLE_VALUES);
+
+ ConstantValueParser.encode(new LittleEndianByteArrayOutputStream(data, 0), SAMPLE_VALUES);
if (!Arrays.equals(data, SAMPLE_ENCODING)) {
fail("Encoding differs");
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/TestArrayPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/TestArrayPtg.java?rev=707525&r1=707524&r2=707525&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/TestArrayPtg.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/TestArrayPtg.java Thu Oct 23 19:08:47 2008
@@ -24,6 +24,7 @@
import org.apache.poi.hssf.record.TestcaseRecordInputStream;
import org.apache.poi.hssf.record.UnicodeString;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.util.LittleEndianByteArrayOutputStream;
import junit.framework.AssertionFailedError;
import junit.framework.TestCase;
@@ -70,7 +71,7 @@
assertEquals(new UnicodeString("FG"), values[1][2]);
byte[] outBuf = new byte[ENCODED_CONSTANT_DATA.length];
- ptg.writeTokenValueBytes(outBuf, 0);
+ ptg.writeTokenValueBytes(new LittleEndianByteArrayOutputStream(outBuf, 0));
if(outBuf[0] == 4) {
throw new AssertionFailedError("Identified bug 42564b");
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org