Looks like we already had Ref8U but with a different name... Switch to using CellRangeAddress instead!
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@894078 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
869fc4e5a6
commit
1186abb3b4
@ -18,7 +18,7 @@
|
||||
package org.apache.poi.hssf.record;
|
||||
|
||||
import org.apache.poi.hssf.record.common.FtrHeader;
|
||||
import org.apache.poi.hssf.record.common.Ref8U;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.poi.util.LittleEndianOutput;
|
||||
|
||||
/**
|
||||
@ -41,7 +41,7 @@ public final class FeatRecord extends StandardRecord {
|
||||
/** Only matters if type is ISFFEC2 */
|
||||
private long cbFeatData;
|
||||
private int reserved3; // Should always be zero
|
||||
private Ref8U[] cellRefs;
|
||||
private CellRangeAddress[] cellRefs;
|
||||
|
||||
private byte[] rgbFeat;
|
||||
|
||||
@ -64,9 +64,9 @@ public final class FeatRecord extends StandardRecord {
|
||||
cbFeatData = in.readInt();
|
||||
reserved3 = in.readShort();
|
||||
|
||||
cellRefs = new Ref8U[cref];
|
||||
cellRefs = new CellRangeAddress[cref];
|
||||
for(int i=0; i<cellRefs.length; i++) {
|
||||
cellRefs[i] = new Ref8U(in);
|
||||
cellRefs[i] = new CellRangeAddress(in);
|
||||
}
|
||||
|
||||
rgbFeat = in.readRemainder();
|
||||
@ -100,6 +100,8 @@ public final class FeatRecord extends StandardRecord {
|
||||
}
|
||||
|
||||
protected int getDataSize() {
|
||||
return 12 + 2+1+4+2+4+2+Ref8U.getDataSize()+rgbFeat.length;
|
||||
return 12 + 2+1+4+2+4+2+
|
||||
(cellRefs.length * CellRangeAddress.ENCODED_SIZE)
|
||||
+rgbFeat.length;
|
||||
}
|
||||
}
|
||||
|
@ -1,92 +0,0 @@
|
||||
/* ====================================================================
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==================================================================== */
|
||||
|
||||
package org.apache.poi.hssf.record.common;
|
||||
|
||||
import org.apache.poi.hssf.record.RecordInputStream;
|
||||
import org.apache.poi.util.LittleEndianOutput;
|
||||
|
||||
/**
|
||||
* Title: Ref8U (Cell Range) common record part
|
||||
* <P>
|
||||
* This record part specifies common way of encoding a
|
||||
* block of cells via first-last row-column.
|
||||
*/
|
||||
public final class Ref8U {
|
||||
private short firstRow; // zero-based
|
||||
private short lastRow; // zero-based
|
||||
private short firstCol; // zero-based
|
||||
private short lastCol; // zero-based
|
||||
|
||||
public Ref8U() {
|
||||
}
|
||||
|
||||
public Ref8U(RecordInputStream in) {
|
||||
firstRow = in.readShort();
|
||||
lastRow = in.readShort();
|
||||
firstCol = in.readShort();
|
||||
lastCol = in.readShort();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
buffer.append(" [CELL RANGE]\n");
|
||||
buffer.append(" Rows " + firstRow + " to " + lastRow);
|
||||
buffer.append(" Cols " + firstCol + " to " + lastCol);
|
||||
buffer.append(" [/CELL RANGE]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public void serialize(LittleEndianOutput out) {
|
||||
out.writeShort(firstRow);
|
||||
out.writeShort(lastRow);
|
||||
out.writeShort(firstCol);
|
||||
out.writeShort(lastCol);
|
||||
}
|
||||
|
||||
public static int getDataSize() {
|
||||
return 8;
|
||||
}
|
||||
|
||||
public short getFirstRow() {
|
||||
return firstRow;
|
||||
}
|
||||
public void setFirstRow(short firstRow) {
|
||||
this.firstRow = firstRow;
|
||||
}
|
||||
|
||||
public short getLastRow() {
|
||||
return lastRow;
|
||||
}
|
||||
public void setLastRow(short lastRow) {
|
||||
this.lastRow = lastRow;
|
||||
}
|
||||
|
||||
public short getFirstCol() {
|
||||
return firstCol;
|
||||
}
|
||||
public void setFirstCol(short firstCol) {
|
||||
this.firstCol = firstCol;
|
||||
}
|
||||
|
||||
public short getLastCol() {
|
||||
return lastCol;
|
||||
}
|
||||
public void setLastCol(short lastCol) {
|
||||
this.lastCol = lastCol;
|
||||
}
|
||||
}
|
@ -24,6 +24,9 @@ import org.apache.poi.util.LittleEndianOutput;
|
||||
|
||||
/**
|
||||
* See OOO documentation: excelfileformat.pdf sec 2.5.14 - 'Cell Range Address'<p/>
|
||||
*
|
||||
* <p>In the Microsoft documentation, this is also known as a
|
||||
* Ref8U - see page 831 of version 1.0 of the documentation.
|
||||
*
|
||||
* Note - {@link SelectionRecord} uses the BIFF5 version of this structure
|
||||
* @author Dragos Buleandra (dragos.buleandra@trade2b.ro)
|
||||
|
@ -15,16 +15,17 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
==================================================================== */
|
||||
|
||||
package org.apache.poi.hssf.record.common;
|
||||
package org.apache.poi.ss.util;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
|
||||
import org.apache.poi.hssf.record.TestcaseRecordInputStream;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.poi.util.LittleEndianOutputStream;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
public final class TestRef8U extends TestCase {
|
||||
public final class TestCellRangeAddress extends TestCase {
|
||||
byte[] data = new byte[] {
|
||||
(byte)0x02,(byte)0x00,
|
||||
(byte)0x04,(byte)0x00,
|
||||
@ -33,20 +34,20 @@ public final class TestRef8U extends TestCase {
|
||||
};
|
||||
|
||||
public void testLoad() {
|
||||
Ref8U ref = new Ref8U(
|
||||
CellRangeAddress ref = new CellRangeAddress(
|
||||
TestcaseRecordInputStream.create(0x000, data)
|
||||
);
|
||||
assertEquals(2, ref.getFirstRow());
|
||||
assertEquals(4, ref.getLastRow());
|
||||
assertEquals(0, ref.getFirstCol());
|
||||
assertEquals(3, ref.getLastCol());
|
||||
assertEquals(0, ref.getFirstColumn());
|
||||
assertEquals(3, ref.getLastColumn());
|
||||
|
||||
assertEquals( 8, Ref8U.getDataSize() );
|
||||
assertEquals( 8, CellRangeAddress.ENCODED_SIZE );
|
||||
}
|
||||
|
||||
public void testStore()
|
||||
{
|
||||
Ref8U ref = new Ref8U();
|
||||
CellRangeAddress ref = new CellRangeAddress(0,0,0,0);
|
||||
|
||||
byte[] recordBytes;
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
@ -63,8 +64,8 @@ public final class TestRef8U extends TestCase {
|
||||
// Now set the flags
|
||||
ref.setFirstRow((short)2);
|
||||
ref.setLastRow((short)4);
|
||||
ref.setFirstCol((short)0);
|
||||
ref.setLastCol((short)3);
|
||||
ref.setFirstColumn((short)0);
|
||||
ref.setLastColumn((short)3);
|
||||
|
||||
// Re-test
|
||||
baos.reset();
|
Loading…
Reference in New Issue
Block a user