Rename/Move xssf.model.Table to xssf.usermodel.XSSFTable as it now has usermodel-like features

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1092286 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2011-04-14 14:32:49 +00:00
parent b3fee7f7e6
commit 5df80fe7ac
10 changed files with 31 additions and 36 deletions

View File

@ -34,6 +34,7 @@
<changes> <changes>
<release version="3.8-beta3" date="2011-??-??"> <release version="3.8-beta3" date="2011-??-??">
<action dev="poi-developers" type="fix">Rename/Move xssf.model.Table to xssf.usermodel.XSSFTable as it now has usermodel-like features</action>
<action dev="poi-developers" type="fix">51061 - Correct target URI for new XSSF Tables</action> <action dev="poi-developers" type="fix">51061 - Correct target URI for new XSSF Tables</action>
<action dev="poi-developers" type="add">Initial support for XSSF Charts. Provides easy access to the underlying CTChart object via the Sheet Drawing, but no high level interface onto the chart contents as yet.</action> <action dev="poi-developers" type="add">Initial support for XSSF Charts. Provides easy access to the underlying CTChart object via the Sheet Drawing, but no high level interface onto the chart contents as yet.</action>
<action dev="poi-developers" type="fix">50884 - XSSF and HSSF freeze panes now behave the same</action> <action dev="poi-developers" type="fix">50884 - XSSF and HSSF freeze panes now behave the same</action>

View File

