Added getters to parent objects: HSSFSheet.getWorkbook(), HSSFRow.getSheet() and HSSFCell.getRow()

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@727469 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Yegor Kozlov 2008-12-17 18:55:07 +00:00
parent 60afb94fdb
commit 9a665498f8
9 changed files with 83 additions and 0 deletions

View File

@ -37,6 +37,7 @@
<!-- Don't forget to update status.xml too! -->
<release version="3.5-beta5" date="2008-??-??">
<action dev="POI-DEVELOPERS" type="add">Added getters to parent objects: HSSFSheet.getWorkbook(), HSSFRow.getSheet() and HSSFCell.getRow()</action>
<action dev="POI-DEVELOPERS" type="fix">46385 - (also patch 46362) fix serialization of StyleRecord with unicode name</action>
<action dev="POI-DEVELOPERS" type="fix">46368 - Fix HSSFRichTextRun and strings longer than 32768 characters</action>
<action dev="POI-DEVELOPERS" type="add">Support sheet-level names</action>

View File

@ -34,6 +34,7 @@
<!-- Don't forget to update changes.xml too! -->
<changes>
<release version="3.5-beta5" date="2008-??-??">
<action dev="POI-DEVELOPERS" type="add">Added getters to parent objects: HSSFSheet.getWorkbook(), HSSFRow.getSheet() and HSSFCell.getRow()</action>
<action dev="POI-DEVELOPERS" type="fix">46385 - (also patch 46362) fix serialization of StyleRecord with unicode name</action>
<action dev="POI-DEVELOPERS" type="fix">46368 - Fix HSSFRichTextRun and strings longer than 32768 characters</action>
<action dev="POI-DEVELOPERS" type="add">Support sheet-level names</action>

View File

@ -127,10 +127,26 @@ public class HSSFCell implements Cell {
short xfindex = sheet.getSheet().getXFIndexForColAt(col);
setCellType(CELL_TYPE_BLANK, false, row, col,xfindex);
}
/**
* Returns the HSSFSheet this cell belongs to
*
* @return the HSSFSheet that owns this cell
*/
public HSSFSheet getSheet() {
return sheet;
}
/**
* Returns the HSSFRow this cell belongs to
*
* @return the HSSFRow that owns this cell
*/
public HSSFRow getRow() {
int rowIndex = getRowIndex();
return sheet.getRow(rowIndex);
}
/**
* Creates new Cell - Should only be called by HSSFRow. This creates a cell
* from scratch.

View File

@ -233,6 +233,16 @@ public final class HSSFRow implements Comparable, Row {
return rowNum;
}
/**
* Returns the HSSFSheet this row belongs to
*
* @return the HSSFSheet that owns this row
*/
public HSSFSheet getSheet()
{
return sheet;
}
/**
* Returns the rows outline level. Increased as you
* put it into more groups (outlines), reduced as

View File

@ -128,6 +128,14 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
return new HSSFSheet(workbook, sheet.cloneSheet());
}
/**
* Return the parent workbook
*
* @return the parent workbook
*/
public HSSFWorkbook getWorkbook(){
return workbook;
}
/**
* used internally to set the properties given a Sheet object

View File

@ -98,6 +98,13 @@ public interface Cell {
*/
Sheet getSheet();
/**
* Returns the Row this cell belongs to
*
* @return the Row that owns this cell
*/
Row getRow();
/**
* Set the cells type (numeric, formula or string)
*

View File

@ -183,6 +183,13 @@ public interface Row extends Iterable<Cell> {
*/
Iterator<Cell> cellIterator();
/**
* Returns the Sheet this row belongs to
*
* @return the Sheet that owns this row
*/
Sheet getSheet();
/**
* Used to specify the different possible policies
* if for the case of null and blank cells

View File

@ -712,4 +712,11 @@ public interface Sheet extends Iterable<Row> {
*/
Drawing createDrawingPatriarch();
/**
* Return the parent workbook
*
* @return the parent workbook
*/
Workbook getWorkbook();
}

View File

@ -545,4 +545,30 @@ public final class TestWorkbook extends TestCase {
assertTrue("file exists",file.exists());
}
public void testParentReferences(){
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
assertSame(workbook, sheet.getWorkbook());
HSSFRow row = sheet.createRow(0);
assertSame(sheet, row.getSheet());
HSSFCell cell = row.createCell(1);
assertSame(sheet, cell.getSheet());
assertSame(row, cell.getRow());
workbook = HSSFTestDataSamples.writeOutAndReadBack(workbook);
sheet = workbook.getSheetAt(0);
assertSame(workbook, sheet.getWorkbook());
row = sheet.getRow(0);
assertSame(sheet, row.getSheet());
cell = row.getCell(1);
assertSame(sheet, cell.getSheet());
assertSame(row, cell.getRow());
}
}