Browse Source

Bug 56854 - XMLBeans performance when using getXXXList() and other proxy methods

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1620997 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_11_BETA3
Andreas Beeker 9 years ago
parent
commit
f39e6bea74
67 changed files with 515 additions and 472 deletions
  1. 5
    3
      src/ooxml/java/org/apache/poi/POIXMLProperties.java
  2. 3
    4
      src/ooxml/java/org/apache/poi/POIXMLPropertiesTextExtractor.java
  3. 16
    2
      src/ooxml/java/org/apache/poi/xslf/XSLFSlideShow.java
  4. 2
    1
      src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java
  5. 11
    5
      src/ooxml/java/org/apache/poi/xslf/model/geom/CustomGeometry.java
  6. 4
    5
      src/ooxml/java/org/apache/poi/xslf/usermodel/DrawingTable.java
  7. 4
    5
      src/ooxml/java/org/apache/poi/xslf/usermodel/DrawingTableRow.java
  8. 4
    5
      src/ooxml/java/org/apache/poi/xslf/usermodel/DrawingTextBody.java
  9. 21
    20
      src/ooxml/java/org/apache/poi/xslf/usermodel/RenderableShape.java
  10. 9
    8
      src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java
  11. 4
    3
      src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFCommentAuthors.java
  12. 1
    1
      src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFComments.java
  13. 9
    8
      src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFCommonSlideData.java
  14. 7
    6
      src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFFreeformShape.java
  15. 1
    1
      src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
  16. 4
    2
      src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTable.java
  17. 8
    6
      src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableRow.java
  18. 10
    8
      src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableStyles.java
  19. 10
    9
      src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java
  20. 3
    3
      src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java
  21. 11
    8
      src/ooxml/java/org/apache/poi/xssf/model/CommentsTable.java
  22. 4
    3
      src/ooxml/java/org/apache/poi/xssf/model/MapInfo.java
  23. 2
    1
      src/ooxml/java/org/apache/poi/xssf/model/SingleXmlCells.java
  24. 16
    14
      src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFChart.java
  25. 1
    1
      src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheDefinition.java
  26. 10
    16
      src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java
  27. 5
    3
      src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
  28. 11
    10
      src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheetConditionalFormatting.java
  29. 6
    3
      src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFTable.java
  30. 2
    1
      src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
  31. 57
    69
      src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/ColumnHelper.java
  32. 15
    13
      src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowShifter.java
  33. 19
    19
      src/ooxml/java/org/apache/poi/xssf/util/CTColComparator.java
  34. 3
    1
      src/ooxml/java/org/apache/poi/xwpf/model/XWPFCommentsDecorator.java
  35. 3
    3
      src/ooxml/java/org/apache/poi/xwpf/model/XWPFHyperlinkDecorator.java
  36. 7
    6
      src/ooxml/java/org/apache/poi/xwpf/usermodel/AbstractXWPFSDT.java
  37. 2
    1
      src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFComment.java
  38. 11
    13
      src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
  39. 4
    3
      src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnote.java
  40. 2
    2
      src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java
  41. 4
    3
      src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java
  42. 2
    1
      src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFLatentStyles.java
  43. 4
    3
      src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNumbering.java
  44. 12
    10
      src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java
  45. 13
    14
      src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
  46. 2
    2
      src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSDTContent.java
  47. 3
    3
      src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java
  48. 5
    4
      src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTable.java
  49. 11
    10
      src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java
  50. 4
    3
      src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java
  51. 7
    11
      src/ooxml/testcases/org/apache/poi/xslf/TestXSLFSlideShow.java
  52. 4
    6
      src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXMLSlideShow.java
  53. 12
    4
      src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSimpleShape.java
  54. 2
    2
      src/ooxml/testcases/org/apache/poi/xssf/model/TestCalculationChain.java
  55. 1
    1
      src/ooxml/testcases/org/apache/poi/xssf/model/TestMapInfo.java
  56. 2
    2
      src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
  57. 4
    2
      src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFColGrouping.java
  58. 5
    5
      src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFont.java
  59. 13
    13
      src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java
  60. 46
    46
      src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
  61. 13
    12
      src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java
  62. 1
    1
      src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
  63. 1
    1
      src/ooxml/testcases/org/apache/poi/xssf/usermodel/helpers/TestColumnHelper.java
  64. 5
    7
      src/ooxml/testcases/org/apache/poi/xssf/util/TestCTColComparator.java
  65. 3
    3
      src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java
  66. 6
    5
      src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java
  67. 3
    3
      src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java

+ 5
- 3
src/ooxml/java/org/apache/poi/POIXMLProperties.java View File