@ -41,7 +41,7 @@ import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator; import javax.xml.validation.Validator;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.xssf.model.Table; import org.apache.poi.xssf.usermodel.XSSFTable;
import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFMap; import org.apache.poi.xssf.usermodel.XSSFMap;
import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFRow;
@ -123,7 +123,7 @@ public class XSSFExportToXml implements Comparator<String>{
*/ */
public void exportToXML(OutputStream os, String encoding, boolean validate) throws SAXException, ParserConfigurationException, TransformerException{ public void exportToXML(OutputStream os, String encoding, boolean validate) throws SAXException, ParserConfigurationException, TransformerException{
List<XSSFSingleXmlCell> singleXMLCells = map.getRelatedSingleXMLCell(); List<XSSFSingleXmlCell> singleXMLCells = map.getRelatedSingleXMLCell();
List<Table> tables = map.getRelatedTables(); List<XSSFTable> tables = map.getRelatedTables();
String rootElement = map.getCtMap().getRootElement(); String rootElement = map.getCtMap().getRootElement();
@ -141,13 +141,13 @@ public class XSSFExportToXml implements Comparator<String>{
List<String> xpaths = new Vector<String>(); List<String> xpaths = new Vector<String>();
Map<String,XSSFSingleXmlCell> singleXmlCellsMappings = new HashMap<String,XSSFSingleXmlCell>(); Map<String,XSSFSingleXmlCell> singleXmlCellsMappings = new HashMap<String,XSSFSingleXmlCell>();
Map<String,Table> tableMappings = new HashMap<String,Table>(); Map<String,XSSFTable> tableMappings = new HashMap<String,XSSFTable>();
for(XSSFSingleXmlCell simpleXmlCell : singleXMLCells) { for(XSSFSingleXmlCell simpleXmlCell : singleXMLCells) {
xpaths.add(simpleXmlCell.getXpath()); xpaths.add(simpleXmlCell.getXpath());
singleXmlCellsMappings.put(simpleXmlCell.getXpath(), simpleXmlCell); singleXmlCellsMappings.put(simpleXmlCell.getXpath(), simpleXmlCell);
} }
for(Table table : tables) { for(XSSFTable table : tables) {
String commonXPath = table.getCommonXpath(); String commonXPath = table.getCommonXpath();
xpaths.add(commonXPath); xpaths.add(commonXPath);
tableMappings.put(commonXPath, table); tableMappings.put(commonXPath, table);
@ -159,7 +159,7 @@ public class XSSFExportToXml implements Comparator<String>{
for(String xpath : xpaths) { for(String xpath : xpaths) {
XSSFSingleXmlCell simpleXmlCell = singleXmlCellsMappings.get(xpath); XSSFSingleXmlCell simpleXmlCell = singleXmlCellsMappings.get(xpath);
Table table = tableMappings.get(xpath); XSSFTable table = tableMappings.get(xpath);
if (!xpath.matches(".*\\[.*")) { if (!xpath.matches(".*\\[.*")) {

View File

@ -33,7 +33,7 @@ import javax.xml.xpath.XPathFactory;
import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger; import org.apache.poi.util.POILogger;
import org.apache.poi.xssf.model.Table; import org.apache.poi.xssf.usermodel.XSSFTable;
import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFMap; import org.apache.poi.xssf.usermodel.XSSFMap;
import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFRow;
@ -85,7 +85,7 @@ public class XSSFImportFromXML {
List<XSSFSingleXmlCell> singleXmlCells = _map.getRelatedSingleXMLCell(); List<XSSFSingleXmlCell> singleXmlCells = _map.getRelatedSingleXMLCell();
List<Table> tables = _map.getRelatedTables(); List<XSSFTable> tables = _map.getRelatedTables();
XPathFactory xpathFactory = XPathFactory.newInstance(); XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath(); XPath xpath = xpathFactory.newXPath();
@ -107,7 +107,7 @@ public class XSSFImportFromXML {
cell.setCellValue(textContent); cell.setCellValue(textContent);
} }
for (Table table : tables) { for (XSSFTable table : tables) {
String commonXPath = table.getCommonXpath(); String commonXPath = table.getCommonXpath();
NodeList result = (NodeList) xpath.evaluate(commonXPath, doc, XPathConstants.NODESET); NodeList result = (NodeList) xpath.evaluate(commonXPath, doc, XPathConstants.NODESET);

View File

@ -24,7 +24,6 @@ import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
import org.apache.poi.xssf.model.MapInfo; import org.apache.poi.xssf.model.MapInfo;
import org.apache.poi.xssf.model.SingleXmlCells; import org.apache.poi.xssf.model.SingleXmlCells;
import org.apache.poi.xssf.model.Table;
import org.apache.poi.xssf.usermodel.helpers.XSSFSingleXmlCell; import org.apache.poi.xssf.usermodel.helpers.XSSFSingleXmlCell;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTMap; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTMap;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSchema; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSchema;
@ -101,16 +100,16 @@ public class XSSFMap {
/** /**
* @return the list of all Tables that provide a map rule to this mapping * @return the list of all Tables that provide a map rule to this mapping
*/ */
public List<Table> getRelatedTables() { public List<XSSFTable> getRelatedTables() {
List<Table> tables = new Vector<Table>(); List<XSSFTable> tables = new Vector<XSSFTable>();
int sheetNumber = mapInfo.getWorkbook().getNumberOfSheets(); int sheetNumber = mapInfo.getWorkbook().getNumberOfSheets();
for (int i = 0; i < sheetNumber; i++) { for (int i = 0; i < sheetNumber; i++) {
XSSFSheet sheet = mapInfo.getWorkbook().getSheetAt(i); XSSFSheet sheet = mapInfo.getWorkbook().getSheetAt(i);
for (POIXMLDocumentPart p : sheet.getRelations()) { for (POIXMLDocumentPart p : sheet.getRelations()) {
if (p.getPackageRelationship().getRelationshipType().equals(XSSFRelation.TABLE.getRelation())) { if (p.getPackageRelationship().getRelationshipType().equals(XSSFRelation.TABLE.getRelation())) {
Table table = (Table) p; XSSFTable table = (XSSFTable) p;
if (table.mapsTo(ctMap.getID())) { if (table.mapsTo(ctMap.getID())) {
tables.add(table); tables.add(table);
} }

View File

@ -39,7 +39,6 @@ import org.apache.poi.xssf.model.MapInfo;
import org.apache.poi.xssf.model.SharedStringsTable; import org.apache.poi.xssf.model.SharedStringsTable;
import org.apache.poi.xssf.model.SingleXmlCells; import org.apache.poi.xssf.model.SingleXmlCells;
import org.apache.poi.xssf.model.StylesTable; import org.apache.poi.xssf.model.StylesTable;
import org.apache.poi.xssf.model.Table;
import org.apache.poi.xssf.model.ThemesTable; import org.apache.poi.xssf.model.ThemesTable;
/** /**
@ -146,7 +145,7 @@ public final class XSSFRelation extends POIXMLRelation {
"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml", "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml",
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/table", "http://schemas.openxmlformats.org/officeDocument/2006/relationships/table",
"/xl/tables/table#.xml", "/xl/tables/table#.xml",
Table.class XSSFTable.class
); );
public static final XSSFRelation IMAGES = new XSSFRelation( public static final XSSFRelation IMAGES = new XSSFRelation(

View File

@ -59,7 +59,6 @@ import org.apache.poi.util.Internal;
import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger; import org.apache.poi.util.POILogger;
import org.apache.poi.xssf.model.CommentsTable; import org.apache.poi.xssf.model.CommentsTable;
import org.apache.poi.xssf.model.Table;
import org.apache.poi.xssf.usermodel.helpers.ColumnHelper; import org.apache.poi.xssf.usermodel.helpers.ColumnHelper;
import org.apache.poi.xssf.usermodel.helpers.XSSFRowShifter; import org.apache.poi.xssf.usermodel.helpers.XSSFRowShifter;
import org.apache.xmlbeans.XmlException; import org.apache.xmlbeans.XmlException;
@ -130,7 +129,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
* Master shared formula is the first formula in a group of shared formulas is saved in the f element. * Master shared formula is the first formula in a group of shared formulas is saved in the f element.
*/ */
private Map<Integer, CTCellFormula> sharedFormulas; private Map<Integer, CTCellFormula> sharedFormulas;
private TreeMap<String,Table> tables; private TreeMap<String,XSSFTable> tables;
private List<CellRangeAddress> arrayFormulas; private List<CellRangeAddress> arrayFormulas;
private XSSFDataValidationHelper dataValidationHelper; private XSSFDataValidationHelper dataValidationHelper;
@ -194,8 +193,8 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
sheetComments = (CommentsTable)p; sheetComments = (CommentsTable)p;
break; break;
} }
if(p instanceof Table) { if(p instanceof XSSFTable) {
tables.put( p.getPackageRelationship().getId(), (Table)p ); tables.put( p.getPackageRelationship().getId(), (XSSFTable)p );
} }
} }
@ -217,7 +216,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
@SuppressWarnings("deprecation") //YK: getXYZArray() array accessors are deprecated in xmlbeans with JDK 1.5 support @SuppressWarnings("deprecation") //YK: getXYZArray() array accessors are deprecated in xmlbeans with JDK 1.5 support
private void initRows(CTWorksheet worksheet) { private void initRows(CTWorksheet worksheet) {
_rows = new TreeMap<Integer, XSSFRow>(); _rows = new TreeMap<Integer, XSSFRow>();
tables = new TreeMap<String, Table>(); tables = new TreeMap<String, XSSFTable>();
sharedFormulas = new HashMap<Integer, CTCellFormula>(); sharedFormulas = new HashMap<Integer, CTCellFormula>();
arrayFormulas = new ArrayList<CellRangeAddress>(); arrayFormulas = new ArrayList<CellRangeAddress>();
for (CTRow row : worksheet.getSheetData().getRowArray()) { for (CTRow row : worksheet.getSheetData().getRowArray()) {
@ -3022,7 +3021,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
/** /**
* Creates a new Table, and associates it with this Sheet * Creates a new Table, and associates it with this Sheet
*/ */
public Table createTable() { public XSSFTable createTable() {
if(! worksheet.isSetTableParts()) { if(! worksheet.isSetTableParts()) {
worksheet.addNewTableParts(); worksheet.addNewTableParts();
} }
@ -3033,7 +3032,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
// Table numbers need to be unique in the file, not just // Table numbers need to be unique in the file, not just
// unique within the sheet. Find the next one // unique within the sheet. Find the next one
int tableNumber = getPackagePart().getPackage().getPartsByContentType(XSSFRelation.TABLE.getContentType()).size() + 1; int tableNumber = getPackagePart().getPackage().getPartsByContentType(XSSFRelation.TABLE.getContentType()).size() + 1;
Table table = (Table)createRelationship(XSSFRelation.TABLE, XSSFFactory.getInstance(), tableNumber); XSSFTable table = (XSSFTable)createRelationship(XSSFRelation.TABLE, XSSFFactory.getInstance(), tableNumber);
tbl.setId(table.getPackageRelationship().getId()); tbl.setId(table.getPackageRelationship().getId());
tables.put(tbl.getId(), table); tables.put(tbl.getId(), table);
@ -3044,8 +3043,8 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
/** /**
* Returns any tables associated with this Sheet * Returns any tables associated with this Sheet
*/ */
public List<Table> getTables() { public List<XSSFTable> getTables() {
List<Table> tableList = new ArrayList<Table>( List<XSSFTable> tableList = new ArrayList<XSSFTable>(
tables.values() tables.values()
); );
return tableList; return tableList;

View File

@ -15,7 +15,7 @@
limitations under the License. limitations under the License.
==================================================================== */ ==================================================================== */
package org.apache.poi.xssf.model; package org.apache.poi.xssf.usermodel;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
@ -28,7 +28,6 @@ import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.openxml4j.opc.PackagePart; import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship; import org.apache.poi.openxml4j.opc.PackageRelationship;
import org.apache.poi.ss.util.CellReference; import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.helpers.XSSFXmlColumnPr; import org.apache.poi.xssf.usermodel.helpers.XSSFXmlColumnPr;
import org.apache.xmlbeans.XmlException; import org.apache.xmlbeans.XmlException;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTable; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTable;
@ -47,7 +46,7 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.TableDocument;
* *
* @author Roberto Manicardi * @author Roberto Manicardi
*/ */
public class Table extends POIXMLDocumentPart { public class XSSFTable extends POIXMLDocumentPart {
private CTTable ctTable; private CTTable ctTable;
private List<XSSFXmlColumnPr> xmlColumnPr; private List<XSSFXmlColumnPr> xmlColumnPr;
@ -56,13 +55,13 @@ public class Table extends POIXMLDocumentPart {
private String commonXPath; private String commonXPath;
public Table() { public XSSFTable() {
super(); super();
ctTable = CTTable.Factory.newInstance(); ctTable = CTTable.Factory.newInstance();
} }
public Table(PackagePart part, PackageRelationship rel) public XSSFTable(PackagePart part, PackageRelationship rel)
throws IOException { throws IOException {
super(part, rel); super(part, rel);
readFrom(part.getInputStream()); readFrom(part.getInputStream());

View File

@ -17,7 +17,7 @@
package org.apache.poi.xssf.usermodel.helpers; package org.apache.poi.xssf.usermodel.helpers;
import org.apache.poi.xssf.model.Table; import org.apache.poi.xssf.usermodel.XSSFTable;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableColumn; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableColumn;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTXmlColumnPr; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTXmlColumnPr;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STXmlDataType.Enum; import org.openxmlformats.schemas.spreadsheetml.x2006.main.STXmlDataType.Enum;
@ -33,11 +33,11 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.STXmlDataType.Enum;
*/ */
public class XSSFXmlColumnPr { public class XSSFXmlColumnPr {
private Table table; private XSSFTable table;
private CTTableColumn ctTableColumn; private CTTableColumn ctTableColumn;
private CTXmlColumnPr ctXmlColumnPr; private CTXmlColumnPr ctXmlColumnPr;
public XSSFXmlColumnPr(Table table ,CTTableColumn ctTableColum,CTXmlColumnPr ctXmlColumnPr){ public XSSFXmlColumnPr(XSSFTable table ,CTTableColumn ctTableColum,CTXmlColumnPr ctXmlColumnPr){
this.table = table; this.table = table;
this.ctTableColumn = ctTableColum; this.ctTableColumn = ctTableColum;
this.ctXmlColumnPr = ctXmlColumnPr; this.ctXmlColumnPr = ctXmlColumnPr;

View File

@ -43,7 +43,6 @@ import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.XSSFITestDataProvider; import org.apache.poi.xssf.XSSFITestDataProvider;
import org.apache.poi.xssf.XSSFTestDataSamples; import org.apache.poi.xssf.XSSFTestDataSamples;
import org.apache.poi.xssf.model.CalculationChain; import org.apache.poi.xssf.model.CalculationChain;
import org.apache.poi.xssf.model.Table;
import org.apache.poi.xssf.usermodel.extensions.XSSFCellFill; import org.apache.poi.xssf.usermodel.extensions.XSSFCellFill;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
@ -852,7 +851,7 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues {
assertEquals(0, s2.getTables().size()); assertEquals(0, s2.getTables().size());
assertEquals(0, s3.getTables().size()); assertEquals(0, s3.getTables().size());
Table t = s1.getTables().get(0); XSSFTable t = s1.getTables().get(0);
assertEquals("Tabella1", t.getName()); assertEquals("Tabella1", t.getName());
assertEquals("Tabella1", t.getDisplayName()); assertEquals("Tabella1", t.getDisplayName());
assertEquals("A1:C3", t.getCTTable().getRef()); assertEquals("A1:C3", t.getCTTable().getRef());

View File

@ -26,7 +26,6 @@ import org.apache.poi.xssf.XSSFTestDataSamples;
import org.apache.poi.xssf.model.CommentsTable; import org.apache.poi.xssf.model.CommentsTable;
import org.apache.poi.xssf.model.StylesTable; import org.apache.poi.xssf.model.StylesTable;
import org.apache.poi.xssf.model.CalculationChain; import org.apache.poi.xssf.model.CalculationChain;
import org.apache.poi.xssf.model.Table;
import org.apache.poi.xssf.usermodel.helpers.ColumnHelper; import org.apache.poi.xssf.usermodel.helpers.ColumnHelper;
import org.apache.poi.util.HexDump; import org.apache.poi.util.HexDump;
import org.apache.poi.hssf.record.PasswordRecord; import org.apache.poi.hssf.record.PasswordRecord;
@ -1050,11 +1049,11 @@ public final class TestXSSFSheet extends BaseTestSheet {
assertEquals("a", s1.getRow(0).getCell(0).getRichStringCellValue().toString()); assertEquals("a", s1.getRow(0).getCell(0).getRichStringCellValue().toString());
assertEquals(1.0, s1.getRow(1).getCell(0).getNumericCellValue()); assertEquals(1.0, s1.getRow(1).getCell(0).getNumericCellValue());
List<Table> tables = s1.getTables(); List<XSSFTable> tables = s1.getTables();
assertNotNull(tables); assertNotNull(tables);
assertEquals(1, tables.size()); assertEquals(1, tables.size());
Table table = tables.get(0); XSSFTable table = tables.get(0);
assertEquals("Tabella1", table.getName()); assertEquals("Tabella1", table.getName());
assertEquals("Tabella1", table.getDisplayName()); assertEquals("Tabella1", table.getDisplayName());