@@ -371,9 +371,10 @@ public class POIXMLProperties {
*
* @return next property id starting with 2
*/
protected int nextPid(){
@SuppressWarnings("deprecation")
protected int nextPid(){
int propid = 1;
for(CTProperty p : props.getProperties().getPropertyList()){
for(CTProperty p : props.getProperties().getPropertyArray()){
if(p.getPid() > propid) propid = p.getPid();
}
return propid + 1;
@@ -385,8 +386,9 @@ public class POIXMLProperties {
* @param name the name to check
* @return whether a property with the given name exists in the custom properties
*/
@SuppressWarnings("deprecation")
public boolean contains(String name){
for(CTProperty p : props.getProperties().getPropertyList()){
for(CTProperty p : props.getProperties().getPropertyArray()){
if(p.getName().equals(name)) return true;
}
return false;

+ 3
- 4
src/ooxml/java/org/apache/poi/POIXMLPropertiesTextExtractor.java View File

@@ -19,7 +19,6 @@ package org.apache.poi;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import org.apache.poi.openxml4j.opc.internal.PackagePropertiesPart;
import org.openxmlformats.schemas.officeDocument.x2006.customProperties.CTProperty;
@@ -126,13 +125,13 @@ public class POIXMLPropertiesTextExtractor extends POIXMLTextExtractor {
* Returns the custom document properties, if
* there are any
*/
@SuppressWarnings("deprecation")
public String getCustomPropertiesText() {
StringBuffer text = new StringBuffer();
StringBuilder text = new StringBuilder();
org.openxmlformats.schemas.officeDocument.x2006.customProperties.CTProperties
props = getDocument().getProperties().getCustomProperties().getUnderlyingProperties();

List<CTProperty> properties = props.getPropertyList();
for(CTProperty property : properties) {
for(CTProperty property : props.getPropertyArray()) {
String val = "(not implemented!)";

if (property.isSetLpwstr()) {

+ 16
- 2
src/ooxml/java/org/apache/poi/xslf/XSLFSlideShow.java View File

@@ -31,7 +31,20 @@ import org.apache.poi.util.Internal;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFRelation;
import org.apache.xmlbeans.XmlException;
import org.openxmlformats.schemas.presentationml.x2006.main.*;
import org.openxmlformats.schemas.presentationml.x2006.main.CTCommentList;
import org.openxmlformats.schemas.presentationml.x2006.main.CTNotesSlide;
import org.openxmlformats.schemas.presentationml.x2006.main.CTPresentation;
import org.openxmlformats.schemas.presentationml.x2006.main.CTSlide;
import org.openxmlformats.schemas.presentationml.x2006.main.CTSlideIdList;
import org.openxmlformats.schemas.presentationml.x2006.main.CTSlideIdListEntry;
import org.openxmlformats.schemas.presentationml.x2006.main.CTSlideMaster;
import org.openxmlformats.schemas.presentationml.x2006.main.CTSlideMasterIdList;
import org.openxmlformats.schemas.presentationml.x2006.main.CTSlideMasterIdListEntry;
import org.openxmlformats.schemas.presentationml.x2006.main.CmLstDocument;
import org.openxmlformats.schemas.presentationml.x2006.main.NotesDocument;
import org.openxmlformats.schemas.presentationml.x2006.main.PresentationDocument;
import org.openxmlformats.schemas.presentationml.x2006.main.SldDocument;
import org.openxmlformats.schemas.presentationml.x2006.main.SldMasterDocument;

/**
* Experimental class to do low level processing of pptx files.
@@ -53,6 +66,7 @@ public class XSLFSlideShow extends POIXMLDocument {
*/
private List<PackagePart> embedds;

@SuppressWarnings("deprecation")
public XSLFSlideShow(OPCPackage container) throws OpenXML4JException, IOException, XmlException {
super(container);
@@ -64,7 +78,7 @@ public class XSLFSlideShow extends POIXMLDocument {
PresentationDocument.Factory.parse(getCorePart().getInputStream());
embedds = new LinkedList<PackagePart>();
for (CTSlideIdListEntry ctSlide : getSlideReferences().getSldIdList()) {
for (CTSlideIdListEntry ctSlide : getSlideReferences().getSldIdArray()) {
PackagePart corePart = getCorePart();
PackagePart slidePart = corePart.getRelatedPart(
corePart.getRelationship(ctSlide.getId2()));

+ 2
- 1
src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java View File

@@ -118,6 +118,7 @@ public class XSLFPowerPointExtractor extends POIXMLTextExtractor {
* @param notesText Should we retrieve text from notes?
* @param masterText Should we retrieve text from master slides?
*/
@SuppressWarnings("deprecation")
public String getText(boolean slideText, boolean notesText, boolean masterText) {
StringBuffer text = new StringBuffer();

@@ -150,7 +151,7 @@ public class XSLFPowerPointExtractor extends POIXMLTextExtractor {

// If the slide has comments, do those too
if (comments != null) {
for (CTComment comment : comments.getCTCommentsList().getCmList()) {
for (CTComment comment : comments.getCTCommentsList().getCmArray()) {
// Do the author if we can
if (commentAuthors != null) {
CTCommentAuthor author = commentAuthors.getAuthorById(comment.getAuthorId());

+ 11
- 5
src/ooxml/java/org/apache/poi/xslf/model/geom/CustomGeometry.java View File

@@ -19,12 +19,17 @@

package org.apache.poi.xslf.model.geom;

import org.openxmlformats.schemas.drawingml.x2006.main.*;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.openxmlformats.schemas.drawingml.x2006.main.CTCustomGeometry2D;
import org.openxmlformats.schemas.drawingml.x2006.main.CTGeomGuide;
import org.openxmlformats.schemas.drawingml.x2006.main.CTGeomGuideList;
import org.openxmlformats.schemas.drawingml.x2006.main.CTGeomRect;
import org.openxmlformats.schemas.drawingml.x2006.main.CTPath2D;
import org.openxmlformats.schemas.drawingml.x2006.main.CTPath2DList;

/**
* Definition of a custom geometric shape
*
@@ -36,19 +41,20 @@ public class CustomGeometry implements Iterable<Path>{
List<Path> paths = new ArrayList<Path>();
Path textBounds;

@SuppressWarnings("deprecation")
public CustomGeometry(CTCustomGeometry2D geom) {
CTGeomGuideList avLst = geom.getAvLst();
if(avLst != null) for(CTGeomGuide gd : avLst.getGdList()){
if(avLst != null) for(CTGeomGuide gd : avLst.getGdArray()){
adjusts.add(new AdjustValue(gd));
}

CTGeomGuideList gdLst = geom.getGdLst();
if(gdLst != null) for(CTGeomGuide gd : gdLst.getGdList()){
if(gdLst != null) for(CTGeomGuide gd : gdLst.getGdArray()){
guides.add(new Guide(gd));
}

CTPath2DList pathLst = geom.getPathLst();
if(pathLst != null) for(CTPath2D spPath : pathLst.getPathList()){
if(pathLst != null) for(CTPath2D spPath : pathLst.getPathArray()){
paths.add(new Path(spPath));
}


+ 4
- 5
src/ooxml/java/org/apache/poi/xslf/usermodel/DrawingTable.java View File

@@ -20,8 +20,6 @@ package org.apache.poi.xslf.usermodel;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTable;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTableRow;

import java.util.List;

public class DrawingTable {
private final CTTable table;

@@ -29,12 +27,13 @@ public class DrawingTable {
this.table = table;
}

@SuppressWarnings("deprecation")
public DrawingTableRow[] getRows() {
List<CTTableRow> ctTableRows = table.getTrList();
DrawingTableRow[] o = new DrawingTableRow[ctTableRows.size()];
CTTableRow[] ctTableRows = table.getTrArray();
DrawingTableRow[] o = new DrawingTableRow[ctTableRows.length];

for (int i=0; i<o.length; i++) {
o[i] = new DrawingTableRow(ctTableRows.get(i));
o[i] = new DrawingTableRow(ctTableRows[i]);
}

return o;

+ 4
- 5
src/ooxml/java/org/apache/poi/xslf/usermodel/DrawingTableRow.java View File

@@ -20,8 +20,6 @@ package org.apache.poi.xslf.usermodel;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTableCell;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTableRow;

import java.util.List;

public class DrawingTableRow {
private final CTTableRow row;

@@ -29,12 +27,13 @@ public class DrawingTableRow {
this.row = row;
}

@SuppressWarnings("deprecation")
public DrawingTableCell[] getCells() {
List<CTTableCell> ctTableCells = row.getTcList();
DrawingTableCell[] o = new DrawingTableCell[ctTableCells.size()];
CTTableCell[] ctTableCells = row.getTcArray();
DrawingTableCell[] o = new DrawingTableCell[ctTableCells.length];

for (int i=0; i<o.length; i++) {
o[i] = new DrawingTableCell(ctTableCells.get(i));
o[i] = new DrawingTableCell(ctTableCells[i]);
}

return o;

+ 4
- 5
src/ooxml/java/org/apache/poi/xslf/usermodel/DrawingTextBody.java View File

@@ -20,8 +20,6 @@ package org.apache.poi.xslf.usermodel;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextBody;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraph;

import java.util.List;

public class DrawingTextBody {
private final CTTextBody textBody;

@@ -29,12 +27,13 @@ public class DrawingTextBody {
this.textBody = textBody;
}

@SuppressWarnings("deprecation")
public DrawingParagraph[] getParagraphs() {
List<CTTextParagraph> paragraphs = textBody.getPList();
DrawingParagraph[] o = new DrawingParagraph[paragraphs.size()];
CTTextParagraph[] paragraphs = textBody.getPArray();
DrawingParagraph[] o = new DrawingParagraph[paragraphs.length];

for (int i=0; i<o.length; i++) {
o[i] = new DrawingParagraph(paragraphs.get(i));
o[i] = new DrawingParagraph(paragraphs[i]);
}

return o;

+ 21
- 20
src/ooxml/java/org/apache/poi/xslf/usermodel/RenderableShape.java View File

@@ -19,6 +19,25 @@
package org.apache.poi.xslf.usermodel;
import java.awt.AlphaComposite;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Shape;
import java.awt.Stroke;
import java.awt.TexturePaint;
import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
import org.apache.poi.util.Internal;
@@ -47,25 +66,6 @@ import org.openxmlformats.schemas.drawingml.x2006.main.CTSolidColorFillPropertie
import org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrixReference;
import org.openxmlformats.schemas.drawingml.x2006.main.STPathShadeType;
import java.awt.AlphaComposite;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Shape;
import java.awt.Stroke;
import java.awt.TexturePaint;
import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
/**
* Encapsulates logic to translate DrawingML objects to Java2D
*/
@@ -548,6 +548,7 @@ class RenderableShape {
}
}
@SuppressWarnings("deprecation")
private Collection<Outline> computeOutlines(Graphics2D graphics) {
Collection<Outline> lst = new ArrayList<Outline>();
@@ -576,7 +577,7 @@ class RenderableShape {
public Guide getAdjustValue(String name) {
CTPresetGeometry2D prst = _shape.getSpPr().getPrstGeom();
if (prst.isSetAvLst()) {
for (CTGeomGuide g : prst.getAvLst().getGdList()) {
for (CTGeomGuide g : prst.getAvLst().getGdArray()) {
if (g.getName().equals(name)) {
return new Guide(g);
}

+ 9
- 8
src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java View File

@@ -115,6 +115,7 @@ public class XMLSlideShow extends POIXMLDocument {
}

@Override
@SuppressWarnings("deprecation")
protected void onDocumentRead() throws IOException {
try {
PresentationDocument doc =
@@ -140,8 +141,7 @@ public class XMLSlideShow extends POIXMLDocument {

_slides = new ArrayList<XSLFSlide>();
if (_presentation.isSetSldIdLst()) {
List<CTSlideIdListEntry> slideIds = _presentation.getSldIdLst().getSldIdList();
for (CTSlideIdListEntry slId : slideIds) {
for (CTSlideIdListEntry slId : _presentation.getSldIdLst().getSldIdArray()) {
XSLFSlide sh = shIdMap.get(slId.getId2());
if (sh == null) {
_logger.log(POILogger.WARN, "Slide with r:id " + slId.getId() + " was defined, but didn't exist in package, skipping");
@@ -201,13 +201,14 @@ public class XMLSlideShow extends POIXMLDocument {
* @param layout
* @return created slide
*/
@SuppressWarnings("deprecation")
public XSLFSlide createSlide(XSLFSlideLayout layout) {
int slideNumber = 256, cnt = 1;
CTSlideIdList slideList;
if (!_presentation.isSetSldIdLst()) slideList = _presentation.addNewSldIdLst();
else {
slideList = _presentation.getSldIdLst();
for(CTSlideIdListEntry slideId : slideList.getSldIdList()){
for(CTSlideIdListEntry slideId : slideList.getSldIdArray()){
slideNumber = (int)Math.max(slideId.getId() + 1, slideNumber);
cnt++;
}
@@ -283,16 +284,16 @@ public class XMLSlideShow extends POIXMLDocument {
_slides.add(newIndex, _slides.remove(oldIndex));

// fix ordering in the low-level xml
List<CTSlideIdListEntry> slideIds = _presentation.getSldIdLst().getSldIdList();
CTSlideIdListEntry oldEntry = slideIds.get(oldIndex);
slideIds.add(newIndex, oldEntry);
slideIds.remove(oldEntry);
CTSlideIdList sldIdLst = _presentation.getSldIdLst();
CTSlideIdListEntry oldEntry = sldIdLst.getSldIdArray(oldIndex);
sldIdLst.insertNewSldId(newIndex).set(oldEntry);
sldIdLst.removeSldId(oldIndex);
}

public XSLFSlide removeSlide(int index){
XSLFSlide slide = _slides.remove(index);
removeRelation(slide);
_presentation.getSldIdLst().getSldIdList().remove(index);
_presentation.getSldIdLst().removeSldId(index);
return slide;
}

+ 4
- 3
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFCommentAuthors.java View File

@@ -17,6 +17,8 @@

package org.apache.poi.xslf.usermodel;

import java.io.IOException;

import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
@@ -26,8 +28,6 @@ import org.openxmlformats.schemas.presentationml.x2006.main.CTCommentAuthor;
import org.openxmlformats.schemas.presentationml.x2006.main.CTCommentAuthorList;
import org.openxmlformats.schemas.presentationml.x2006.main.CmAuthorLstDocument;

import java.io.IOException;

@Beta
public class XSLFCommentAuthors extends POIXMLDocumentPart {
private final CTCommentAuthorList _authors;
@@ -61,9 +61,10 @@ public class XSLFCommentAuthors extends POIXMLDocumentPart {
return _authors;
}
@SuppressWarnings("deprecation")
public CTCommentAuthor getAuthorById(long id) {
// TODO Have a map
for (CTCommentAuthor author : _authors.getCmAuthorList()) {
for (CTCommentAuthor author : _authors.getCmAuthorArray()) {
if (author.getId() == id) {
return author;
}

+ 1
- 1
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFComments.java View File

@@ -66,6 +66,6 @@ public class XSLFComments extends POIXMLDocumentPart {
}
public CTComment getCommentAt(int pos) {
return _comments.getCmList().get(pos);
return _comments.getCmArray(pos);
}
}

+ 9
- 8
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFCommonSlideData.java View File

@@ -17,6 +17,10 @@

package org.apache.poi.xslf.usermodel;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.apache.poi.POIXMLException;
import org.apache.poi.util.Beta;
import org.apache.xmlbeans.XmlCursor;
@@ -32,10 +36,6 @@ import org.openxmlformats.schemas.presentationml.x2006.main.CTGraphicalObjectFra
import org.openxmlformats.schemas.presentationml.x2006.main.CTGroupShape;
import org.openxmlformats.schemas.presentationml.x2006.main.CTShape;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@Beta
public class XSLFCommonSlideData {
private final CTCommonSlideData data;
@@ -44,6 +44,7 @@ public class XSLFCommonSlideData {
this.data = data;
}
@SuppressWarnings("deprecation")
public List<DrawingTextBody> getDrawingText() {
CTGroupShape gs = data.getSpTree();

@@ -51,11 +52,11 @@ public class XSLFCommonSlideData {

processShape(gs, out);

for (CTGroupShape shape : gs.getGrpSpList()) {
for (CTGroupShape shape : gs.getGrpSpArray()) {
processShape(shape, out);
}

for (CTGraphicalObjectFrame frame: gs.getGraphicFrameList()) {
for (CTGraphicalObjectFrame frame: gs.getGraphicFrameArray()) {
CTGraphicalObjectData data = frame.getGraphic().getGraphicData();
XmlCursor c = data.newCursor();
c.selectPath("declare namespace pic='"+CTTable.type.getName().getNamespaceURI()+"' .//pic:tbl");
@@ -97,9 +98,9 @@ public class XSLFCommonSlideData {
return paragraphs;
}

@SuppressWarnings("deprecation")
private void processShape(CTGroupShape gs, List<DrawingTextBody> out) {
List<CTShape> shapes = gs.getSpList();
for (CTShape shape : shapes) {
for (CTShape shape : gs.getSpArray()) {
CTTextBody ctTextBody = shape.getTxBody();
if (ctTextBody==null) {
continue;

+ 7
- 6
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFFreeformShape.java View File

@@ -19,6 +19,11 @@
package org.apache.poi.xslf.usermodel;
import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;
import java.awt.geom.PathIterator;
import java.awt.geom.Rectangle2D;
import org.apache.poi.util.Beta;
import org.apache.poi.util.Units;
import org.apache.xmlbeans.XmlObject;
@@ -35,11 +40,6 @@ import org.openxmlformats.schemas.drawingml.x2006.main.CTShapeProperties;
import org.openxmlformats.schemas.presentationml.x2006.main.CTShape;
import org.openxmlformats.schemas.presentationml.x2006.main.CTShapeNonVisual;
import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;
import java.awt.geom.PathIterator;
import java.awt.geom.Rectangle2D;
/**
* Represents a custom geometric shape.
* This shape will consist of a series of lines and curves described within a creation path.
@@ -120,12 +120,13 @@ public class XSLFFreeformShape extends XSLFAutoShape {
*
* @return the path
*/
@SuppressWarnings("deprecation")
public GeneralPath getPath() {
GeneralPath path = new GeneralPath();
Rectangle2D bounds = getAnchor();
CTCustomGeometry2D geom = getSpPr().getCustGeom();
for(CTPath2D spPath : geom.getPathLst().getPathList()){
for(CTPath2D spPath : geom.getPathLst().getPathArray()){
double scaleW = bounds.getWidth() / Units.toPoints(spPath.getW());
double scaleH = bounds.getHeight() / Units.toPoints(spPath.getH());
for(XmlObject ch : spPath.selectPath("*")){

+ 1
- 1
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java View File

@@ -213,7 +213,7 @@ public class XSLFPictureShape extends XSLFSimpleShape {
if(blip.isSetExtLst()) {
CTOfficeArtExtensionList extLst = blip.getExtLst();
for(CTOfficeArtExtension ext : extLst.getExtList()){
for(CTOfficeArtExtension ext : extLst.getExtArray()){
String xpath = "declare namespace a14='http://schemas.microsoft.com/office/drawing/2010/main' $this//a14:imgProps/a14:imgLayer";
XmlObject[] obj = ext.selectPath(xpath);
if(obj != null && obj.length == 1){

+ 4
- 2
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTable.java View File

@@ -51,6 +51,7 @@ public class XSLFTable extends XSLFGraphicFrame implements Iterable<XSLFTableRow
private CTTable _table;
private List<XSLFTableRow> _rows;
@SuppressWarnings("deprecation")
/*package*/ XSLFTable(CTGraphicalObjectFrame shape, XSLFSheet sheet){
super(shape, sheet);
@@ -71,8 +72,9 @@ public class XSLFTable extends XSLFGraphicFrame implements Iterable<XSLFTableRow
}
_table = (CTTable) rs[0];
_rows = new ArrayList<XSLFTableRow>(_table.sizeOfTrArray());
for(CTTableRow row : _table.getTrList()) _rows.add(new XSLFTableRow(row, this));
CTTableRow[] trArray = _table.getTrArray();
_rows = new ArrayList<XSLFTableRow>(trArray.length);
for(CTTableRow row : trArray) _rows.add(new XSLFTableRow(row, this));
}
@Internal

+ 8
- 6
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableRow.java View File

@@ -19,15 +19,15 @@
package org.apache.poi.xslf.usermodel;
import org.apache.poi.util.Units;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTableCell;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTableRow;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.apache.poi.util.Units;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTableCell;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTableRow;
/**
* Represents a table in a .pptx presentation
*
@@ -38,11 +38,13 @@ public class XSLFTableRow implements Iterable<XSLFTableCell> {
private List<XSLFTableCell> _cells;
private XSLFTable _table;
@SuppressWarnings("deprecation")
/*package*/ XSLFTableRow(CTTableRow row, XSLFTable table){
_row = row;
_table = table;
_cells = new ArrayList<XSLFTableCell>(_row.sizeOfTcArray());
for(CTTableCell cell : _row.getTcList()) {
CTTableCell[] tcArray = _row.getTcArray();
_cells = new ArrayList<XSLFTableCell>(tcArray.length);
for(CTTableCell cell : tcArray) {
_cells.add(new XSLFTableCell(cell, table.getSheet()));
}
}

+ 10
- 8
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableStyles.java View File

@@ -16,6 +16,12 @@
==================================================================== */
package org.apache.poi.xslf.usermodel;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
@@ -24,12 +30,6 @@ import org.apache.xmlbeans.XmlException;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTableStyle;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTableStyleList;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

@Beta
public class XSLFTableStyles extends POIXMLDocumentPart implements Iterable<XSLFTableStyle>{
private CTTableStyleList _tblStyleLst;
@@ -39,12 +39,14 @@ public class XSLFTableStyles extends POIXMLDocumentPart implements Iterable<XSLF
super();
}

@SuppressWarnings("deprecation")
public XSLFTableStyles(PackagePart part, PackageRelationship rel) throws IOException, XmlException {
super(part, rel);

_tblStyleLst = CTTableStyleList.Factory.parse(getPackagePart().getInputStream());
_styles = new ArrayList<XSLFTableStyle>(_tblStyleLst.sizeOfTblStyleArray());
for(CTTableStyle c : _tblStyleLst.getTblStyleList()){
CTTableStyle[] tblStyleArray = _tblStyleLst.getTblStyleArray();
_styles = new ArrayList<XSLFTableStyle>(tblStyleArray.length);
for(CTTableStyle c : tblStyleArray){
_styles.add(new XSLFTableStyle(c));
}
}

+ 10
- 9
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java View File

@@ -19,6 +19,14 @@

package org.apache.poi.xslf.usermodel;

import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.apache.poi.POIXMLException;
import org.apache.poi.util.Beta;
import org.apache.poi.util.Units;
@@ -36,14 +44,6 @@ import org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder;
import org.openxmlformats.schemas.presentationml.x2006.main.CTShape;
import org.openxmlformats.schemas.presentationml.x2006.main.STPlaceholderType;

import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
* Represents a shape that can hold text.
*
@@ -58,13 +58,14 @@ public abstract class XSLFTextShape extends XSLFSimpleShape implements Iterable<
*/
private boolean _isTextBroken;

@SuppressWarnings("deprecation")
/*package*/ XSLFTextShape(XmlObject shape, XSLFSheet sheet) {
super(shape, sheet);

_paragraphs = new ArrayList<XSLFTextParagraph>();
CTTextBody txBody = getTextBody(false);
if (txBody != null) {
for (CTTextParagraph p : txBody.getPList()) {
for (CTTextParagraph p : txBody.getPArray()) {
_paragraphs.add(new XSLFTextParagraph(p, this));
}
}

+ 3
- 3
src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java View File

@@ -18,7 +18,6 @@ package org.apache.poi.xssf.eventusermodel;

import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;

import org.apache.poi.ss.usermodel.BuiltinFormats;
@@ -159,11 +158,11 @@ public class XSSFSheetXMLHandler extends DefaultHandler {
this(styles, strings, sheetContentsHandler, new DataFormatter(), formulasNotResults);
}
@SuppressWarnings("deprecation")
private void init() {
if (commentsTable != null) {
commentCellRefs = new LinkedList<CellReference>();
List<CTComment> commentList = commentsTable.getCTComments().getCommentList().getCommentList();
for (CTComment comment : commentList) {
for (CTComment comment : commentsTable.getCTComments().getCommentList().getCommentArray()) {
commentCellRefs.add(new CellReference(comment.getRef()));
}
}
@@ -187,6 +186,7 @@ public class XSSFSheetXMLHandler extends DefaultHandler {
}
@Override
@SuppressWarnings("unused")
public void startElement(String uri, String localName, String name,
Attributes attributes) throws SAXException {


+ 11
- 8
src/ooxml/java/org/apache/poi/xssf/model/CommentsTable.java View File

@@ -149,15 +149,18 @@ public class CommentsTable extends POIXMLDocumentPart {

public boolean removeComment(String cellRef) {
CTCommentList lst = comments.getCommentList();
if(lst != null) for(int i=0; i < lst.sizeOfCommentArray(); i++) {
CTComment comment = lst.getCommentArray(i);
if (cellRef.equals(comment.getRef())) {
lst.removeComment(i);
if(commentRefs != null) {
commentRefs.remove(cellRef);
if(lst != null) {
int commentCount = lst.sizeOfCommentArray();
for(int i=0; i < commentCount; i++) {
CTComment comment = lst.getCommentArray(i);
if (cellRef.equals(comment.getRef())) {
lst.removeComment(i);

if(commentRefs != null) {
commentRefs.remove(cellRef);
}
return true;
}
return true;
}
}
return false;

+ 4
- 3
src/ooxml/java/org/apache/poi/xssf/model/MapInfo.java View File

@@ -24,7 +24,6 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.Map;


import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
@@ -66,13 +65,14 @@ public class MapInfo extends POIXMLDocumentPart {
readFrom(part.getInputStream());
}

@SuppressWarnings("deprecation")
public void readFrom(InputStream is) throws IOException {
try {
MapInfoDocument doc = MapInfoDocument.Factory.parse(is);
mapInfo = doc.getMapInfo();

maps= new HashMap<Integer, XSSFMap>();
for(CTMap map :mapInfo.getMapList()){
for(CTMap map :mapInfo.getMapArray()){
maps.put((int)map.getID(), new XSSFMap(map,this));
}

@@ -104,10 +104,11 @@ public class MapInfo extends POIXMLDocumentPart {
* @param schemaId the schema ID
* @return CTSchema by it's ID
*/
@SuppressWarnings("deprecation")
public CTSchema getCTSchemaById(String schemaId){
CTSchema xmlSchema = null;

for(CTSchema schema: mapInfo.getSchemaList()){
for(CTSchema schema: mapInfo.getSchemaArray()){
if(schema.getID().equals(schemaId)){
xmlSchema = schema;
break;

+ 2
- 1
src/ooxml/java/org/apache/poi/xssf/model/SingleXmlCells.java View File

@@ -94,10 +94,11 @@ public class SingleXmlCells extends POIXMLDocumentPart {
*
* @return all the SimpleXmlCell contained in this SingleXmlCells element
*/
@SuppressWarnings("deprecation")
public List<XSSFSingleXmlCell> getAllSimpleXmlCell(){
List<XSSFSingleXmlCell> list = new Vector<XSSFSingleXmlCell>();
for(CTSingleXmlCell singleXmlCell: singleXMLCells.getSingleXmlCellList()){
for(CTSingleXmlCell singleXmlCell: singleXMLCells.getSingleXmlCellArray()){
list.add(new XSSFSingleXmlCell(singleXmlCell,this));
}
return list;

+ 16
- 14
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFChart.java View File

@@ -19,40 +19,40 @@ package org.apache.poi.xssf.usermodel;

import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;

import javax.xml.namespace.QName;

import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
import org.apache.poi.util.Internal;
import org.apache.poi.ss.usermodel.Chart;
import org.apache.poi.ss.usermodel.charts.AxisPosition;
import org.apache.poi.ss.usermodel.charts.ChartAxis;
import org.apache.poi.ss.usermodel.charts.ChartAxisFactory;
import org.apache.poi.ss.usermodel.charts.ChartData;
import org.apache.poi.util.Internal;
import org.apache.poi.xssf.usermodel.charts.XSSFCategoryAxis;
import org.apache.poi.xssf.usermodel.charts.XSSFChartDataFactory;
import org.apache.poi.xssf.usermodel.charts.XSSFChartAxis;
import org.apache.poi.xssf.usermodel.charts.XSSFValueAxis;
import org.apache.poi.xssf.usermodel.charts.XSSFManualLayout;
import org.apache.poi.xssf.usermodel.charts.XSSFChartDataFactory;
import org.apache.poi.xssf.usermodel.charts.XSSFChartLegend;
import org.apache.poi.ss.usermodel.charts.ChartData;
import org.apache.poi.ss.usermodel.charts.AxisPosition;
import org.apache.poi.xssf.usermodel.charts.XSSFManualLayout;
import org.apache.poi.xssf.usermodel.charts.XSSFValueAxis;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
import org.apache.xmlbeans.XmlOptions;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTCatAx;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTChart;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTChartSpace;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTTitle;
import org.openxmlformats.schemas.drawingml.x2006.chart.ChartSpaceDocument;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTPageMargins;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTPlotArea;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTValAx;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTPrintSettings;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTPageMargins;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTTitle;
import org.openxmlformats.schemas.drawingml.x2006.chart.CTValAx;
import org.openxmlformats.schemas.drawingml.x2006.chart.ChartSpaceDocument;
import org.openxmlformats.schemas.officeDocument.x2006.relationships.STRelationshipId;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
@@ -306,14 +306,16 @@ public final class XSSFChart extends POIXMLDocumentPart implements Chart, ChartA
parseValueAxis();
}

@SuppressWarnings("deprecation")
private void parseCategoryAxis() {
for (CTCatAx catAx : chart.getPlotArea().getCatAxList()) {
for (CTCatAx catAx : chart.getPlotArea().getCatAxArray()) {
axis.add(new XSSFCategoryAxis(this, catAx));
}
}

@SuppressWarnings("deprecation")
private void parseValueAxis() {
for (CTValAx valAx : chart.getPlotArea().getValAxList()) {
for (CTValAx valAx : chart.getPlotArea().getValAxArray()) {
axis.add(new XSSFValueAxis(this, valAx));
}
}

+ 1
- 1
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheDefinition.java View File

@@ -127,7 +127,7 @@ public class XSSFPivotCacheDefinition extends POIXMLDocumentPart{
for(int i=columnStart; i<=columnEnd; i++) {
CTCacheField cf = cFields.addNewCacheField();
if(i==columnEnd){
cFields.setCount(cFields.getCacheFieldList().size());
cFields.setCount(cFields.sizeOfCacheFieldArray());
}
//General number format
cf.setNumFmtId(0);

+ 10
- 16
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java View File

@@ -240,7 +240,6 @@ public class XSSFPivotTable extends POIXMLDocumentPart {
}
CTPivotFields pivotFields = pivotTableDefinition.getPivotFields();

List<CTPivotField> pivotFieldList = pivotTableDefinition.getPivotFields().getPivotFieldList();
CTPivotField pivotField = CTPivotField.Factory.newInstance();
CTItems items = pivotField.addNewItems();

@@ -249,10 +248,8 @@ public class XSSFPivotTable extends POIXMLDocumentPart {
for(int i = 0; i <= lastRowIndex; i++) {
items.addNewItem().setT(STItemType.DEFAULT);
}
items.setCount(items.getItemList().size());
pivotFieldList.set(columnIndex, pivotField);

pivotFields.setPivotFieldArray(pivotFieldList.toArray(new CTPivotField[pivotFieldList.size()]));
items.setCount(items.sizeOfItemArray());
pivotFields.setPivotFieldArray(columnIndex, pivotField);

CTRowFields rowFields;
if(pivotTableDefinition.getRowFields() != null) {
@@ -262,7 +259,7 @@ public class XSSFPivotTable extends POIXMLDocumentPart {
}

rowFields.addNewField().setX(columnIndex);
rowFields.setCount(rowFields.getFieldList().size());
rowFields.setCount(rowFields.sizeOfFieldArray());
}
@Beta
@@ -307,7 +304,7 @@ public class XSSFPivotTable extends POIXMLDocumentPart {
colFields = pivotTableDefinition.addNewColFields();
}
colFields.addNewField().setX(-2);
colFields.setCount(colFields.getFieldList().size());
colFields.setCount(colFields.sizeOfFieldArray());
}
}

@@ -338,7 +335,7 @@ public class XSSFPivotTable extends POIXMLDocumentPart {
cell.setCellType(Cell.CELL_TYPE_STRING);
dataField.setName(function.getName());
dataField.setFld(columnIndex);
dataFields.setCount(dataFields.getDataFieldList().size());
dataFields.setCount(dataFields.sizeOfDataFieldArray());
}

/**
@@ -354,13 +351,11 @@ public class XSSFPivotTable extends POIXMLDocumentPart {
throw new IndexOutOfBoundsException();
}
CTPivotFields pivotFields = pivotTableDefinition.getPivotFields();
List<CTPivotField> pivotFieldList = pivotFields.getPivotFieldList();
CTPivotField pivotField = CTPivotField.Factory.newInstance();

pivotField.setDataField(isDataField);
pivotField.setShowAll(false);
pivotFieldList.set(columnIndex, pivotField);
pivotFields.setPivotFieldArray(pivotFieldList.toArray(new CTPivotField[pivotFieldList.size()]));
pivotFields.setPivotFieldArray(columnIndex, pivotField);
}

/**
@@ -378,7 +373,6 @@ public class XSSFPivotTable extends POIXMLDocumentPart {
}
CTPivotFields pivotFields = pivotTableDefinition.getPivotFields();

List<CTPivotField> pivotFieldList = pivotTableDefinition.getPivotFields().getPivotFieldList();
CTPivotField pivotField = CTPivotField.Factory.newInstance();
CTItems items = pivotField.addNewItems();

@@ -387,8 +381,8 @@ public class XSSFPivotTable extends POIXMLDocumentPart {
for(int i = 0; i <= lastRowIndex; i++) {
items.addNewItem().setT(STItemType.DEFAULT);
}
items.setCount(items.getItemList().size());
pivotFieldList.set(columnIndex, pivotField);
items.setCount(items.sizeOfItemArray());
pivotFields.setPivotFieldArray(columnIndex, pivotField);

CTPageFields pageFields;
if (pivotTableDefinition.getPageFields()!= null) {
@@ -402,7 +396,7 @@ public class XSSFPivotTable extends POIXMLDocumentPart {
pageField.setHier(-1);
pageField.setFld(columnIndex);

pageFields.setCount(pageFields.getPageFieldList().size());
pageFields.setCount(pageFields.sizeOfPageFieldArray());
pivotTableDefinition.getLocation().setColPageCount(pageFields.getCount());
}

@@ -459,6 +453,6 @@ public class XSSFPivotTable extends POIXMLDocumentPart {
pivotField.setDataField(false);
pivotField.setShowAll(false);
}
pivotFields.setCount(pivotFields.getPivotFieldList().size());
pivotFields.setCount(pivotFields.sizeOfPivotFieldArray());
}
}

+ 5
- 3
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java View File

@@ -1342,8 +1342,9 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
/**
* Do not leave the width attribute undefined (see #52186).
*/
@SuppressWarnings("deprecation")
private void setColWidthAttribute(CTCols ctCols) {
for (CTCol col : ctCols.getColList()) {
for (CTCol col : ctCols.getColArray()) {
if (!col.isSetWidth()) {
col.setWidth(getDefaultColumnWidth());
col.setCustomWidth(false);
@@ -1380,10 +1381,11 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
}


@SuppressWarnings("deprecation")
private short getMaxOutlineLevelCols() {
CTCols ctCols = worksheet.getColsArray(0);
short outlineLevel = 0;
for (CTCol col : ctCols.getColList()) {
for (CTCol col : ctCols.getColArray()) {
outlineLevel = col.getOutlineLevel() > outlineLevel ? col.getOutlineLevel() : outlineLevel;
}
return outlineLevel;
@@ -3543,7 +3545,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
+ ":$" + rowRef2.getCellRefParts()[1];
}

StringBuffer rng = new StringBuffer();
StringBuilder rng = new StringBuilder();
rng.append(c);
if(rng.length() > 0 && r.length() > 0) {
rng.append(',');

+ 11
- 10
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheetConditionalFormatting.java View File

@@ -19,21 +19,21 @@
package org.apache.poi.xssf.usermodel;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.record.cf.CellRangeUtil;
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.usermodel.ComparisonOperator;
import org.apache.poi.ss.usermodel.ConditionalFormatting;
import org.apache.poi.ss.usermodel.ConditionalFormattingRule;
import org.apache.poi.ss.usermodel.SheetConditionalFormatting;
import org.apache.poi.ss.usermodel.ComparisonOperator;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.hssf.record.cf.CellRangeUtil;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCfRule;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCfType;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTConditionalFormatting;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STConditionalFormattingOperator;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
import java.util.List;
import java.util.ArrayList;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCfType;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STConditionalFormattingOperator;
/**
* @author Yegor Kozlov
@@ -115,6 +115,7 @@ public class XSSFSheetConditionalFormatting implements SheetConditionalFormattin
return rule;
}
@SuppressWarnings("deprecation")
public int addConditionalFormatting(CellRangeAddress[] regions, ConditionalFormattingRule[] cfRules) {
if (regions == null) {
throw new IllegalArgumentException("regions must not be null");
@@ -144,7 +145,7 @@ public class XSSFSheetConditionalFormatting implements SheetConditionalFormattin
int priority = 1;
for(CTConditionalFormatting c : _sheet.getCTWorksheet().getConditionalFormattingList()){
for(CTConditionalFormatting c : _sheet.getCTWorksheet().getConditionalFormattingArray()){
priority += c.sizeOfCfRuleArray();
}
@@ -220,7 +221,7 @@ public class XSSFSheetConditionalFormatting implements SheetConditionalFormattin
*/
public void removeConditionalFormatting(int index) {
checkIndex(index);
_sheet.getCTWorksheet().getConditionalFormattingList().remove(index);
_sheet.getCTWorksheet().removeConditionalFormatting(index);
}
private void checkIndex(int index) {

+ 6
- 3
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFTable.java View File

@@ -128,13 +128,14 @@ public class XSSFTable extends POIXMLDocumentPart {
*
* @return the xpath of the table's root element
*/
@SuppressWarnings("deprecation")
public String getCommonXpath() {
if(commonXPath == null){
String[] commonTokens ={};
for(CTTableColumn column :ctTable.getTableColumns().getTableColumnList()){
for(CTTableColumn column :ctTable.getTableColumns().getTableColumnArray()){
if(column.getXmlColumnPr()!=null){
String xpath = column.getXmlColumnPr().getXpath();
String[] tokens = xpath.split("/");
@@ -173,11 +174,12 @@ public class XSSFTable extends POIXMLDocumentPart {
}

@SuppressWarnings("deprecation")
public List<XSSFXmlColumnPr> getXmlColumnPrs() {
if(xmlColumnPr==null){
xmlColumnPr = new ArrayList<XSSFXmlColumnPr>();
for (CTTableColumn column:ctTable.getTableColumns().getTableColumnList()){
for (CTTableColumn column:ctTable.getTableColumns().getTableColumnArray()){
if (column.getXmlColumnPr()!=null){
XSSFXmlColumnPr columnPr = new XSSFXmlColumnPr(this,column,column.getXmlColumnPr());
xmlColumnPr.add(columnPr);
@@ -285,6 +287,7 @@ public class XSSFTable extends POIXMLDocumentPart {
* Headers <em>must</em> be in sync, otherwise Excel will display a
* "Found unreadable content" message on startup.
*/
@SuppressWarnings("deprecation")
public void updateHeaders(){
XSSFSheet sheet = (XSSFSheet)getParent();
CellReference ref = getStartCellReference();
@@ -296,7 +299,7 @@ public class XSSFTable extends POIXMLDocumentPart {

if (row != null && row.getCTRow().validate()) {
int cellnum = firstHeaderColumn;
for (CTTableColumn col : getCTTable().getTableColumns().getTableColumnList()) {
for (CTTableColumn col : getCTTable().getTableColumns().getTableColumnArray()) {
XSSFCell cell = row.getCell(cellnum);
if (cell != null) {
col.setName(cell.getStringCellValue());

+ 2
- 1
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java View File

@@ -1410,10 +1410,11 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook, Iterable<X
}
}
@SuppressWarnings("deprecation")
private void reprocessNamedRanges() {
namedRanges = new ArrayList<XSSFName>();
if(workbook.isSetDefinedNames()) {
for(CTDefinedName ctName : workbook.getDefinedNames().getDefinedNameList()) {
for(CTDefinedName ctName : workbook.getDefinedNames().getDefinedNameArray()) {
namedRanges.add(new XSSFName(ctName, this));
}
}

+ 57
- 69
src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/ColumnHelper.java View File

@@ -19,7 +19,6 @@ package org.apache.poi.xssf.usermodel.helpers;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -50,52 +49,39 @@ public class ColumnHelper {
cleanColumns();
}
@SuppressWarnings("deprecation")
public void cleanColumns() {
this.newCols = CTCols.Factory.newInstance();

CTCols aggregateCols = CTCols.Factory.newInstance();
List<CTCols> colsList = worksheet.getColsList();
assert(colsList != null);
CTCols[] colsArray = worksheet.getColsArray();
assert(colsArray != null);
for (CTCols cols : colsList) {
for (CTCol col : cols.getColList()) {
for (CTCols cols : colsArray) {
for (CTCol col : cols.getColArray()) {
cloneCol(aggregateCols, col);
}
}
sortColumns(aggregateCols);
CTCol[] colArray = new CTCol[aggregateCols.getColList().size()];
aggregateCols.getColList().toArray(colArray);
CTCol[] colArray = aggregateCols.getColArray();
sweepCleanColumns(newCols, colArray, null);
int i = colsList.size();
int i = colsArray.length;
for (int y = i - 1; y >= 0; y--) {
worksheet.removeCols(y);
}
worksheet.addNewCols();
worksheet.setColsArray(0, newCols);
}
private static class CTColByMaxComparator implements Comparator<CTCol> {

public int compare(CTCol arg0, CTCol arg1) {
if (arg0.getMax() < arg1.getMax()) {
return -1;
} else {
if (arg0.getMax() > arg1.getMax()) return 1;
else return 0;
}
}
}

/**
* @see <a href="http://en.wikipedia.org/wiki/Sweep_line_algorithm">Sweep line algorithm</a>
*/
private void sweepCleanColumns(CTCols cols, CTCol[] flattenedColsArray, CTCol overrideColumn) {
List<CTCol> flattenedCols = new ArrayList<CTCol>(Arrays.asList(flattenedColsArray));
TreeSet<CTCol> currentElements = new TreeSet<CTCol>(new CTColByMaxComparator());
TreeSet<CTCol> currentElements = new TreeSet<CTCol>(CTColComparator.BY_MAX);
ListIterator<CTCol> flIter = flattenedCols.listIterator();
CTCol haveOverrideColumn = null;
long lastMaxIndex = 0;
@@ -103,7 +89,8 @@ public class ColumnHelper {
while (flIter.hasNext()) {
CTCol col = flIter.next();
long currentIndex = col.getMin();
long nextIndex = (col.getMax() > currentMax) ? col.getMax() : currentMax;
long colMax = col.getMax();
long nextIndex = (colMax > currentMax) ? colMax : currentMax;
if (flIter.hasNext()) {
nextIndex = flIter.next().getMin();
flIter.previous();
@@ -116,10 +103,10 @@ public class ColumnHelper {
}
if (!currentElements.isEmpty() && lastMaxIndex < currentIndex) {
// we need to process previous elements first
insertCol(cols, lastMaxIndex, currentIndex - 1, currentElements.toArray(new CTCol[]{}), true, haveOverrideColumn);
insertCol(cols, lastMaxIndex, currentIndex - 1, currentElements.toArray(new CTCol[currentElements.size()]), true, haveOverrideColumn);
}
currentElements.add(col);
if (col.getMax() > currentMax) currentMax = col.getMax();
if (colMax > currentMax) currentMax = colMax;
if (col.equals(overrideColumn)) haveOverrideColumn = overrideColumn;
while (currentIndex <= nextIndex && !currentElements.isEmpty()) {
Set<CTCol> currentIndexElements = new HashSet<CTCol>();
@@ -130,26 +117,21 @@ public class ColumnHelper {
CTCol currentElem = currentElements.first();
currentElemIndex = currentElem.getMax();
currentIndexElements.add(currentElem);
for (CTCol cc : currentElements.tailSet(currentElem)) {
if (cc == null || cc.getMax() == currentElemIndex) break;
currentIndexElements.add(cc);
if (col.getMax() > currentMax) currentMax = col.getMax();

while (true) {
CTCol higherElem = currentElements.higher(currentElem);
if (higherElem == null || higherElem.getMax() != currentElemIndex)
break;
currentElem = higherElem;
currentIndexElements.add(currentElem);
if (colMax > currentMax) currentMax = colMax;
if (col.equals(overrideColumn)) haveOverrideColumn = overrideColumn;
}

// JDK 6 code
// while (currentElements.higher(currentElem) != null && currentElements.higher(currentElem).getMax() == currentElemIndex) {
// currentElem = currentElements.higher(currentElem);
// currentIndexElements.add(currentElem);
// if (col.getMax() > currentMax) currentMax = col.getMax();
// if (col.equals(overrideColumn)) haveOverrideColumn = overrideColumn;
// }
}
if (currentElemIndex < nextIndex || !flIter.hasNext()) {
insertCol(cols, currentIndex, currentElemIndex, currentElements.toArray(new CTCol[]{}), true, haveOverrideColumn);
insertCol(cols, currentIndex, currentElemIndex, currentElements.toArray(new CTCol[currentElements.size()]), true, haveOverrideColumn);
if (flIter.hasNext()) {
if (nextIndex > currentElemIndex) {
currentElements.removeAll(currentIndexElements);
@@ -170,10 +152,10 @@ public class ColumnHelper {
sortColumns(cols);
}

@SuppressWarnings("deprecation")
public static void sortColumns(CTCols newCols) {
CTCol[] colArray = new CTCol[newCols.getColList().size()];
newCols.getColList().toArray(colArray);
Arrays.sort(colArray, new CTColComparator());
CTCol[] colArray = newCols.getColArray();
Arrays.sort(colArray, CTColComparator.BY_MIN_MAX);
newCols.setColArray(colArray);
}

@@ -198,46 +180,46 @@ public class ColumnHelper {
* as 1 based.
*/
public CTCol getColumn1Based(long index1, boolean splitColumns) {
CTCols colsArray = worksheet.getColsArray(0);
CTCols cols = worksheet.getColsArray(0);
// Fetching the array is quicker than working on the new style
// list, assuming we need to read many of them (which we often do),
// and assuming we're not making many changes (which we're not)
@SuppressWarnings("deprecation")
CTCol[] cols = colsArray.getColArray();
for (int i = 0; i < cols.length; i++) {
CTCol colArray = cols[i];
if (colArray.getMin() <= index1 && colArray.getMax() >= index1) {
CTCol[] colArray = cols.getColArray();

for (CTCol col : colArray) {
long colMin = col.getMin();
long colMax = col.getMax();
if (colMin <= index1 && colMax >= index1) {
if (splitColumns) {
if (colArray.getMin() < index1) {
insertCol(colsArray, colArray.getMin(), (index1 - 1), new CTCol[]{colArray});
if (colMin < index1) {
insertCol(cols, colMin, (index1 - 1), new CTCol[]{col});
}
if (colArray.getMax() > index1) {
insertCol(colsArray, (index1 + 1), colArray.getMax(), new CTCol[]{colArray});
if (colMax > index1) {
insertCol(cols, (index1 + 1), colMax, new CTCol[]{col});
}
colArray.setMin(index1);
colArray.setMax(index1);
col.setMin(index1);
col.setMax(index1);
}
return colArray;
return col;
}
}
return null;
}

@SuppressWarnings("deprecation")
public CTCols addCleanColIntoCols(CTCols cols, CTCol col) {
CTCols newCols = CTCols.Factory.newInstance();
for (CTCol c : cols.getColList()) {
for (CTCol c : cols.getColArray()) {
cloneCol(newCols, c);
}
cloneCol(newCols, col);
sortColumns(newCols);
CTCol[] colArray = new CTCol[newCols.getColList().size()];
newCols.getColList().toArray(colArray);
CTCol[] colArray = newCols.getColArray();
CTCols returnCols = CTCols.Factory.newInstance();
sweepCleanColumns(returnCols, colArray, col);
colArray = new CTCol[returnCols.getColList().size()];
returnCols.getColList().toArray(colArray);
colArray = returnCols.getColArray();
cols.setColArray(colArray);
return returnCols;
}
@@ -272,9 +254,11 @@ public class ColumnHelper {
public boolean columnExists(CTCols cols, long index) {
return columnExists1Based(cols, index+1);
}

@SuppressWarnings("deprecation")
private boolean columnExists1Based(CTCols cols, long index1) {
for (int i = 0; i < cols.sizeOfColArray(); i++) {
if (cols.getColArray(i).getMin() == index1) {
for (CTCol col : cols.getColArray()) {
if (col.getMin() == index1) {
return true;
}
}
@@ -343,20 +327,24 @@ public class ColumnHelper {
return -1;
}

@SuppressWarnings("deprecation")
private boolean columnExists(CTCols cols, long min, long max) {
for (int i = 0; i < cols.sizeOfColArray(); i++) {
if (cols.getColArray(i).getMin() == min && cols.getColArray(i).getMax() == max) {
for (CTCol col : cols.getColArray()) {
if (col.getMin() == min && col.getMax() == max) {
return true;
}
}
return false;
}
public int getIndexOfColumn(CTCols cols, CTCol col) {
for (int i = 0; i < cols.sizeOfColArray(); i++) {
if (cols.getColArray(i).getMin() == col.getMin() && cols.getColArray(i).getMax() == col.getMax()) {

@SuppressWarnings("deprecation")
public int getIndexOfColumn(CTCols cols, CTCol searchCol) {
int i = 0;
for (CTCol col : cols.getColArray()) {
if (col.getMin() == searchCol.getMin() && col.getMax() == searchCol.getMax()) {
return i;
}
i++;
}
return -1;
}

+ 15
- 13
src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowShifter.java View File

@@ -43,6 +43,7 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCellFormula;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCfRule;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTConditionalFormatting;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCellFormulaType;

/**
@@ -213,28 +214,29 @@ public final class XSSFRowShifter {
}
}

@SuppressWarnings("deprecation")
public void updateConditionalFormatting(FormulaShifter shifter) {
XSSFWorkbook wb = sheet.getWorkbook();
int sheetIndex = wb.getSheetIndex(sheet);


XSSFEvaluationWorkbook fpb = XSSFEvaluationWorkbook.create(wb);
List<CTConditionalFormatting> cfList = sheet.getCTWorksheet().getConditionalFormattingList();
for(int j = 0; j< cfList.size(); j++){
CTConditionalFormatting cf = cfList.get(j);
CTWorksheet ctWorksheet = sheet.getCTWorksheet();
int cfCount = ctWorksheet.sizeOfConditionalFormattingArray();
for(int j = 0; j< cfCount; j++){
CTConditionalFormatting cf = ctWorksheet.getConditionalFormattingArray(j);

ArrayList<CellRangeAddress> cellRanges = new ArrayList<CellRangeAddress>();
for (Object stRef : cf.getSqref()) {
String[] regions = stRef.toString().split(" ");
for (int i = 0; i < regions.length; i++) {
cellRanges.add(CellRangeAddress.valueOf(regions[i]));
for (String region : regions) {
cellRanges.add(CellRangeAddress.valueOf(region));
}
}

boolean changed = false;
List<CellRangeAddress> temp = new ArrayList<CellRangeAddress>();
for (int i = 0; i < cellRanges.size(); i++) {
CellRangeAddress craOld = cellRanges.get(i);
for (CellRangeAddress craOld : cellRanges) {
CellRangeAddress craNew = shiftRange(shifter, craOld, sheetIndex);
if (craNew == null) {
changed = true;
@@ -249,7 +251,7 @@ public final class XSSFRowShifter {
if (changed) {
int nRanges = temp.size();
if (nRanges == 0) {
cfList.remove(j);
ctWorksheet.removeConditionalFormatting(j);
continue;
}
List<String> refs = new ArrayList<String>();
@@ -257,14 +259,14 @@ public final class XSSFRowShifter {
cf.setSqref(refs);
}

for(CTCfRule cfRule : cf.getCfRuleList()){
List<String> formulas = cfRule.getFormulaList();
for (int i = 0; i < formulas.size(); i++) {
String formula = formulas.get(i);
for(CTCfRule cfRule : cf.getCfRuleArray()){
int formulaCount = cfRule.sizeOfFormulaArray();
for (int i = 0; i < formulaCount; i++) {
String formula = cfRule.getFormulaArray(i);
Ptg[] ptgs = FormulaParser.parse(formula, fpb, FormulaType.CELL, sheetIndex);
if (shifter.adjustFormula(ptgs, sheetIndex)) {
String shiftedFmla = FormulaRenderer.toFormulaString(fpb, ptgs);
formulas.set(i, shiftedFmla);
cfRule.setFormulaArray(i, shiftedFmla);
}
}
}

+ 19
- 19
src/ooxml/java/org/apache/poi/xssf/util/CTColComparator.java View File

@@ -21,26 +21,26 @@ import java.util.Comparator;

import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCol;

public class CTColComparator implements Comparator<CTCol>{
public class CTColComparator {

public int compare(CTCol o1, CTCol o2) {
if (o1.getMin() < o2.getMin()) {
return -1;
}
else if (o1.getMin() > o2.getMin()) {
return 1;
private CTColComparator() {}

public static final Comparator<CTCol> BY_MAX = new Comparator<CTCol>() {
@Override
public int compare(CTCol col1, CTCol col2) {
long col1max = col1.getMax();
long col2max = col2.getMax();
return col1max < col2max ? -1 : col1max > col2max ? 1 : 0;
}
else {
if (o1.getMax() < o2.getMax()) {
return -1;
}
if (o1.getMax() > o2.getMax()) {
return 1;
}
return 0;
};
public static final Comparator<CTCol> BY_MIN_MAX = new Comparator<CTCol>() {
@Override
public int compare(CTCol col1, CTCol col2) {
long col11min = col1.getMin();
long col2min = col2.getMin();
return col11min < col2min ? -1 : col11min > col2min ? 1 : BY_MAX.compare(col1, col2);
}
}
};

}

+ 3
- 1
src/ooxml/java/org/apache/poi/xwpf/model/XWPFCommentsDecorator.java View File

@@ -33,13 +33,15 @@ public class XWPFCommentsDecorator extends XWPFParagraphDecorator {
public XWPFCommentsDecorator(XWPFParagraphDecorator nextDecorator) {
this(nextDecorator.paragraph, nextDecorator);
}

@SuppressWarnings("deprecation")
public XWPFCommentsDecorator(XWPFParagraph paragraph, XWPFParagraphDecorator nextDecorator) {
super(paragraph, nextDecorator);

XWPFComment comment;
commentText = new StringBuffer();

for(CTMarkupRange anchor : paragraph.getCTP().getCommentRangeStartList())
for(CTMarkupRange anchor : paragraph.getCTP().getCommentRangeStartArray())
{
if((comment = paragraph.getDocument().getCommentByID(anchor.getId().toString())) != null)
commentText.append("\tComment by " + comment.getAuthor()+": "+comment.getText());

+ 3
- 3
src/ooxml/java/org/apache/poi/xwpf/model/XWPFHyperlinkDecorator.java View File

@@ -52,10 +52,10 @@ public class XWPFHyperlinkDecorator extends XWPFParagraphDecorator {
hyperlinkText = new StringBuffer();
// loop over hyperlink anchors
for(CTHyperlink link : paragraph.getCTP().getHyperlinkList()){
for (CTR r : link.getRList()) {
for(CTHyperlink link : paragraph.getCTP().getHyperlinkArray()){
for (CTR r : link.getRArray()) {
// Loop over text runs
for (CTText text : r.getTList()){
for (CTText text : r.getTArray()){
hyperlinkText.append(text.getStringValue());
}
}

+ 7
- 6
src/ooxml/java/org/apache/poi/xwpf/usermodel/AbstractXWPFSDT.java View File

@@ -35,17 +35,18 @@ public abstract class AbstractXWPFSDT implements ISDTContents {
private final String tag;
private final IBody part;

@SuppressWarnings("deprecation")
public AbstractXWPFSDT(CTSdtPr pr, IBody part){
List<CTString> aliases = pr.getAliasList();
if (aliases != null && aliases.size() > 0){
title = aliases.get(0).getVal();
CTString[] aliases = pr.getAliasArray();
if (aliases != null && aliases.length > 0){
title = aliases[0].getVal();
} else {
title = "";
}
List<CTString> tags = pr.getTagList();
if (tags != null && tags.size() > 0){
tag = tags.get(0).getVal();
CTString[] tags = pr.getTagArray();
if (tags != null && tags.length > 0){
tag = tags[0].getVal();
} else {
tag = "";
}

+ 2
- 1
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFComment.java View File

@@ -31,13 +31,14 @@ public class XWPFComment
protected String author;
protected StringBuffer text;
@SuppressWarnings("deprecation")
public XWPFComment(CTComment comment, XWPFDocument document)
{
text = new StringBuffer();
id = comment.getId().toString();
author = comment.getAuthor();
for(CTP ctp : comment.getPList())
for(CTP ctp : comment.getPArray())
{
XWPFParagraph p = new XWPFParagraph(ctp, document);
text.append(p.getText());

+ 11
- 13
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java View File

@@ -184,7 +184,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
} else if (relation.equals(XWPFRelation.COMMENT.getRelation())) {
// TODO Create according XWPFComment class, extending POIXMLDocumentPart
CommentsDocument cmntdoc = CommentsDocument.Factory.parse(p.getPackagePart().getInputStream());
for (CTComment ctcomment : cmntdoc.getComments().getCommentList()) {
for (CTComment ctcomment : cmntdoc.getComments().getCommentArray()) {
comments.add(new XWPFComment(ctcomment, this));
}
} else if (relation.equals(XWPFRelation.SETTINGS.getRelation())) {
@@ -232,6 +232,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
}
}

@SuppressWarnings("deprecation")
private void initFootnotes() throws XmlException, IOException {
for(POIXMLDocumentPart p : getRelations()){
String relation = p.getPackageRelationship().getRelationshipType();
@@ -241,7 +242,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
} else if (relation.equals(XWPFRelation.ENDNOTE.getRelation())){
EndnotesDocument endnotesDocument = EndnotesDocument.Factory.parse(p.getPackagePart().getInputStream());

for(CTFtnEdn ctFtnEdn : endnotesDocument.getEndnotes().getEndnoteList()) {
for(CTFtnEdn ctFtnEdn : endnotesDocument.getEndnotes().getEndnoteArray()) {
endnotes.put(ctFtnEdn.getId().intValue(), new XWPFFootnote(this, ctFtnEdn));
}
}
@@ -364,10 +365,8 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
}

public XWPFHyperlink getHyperlinkByID(String id) {
Iterator<XWPFHyperlink> iter = hyperlinks.iterator();
while (iter.hasNext()) {
XWPFHyperlink link = iter.next();
if(link.getId().equals(id))
for (XWPFHyperlink link : hyperlinks) {
if (link.getId().equals(id))
return link;
}

@@ -396,10 +395,8 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
}

public XWPFComment getCommentByID(String id) {
Iterator<XWPFComment> iter = comments.iterator();
while (iter.hasNext()) {
XWPFComment comment = iter.next();
if(comment.getId().equals(id))
for (XWPFComment comment : comments) {
if (comment.getId().equals(id))
return comment;
}

@@ -1187,14 +1184,15 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
* @param table
*/
@Override
@SuppressWarnings("deprecation")
public void insertTable(int pos, XWPFTable table) {
bodyElements.add(pos, table);
int i;
for (i = 0; i < ctDocument.getBody().getTblList().size(); i++) {
CTTbl tbl = ctDocument.getBody().getTblArray(i);
int i = 0;
for (CTTbl tbl : ctDocument.getBody().getTblArray()) {
if (tbl == table.getCTTbl()) {
break;
}
i++;
}
tables.add(i, table);
}

+ 4
- 3
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnote.java View File

@@ -123,14 +123,15 @@ public class XWPFFootnote implements Iterable<XWPFParagraph>,IBody {
* @param table
* @see org.apache.poi.xwpf.usermodel.IBody#insertTable(int pos, XWPFTable table)
*/
@SuppressWarnings("deprecation")
public void insertTable(int pos, XWPFTable table) {
bodyElements.add(pos, table);
int i;
for (i = 0; i < ctFtnEdn.getTblList().size(); i++) {
CTTbl tbl = ctFtnEdn.getTblArray(i);
int i = 0;
for (CTTbl tbl : ctFtnEdn.getTblArray()) {
if(tbl == table.getCTTbl()){
break;
}
i++;
}
tables.add(i, table);


+ 2
- 2
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java View File

@@ -34,7 +34,6 @@ import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlOptions;

import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFtnEdn;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFootnotes;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.FootnotesDocument;
@@ -68,6 +67,7 @@ public class XWPFFootnotes extends POIXMLDocumentPart {
* Read document
*/
@Override
@SuppressWarnings("deprecation")
protected void onDocumentRead () throws IOException {
FootnotesDocument notesDoc;
try {
@@ -79,7 +79,7 @@ public class XWPFFootnotes extends POIXMLDocumentPart {
}

// Find our footnotes
for(CTFtnEdn note : ctFootnotes.getFootnoteList()) {
for(CTFtnEdn note : ctFootnotes.getFootnoteArray()) {
listFootnote.add(new XWPFFootnote(note, this));
}
}

+ 4
- 3
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java View File

@@ -436,14 +436,15 @@ public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBo
* @param pos
* @param table
*/
@SuppressWarnings("deprecation")
public void insertTable(int pos, XWPFTable table) {
bodyElements.add(pos, table);
int i;
for (i = 0; i < headerFooter.getTblList().size(); i++) {
CTTbl tbl = headerFooter.getTblArray(i);
int i = 0;
for (CTTbl tbl : headerFooter.getTblArray()) {
if(tbl == table.getCTTbl()){
break;
}
i++;
}
tables.add(i, table);


+ 2
- 1
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFLatentStyles.java View File

@@ -38,8 +38,9 @@ public class XWPFLatentStyles {
/**
* checks wheter specific LatentStyleID is a latentStyle
*/
@SuppressWarnings("deprecation")
protected boolean isLatentStyle(String latentStyleID){
for ( CTLsdException lsd: latentStyles.getLsdExceptionList()) {
for ( CTLsdException lsd: latentStyles.getLsdExceptionArray()) {
if(lsd.getName().equals(latentStyleID));
return true;
}

+ 4
- 3
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNumbering.java View File

@@ -71,6 +71,7 @@ public class XWPFNumbering extends POIXMLDocumentPart {
* read numbering form an existing package
*/
@Override
@SuppressWarnings("deprecation")
protected void onDocumentRead() throws IOException{
NumberingDocument numberingDoc = null;
InputStream is;
@@ -79,10 +80,10 @@ public class XWPFNumbering extends POIXMLDocumentPart {
numberingDoc = NumberingDocument.Factory.parse(is);
ctNumbering = numberingDoc.getNumbering();
//get any Nums
for(CTNum ctNum : ctNumbering.getNumList()) {
for(CTNum ctNum : ctNumbering.getNumArray()) {
nums.add(new XWPFNum(ctNum, this));
}
for(CTAbstractNum ctAbstractNum : ctNumbering.getAbstractNumList()){
for(CTAbstractNum ctAbstractNum : ctNumbering.getAbstractNumArray()){
abstractNums.add(new XWPFAbstractNum(ctAbstractNum, this));
}
isNew = false;
@@ -144,7 +145,7 @@ public class XWPFNumbering extends POIXMLDocumentPart {
*/
public BigInteger addNum(XWPFNum num){
ctNumbering.addNewNum();
int pos = (ctNumbering.getNumList().size()) - 1;
int pos = ctNumbering.sizeOfNumArray() - 1;
ctNumbering.setNumArray(pos, num.getCTNum());
nums.add(num);
return num.getCTNum().getNumId();

+ 12
- 10
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java View File

@@ -137,7 +137,7 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents {
}
if (o instanceof CTHyperlink) {
CTHyperlink link = (CTHyperlink) o;
for (CTR r : link.getRList()) {
for (CTR r : link.getRArray()) {
XWPFHyperlinkRun hr = new XWPFHyperlinkRun(link, r, this);
runs.add(hr);
iruns.add(hr);
@@ -152,14 +152,14 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents {
iruns.add(cc);
}
if (o instanceof CTRunTrackChange) {
for (CTR r : ((CTRunTrackChange) o).getRList()) {
for (CTR r : ((CTRunTrackChange) o).getRArray()) {
XWPFRun cr = new XWPFRun(r, this);
runs.add(cr);
iruns.add(cr);
}
}
if (o instanceof CTSimpleField) {
for (CTR r : ((CTSimpleField) o).getRList()) {
for (CTR r : ((CTSimpleField) o).getRArray()) {
XWPFRun cr = new XWPFRun(r, this);
runs.add(cr);
iruns.add(cr);
@@ -1170,7 +1170,7 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents {
*/
protected void addRun(CTR run){
int pos;
pos = paragraph.getRList().size();
pos = paragraph.sizeOfRArray();
paragraph.addNewR();
paragraph.setRArray(pos, run);
}
@@ -1230,9 +1230,10 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents {
startChar = startPos.getChar();
int beginRunPos = 0, candCharPos = 0;
boolean newList = false;
for (int runPos=startRun; runPos<paragraph.getRList().size(); runPos++) {
CTR[] rArray = paragraph.getRArray();
for (int runPos=startRun; runPos<rArray.length; runPos++) {
int beginTextPos = 0,beginCharPos = 0, textPos = 0, charPos = 0;
CTR ctRun = paragraph.getRArray(runPos);
CTR ctRun = rArray[runPos];
XmlCursor c = ctRun.newCursor();
c.selectPath("./*");
while(c.toNextSelection()){
@@ -1298,15 +1299,17 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents {
int runEnd = segment.getEndRun();
int textEnd = segment.getEndText();
int charEnd = segment.getEndChar();
StringBuffer out = new StringBuffer();
StringBuilder out = new StringBuilder();
CTR[] rArray = paragraph.getRArray();
for(int i=runBegin; i<=runEnd;i++){
int startText=0, endText = paragraph.getRArray(i).getTList().size()-1;
CTText[] tArray = rArray[i].getTArray();
int startText=0, endText = tArray.length-1;
if(i==runBegin)
startText=textBegin;
if(i==runEnd)
endText = textEnd;
for(int j=startText;j<=endText;j++){
String tmpText = paragraph.getRArray(i).getTArray(j).getStringValue();
String tmpText = tArray[j].getStringValue();
int startChar=0, endChar = tmpText.length()-1;
if((j==textBegin)&&(i==runBegin))
startChar=charBegin;
@@ -1314,7 +1317,6 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents {
endChar = charEnd;
}
out.append(tmpText.substring(startChar, endChar+1));

}
}
return out.toString();

+ 13
- 14
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java View File

@@ -20,6 +20,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.xml.namespace.QName;
@@ -95,6 +96,7 @@ public class XWPFRun implements ISDTContents, IRunElement{
* @param r the CTR bean which holds the run attributes
* @param p the parent paragraph
*/
@SuppressWarnings("deprecation")
public XWPFRun(CTR r, IRunBody p) {
this.run = r;
this.parent = p;
@@ -103,16 +105,13 @@ public class XWPFRun implements ISDTContents, IRunElement{
* reserve already occupied drawing ids, so reserving new ids later will
* not corrupt the document
*/
List<CTDrawing> drawingList = r.getDrawingList();
for (CTDrawing ctDrawing : drawingList) {
List<CTAnchor> anchorList = ctDrawing.getAnchorList();
for (CTAnchor anchor : anchorList) {
for (CTDrawing ctDrawing : r.getDrawingArray()) {
for (CTAnchor anchor : ctDrawing.getAnchorArray()) {
if (anchor.getDocPr() != null) {
getDocument().getDrawingIdManager().reserve(anchor.getDocPr().getId());
}
}
List<CTInline> inlineList = ctDrawing.getInlineList();
for (CTInline inline : inlineList) {
for (CTInline inline : ctDrawing.getInlineArray()) {
if (inline.getDocPr() != null) {
getDocument().getDrawingIdManager().reserve(inline.getDocPr().getId());
}
@@ -120,17 +119,17 @@ public class XWPFRun implements ISDTContents, IRunElement{
}

// Look for any text in any of our pictures or drawings
StringBuffer text = new StringBuffer();
StringBuilder text = new StringBuilder();
List<XmlObject> pictTextObjs = new ArrayList<XmlObject>();
pictTextObjs.addAll(r.getPictList());
pictTextObjs.addAll(drawingList);
pictTextObjs.addAll(Arrays.asList(r.getPictArray()));
pictTextObjs.addAll(Arrays.asList(r.getDrawingArray()));
for(XmlObject o : pictTextObjs) {
XmlObject[] t = o.selectPath("declare namespace w='http://schemas.openxmlformats.org/wordprocessingml/2006/main' .//w:t");
for (int m = 0; m < t.length; m++) {
NodeList kids = t[m].getDomNode().getChildNodes();
XmlObject[] ts = o.selectPath("declare namespace w='http://schemas.openxmlformats.org/wordprocessingml/2006/main' .//w:t");
for (XmlObject t : ts) {
NodeList kids = t.getDomNode().getChildNodes();
for (int n = 0; n < kids.getLength(); n++) {
if (kids.item(n) instanceof Text) {
if(text.length() > 0)
if (text.length() > 0)
text.append("\n");
text.append(kids.item(n).getNodeValue());
}
@@ -317,7 +316,7 @@ public class XWPFRun implements ISDTContents, IRunElement{
* @param value the literal text which shall be displayed in the document
*/
public void setText(String value) {
setText(value,run.getTList().size());
setText(value,run.sizeOfTArray());
}

/**

+ 2
- 2
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSDTContent.java View File

@@ -50,8 +50,8 @@ public class XWPFSDTContent implements ISDTContent {
private List<ISDTContents> bodyElements = new ArrayList<ISDTContents>();

public XWPFSDTContent(CTSdtContentRun sdtRun, IBody part, IRunBody parent){
for (CTR ctr : sdtRun.getRList()){
XWPFRun run = new XWPFRun((CTR) ctr, parent);
for (CTR ctr : sdtRun.getRArray()){
XWPFRun run = new XWPFRun(ctr, parent);
runs.add(run);
bodyElements.add(run);
}

+ 3
- 3
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java View File

@@ -37,7 +37,6 @@ import org.apache.xmlbeans.XmlOptions;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTStyle;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTStyles;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.StylesDocument;

import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPrDefault;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTLanguage;
@@ -74,6 +73,7 @@ public class XWPFStyles extends POIXMLDocumentPart{
* Read document
*/
@Override
@SuppressWarnings("deprecation")
protected void onDocumentRead() throws IOException{
StylesDocument stylesDoc;
try {
@@ -86,7 +86,7 @@ public class XWPFStyles extends POIXMLDocumentPart{
}
// Build up all the style objects
for(CTStyle style : ctStyles.getStyleList()) {
for(CTStyle style : ctStyles.getStyleArray()) {
listStyle.add(new XWPFStyle(style, this));
}
}
@@ -137,7 +137,7 @@ public class XWPFStyles extends POIXMLDocumentPart{
public void addStyle(XWPFStyle style){
listStyle.add(style);
ctStyles.addNewStyle();
int pos = (ctStyles.getStyleList().size()) - 1;
int pos = ctStyles.sizeOfStyleArray() - 1;
ctStyles.setStyleArray(pos, style.getCTStyle());
}
/**

+ 5
- 4
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTable.java View File

@@ -93,6 +93,7 @@ public class XWPFTable implements IBodyElement, ISDTContents {
}
}

@SuppressWarnings("deprecation")
public XWPFTable(CTTbl table, IBody part){
this.part = part;
this.ctTbl = table;
@@ -103,12 +104,12 @@ public class XWPFTable implements IBodyElement, ISDTContents {
if (table.sizeOfTrArray() == 0)
createEmptyTable(table);

for (CTRow row : table.getTrList()) {
StringBuffer rowText = new StringBuffer();
for (CTRow row : table.getTrArray()) {
StringBuilder rowText = new StringBuilder();
XWPFTableRow tabRow = new XWPFTableRow(row, this);
tableRows.add(tabRow);
for (CTTc cell : row.getTcList()) {
for (CTP ctp : cell.getPList()) {
for (CTTc cell : row.getTcArray()) {
for (CTP ctp : cell.getPArray()) {
XWPFParagraph p = new XWPFParagraph(ctp, part);
if (rowText.length() > 0) {
rowText.append('\t');

+ 11
- 10
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java View File

@@ -79,7 +79,7 @@ public class XWPFTableCell implements IBody, ICell {
this.part = part;
this.tableRow = tableRow;
// NB: If a table cell does not include at least one block-level element, then this document shall be considered corrupt.
if(cell.getPList().size()<1)
if(cell.sizeOfPArray()<1)
cell.addNewP();
bodyElements = new ArrayList<IBodyElement>();
paragraphs = new ArrayList<XWPFParagraph>();
@@ -398,16 +398,17 @@ public class XWPFTableCell implements IBody, ICell {
* inserts an existing XWPFTable to the arrays bodyElements and tables
* @see org.apache.poi.xwpf.usermodel.IBody#insertTable(int, org.apache.poi.xwpf.usermodel.XWPFTable)
*/
@SuppressWarnings("deprecation")
public void insertTable(int pos, XWPFTable table) {
bodyElements.add(pos, table);
int i;
for (i = 0; i < ctTc.getTblList().size(); i++) {
CTTbl tbl = ctTc.getTblArray(i);
if(tbl == table.getCTTbl()){
break;
}
}
tables.add(i, table);
bodyElements.add(pos, table);
int i = 0;
for (CTTbl tbl : ctTc.getTblArray()) {
if (tbl == table.getCTTbl()) {
break;
}
i++;
}
tables.add(i, table);
}

public String getText(){

+ 4
- 3
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java View File

@@ -152,10 +152,11 @@ public class XWPFTableRow {
* who belongs to this row
* @return a list of {@link XWPFTableCell}
*/
@SuppressWarnings("deprecation")
public List<XWPFTableCell> getTableCells(){
if(tableCells == null){
List<XWPFTableCell> cells = new ArrayList<XWPFTableCell>();
for (CTTc tableCell : ctRow.getTcList()) {
for (CTTc tableCell : ctRow.getTcArray()) {
cells.add(new XWPFTableCell(tableCell, this, table.getBody()));
}
//TODO: it is possible to have an SDT that contains a cell in within a row
@@ -201,7 +202,7 @@ public class XWPFTableRow {
boolean isCant = false;
CTTrPr trpr = getTrPr();
if (trpr.sizeOfCantSplitArray() > 0) {
CTOnOff onoff = trpr.getCantSplitList().get(0);
CTOnOff onoff = trpr.getCantSplitArray(0);
isCant = onoff.getVal().equals(STOnOff.ON);
}
return isCant;
@@ -229,7 +230,7 @@ public class XWPFTableRow {
boolean repeat = false;
CTTrPr trpr = getTrPr();
if (trpr.sizeOfTblHeaderArray() > 0) {
CTOnOff rpt = trpr.getTblHeaderList().get(0);
CTOnOff rpt = trpr.getTblHeaderArray(0);
repeat = rpt.getVal().equals(STOnOff.ON);
}
return repeat;

+ 7
- 11
src/ooxml/testcases/org/apache/poi/xslf/TestXSLFSlideShow.java View File

@@ -17,6 +17,7 @@
package org.apache.poi.xslf;

import junit.framework.TestCase;

import org.apache.poi.POIDataSamples;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.openxml4j.opc.PackagePart;
@@ -61,22 +62,19 @@ public class TestXSLFSlideShow extends TestCase {
);
}
@SuppressWarnings("deprecation")
public void testSlideBasics() throws Exception {
XSLFSlideShow xml = new XSLFSlideShow(pack);
// Should have 1 master
assertEquals(1, xml.getSlideMasterReferences().sizeOfSldMasterIdArray());
assertEquals(1, xml.getSlideMasterReferences().getSldMasterIdList().size());

// Should have three sheets
assertEquals(2, xml.getSlideReferences().sizeOfSldIdArray());
assertEquals(2, xml.getSlideReferences().getSldIdList().size());

// Check they're as expected
CTSlideIdListEntry[] slides = new CTSlideIdListEntry[
xml.getSlideReferences().getSldIdList().size()];
xml.getSlideReferences().getSldIdList().toArray(slides);
CTSlideIdListEntry[] slides = xml.getSlideReferences().getSldIdArray();

assertEquals(256, slides[0].getId());
assertEquals(257, slides[1].getId());
assertEquals("rId2", slides[0].getId2());
@@ -91,9 +89,7 @@ public class TestXSLFSlideShow extends TestCase {
assertNotNull(xml.getNotes(slides[1]));
// And again for the master
CTSlideMasterIdListEntry[] masters = new CTSlideMasterIdListEntry[
xml.getSlideMasterReferences().getSldMasterIdList().size()];
xml.getSlideMasterReferences().getSldMasterIdList().toArray(masters);
CTSlideMasterIdListEntry[] masters = xml.getSlideMasterReferences().getSldMasterIdArray();
assertEquals(2147483648l, masters[0].getId());
assertEquals("rId1", masters[0].getId2());

+ 4
- 6
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXMLSlideShow.java View File

@@ -17,6 +17,7 @@
package org.apache.poi.xslf.usermodel;

import junit.framework.TestCase;

import org.apache.poi.POIDataSamples;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.openxml4j.opc.PackagePart;
@@ -58,6 +59,7 @@ public class TestXMLSlideShow extends TestCase {
assertTrue(xml.getSlideMasters().length > 0);
}

@SuppressWarnings("deprecation")
public void testSlideBasics() throws Exception {
XMLSlideShow xml = new XMLSlideShow(pack);

@@ -68,9 +70,7 @@ public class TestXMLSlideShow extends TestCase {
assertEquals(2, xml.getSlides().length);

// Check they're as expected
CTSlideIdListEntry[] slides = new CTSlideIdListEntry[
xml.getCTPresentation().getSldIdLst().getSldIdList().size()];
xml.getCTPresentation().getSldIdLst().getSldIdList().toArray(slides);
CTSlideIdListEntry[] slides = xml.getCTPresentation().getSldIdLst().getSldIdArray();

assertEquals(256, slides[0].getId());
assertEquals(257, slides[1].getId());
@@ -86,9 +86,7 @@ public class TestXMLSlideShow extends TestCase {
assertNotNull(xml.getSlides()[1].getNotes());

// Next up look for the slide master
CTSlideMasterIdListEntry[] masters = new CTSlideMasterIdListEntry[
xml.getCTPresentation().getSldMasterIdLst().getSldMasterIdList().size()];
xml.getCTPresentation().getSldMasterIdLst().getSldMasterIdList().toArray(masters);
CTSlideMasterIdListEntry[] masters = xml.getCTPresentation().getSldMasterIdLst().getSldMasterIdArray();

assertEquals(2147483648l, masters[0].getId());
assertEquals("rId1", masters[0].getId2());

+ 12
- 4
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSimpleShape.java View File

@@ -16,12 +16,19 @@
==================================================================== */
package org.apache.poi.xslf.usermodel;
import java.awt.Color;
import junit.framework.TestCase;
import org.apache.poi.util.Units;
import org.apache.poi.xslf.XSLFTestDataSamples;
import org.openxmlformats.schemas.drawingml.x2006.main.*;
import java.awt.Color;
import org.openxmlformats.schemas.drawingml.x2006.main.CTEffectStyleItem;
import org.openxmlformats.schemas.drawingml.x2006.main.CTEffectStyleList;
import org.openxmlformats.schemas.drawingml.x2006.main.CTOuterShadowEffect;
import org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor;
import org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrix;
import org.openxmlformats.schemas.drawingml.x2006.main.STLineCap;
import org.openxmlformats.schemas.drawingml.x2006.main.STPresetLineDashVal;
/**
* @author Yegor Kozlov
@@ -243,13 +250,14 @@ public class TestXSLFSimpleShape extends TestCase {
}
@SuppressWarnings({ "deprecation", "unused" })
public void testShadowEffects(){
XMLSlideShow ppt = new XMLSlideShow();
XSLFSlide slide = ppt.createSlide();
CTStyleMatrix styleMatrix = slide.getTheme().getXmlObject().getThemeElements().getFmtScheme();
CTEffectStyleList lst = styleMatrix.getEffectStyleLst();
assertNotNull(lst);
for(CTEffectStyleItem ef : lst.getEffectStyleList()){
for(CTEffectStyleItem ef : lst.getEffectStyleArray()){
CTOuterShadowEffect obj = ef.getEffectLst().getOuterShdw();
}
}

+ 2
- 2
src/ooxml/testcases/org/apache/poi/xssf/model/TestCalculationChain.java View File

@@ -32,7 +32,7 @@ public final class TestCalculationChain extends TestCase {
CalculationChain chain = wb.getCalculationChain();
//the bean holding the reference to the formula to be deleted
CTCalcCell c = chain.getCTCalcChain().getCArray(0);
int cnt = chain.getCTCalcChain().getCList().size();
int cnt = chain.getCTCalcChain().sizeOfCArray();
assertEquals(10, c.getI());
assertEquals("E1", c.getR());

@@ -44,7 +44,7 @@ public final class TestCalculationChain extends TestCase {

//the count of items is less by one
c = chain.getCTCalcChain().getCArray(0);
int cnt2 = chain.getCTCalcChain().getCList().size();
int cnt2 = chain.getCTCalcChain().sizeOfCArray();
assertEquals(cnt - 1, cnt2);
//the first item in the calculation chain is the former second one
assertEquals(10, c.getI());

+ 1
- 1
src/ooxml/testcases/org/apache/poi/xssf/model/TestMapInfo.java View File

@@ -50,7 +50,7 @@ public final class TestMapInfo extends TestCase {

assertNotNull(ctMapInfo);

assertEquals(1, ctMapInfo.getSchemaList().size());
assertEquals(1, ctMapInfo.sizeOfSchemaArray());

for (XSSFMap map : mapInfo.getAllXSSFMaps()) {
Node xmlSchema = map.getSchema();

+ 2
- 2
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java View File

@@ -964,9 +964,9 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues {
assertEquals(text, cell.getStringCellValue());
assertEquals(4, cell.getRichStringCellValue().numFormattingRuns());
assertEquals("Use", cell.getRichStringCellValue().getCTRst().getRList().get(0).getT());
assertEquals("Use", cell.getRichStringCellValue().getCTRst().getRArray(0).getT());
String r3 = cell.getRichStringCellValue().getCTRst().getRList().get(2).getT();
String r3 = cell.getRichStringCellValue().getCTRst().getRArray(2).getT();
assertEquals("line.\n", r3.substring(r3.length()-6));

// Save and re-check

+ 4
- 2
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFColGrouping.java View File

@@ -45,6 +45,7 @@ public class TestXSSFColGrouping extends TestCase {
* Tests that POI doesn't produce "col" elements without "width" attribute.
* POI-52186
*/
@SuppressWarnings("deprecation")
public void testNoColsWithoutWidthWhenGrouping() {
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("test");
@@ -60,7 +61,7 @@ public class TestXSSFColGrouping extends TestCase {
CTCols cols = sheet.getCTWorksheet().getColsArray(0);
logger.log(POILogger.DEBUG, "test52186/cols:" + cols);
for (CTCol col : cols.getColList()) {
for (CTCol col : cols.getColArray()) {
assertTrue("Col width attribute is unset: " + col.toString(), col.isSetWidth());
}
}
@@ -69,6 +70,7 @@ public class TestXSSFColGrouping extends TestCase {
* Tests that POI doesn't produce "col" elements without "width" attribute.
* POI-52186
*/
@SuppressWarnings("deprecation")
public void testNoColsWithoutWidthWhenGroupingAndCollapsing() {
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("test");
@@ -90,7 +92,7 @@ public class TestXSSFColGrouping extends TestCase {
assertEquals("Unexpected width of column "+ i, 5000, sheet.getColumnWidth(i));
}
cols = sheet.getCTWorksheet().getColsArray(0);
for (CTCol col : cols.getColList()) {
for (CTCol col : cols.getColArray()) {
assertTrue("Col width attribute is unset: " + col.toString(), col.isSetWidth());
}
}

+ 5
- 5
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFont.java View File

@@ -65,7 +65,7 @@ public final class TestXSSFFont extends BaseTestFont{


xssfFont.setBold(true);
assertEquals(ctFont.getBList().size(),1);
assertEquals(ctFont.sizeOfBArray(),1);
assertEquals(true, ctFont.getBArray(0).getVal());
}

@@ -135,7 +135,7 @@ public final class TestXSSFFont extends BaseTestFont{
assertEquals(false, xssfFont.getItalic());

xssfFont.setItalic(true);
assertEquals(ctFont.getIList().size(),1);
assertEquals(ctFont.sizeOfIArray(),1);
assertEquals(true, ctFont.getIArray(0).getVal());
assertEquals(true,ctFont.getIArray(0).getVal());
}
@@ -150,7 +150,7 @@ public final class TestXSSFFont extends BaseTestFont{
assertEquals(false, xssfFont.getStrikeout());

xssfFont.setStrikeout(true);
assertEquals(ctFont.getStrikeList().size(),1);
assertEquals(ctFont.sizeOfStrikeArray(),1);
assertEquals(true, ctFont.getStrikeArray(0).getVal());
assertEquals(true,ctFont.getStrikeArray(0).getVal());
}
@@ -191,11 +191,11 @@ public final class TestXSSFFont extends BaseTestFont{
assertEquals(Font.U_SINGLE, xssfFont.getUnderline());

xssfFont.setUnderline(Font.U_DOUBLE);
assertEquals(ctFont.getUList().size(),1);
assertEquals(ctFont.sizeOfUArray(),1);
assertEquals(STUnderlineValues.DOUBLE,ctFont.getUArray(0).getVal());

xssfFont.setUnderline(FontUnderline.DOUBLE_ACCOUNTING);
assertEquals(ctFont.getUList().size(),1);
assertEquals(ctFont.sizeOfUArray(),1);
assertEquals(STUnderlineValues.DOUBLE_ACCOUNTING,ctFont.getUArray(0).getVal());
}


+ 13
- 13
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java View File

@@ -308,22 +308,22 @@ public final class TestXSSFRichTextString extends TestCase {

str = new XSSFRichTextString("Incorrect\nLine-Breaking");
str.applyFont(0, 8, font);
t1 = str.getCTRst().getRList().get(0).xgetT();
t2 = str.getCTRst().getRList().get(1).xgetT();
t1 = str.getCTRst().getRArray(0).xgetT();
t2 = str.getCTRst().getRArray(1).xgetT();
assertEquals("<xml-fragment>Incorrec</xml-fragment>", t1.xmlText());
assertEquals("<xml-fragment>t\nLine-Breaking</xml-fragment>", t2.xmlText());

str = new XSSFRichTextString("Incorrect\nLine-Breaking");
str.applyFont(0, 9, font);
t1 = str.getCTRst().getRList().get(0).xgetT();
t2 = str.getCTRst().getRList().get(1).xgetT();
t1 = str.getCTRst().getRArray(0).xgetT();
t2 = str.getCTRst().getRArray(1).xgetT();
assertEquals("<xml-fragment>Incorrect</xml-fragment>", t1.xmlText());
assertEquals("<xml-fragment xml:space=\"preserve\">\nLine-Breaking</xml-fragment>", t2.xmlText());

str = new XSSFRichTextString("Incorrect\n Line-Breaking");
str.applyFont(0, 9, font);
t1 = str.getCTRst().getRList().get(0).xgetT();
t2 = str.getCTRst().getRList().get(1).xgetT();
t1 = str.getCTRst().getRArray(0).xgetT();
t2 = str.getCTRst().getRArray(1).xgetT();
assertEquals("<xml-fragment>Incorrect</xml-fragment>", t1.xmlText());
assertEquals("<xml-fragment xml:space=\"preserve\">\n Line-Breaking</xml-fragment>", t2.xmlText());

@@ -333,15 +333,15 @@ public final class TestXSSFRichTextString extends TestCase {
assertEquals("<xml-fragment xml:space=\"preserve\">Tab\tseparated\n</xml-fragment>", t1.xmlText());

str.applyFont(0, 3, font);
t1 = str.getCTRst().getRList().get(0).xgetT();
t2 = str.getCTRst().getRList().get(1).xgetT();
t1 = str.getCTRst().getRArray(0).xgetT();
t2 = str.getCTRst().getRArray(1).xgetT();
assertEquals("<xml-fragment>Tab</xml-fragment>", t1.xmlText());
assertEquals("<xml-fragment xml:space=\"preserve\">\tseparated\n</xml-fragment>", t2.xmlText());

str = new XSSFRichTextString("Tab\tseparated\n");
str.applyFont(0, 4, font);
t1 = str.getCTRst().getRList().get(0).xgetT();
t2 = str.getCTRst().getRList().get(1).xgetT();
t1 = str.getCTRst().getRArray(0).xgetT();
t2 = str.getCTRst().getRArray(1).xgetT();
// YK: don't know why, but XmlBeans converts leading tab characters to spaces
//assertEquals("<xml-fragment>Tab\t</xml-fragment>", t1.xmlText());
assertEquals("<xml-fragment xml:space=\"preserve\">separated\n</xml-fragment>", t2.xmlText());
@@ -349,9 +349,9 @@ public final class TestXSSFRichTextString extends TestCase {
str = new XSSFRichTextString("\n\n\nNew Line\n\n");
str.applyFont(0, 3, font);
str.applyFont(11, 13, font);
t1 = str.getCTRst().getRList().get(0).xgetT();
t2 = str.getCTRst().getRList().get(1).xgetT();
t3 = str.getCTRst().getRList().get(2).xgetT();
t1 = str.getCTRst().getRArray(0).xgetT();
t2 = str.getCTRst().getRArray(1).xgetT();
t3 = str.getCTRst().getRArray(2).xgetT();
// YK: don't know why, but XmlBeans converts leading tab characters to spaces
assertEquals("<xml-fragment xml:space=\"preserve\">\n\n\n</xml-fragment>", t1.xmlText());
assertEquals("<xml-fragment>New Line</xml-fragment>", t2.xmlText());

+ 46
- 46
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java View File

@@ -335,6 +335,7 @@ public final class TestXSSFSheet extends BaseTestSheet {


@Test
@SuppressWarnings("deprecation")
public void groupUngroupColumn() {
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet();
@@ -344,36 +345,36 @@ public final class TestXSSFSheet extends BaseTestSheet {
sheet.groupColumn(10, 11);
CTCols cols = sheet.getCTWorksheet().getColsArray(0);
assertEquals(2, cols.sizeOfColArray());
List<CTCol> colArray = cols.getColList();
CTCol[] colArray = cols.getColArray();
assertNotNull(colArray);
assertEquals(2 + 1, colArray.get(0).getMin()); // 1 based
assertEquals(7 + 1, colArray.get(0).getMax()); // 1 based
assertEquals(1, colArray.get(0).getOutlineLevel());
assertEquals(2 + 1, colArray[0].getMin()); // 1 based
assertEquals(7 + 1, colArray[0].getMax()); // 1 based
assertEquals(1, colArray[0].getOutlineLevel());

//two level
sheet.groupColumn(1, 2);
cols = sheet.getCTWorksheet().getColsArray(0);
assertEquals(4, cols.sizeOfColArray());
colArray = cols.getColList();
assertEquals(2, colArray.get(1).getOutlineLevel());
colArray = cols.getColArray();
assertEquals(2, colArray[1].getOutlineLevel());

//three level
sheet.groupColumn(6, 8);
sheet.groupColumn(2, 3);
cols = sheet.getCTWorksheet().getColsArray(0);
assertEquals(7, cols.sizeOfColArray());
colArray = cols.getColList();
assertEquals(3, colArray.get(1).getOutlineLevel());
colArray = cols.getColArray();
assertEquals(3, colArray[1].getOutlineLevel());
assertEquals(3, sheet.getCTWorksheet().getSheetFormatPr().getOutlineLevelCol());

sheet.ungroupColumn(8, 10);
colArray = cols.getColList();
colArray = cols.getColArray();
//assertEquals(3, colArray[1].getOutlineLevel());

sheet.ungroupColumn(4, 6);
sheet.ungroupColumn(2, 2);
colArray = cols.getColList();
assertEquals(4, colArray.size());
colArray = cols.getColArray();
assertEquals(4, colArray.length);
assertEquals(2, sheet.getCTWorksheet().getSheetFormatPr().getOutlineLevelCol());
}

@@ -758,9 +759,8 @@ public final class TestXSSFSheet extends BaseTestSheet {
XSSFSheet xs = sheet;
CTWorksheet cts = xs.getCTWorksheet();

List<CTCols> cols_s = cts.getColsList();
assertEquals(1, cols_s.size());
CTCols cols = cols_s.get(0);
assertEquals(1, cts.sizeOfColsArray());
CTCols cols = cts.getColsArray(0);
assertEquals(1, cols.sizeOfColArray());
CTCol col = cols.getColArray(0);

@@ -773,9 +773,8 @@ public final class TestXSSFSheet extends BaseTestSheet {
// Now set another
sheet.setColumnWidth(3, 33 * 256);

cols_s = cts.getColsList();
assertEquals(1, cols_s.size());
cols = cols_s.get(0);
assertEquals(1, cts.sizeOfColsArray());
cols = cts.getColsArray(0);
assertEquals(2, cols.sizeOfColArray());

col = cols.getColArray(0);
@@ -960,6 +959,7 @@ public final class TestXSSFSheet extends BaseTestSheet {
* but CTRows are kept in ascending order
*/
@Test
@SuppressWarnings("deprecation")
public void createRow() {
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet();
@@ -983,27 +983,27 @@ public final class TestXSSFSheet extends BaseTestSheet {
row3.createCell(5);


List<CTRow> xrow = sheetData.getRowList();
assertEquals(3, xrow.size());
CTRow[] xrow = sheetData.getRowArray();
assertEquals(3, xrow.length);

//rows are sorted: {0, 1, 2}
assertEquals(4, xrow.get(0).sizeOfCArray());
assertEquals(1, xrow.get(0).getR());
assertTrue(xrow.get(0).equals(row3.getCTRow()));
assertEquals(4, xrow[0].sizeOfCArray());
assertEquals(1, xrow[0].getR());
assertTrue(xrow[0].equals(row3.getCTRow()));

assertEquals(3, xrow.get(1).sizeOfCArray());
assertEquals(2, xrow.get(1).getR());
assertTrue(xrow.get(1).equals(row2.getCTRow()));
assertEquals(3, xrow[1].sizeOfCArray());
assertEquals(2, xrow[1].getR());
assertTrue(xrow[1].equals(row2.getCTRow()));

assertEquals(2, xrow.get(2).sizeOfCArray());
assertEquals(3, xrow.get(2).getR());
assertTrue(xrow.get(2).equals(row1.getCTRow()));
assertEquals(2, xrow[2].sizeOfCArray());
assertEquals(3, xrow[2].getR());
assertTrue(xrow[2].equals(row1.getCTRow()));

List<CTCell> xcell = xrow.get(0).getCList();
assertEquals("D1", xcell.get(0).getR());
assertEquals("A1", xcell.get(1).getR());
assertEquals("C1", xcell.get(2).getR());
assertEquals("F1", xcell.get(3).getR());
CTCell[] xcell = xrow[0].getCArray();
assertEquals("D1", xcell[0].getR());
assertEquals("A1", xcell[1].getR());
assertEquals("C1", xcell[2].getR());
assertEquals("F1", xcell[3].getR());

//re-creating a row does NOT add extra data to the parent
row2 = sheet.createRow(1);
@@ -1015,25 +1015,25 @@ public final class TestXSSFSheet extends BaseTestSheet {
workbook = XSSFTestDataSamples.writeOutAndReadBack(workbook);
sheet = workbook.getSheetAt(0);
wsh = sheet.getCTWorksheet();
xrow = sheetData.getRowList();
assertEquals(3, xrow.size());
xrow = sheetData.getRowArray();
assertEquals(3, xrow.length);

//rows are sorted: {0, 1, 2}
assertEquals(4, xrow.get(0).sizeOfCArray());
assertEquals(1, xrow.get(0).getR());
assertEquals(4, xrow[0].sizeOfCArray());
assertEquals(1, xrow[0].getR());
//cells are now sorted
xcell = xrow.get(0).getCList();
assertEquals("A1", xcell.get(0).getR());
assertEquals("C1", xcell.get(1).getR());
assertEquals("D1", xcell.get(2).getR());
assertEquals("F1", xcell.get(3).getR());
xcell = xrow[0].getCArray();
assertEquals("A1", xcell[0].getR());
assertEquals("C1", xcell[1].getR());
assertEquals("D1", xcell[2].getR());
assertEquals("F1", xcell[3].getR());


assertEquals(0, xrow.get(1).sizeOfCArray());
assertEquals(2, xrow.get(1).getR());
assertEquals(0, xrow[1].sizeOfCArray());
assertEquals(2, xrow[1].getR());

assertEquals(2, xrow.get(2).sizeOfCArray());
assertEquals(3, xrow.get(2).getR());
assertEquals(2, xrow[2].sizeOfCArray());
assertEquals(3, xrow[2].getR());

}


+ 13
- 12
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java View File

@@ -17,13 +17,8 @@

package org.apache.poi.xssf.usermodel;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.XSSFTestDataSamples;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.util.TempFile;
import org.junit.Test;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTable;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableColumn;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.io.File;
import java.io.FileInputStream;
@@ -32,8 +27,13 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.util.TempFile;
import org.apache.poi.xssf.XSSFTestDataSamples;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.junit.Test;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTable;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableColumn;

public final class TestXSSFTable {

@@ -41,6 +41,7 @@ public final class TestXSSFTable {
}

@Test
@SuppressWarnings("deprecation")
public void bug56274() throws IOException {
// read sample file
XSSFWorkbook inputWorkbook = XSSFTestDataSamples.openSampleWorkbook("56274.xlsx");
@@ -60,13 +61,13 @@ public final class TestXSSFTable {
// re-read the saved file and make sure headers in the xml are in the original order
inputWorkbook = new org.apache.poi.xssf.usermodel.XSSFWorkbook(new FileInputStream(outputFile));
CTTable ctTable = inputWorkbook.getSheetAt(0).getTables().get(0).getCTTable();
List<CTTableColumn> ctTableColumnList = ctTable.getTableColumns().getTableColumnList();
CTTableColumn[] ctTableColumnArray = ctTable.getTableColumns().getTableColumnArray();

assertEquals("number of headers in xml table should match number of header cells in worksheet",
headers.size(), ctTableColumnList.size());
headers.size(), ctTableColumnArray.length);
for (int i = 0; i < headers.size(); i++) {
assertEquals("header name in xml table should match number of header cells in worksheet",
headers.get(i), ctTableColumnList.get(i).getName());
headers.get(i), ctTableColumnArray[i].getName());
}
assertTrue(outputFile.delete());
}

+ 1
- 1
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java View File

@@ -704,7 +704,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
CTPivotCache pivotCache = wb.addPivotCache("0");
//Ensures that pivotCaches is initiated
assertTrue(ctWb.isSetPivotCaches());
assertSame(pivotCache, ctWb.getPivotCaches().getPivotCacheList().get(0));
assertSame(pivotCache, ctWb.getPivotCaches().getPivotCacheArray(0));
assertEquals("0", pivotCache.getId());
}


+ 1
- 1
src/ooxml/testcases/org/apache/poi/xssf/usermodel/helpers/TestColumnHelper.java View File

@@ -186,7 +186,7 @@ public final class TestColumnHelper extends TestCase {
helper.addCleanColIntoCols(cols1, col9);

// TODO - assert something interesting
assertEquals(12, cols1.getColList().size());
assertEquals(12, cols1.sizeOfColArray());
assertEquals(1, cols1.getColArray(0).getMin());
assertEquals(16750, cols1.getColArray(11).getMax());
}

+ 5
- 7
src/ooxml/testcases/org/apache/poi/xssf/util/TestCTColComparator.java View File

@@ -27,39 +27,37 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCol;
public final class TestCTColComparator extends TestCase {

public void testCompare() {
CTColComparator comparator = new CTColComparator();
CTCol o1 = CTCol.Factory.newInstance();
o1.setMin(1);
o1.setMax(10);
CTCol o2 = CTCol.Factory.newInstance();
o2.setMin(11);
o2.setMax(12);
assertEquals(-1, comparator.compare(o1, o2));
assertEquals(-1, CTColComparator.BY_MIN_MAX.compare(o1, o2));
CTCol o3 = CTCol.Factory.newInstance();
o3.setMin(5);
o3.setMax(8);
CTCol o4 = CTCol.Factory.newInstance();
o4.setMin(5);
o4.setMax(80);
assertEquals(-1, comparator.compare(o3, o4));
assertEquals(-1, CTColComparator.BY_MIN_MAX.compare(o3, o4));
}

public void testArraysSort() {
CTColComparator comparator = new CTColComparator();
CTCol o1 = CTCol.Factory.newInstance();
o1.setMin(1);
o1.setMax(10);
CTCol o2 = CTCol.Factory.newInstance();
o2.setMin(11);
o2.setMax(12);
assertEquals(-1, comparator.compare(o1, o2));
assertEquals(-1, CTColComparator.BY_MIN_MAX.compare(o1, o2));
CTCol o3 = CTCol.Factory.newInstance();
o3.setMin(5);
o3.setMax(80);
CTCol o4 = CTCol.Factory.newInstance();
o4.setMin(5);
o4.setMax(8);
assertEquals(1, comparator.compare(o3, o4));
assertEquals(1, CTColComparator.BY_MIN_MAX.compare(o3, o4));
CTCol[] cols = new CTCol[4];
cols[0] = o1;
cols[1] = o2;
@@ -67,7 +65,7 @@ public final class TestCTColComparator extends TestCase {
cols[3] = o4;
assertEquals(80, cols[2].getMax());
assertEquals(8, cols[3].getMax());
Arrays.sort(cols, comparator);
Arrays.sort(cols, CTColComparator.BY_MIN_MAX);
assertEquals(12, cols[3].getMax());
assertEquals(8, cols[1].getMax());
assertEquals(80, cols[2].getMax());

+ 3
- 3
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java View File

@@ -234,7 +234,7 @@ public final class TestXWPFDocument extends TestCase {
OutputStream os = newImagePart.getOutputStream();
os.write(nature1);
os.close();
XWPFHeader xwpfHeader = doc.getHeaderList().get(0);
XWPFHeader xwpfHeader = doc.getHeaderArray(0);
PackageRelationship relationship = xwpfHeader.getPackagePart().addRelationship(partName, TargetMode.INTERNAL, jpgRelation.getRelation());
XWPFPictureData newPicData = new XWPFPictureData(newImagePart,relationship);
/* new part is now ready to rumble */
@@ -317,13 +317,13 @@ public final class TestXWPFDocument extends TestCase {
XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("issue_51265_2.docx");
assertEquals(1,doc.getAllPictures().size());
assertEquals(1,doc.getAllPackagePictures().size());
assertEquals(1,doc.getHeaderList().get(0).getAllPictures().size());
assertEquals(1,doc.getHeaderArray(0).getAllPictures().size());
doc.getPackage().revert();
}
public void testPictureHandlingComplex() throws IOException, InvalidFormatException {
XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("issue_51265_3.docx");
XWPFHeader xwpfHeader = doc.getHeaderList().get(0);
XWPFHeader xwpfHeader = doc.getHeaderArray(0);

assertEquals(3,doc.getAllPictures().size());
assertEquals(3,xwpfHeader.getAllPictures().size());

+ 6
- 5
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java View File

@@ -24,6 +24,9 @@ import java.util.List;
import junit.framework.TestCase;

import org.apache.poi.xwpf.XWPFTestDataSamples;
import org.openxmlformats.schemas.drawingml.x2006.picture.CTPicture;
import org.openxmlformats.schemas.drawingml.x2006.picture.PicDocument;
import org.openxmlformats.schemas.drawingml.x2006.picture.impl.PicDocumentImpl;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBookmark;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBorder;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTInd;
@@ -39,9 +42,6 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.STJc;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STLineSpacingRule;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTextAlignment;
import org.openxmlformats.schemas.drawingml.x2006.picture.CTPicture;
import org.openxmlformats.schemas.drawingml.x2006.picture.PicDocument;
import org.openxmlformats.schemas.drawingml.x2006.picture.impl.PicDocumentImpl;

/**
* Tests for XWPF Paragraphs
@@ -62,7 +62,7 @@ public final class TestXWPFParagraph extends TestCase {
assertEquals(1, ps.size());
XWPFParagraph p = ps.get(0);

assertEquals(5, p.getCTP().getRList().size());
assertEquals(5, p.getCTP().sizeOfRArray());
assertEquals("First header column!\tMid header\tRight header!", p
.getText());
}
@@ -234,6 +234,7 @@ public final class TestXWPFParagraph extends TestCase {
assertEquals(STOnOff.TRUE, ppr.getPageBreakBefore().getVal());
}

@SuppressWarnings("deprecation")
public void testBookmarks() throws IOException {
XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("bookmarks.docx");
XWPFParagraph paragraph = doc.getParagraphs().get(0);
@@ -242,7 +243,7 @@ public final class TestXWPFParagraph extends TestCase {
assertEquals(0, paragraph.getCTP().sizeOfBookmarkEndArray());
CTBookmark ctBookmark = paragraph.getCTP().getBookmarkStartArray(0);
assertEquals("poi", ctBookmark.getName());
for(CTBookmark bookmark : paragraph.getCTP().getBookmarkStartList()) {
for(CTBookmark bookmark : paragraph.getCTP().getBookmarkStartArray()) {
assertEquals("poi", bookmark.getName());
}
}

+ 3
- 3
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java View File

@@ -180,7 +180,7 @@ public class TestXWPFRun extends TestCase {
run.addCarriageReturn();
run.setText("T2");
run.addCarriageReturn();
assertEquals(3, run.getCTR().getCrList().size());
assertEquals(3, run.getCTR().sizeOfCrArray());
assertEquals("T1\n\nT2\n", run.toString());
}
@@ -200,8 +200,8 @@ public class TestXWPFRun extends TestCase {
run.setText("T2");
run.addTab();
run.setText("T3");
assertEquals(1, run.getCTR().getCrList().size());
assertEquals(1, run.getCTR().getTabList().size());
assertEquals(1, run.getCTR().sizeOfCrArray());
assertEquals(1, run.getCTR().sizeOfTabArray());
assertEquals("T1\nT2\tT3", run.toString());
}

Loading…
Cancel
Save