View | Details | Raw Unified | Return to bug 56854
Collapse All | Expand All

(-)src/ooxml/java/org/apache/poi/xslf/usermodel/DrawingTableRow.java (-3 / +3 lines)
Lines 30-40 Link Here
30
    }
30
    }
31
31
32
    public DrawingTableCell[] getCells() {
32
    public DrawingTableCell[] getCells() {
33
        List<CTTableCell> ctTableCells = row.getTcList();
33
        CTTableCell[] ctTableCells = row.getTcArray();
34
        DrawingTableCell[] o = new DrawingTableCell[ctTableCells.size()];
34
        DrawingTableCell[] o = new DrawingTableCell[ctTableCells.length];
35
35
36
        for (int i=0; i<o.length; i++) {
36
        for (int i=0; i<o.length; i++) {
37
            o[i] = new DrawingTableCell(ctTableCells.get(i));
37
            o[i] = new DrawingTableCell(ctTableCells[i]);
38
        }
38
        }
39
39
40
        return o;
40
        return o;
(-)src/ooxml/java/org/apache/poi/xssf/model/SingleXmlCells.java (-1 / +1 lines)
Lines 97-103 Link Here
97
	public List<XSSFSingleXmlCell> getAllSimpleXmlCell(){
97
	public List<XSSFSingleXmlCell> getAllSimpleXmlCell(){
98
		List<XSSFSingleXmlCell> list = new Vector<XSSFSingleXmlCell>();
98
		List<XSSFSingleXmlCell> list = new Vector<XSSFSingleXmlCell>();
99
		
99
		
100
		for(CTSingleXmlCell singleXmlCell: singleXMLCells.getSingleXmlCellList()){			
100
		for(CTSingleXmlCell singleXmlCell: singleXMLCells.getSingleXmlCellArray()){
101
			list.add(new XSSFSingleXmlCell(singleXmlCell,this));
101
			list.add(new XSSFSingleXmlCell(singleXmlCell,this));
102
		}		
102
		}		
103
		return list;
103
		return list;
(-)src/ooxml/java/org/apache/poi/xslf/usermodel/RenderableShape.java (-1 / +1 lines)
Lines 576-582 Link Here
576
                public Guide getAdjustValue(String name) {
576
                public Guide getAdjustValue(String name) {
577
                    CTPresetGeometry2D prst = _shape.getSpPr().getPrstGeom();
577
                    CTPresetGeometry2D prst = _shape.getSpPr().getPrstGeom();
578
                    if (prst.isSetAvLst()) {
578
                    if (prst.isSetAvLst()) {
579
                        for (CTGeomGuide g : prst.getAvLst().getGdList()) {
579
                        for (CTGeomGuide g : prst.getAvLst().getGdArray()) {
580
                            if (g.getName().equals(name)) {
580
                            if (g.getName().equals(name)) {
581
                                return new Guide(g);
581
                                return new Guide(g);
582
                            }
582
                            }
(-)src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableRow.java (-2 / +3 lines)
Lines 41-48 Link Here
41
    /*package*/ XSLFTableRow(CTTableRow row, XSLFTable table){
41
    /*package*/ XSLFTableRow(CTTableRow row, XSLFTable table){
42
        _row = row;
42
        _row = row;
43
        _table = table;
43
        _table = table;
44
        _cells = new ArrayList<XSLFTableCell>(_row.sizeOfTcArray());
44
        CTTableCell[] tcArray = _row.getTcArray();
45
        for(CTTableCell cell : _row.getTcList()) {
45
        _cells = new ArrayList<XSLFTableCell>(tcArray.length);
46
        for(CTTableCell cell : tcArray) {
46
            _cells.add(new XSLFTableCell(cell, table.getSheet()));
47
            _cells.add(new XSLFTableCell(cell, table.getSheet()));
47
        }
48
        }
48
    }
49
    }
(-)src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java (-3 / +3 lines)
Lines 1343-1349 Link Here
1343
     * Do not leave the width attribute undefined (see #52186).
1343
     * Do not leave the width attribute undefined (see #52186).
1344
     */
1344
     */
1345
    private void setColWidthAttribute(CTCols ctCols) {
1345
    private void setColWidthAttribute(CTCols ctCols) {
1346
        for (CTCol col : ctCols.getColList()) {
1346
        for (CTCol col : ctCols.getColArray()) {
1347
            if (!col.isSetWidth()) {
1347
            if (!col.isSetWidth()) {
1348
                col.setWidth(getDefaultColumnWidth());
1348
                col.setWidth(getDefaultColumnWidth());
1349
                col.setCustomWidth(false);
1349
                col.setCustomWidth(false);
Lines 1383-1389 Link Here
1383
    private short getMaxOutlineLevelCols() {
1383
    private short getMaxOutlineLevelCols() {
1384
        CTCols ctCols = worksheet.getColsArray(0);
1384
        CTCols ctCols = worksheet.getColsArray(0);
1385
        short outlineLevel = 0;
1385
        short outlineLevel = 0;
1386
        for (CTCol col : ctCols.getColList()) {
1386
        for (CTCol col : ctCols.getColArray()) {
1387
            outlineLevel = col.getOutlineLevel() > outlineLevel ? col.getOutlineLevel() : outlineLevel;
1387
            outlineLevel = col.getOutlineLevel() > outlineLevel ? col.getOutlineLevel() : outlineLevel;
1388
        }
1388
        }
1389
        return outlineLevel;
1389
        return outlineLevel;
Lines 3543-3549 Link Here
3543
                 + ":$" + rowRef2.getCellRefParts()[1];
3543
                 + ":$" + rowRef2.getCellRefParts()[1];
3544
        }
3544
        }
3545
3545
3546
        StringBuffer rng = new StringBuffer();
3546
        StringBuilder rng = new StringBuilder();
3547
        rng.append(c);
3547
        rng.append(c);
3548
        if(rng.length() > 0 && r.length() > 0) {
3548
        if(rng.length() > 0 && r.length() > 0) {
3549
          rng.append(',');
3549
          rng.append(',');
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java (-10 / +10 lines)
Lines 79-85 Link Here
79
        this.part = part;
79
        this.part = part;
80
        this.tableRow = tableRow;
80
        this.tableRow = tableRow;
81
        // NB: If a table cell does not include at least one block-level element, then this document shall be considered corrupt.
81
        // NB: If a table cell does not include at least one block-level element, then this document shall be considered corrupt.
82
        if(cell.getPList().size()<1)
82
        if(cell.sizeOfPArray()<1)
83
            cell.addNewP();
83
            cell.addNewP();
84
        bodyElements = new ArrayList<IBodyElement>();
84
        bodyElements = new ArrayList<IBodyElement>();
85
        paragraphs = new ArrayList<XWPFParagraph>();
85
        paragraphs = new ArrayList<XWPFParagraph>();
Lines 399-413 Link Here
399
     * @see org.apache.poi.xwpf.usermodel.IBody#insertTable(int, org.apache.poi.xwpf.usermodel.XWPFTable)
399
     * @see org.apache.poi.xwpf.usermodel.IBody#insertTable(int, org.apache.poi.xwpf.usermodel.XWPFTable)
400
     */
400
     */
401
    public void insertTable(int pos, XWPFTable table) {
401
    public void insertTable(int pos, XWPFTable table) {
402
	bodyElements.add(pos, table);
402
        bodyElements.add(pos, table);
403
	int i;
403
        int i = 0;
404
	for (i = 0; i < ctTc.getTblList().size(); i++) {
404
        for (CTTbl tbl : ctTc.getTblArray()) {
405
	    CTTbl tbl = ctTc.getTblArray(i);
406
	    if(tbl == table.getCTTbl()){
405
            if (tbl == table.getCTTbl()) {
407
		break;
406
                break;
408
	    }
407
            }
408
            i++;
409
	}
409
        }
410
	tables.add(i, table);
410
        tables.add(i, table);
411
    }
411
    }
412
412
413
    public String getText(){
413
    public String getText(){
(-)src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFTable.java (-3 / +3 lines)
Lines 134-140 Link Here
134
		
134
		
135
		String[] commonTokens ={};
135
		String[] commonTokens ={};
136
		
136
		
137
		for(CTTableColumn column :ctTable.getTableColumns().getTableColumnList()){
137
		for(CTTableColumn column :ctTable.getTableColumns().getTableColumnArray()){
138
			if(column.getXmlColumnPr()!=null){
138
			if(column.getXmlColumnPr()!=null){
139
				String xpath = column.getXmlColumnPr().getXpath();
139
				String xpath = column.getXmlColumnPr().getXpath();
140
				String[] tokens =  xpath.split("/");
140
				String[] tokens =  xpath.split("/");
Lines 177-183 Link Here
177
		
177
		
178
		if(xmlColumnPr==null){
178
		if(xmlColumnPr==null){
179
			xmlColumnPr = new ArrayList<XSSFXmlColumnPr>();
179
			xmlColumnPr = new ArrayList<XSSFXmlColumnPr>();
180
			for (CTTableColumn column:ctTable.getTableColumns().getTableColumnList()){
180
			for (CTTableColumn column:ctTable.getTableColumns().getTableColumnArray()){
181
				if (column.getXmlColumnPr()!=null){
181
				if (column.getXmlColumnPr()!=null){
182
					XSSFXmlColumnPr columnPr = new XSSFXmlColumnPr(this,column,column.getXmlColumnPr());
182
					XSSFXmlColumnPr columnPr = new XSSFXmlColumnPr(this,column,column.getXmlColumnPr());
183
					xmlColumnPr.add(columnPr);
183
					xmlColumnPr.add(columnPr);
Lines 296-302 Link Here
296
296
297
        if (row != null && row.getCTRow().validate()) {
297
        if (row != null && row.getCTRow().validate()) {
298
            int cellnum = firstHeaderColumn;
298
            int cellnum = firstHeaderColumn;
299
            for (CTTableColumn col : getCTTable().getTableColumns().getTableColumnList()) {
299
            for (CTTableColumn col : getCTTable().getTableColumns().getTableColumnArray()) {
300
                XSSFCell cell = row.getCell(cellnum);
300
                XSSFCell cell = row.getCell(cellnum);
301
                if (cell != null) {
301
                if (cell != null) {
302
                    col.setName(cell.getStringCellValue());
302
                    col.setName(cell.getStringCellValue());
(-)src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java (-3 / +3 lines)
Lines 234-240 Link Here
234
        OutputStream os = newImagePart.getOutputStream();
234
        OutputStream os = newImagePart.getOutputStream();
235
        os.write(nature1);
235
        os.write(nature1);
236
	    os.close();
236
	    os.close();
237
	    XWPFHeader xwpfHeader = doc.getHeaderList().get(0);
237
	    XWPFHeader xwpfHeader = doc.getHeaderArray(0);
238
	    PackageRelationship relationship = xwpfHeader.getPackagePart().addRelationship(partName, TargetMode.INTERNAL, jpgRelation.getRelation());
238
	    PackageRelationship relationship = xwpfHeader.getPackagePart().addRelationship(partName, TargetMode.INTERNAL, jpgRelation.getRelation());
239
	    XWPFPictureData newPicData = new XWPFPictureData(newImagePart,relationship);
239
	    XWPFPictureData newPicData = new XWPFPictureData(newImagePart,relationship);
240
	    /* new part is now ready to rumble */
240
	    /* new part is now ready to rumble */
Lines 317-329 Link Here
317
	    XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("issue_51265_2.docx");
317
	    XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("issue_51265_2.docx");
318
	    assertEquals(1,doc.getAllPictures().size());
318
	    assertEquals(1,doc.getAllPictures().size());
319
	    assertEquals(1,doc.getAllPackagePictures().size());
319
	    assertEquals(1,doc.getAllPackagePictures().size());
320
	    assertEquals(1,doc.getHeaderList().get(0).getAllPictures().size());
320
	    assertEquals(1,doc.getHeaderArray(0).getAllPictures().size());
321
	    doc.getPackage().revert();
321
	    doc.getPackage().revert();
322
	}
322
	}
323
	
323
	
324
	public void testPictureHandlingComplex() throws IOException, InvalidFormatException {
324
	public void testPictureHandlingComplex() throws IOException, InvalidFormatException {
325
	    XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("issue_51265_3.docx");
325
	    XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("issue_51265_3.docx");
326
	    XWPFHeader xwpfHeader = doc.getHeaderList().get(0);
326
	    XWPFHeader xwpfHeader = doc.getHeaderArray(0);
327
327
328
	    assertEquals(3,doc.getAllPictures().size());
328
	    assertEquals(3,doc.getAllPictures().size());
329
        assertEquals(3,xwpfHeader.getAllPictures().size());
329
        assertEquals(3,xwpfHeader.getAllPictures().size());
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFComment.java (-1 / +1 lines)
Lines 37-43 Link Here
37
        id = comment.getId().toString();
37
        id = comment.getId().toString();
38
        author = comment.getAuthor();
38
        author = comment.getAuthor();
39
        
39
        
40
        for(CTP ctp : comment.getPList())
40
        for(CTP ctp : comment.getPArray())
41
        {
41
        {
42
            XWPFParagraph p = new XWPFParagraph(ctp, document);
42
            XWPFParagraph p = new XWPFParagraph(ctp, document);
43
            text.append(p.getText());
43
            text.append(p.getText());
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java (-10 / +12 lines)
Lines 137-143 Link Here
137
           }
137
           }
138
           if (o instanceof CTHyperlink) {
138
           if (o instanceof CTHyperlink) {
139
               CTHyperlink link = (CTHyperlink) o;
139
               CTHyperlink link = (CTHyperlink) o;
140
               for (CTR r : link.getRList()) {
140
               for (CTR r : link.getRArray()) {
141
                   XWPFHyperlinkRun hr = new XWPFHyperlinkRun(link, r, this);
141
                   XWPFHyperlinkRun hr = new XWPFHyperlinkRun(link, r, this);
142
                   runs.add(hr);
142
                   runs.add(hr);
143
                   iruns.add(hr);
143
                   iruns.add(hr);
Lines 152-165 Link Here
152
               iruns.add(cc);
152
               iruns.add(cc);
153
           }
153
           }
154
           if (o instanceof CTRunTrackChange) {
154
           if (o instanceof CTRunTrackChange) {
155
               for (CTR r : ((CTRunTrackChange) o).getRList()) {
155
               for (CTR r : ((CTRunTrackChange) o).getRArray()) {
156
                   XWPFRun cr = new XWPFRun(r, this);
156
                   XWPFRun cr = new XWPFRun(r, this);
157
                   runs.add(cr);
157
                   runs.add(cr);
158
                   iruns.add(cr);
158
                   iruns.add(cr);
159
               }
159
               }
160
           }
160
           }
161
           if (o instanceof CTSimpleField) {
161
           if (o instanceof CTSimpleField) {
162
               for (CTR r : ((CTSimpleField) o).getRList()) {
162
               for (CTR r : ((CTSimpleField) o).getRArray()) {
163
                   XWPFRun cr = new XWPFRun(r, this);
163
                   XWPFRun cr = new XWPFRun(r, this);
164
                   runs.add(cr);
164
                   runs.add(cr);
165
                   iruns.add(cr);
165
                   iruns.add(cr);
Lines 1170-1176 Link Here
1170
     */
1170
     */
1171
    protected void addRun(CTR run){
1171
    protected void addRun(CTR run){
1172
        int pos;
1172
        int pos;
1173
        pos = paragraph.getRList().size();
1173
        pos = paragraph.sizeOfRArray();
1174
        paragraph.addNewR();
1174
        paragraph.addNewR();
1175
        paragraph.setRArray(pos, run);
1175
        paragraph.setRArray(pos, run);
1176
    }
1176
    }
Lines 1230-1238 Link Here
1230
            startChar = startPos.getChar();
1230
            startChar = startPos.getChar();
1231
        int beginRunPos = 0, candCharPos = 0;
1231
        int beginRunPos = 0, candCharPos = 0;
1232
        boolean newList = false;
1232
        boolean newList = false;
1233
        for (int runPos=startRun; runPos<paragraph.getRList().size(); runPos++) {
1233
        CTR[] rArray = paragraph.getRArray();
1234
        for (int runPos=startRun; runPos<rArray.length; runPos++) {
1234
            int beginTextPos = 0,beginCharPos = 0, textPos = 0,  charPos = 0;    
1235
            int beginTextPos = 0,beginCharPos = 0, textPos = 0,  charPos = 0;    
1235
            CTR ctRun = paragraph.getRArray(runPos);
1236
            CTR ctRun = rArray[runPos];
1236
            XmlCursor c = ctRun.newCursor();
1237
            XmlCursor c = ctRun.newCursor();
1237
            c.selectPath("./*");
1238
            c.selectPath("./*");
1238
            while(c.toNextSelection()){
1239
            while(c.toNextSelection()){
Lines 1298-1312 Link Here
1298
        int runEnd = segment.getEndRun();
1299
        int runEnd = segment.getEndRun();
1299
        int textEnd = segment.getEndText();
1300
        int textEnd = segment.getEndText();
1300
        int charEnd    = segment.getEndChar();
1301
        int charEnd    = segment.getEndChar();
1301
        StringBuffer out = new StringBuffer();
1302
        StringBuilder out = new StringBuilder();
1303
        CTR[] rArray = paragraph.getRArray();
1302
        for(int i=runBegin; i<=runEnd;i++){
1304
        for(int i=runBegin; i<=runEnd;i++){
1303
            int startText=0, endText = paragraph.getRArray(i).getTList().size()-1;
1305
            CTText[] tArray = rArray[i].getTArray();
1306
            int startText=0, endText = tArray.length-1;
1304
            if(i==runBegin)
1307
            if(i==runBegin)
1305
                startText=textBegin;
1308
                startText=textBegin;
1306
            if(i==runEnd)
1309
            if(i==runEnd)
1307
                endText = textEnd;
1310
                endText = textEnd;
1308
            for(int j=startText;j<=endText;j++){
1311
            for(int j=startText;j<=endText;j++){
1309
                String tmpText = paragraph.getRArray(i).getTArray(j).getStringValue();
1312
                String tmpText = tArray[j].getStringValue();
1310
                int startChar=0, endChar = tmpText.length()-1;
1313
                int startChar=0, endChar = tmpText.length()-1;
1311
                if((j==textBegin)&&(i==runBegin))
1314
                if((j==textBegin)&&(i==runBegin))
1312
                    startChar=charBegin;
1315
                    startChar=charBegin;
Lines 1314-1320 Link Here
1314
                    endChar = charEnd;
1317
                    endChar = charEnd;
1315
                }
1318
                }
1316
                out.append(tmpText.substring(startChar, endChar+1));
1319
                out.append(tmpText.substring(startChar, endChar+1));
1317
1318
            }
1320
            }
1319
        }
1321
        }
1320
        return out.toString();
1322
        return out.toString();
(-)src/ooxml/java/org/apache/poi/xslf/usermodel/DrawingTextBody.java (-3 / +3 lines)
Lines 30-40 Link Here
30
    }
30
    }
31
31
32
    public DrawingParagraph[] getParagraphs() {
32
    public DrawingParagraph[] getParagraphs() {
33
        List<CTTextParagraph> paragraphs = textBody.getPList();
33
        CTTextParagraph[] paragraphs = textBody.getPArray();
34
        DrawingParagraph[] o = new DrawingParagraph[paragraphs.size()];
34
        DrawingParagraph[] o = new DrawingParagraph[paragraphs.length];
35
35
36
        for (int i=0; i<o.length; i++) {
36
        for (int i=0; i<o.length; i++) {
37
            o[i] = new DrawingParagraph(paragraphs.get(i));
37
            o[i] = new DrawingParagraph(paragraphs[i]);
38
        }
38
        }
39
39
40
        return o;
40
        return o;
(-)src/ooxml/java/org/apache/poi/xslf/XSLFSlideShow.java (-1 / +1 lines)
Lines 64-70 Link Here
64
			PresentationDocument.Factory.parse(getCorePart().getInputStream());
64
			PresentationDocument.Factory.parse(getCorePart().getInputStream());
65
		
65
		
66
      embedds = new LinkedList<PackagePart>();
66
      embedds = new LinkedList<PackagePart>();
67
      for (CTSlideIdListEntry ctSlide : getSlideReferences().getSldIdList()) {
67
      for (CTSlideIdListEntry ctSlide : getSlideReferences().getSldIdArray()) {
68
             PackagePart corePart = getCorePart();
68
             PackagePart corePart = getCorePart();
69
	          PackagePart slidePart = corePart.getRelatedPart(
69
	          PackagePart slidePart = corePart.getRelatedPart(
70
	                corePart.getRelationship(ctSlide.getId2()));
70
	                corePart.getRelationship(ctSlide.getId2()));
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java (-3 / +3 lines)
Lines 438-449 Link Here
438
     */
438
     */
439
    public void insertTable(int pos, XWPFTable table) {
439
    public void insertTable(int pos, XWPFTable table) {
440
        bodyElements.add(pos, table);
440
        bodyElements.add(pos, table);
441
        int i;
441
        int i = 0;
442
        for (i = 0; i < headerFooter.getTblList().size(); i++) {
442
        for (CTTbl tbl : headerFooter.getTblArray()) {
443
            CTTbl tbl = headerFooter.getTblArray(i);
444
            if(tbl == table.getCTTbl()){
443
            if(tbl == table.getCTTbl()){
445
                break;
444
                break;
446
            }
445
            }
446
            i++;
447
        }
447
        }
448
        tables.add(i, table);
448
        tables.add(i, table);
449
449
(-)src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java (-1 / +1 lines)
Lines 150-156 Link Here
150
150
151
               // If the slide has comments, do those too
151
               // If the slide has comments, do those too
152
               if (comments != null) {
152
               if (comments != null) {
153
                  for (CTComment comment : comments.getCTCommentsList().getCmList()) {
153
                  for (CTComment comment : comments.getCTCommentsList().getCmArray()) {
154
                     // Do the author if we can
154
                     // Do the author if we can
155
                     if (commentAuthors != null) {
155
                     if (commentAuthors != null) {
156
                        CTCommentAuthor author = commentAuthors.getAuthorById(comment.getAuthorId());
156
                        CTCommentAuthor author = commentAuthors.getAuthorById(comment.getAuthorId());
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNumbering.java (-3 / +3 lines)
Lines 79-88 Link Here
79
			numberingDoc = NumberingDocument.Factory.parse(is);
79
			numberingDoc = NumberingDocument.Factory.parse(is);
80
			ctNumbering = numberingDoc.getNumbering();
80
			ctNumbering = numberingDoc.getNumbering();
81
	        //get any Nums
81
	        //get any Nums
82
	        for(CTNum ctNum : ctNumbering.getNumList()) {
82
	        for(CTNum ctNum : ctNumbering.getNumArray()) {
83
	            nums.add(new XWPFNum(ctNum, this));
83
	            nums.add(new XWPFNum(ctNum, this));
84
	        }
84
	        }
85
	        for(CTAbstractNum ctAbstractNum : ctNumbering.getAbstractNumList()){
85
	        for(CTAbstractNum ctAbstractNum : ctNumbering.getAbstractNumArray()){
86
	        	abstractNums.add(new XWPFAbstractNum(ctAbstractNum, this));
86
	        	abstractNums.add(new XWPFAbstractNum(ctAbstractNum, this));
87
	        }
87
	        }
88
	        isNew = false;
88
	        isNew = false;
Lines 144-150 Link Here
144
	 */
144
	 */
145
	public BigInteger addNum(XWPFNum num){
145
	public BigInteger addNum(XWPFNum num){
146
		ctNumbering.addNewNum();
146
		ctNumbering.addNewNum();
147
		int pos = (ctNumbering.getNumList().size()) - 1;
147
		int pos = ctNumbering.sizeOfNumArray() - 1;
148
		ctNumbering.setNumArray(pos, num.getCTNum());
148
		ctNumbering.setNumArray(pos, num.getCTNum());
149
		nums.add(num);
149
		nums.add(num);
150
		return num.getCTNum().getNumId();
150
		return num.getCTNum().getNumId();
(-)src/ooxml/java/org/apache/poi/xwpf/model/XWPFHyperlinkDecorator.java (-3 / +3 lines)
Lines 52-61 Link Here
52
		hyperlinkText = new StringBuffer();
52
		hyperlinkText = new StringBuffer();
53
		
53
		
54
		// loop over hyperlink anchors
54
		// loop over hyperlink anchors
55
		for(CTHyperlink link : paragraph.getCTP().getHyperlinkList()){
55
		for(CTHyperlink link : paragraph.getCTP().getHyperlinkArray()){
56
			for (CTR r : link.getRList()) {
56
			for (CTR r : link.getRArray()) {
57
				// Loop over text runs
57
				// Loop over text runs
58
				for (CTText text : r.getTList()){
58
				for (CTText text : r.getTArray()){
59
					hyperlinkText.append(text.getStringValue());
59
					hyperlinkText.append(text.getStringValue());
60
				}
60
				}
61
			}
61
			}
(-)src/ooxml/java/org/apache/poi/POIXMLPropertiesTextExtractor.java (-3 / +2 lines)
Lines 127-138 Link Here
127
    *  there are any
127
    *  there are any
128
    */
128
    */
129
   public String getCustomPropertiesText() {
129
   public String getCustomPropertiesText() {
130
      StringBuffer text = new StringBuffer();
130
      StringBuilder text = new StringBuilder();
131
      org.openxmlformats.schemas.officeDocument.x2006.customProperties.CTProperties
131
      org.openxmlformats.schemas.officeDocument.x2006.customProperties.CTProperties
132
      props = getDocument().getProperties().getCustomProperties().getUnderlyingProperties();
132
      props = getDocument().getProperties().getCustomProperties().getUnderlyingProperties();
133
133
134
      List<CTProperty> properties = props.getPropertyList();
134
       for(CTProperty property : props.getPropertyArray()) {
135
      for(CTProperty property : properties) {
136
         String val = "(not implemented!)";
135
         String val = "(not implemented!)";
137
136
138
         if (property.isSetLpwstr()) {
137
         if (property.isSetLpwstr()) {
(-)src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFColGrouping.java (-2 / +2 lines)
Lines 60-66 Link Here
60
        
60
        
61
        CTCols cols = sheet.getCTWorksheet().getColsArray(0);
61
        CTCols cols = sheet.getCTWorksheet().getColsArray(0);
62
        logger.log(POILogger.DEBUG, "test52186/cols:" + cols);
62
        logger.log(POILogger.DEBUG, "test52186/cols:" + cols);
63
        for (CTCol col : cols.getColList()) {
63
        for (CTCol col : cols.getColArray()) {
64
			assertTrue("Col width attribute is unset: " + col.toString(), col.isSetWidth());
64
			assertTrue("Col width attribute is unset: " + col.toString(), col.isSetWidth());
65
		}
65
		}
66
    }
66
    }
Lines 90-96 Link Here
90
        	assertEquals("Unexpected width of column "+ i, 5000, sheet.getColumnWidth(i));
90
        	assertEquals("Unexpected width of column "+ i, 5000, sheet.getColumnWidth(i));
91
        }
91
        }
92
        cols = sheet.getCTWorksheet().getColsArray(0);
92
        cols = sheet.getCTWorksheet().getColsArray(0);
93
        for (CTCol col : cols.getColList()) {
93
        for (CTCol col : cols.getColArray()) {
94
			assertTrue("Col width attribute is unset: " + col.toString(), col.isSetWidth());
94
			assertTrue("Col width attribute is unset: " + col.toString(), col.isSetWidth());
95
		}
95
		}
96
    }
96
    }
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/AbstractXWPFSDT.java (-6 / +6 lines)
Lines 37-51 Link Here
37
37
38
   public AbstractXWPFSDT(CTSdtPr pr, IBody part){
38
   public AbstractXWPFSDT(CTSdtPr pr, IBody part){
39
       
39
       
40
       List<CTString> aliases = pr.getAliasList();
40
       CTString[] aliases = pr.getAliasArray();
41
       if (aliases != null && aliases.size() > 0){
41
       if (aliases != null && aliases.length > 0){
42
          title = aliases.get(0).getVal();
42
          title = aliases[0].getVal();
43
       } else {
43
       } else {
44
          title = "";
44
          title = "";
45
       }
45
       }
46
       List<CTString> tags = pr.getTagList();
46
       CTString[] tags = pr.getTagArray();
47
       if (tags != null && tags.size() > 0){
47
       if (tags != null && tags.length > 0){
48
          tag = tags.get(0).getVal();
48
          tag = tags[0].getVal();
49
       } else {
49
       } else {
50
          tag = "";
50
          tag = "";
51
       }
51
       }
(-)src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFFreeformShape.java (-1 / +1 lines)
Lines 125-131 Link Here
125
        Rectangle2D bounds = getAnchor();
125
        Rectangle2D bounds = getAnchor();
126
126
127
        CTCustomGeometry2D geom = getSpPr().getCustGeom();
127
        CTCustomGeometry2D geom = getSpPr().getCustGeom();
128
        for(CTPath2D spPath : geom.getPathLst().getPathList()){
128
        for(CTPath2D spPath : geom.getPathLst().getPathArray()){
129
            double scaleW = bounds.getWidth() / Units.toPoints(spPath.getW());
129
            double scaleW = bounds.getWidth() / Units.toPoints(spPath.getW());
130
            double scaleH = bounds.getHeight() / Units.toPoints(spPath.getH());
130
            double scaleH = bounds.getHeight() / Units.toPoints(spPath.getH());
131
            for(XmlObject ch : spPath.selectPath("*")){
131
            for(XmlObject ch : spPath.selectPath("*")){
(-)src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java (-2 / +2 lines)
Lines 964-972 Link Here
964
       assertEquals(text, cell.getStringCellValue());
964
       assertEquals(text, cell.getStringCellValue());
965
       
965
       
966
       assertEquals(4, cell.getRichStringCellValue().numFormattingRuns());
966
       assertEquals(4, cell.getRichStringCellValue().numFormattingRuns());
967
       assertEquals("Use", cell.getRichStringCellValue().getCTRst().getRList().get(0).getT());
967
       assertEquals("Use", cell.getRichStringCellValue().getCTRst().getRArray(0).getT());
968
       
968
       
969
       String r3 = cell.getRichStringCellValue().getCTRst().getRList().get(2).getT();
969
       String r3 = cell.getRichStringCellValue().getCTRst().getRArray(2).getT();
970
       assertEquals("line.\n", r3.substring(r3.length()-6));
970
       assertEquals("line.\n", r3.substring(r3.length()-6));
971
971
972
       // Save and re-check
972
       // Save and re-check
(-)src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java (-13 / +13 lines)
Lines 308-329 Link Here
308
308
309
        str = new XSSFRichTextString("Incorrect\nLine-Breaking");
309
        str = new XSSFRichTextString("Incorrect\nLine-Breaking");
310
        str.applyFont(0, 8, font);
310
        str.applyFont(0, 8, font);
311
        t1 = str.getCTRst().getRList().get(0).xgetT();
311
        t1 = str.getCTRst().getRArray(0).xgetT();
312
        t2 = str.getCTRst().getRList().get(1).xgetT();
312
        t2 = str.getCTRst().getRArray(1).xgetT();
313
        assertEquals("<xml-fragment>Incorrec</xml-fragment>", t1.xmlText());
313
        assertEquals("<xml-fragment>Incorrec</xml-fragment>", t1.xmlText());
314
        assertEquals("<xml-fragment>t\nLine-Breaking</xml-fragment>", t2.xmlText());
314
        assertEquals("<xml-fragment>t\nLine-Breaking</xml-fragment>", t2.xmlText());
315
315
316
        str = new XSSFRichTextString("Incorrect\nLine-Breaking");
316
        str = new XSSFRichTextString("Incorrect\nLine-Breaking");
317
        str.applyFont(0, 9, font);
317
        str.applyFont(0, 9, font);
318
        t1 = str.getCTRst().getRList().get(0).xgetT();
318
        t1 = str.getCTRst().getRArray(0).xgetT();
319
        t2 = str.getCTRst().getRList().get(1).xgetT();
319
        t2 = str.getCTRst().getRArray(1).xgetT();
320
        assertEquals("<xml-fragment>Incorrect</xml-fragment>", t1.xmlText());
320
        assertEquals("<xml-fragment>Incorrect</xml-fragment>", t1.xmlText());
321
        assertEquals("<xml-fragment xml:space=\"preserve\">\nLine-Breaking</xml-fragment>", t2.xmlText());
321
        assertEquals("<xml-fragment xml:space=\"preserve\">\nLine-Breaking</xml-fragment>", t2.xmlText());
322
322
323
        str = new XSSFRichTextString("Incorrect\n Line-Breaking");
323
        str = new XSSFRichTextString("Incorrect\n Line-Breaking");
324
        str.applyFont(0, 9, font);
324
        str.applyFont(0, 9, font);
325
        t1 = str.getCTRst().getRList().get(0).xgetT();
325
        t1 = str.getCTRst().getRArray(0).xgetT();
326
        t2 = str.getCTRst().getRList().get(1).xgetT();
326
        t2 = str.getCTRst().getRArray(1).xgetT();
327
        assertEquals("<xml-fragment>Incorrect</xml-fragment>", t1.xmlText());
327
        assertEquals("<xml-fragment>Incorrect</xml-fragment>", t1.xmlText());
328
        assertEquals("<xml-fragment xml:space=\"preserve\">\n Line-Breaking</xml-fragment>", t2.xmlText());
328
        assertEquals("<xml-fragment xml:space=\"preserve\">\n Line-Breaking</xml-fragment>", t2.xmlText());
329
329
Lines 333-347 Link Here
333
        assertEquals("<xml-fragment xml:space=\"preserve\">Tab\tseparated\n</xml-fragment>", t1.xmlText());
333
        assertEquals("<xml-fragment xml:space=\"preserve\">Tab\tseparated\n</xml-fragment>", t1.xmlText());
334
334
335
        str.applyFont(0, 3, font);
335
        str.applyFont(0, 3, font);
336
        t1 = str.getCTRst().getRList().get(0).xgetT();
336
        t1 = str.getCTRst().getRArray(0).xgetT();
337
        t2 = str.getCTRst().getRList().get(1).xgetT();
337
        t2 = str.getCTRst().getRArray(1).xgetT();
338
        assertEquals("<xml-fragment>Tab</xml-fragment>", t1.xmlText());
338
        assertEquals("<xml-fragment>Tab</xml-fragment>", t1.xmlText());
339
        assertEquals("<xml-fragment xml:space=\"preserve\">\tseparated\n</xml-fragment>", t2.xmlText());
339
        assertEquals("<xml-fragment xml:space=\"preserve\">\tseparated\n</xml-fragment>", t2.xmlText());
340
340
341
        str = new XSSFRichTextString("Tab\tseparated\n");
341
        str = new XSSFRichTextString("Tab\tseparated\n");
342
        str.applyFont(0, 4, font);
342
        str.applyFont(0, 4, font);
343
        t1 = str.getCTRst().getRList().get(0).xgetT();
343
        t1 = str.getCTRst().getRArray(0).xgetT();
344
        t2 = str.getCTRst().getRList().get(1).xgetT();
344
        t2 = str.getCTRst().getRArray(1).xgetT();
345
        // YK: don't know why, but XmlBeans converts leading tab characters to spaces
345
        // YK: don't know why, but XmlBeans converts leading tab characters to spaces
346
        //assertEquals("<xml-fragment>Tab\t</xml-fragment>", t1.xmlText());
346
        //assertEquals("<xml-fragment>Tab\t</xml-fragment>", t1.xmlText());
347
        assertEquals("<xml-fragment xml:space=\"preserve\">separated\n</xml-fragment>", t2.xmlText());
347
        assertEquals("<xml-fragment xml:space=\"preserve\">separated\n</xml-fragment>", t2.xmlText());
Lines 349-357 Link Here
349
        str = new XSSFRichTextString("\n\n\nNew Line\n\n");
349
        str = new XSSFRichTextString("\n\n\nNew Line\n\n");
350
        str.applyFont(0, 3, font);
350
        str.applyFont(0, 3, font);
351
        str.applyFont(11, 13, font);
351
        str.applyFont(11, 13, font);
352
        t1 = str.getCTRst().getRList().get(0).xgetT();
352
        t1 = str.getCTRst().getRArray(0).xgetT();
353
        t2 = str.getCTRst().getRList().get(1).xgetT();
353
        t2 = str.getCTRst().getRArray(1).xgetT();
354
        t3 = str.getCTRst().getRList().get(2).xgetT();
354
        t3 = str.getCTRst().getRArray(2).xgetT();
355
        // YK: don't know why, but XmlBeans converts leading tab characters to spaces
355
        // YK: don't know why, but XmlBeans converts leading tab characters to spaces
356
        assertEquals("<xml-fragment xml:space=\"preserve\">\n\n\n</xml-fragment>", t1.xmlText());
356
        assertEquals("<xml-fragment xml:space=\"preserve\">\n\n\n</xml-fragment>", t1.xmlText());
357
        assertEquals("<xml-fragment>New Line</xml-fragment>", t2.xmlText());
357
        assertEquals("<xml-fragment>New Line</xml-fragment>", t2.xmlText());
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTable.java (-4 / +4 lines)
Lines 103-114 Link Here
103
        if (table.sizeOfTrArray() == 0)
103
        if (table.sizeOfTrArray() == 0)
104
            createEmptyTable(table);
104
            createEmptyTable(table);
105
105
106
        for (CTRow row : table.getTrList()) {
106
        for (CTRow row : table.getTrArray()) {
107
            StringBuffer rowText = new StringBuffer();
107
            StringBuilder rowText = new StringBuilder();
108
            XWPFTableRow tabRow = new XWPFTableRow(row, this);
108
            XWPFTableRow tabRow = new XWPFTableRow(row, this);
109
            tableRows.add(tabRow);
109
            tableRows.add(tabRow);
110
            for (CTTc cell : row.getTcList()) {
110
            for (CTTc cell : row.getTcArray()) {
111
                for (CTP ctp : cell.getPList()) {
111
                for (CTP ctp : cell.getPArray()) {
112
                    XWPFParagraph p = new XWPFParagraph(ctp, part);
112
                    XWPFParagraph p = new XWPFParagraph(ctp, part);
113
                    if (rowText.length() > 0) {
113
                    if (rowText.length() > 0) {
114
                        rowText.append('\t');
114
                        rowText.append('\t');
(-)src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java (-1 / +1 lines)
Lines 704-710 Link Here
704
        CTPivotCache pivotCache = wb.addPivotCache("0");
704
        CTPivotCache pivotCache = wb.addPivotCache("0");
705
        //Ensures that pivotCaches is initiated
705
        //Ensures that pivotCaches is initiated
706
        assertTrue(ctWb.isSetPivotCaches());
706
        assertTrue(ctWb.isSetPivotCaches());
707
        assertSame(pivotCache, ctWb.getPivotCaches().getPivotCacheList().get(0));
707
        assertSame(pivotCache, ctWb.getPivotCaches().getPivotCacheArray(0));
708
        assertEquals("0", pivotCache.getId());
708
        assertEquals("0", pivotCache.getId());
709
    }
709
    }
710
710
(-)src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotCacheDefinition.java (-1 / +1 lines)
Lines 127-133 Link Here
127
        for(int i=columnStart; i<=columnEnd; i++) {
127
        for(int i=columnStart; i<=columnEnd; i++) {
128
            CTCacheField cf = cFields.addNewCacheField();
128
            CTCacheField cf = cFields.addNewCacheField();
129
            if(i==columnEnd){
129
            if(i==columnEnd){
130
                cFields.setCount(cFields.getCacheFieldList().size());
130
                cFields.setCount(cFields.sizeOfCacheFieldArray());
131
            }
131
            }
132
            //General number format
132
            //General number format
133
            cf.setNumFmtId(0);
133
            cf.setNumFmtId(0);
(-)src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFont.java (-5 / +5 lines)
Lines 65-71 Link Here
65
65
66
66
67
		xssfFont.setBold(true);
67
		xssfFont.setBold(true);
68
		assertEquals(ctFont.getBList().size(),1);
68
		assertEquals(ctFont.sizeOfBArray(),1);
69
		assertEquals(true, ctFont.getBArray(0).getVal());
69
		assertEquals(true, ctFont.getBArray(0).getVal());
70
	}
70
	}
71
71
Lines 135-141 Link Here
135
		assertEquals(false, xssfFont.getItalic());
135
		assertEquals(false, xssfFont.getItalic());
136
136
137
		xssfFont.setItalic(true);
137
		xssfFont.setItalic(true);
138
		assertEquals(ctFont.getIList().size(),1);
138
		assertEquals(ctFont.sizeOfIArray(),1);
139
		assertEquals(true, ctFont.getIArray(0).getVal());
139
		assertEquals(true, ctFont.getIArray(0).getVal());
140
		assertEquals(true,ctFont.getIArray(0).getVal());
140
		assertEquals(true,ctFont.getIArray(0).getVal());
141
	}
141
	}
Lines 150-156 Link Here
150
		assertEquals(false, xssfFont.getStrikeout());
150
		assertEquals(false, xssfFont.getStrikeout());
151
151
152
		xssfFont.setStrikeout(true);
152
		xssfFont.setStrikeout(true);
153
		assertEquals(ctFont.getStrikeList().size(),1);
153
		assertEquals(ctFont.sizeOfStrikeArray(),1);
154
		assertEquals(true, ctFont.getStrikeArray(0).getVal());
154
		assertEquals(true, ctFont.getStrikeArray(0).getVal());
155
		assertEquals(true,ctFont.getStrikeArray(0).getVal());
155
		assertEquals(true,ctFont.getStrikeArray(0).getVal());
156
	}
156
	}
Lines 191-201 Link Here
191
		assertEquals(Font.U_SINGLE, xssfFont.getUnderline());
191
		assertEquals(Font.U_SINGLE, xssfFont.getUnderline());
192
192
193
		xssfFont.setUnderline(Font.U_DOUBLE);
193
		xssfFont.setUnderline(Font.U_DOUBLE);
194
		assertEquals(ctFont.getUList().size(),1);
194
		assertEquals(ctFont.sizeOfUArray(),1);
195
		assertEquals(STUnderlineValues.DOUBLE,ctFont.getUArray(0).getVal());
195
		assertEquals(STUnderlineValues.DOUBLE,ctFont.getUArray(0).getVal());
196
196
197
		xssfFont.setUnderline(FontUnderline.DOUBLE_ACCOUNTING);
197
		xssfFont.setUnderline(FontUnderline.DOUBLE_ACCOUNTING);
198
		assertEquals(ctFont.getUList().size(),1);
198
		assertEquals(ctFont.sizeOfUArray(),1);
199
		assertEquals(STUnderlineValues.DOUBLE_ACCOUNTING,ctFont.getUArray(0).getVal());
199
		assertEquals(STUnderlineValues.DOUBLE_ACCOUNTING,ctFont.getUArray(0).getVal());
200
	}
200
	}
201
201
(-)src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java (-16 / +10 lines)
Lines 240-246 Link Here
240
        }
240
        }
241
        CTPivotFields pivotFields = pivotTableDefinition.getPivotFields();
241
        CTPivotFields pivotFields = pivotTableDefinition.getPivotFields();
242
242
243
        List<CTPivotField> pivotFieldList = pivotTableDefinition.getPivotFields().getPivotFieldList();
244
        CTPivotField pivotField = CTPivotField.Factory.newInstance();
243
        CTPivotField pivotField = CTPivotField.Factory.newInstance();
245
        CTItems items = pivotField.addNewItems();
244
        CTItems items = pivotField.addNewItems();
246
245
Lines 249-259 Link Here
249
        for(int i = 0; i <= lastRowIndex; i++) {
248
        for(int i = 0; i <= lastRowIndex; i++) {
250
            items.addNewItem().setT(STItemType.DEFAULT);
249
            items.addNewItem().setT(STItemType.DEFAULT);
251
        }
250
        }
252
        items.setCount(items.getItemList().size());
251
        items.setCount(items.sizeOfItemArray());
253
        pivotFieldList.set(columnIndex, pivotField);
252
        pivotFields.setPivotFieldArray(columnIndex, pivotField);
254
253
255
        pivotFields.setPivotFieldArray(pivotFieldList.toArray(new CTPivotField[pivotFieldList.size()]));
256
257
        CTRowFields rowFields;
254
        CTRowFields rowFields;
258
        if(pivotTableDefinition.getRowFields() != null) {
255
        if(pivotTableDefinition.getRowFields() != null) {
259
            rowFields = pivotTableDefinition.getRowFields();
256
            rowFields = pivotTableDefinition.getRowFields();
Lines 262-268 Link Here
262
        }
259
        }
263
260
264
        rowFields.addNewField().setX(columnIndex);
261
        rowFields.addNewField().setX(columnIndex);
265
        rowFields.setCount(rowFields.getFieldList().size());
262
        rowFields.setCount(rowFields.sizeOfFieldArray());
266
    }
263
    }
267
    
264
    
268
    @Beta
265
    @Beta
Lines 307-313 Link Here
307
                colFields = pivotTableDefinition.addNewColFields();
304
                colFields = pivotTableDefinition.addNewColFields();
308
            }
305
            }
309
            colFields.addNewField().setX(-2);
306
            colFields.addNewField().setX(-2);
310
            colFields.setCount(colFields.getFieldList().size());
307
            colFields.setCount(colFields.sizeOfFieldArray());
311
        }
308
        }
312
    }
309
    }
313
310
Lines 338-344 Link Here
338
        cell.setCellType(Cell.CELL_TYPE_STRING);
335
        cell.setCellType(Cell.CELL_TYPE_STRING);
339
        dataField.setName(function.getName());
336
        dataField.setName(function.getName());
340
        dataField.setFld(columnIndex);
337
        dataField.setFld(columnIndex);
341
        dataFields.setCount(dataFields.getDataFieldList().size());
338
        dataFields.setCount(dataFields.sizeOfDataFieldArray());
342
    }
339
    }
343
340
344
    /**
341
    /**
Lines 354-366 Link Here
354
            throw new IndexOutOfBoundsException();
351
            throw new IndexOutOfBoundsException();
355
        }
352
        }
356
        CTPivotFields pivotFields = pivotTableDefinition.getPivotFields();
353
        CTPivotFields pivotFields = pivotTableDefinition.getPivotFields();
357
        List<CTPivotField> pivotFieldList = pivotFields.getPivotFieldList();
358
        CTPivotField pivotField = CTPivotField.Factory.newInstance();
354
        CTPivotField pivotField = CTPivotField.Factory.newInstance();
359
355
360
        pivotField.setDataField(isDataField);
356
        pivotField.setDataField(isDataField);
361
        pivotField.setShowAll(false);
357
        pivotField.setShowAll(false);
362
        pivotFieldList.set(columnIndex, pivotField);
358
        pivotFields.setPivotFieldArray(columnIndex, pivotField);
363
        pivotFields.setPivotFieldArray(pivotFieldList.toArray(new CTPivotField[pivotFieldList.size()]));
364
    }
359
    }
365
360
366
    /**
361
    /**
Lines 378-384 Link Here
378
        }
373
        }
379
        CTPivotFields pivotFields = pivotTableDefinition.getPivotFields();
374
        CTPivotFields pivotFields = pivotTableDefinition.getPivotFields();
380
375
381
        List<CTPivotField> pivotFieldList = pivotTableDefinition.getPivotFields().getPivotFieldList();
382
        CTPivotField pivotField = CTPivotField.Factory.newInstance();
376
        CTPivotField pivotField = CTPivotField.Factory.newInstance();
383
        CTItems items = pivotField.addNewItems();
377
        CTItems items = pivotField.addNewItems();
384
378
Lines 387-394 Link Here
387
        for(int i = 0; i <= lastRowIndex; i++) {
381
        for(int i = 0; i <= lastRowIndex; i++) {
388
            items.addNewItem().setT(STItemType.DEFAULT);
382
            items.addNewItem().setT(STItemType.DEFAULT);
389
        }
383
        }
390
        items.setCount(items.getItemList().size());
384
        items.setCount(items.sizeOfItemArray());
391
        pivotFieldList.set(columnIndex, pivotField);
385
        pivotFields.setPivotFieldArray(columnIndex, pivotField);
392
386
393
        CTPageFields pageFields;
387
        CTPageFields pageFields;
394
        if (pivotTableDefinition.getPageFields()!= null) {
388
        if (pivotTableDefinition.getPageFields()!= null) {
Lines 402-408 Link Here
402
        pageField.setHier(-1);
396
        pageField.setHier(-1);
403
        pageField.setFld(columnIndex);
397
        pageField.setFld(columnIndex);
404
398
405
        pageFields.setCount(pageFields.getPageFieldList().size());
399
        pageFields.setCount(pageFields.sizeOfPageFieldArray());
406
        pivotTableDefinition.getLocation().setColPageCount(pageFields.getCount());
400
        pivotTableDefinition.getLocation().setColPageCount(pageFields.getCount());
407
    }
401
    }
408
402
Lines 459-464 Link Here
459
            pivotField.setDataField(false);
453
            pivotField.setDataField(false);
460
            pivotField.setShowAll(false);
454
            pivotField.setShowAll(false);
461
        }
455
        }
462
        pivotFields.setCount(pivotFields.getPivotFieldList().size());
456
        pivotFields.setCount(pivotFields.sizeOfPivotFieldArray());
463
    }
457
    }
464
}
458
}
(-)src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java (-1 / +1 lines)
Lines 213-219 Link Here
213
        if(blip.isSetExtLst()) {
213
        if(blip.isSetExtLst()) {
214
214
215
            CTOfficeArtExtensionList extLst = blip.getExtLst();
215
            CTOfficeArtExtensionList extLst = blip.getExtLst();
216
            for(CTOfficeArtExtension ext : extLst.getExtList()){
216
            for(CTOfficeArtExtension ext : extLst.getExtArray()){
217
                String xpath = "declare namespace a14='http://schemas.microsoft.com/office/drawing/2010/main' $this//a14:imgProps/a14:imgLayer";
217
                String xpath = "declare namespace a14='http://schemas.microsoft.com/office/drawing/2010/main' $this//a14:imgProps/a14:imgLayer";
218
                XmlObject[] obj = ext.selectPath(xpath);
218
                XmlObject[] obj = ext.selectPath(xpath);
219
                if(obj != null && obj.length == 1){
219
                if(obj != null && obj.length == 1){
(-)src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowShifter.java (-18 / +14 lines)
Lines 39-49 Link Here
39
import org.apache.poi.xssf.usermodel.XSSFRow;
39
import org.apache.poi.xssf.usermodel.XSSFRow;
40
import org.apache.poi.xssf.usermodel.XSSFSheet;
40
import org.apache.poi.xssf.usermodel.XSSFSheet;
41
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
41
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
42
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell;
42
import org.openxmlformats.schemas.spreadsheetml.x2006.main.*;
43
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCellFormula;
44
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCfRule;
45
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTConditionalFormatting;
46
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCellFormulaType;
47
43
48
/**
44
/**
49
 * Helper for shifting rows up or down
45
 * Helper for shifting rows up or down
Lines 219-240 Link Here
219
215
220
216
221
        XSSFEvaluationWorkbook fpb = XSSFEvaluationWorkbook.create(wb);
217
        XSSFEvaluationWorkbook fpb = XSSFEvaluationWorkbook.create(wb);
222
        List<CTConditionalFormatting> cfList = sheet.getCTWorksheet().getConditionalFormattingList();
218
        CTWorksheet ctWorksheet = sheet.getCTWorksheet();
223
        for(int j = 0; j< cfList.size(); j++){
219
        int cfCount = ctWorksheet.sizeOfConditionalFormattingArray();
224
            CTConditionalFormatting cf = cfList.get(j);
220
        for(int j = 0; j< cfCount; j++){
221
            CTConditionalFormatting cf = ctWorksheet.getConditionalFormattingArray(j);
225
222
226
            ArrayList<CellRangeAddress> cellRanges = new ArrayList<CellRangeAddress>();
223
            ArrayList<CellRangeAddress> cellRanges = new ArrayList<CellRangeAddress>();
227
            for (Object stRef : cf.getSqref()) {
224
            for (Object stRef : cf.getSqref()) {
228
                String[] regions = stRef.toString().split(" ");
225
                String[] regions = stRef.toString().split(" ");
229
                for (int i = 0; i < regions.length; i++) {
226
                for (String region : regions) {
230
                    cellRanges.add(CellRangeAddress.valueOf(regions[i]));
227
                    cellRanges.add(CellRangeAddress.valueOf(region));
231
                }
228
                }
232
            }
229
            }
233
230
234
            boolean changed = false;
231
            boolean changed = false;
235
            List<CellRangeAddress> temp = new ArrayList<CellRangeAddress>();
232
            List<CellRangeAddress> temp = new ArrayList<CellRangeAddress>();
236
            for (int i = 0; i < cellRanges.size(); i++) {
233
            for (CellRangeAddress craOld : cellRanges) {
237
                CellRangeAddress craOld = cellRanges.get(i);
238
                CellRangeAddress craNew = shiftRange(shifter, craOld, sheetIndex);
234
                CellRangeAddress craNew = shiftRange(shifter, craOld, sheetIndex);
239
                if (craNew == null) {
235
                if (craNew == null) {
240
                    changed = true;
236
                    changed = true;
Lines 249-255 Link Here
249
            if (changed) {
245
            if (changed) {
250
                int nRanges = temp.size();
246
                int nRanges = temp.size();
251
                if (nRanges == 0) {
247
                if (nRanges == 0) {
252
                    cfList.remove(j);
248
                    ctWorksheet.removeConditionalFormatting(j);
253
                    continue;
249
                    continue;
254
                }
250
                }
255
                List<String> refs = new ArrayList<String>();
251
                List<String> refs = new ArrayList<String>();
Lines 257-270 Link Here
257
                cf.setSqref(refs);
253
                cf.setSqref(refs);
258
            }
254
            }
259
255
260
            for(CTCfRule cfRule : cf.getCfRuleList()){
256
            for(CTCfRule cfRule : cf.getCfRuleArray()){
261
                List<String> formulas = cfRule.getFormulaList();
257
                int formulaCount = cfRule.sizeOfFormulaArray();
262
                for (int i = 0; i < formulas.size(); i++) {
258
                for (int i = 0; i < formulaCount; i++) {
263
                    String formula = formulas.get(i);
259
                    String formula = cfRule.getFormulaArray(i);
264
                    Ptg[] ptgs = FormulaParser.parse(formula, fpb, FormulaType.CELL, sheetIndex);
260
                    Ptg[] ptgs = FormulaParser.parse(formula, fpb, FormulaType.CELL, sheetIndex);
265
                    if (shifter.adjustFormula(ptgs, sheetIndex)) {
261
                    if (shifter.adjustFormula(ptgs, sheetIndex)) {
266
                        String shiftedFmla = FormulaRenderer.toFormulaString(fpb, ptgs);
262
                        String shiftedFmla = FormulaRenderer.toFormulaString(fpb, ptgs);
267
                        formulas.set(i, shiftedFmla);
263
                        cfRule.setFormulaArray(i, shiftedFmla);
268
                    }
264
                    }
269
                }
265
                }
270
            }
266
            }
(-)src/ooxml/testcases/org/apache/poi/xssf/model/TestMapInfo.java (-1 / +1 lines)
Lines 50-56 Link Here
50
50
51
                assertNotNull(ctMapInfo);
51
                assertNotNull(ctMapInfo);
52
52
53
                assertEquals(1, ctMapInfo.getSchemaList().size());
53
                assertEquals(1, ctMapInfo.sizeOfSchemaArray());
54
54
55
                for (XSSFMap map : mapInfo.getAllXSSFMaps()) {
55
                for (XSSFMap map : mapInfo.getAllXSSFMaps()) {
56
                    Node xmlSchema = map.getSchema();
56
                    Node xmlSchema = map.getSchema();
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java (-14 / +12 lines)
Lines 20-25 Link Here
20
import java.io.InputStream;
20
import java.io.InputStream;
21
import java.math.BigInteger;
21
import java.math.BigInteger;
22
import java.util.ArrayList;
22
import java.util.ArrayList;
23
import java.util.Arrays;
23
import java.util.List;
24
import java.util.List;
24
25
25
import javax.xml.namespace.QName;
26
import javax.xml.namespace.QName;
Lines 103-118 Link Here
103
         * reserve already occupied drawing ids, so reserving new ids later will
104
         * reserve already occupied drawing ids, so reserving new ids later will
104
         * not corrupt the document
105
         * not corrupt the document
105
         */
106
         */
106
        List<CTDrawing> drawingList = r.getDrawingList();
107
        for (CTDrawing ctDrawing : r.getDrawingArray()) {
107
        for (CTDrawing ctDrawing : drawingList) {
108
            for (CTAnchor anchor : ctDrawing.getAnchorArray()) {
108
            List<CTAnchor> anchorList = ctDrawing.getAnchorList();
109
            for (CTAnchor anchor : anchorList) {
110
                if (anchor.getDocPr() != null) {
109
                if (anchor.getDocPr() != null) {
111
                    getDocument().getDrawingIdManager().reserve(anchor.getDocPr().getId());
110
                    getDocument().getDrawingIdManager().reserve(anchor.getDocPr().getId());
112
                }
111
                }
113
            }
112
            }
114
            List<CTInline> inlineList = ctDrawing.getInlineList();
113
            for (CTInline inline : ctDrawing.getInlineArray()) {
115
            for (CTInline inline : inlineList) {
116
                if (inline.getDocPr() != null) {
114
                if (inline.getDocPr() != null) {
117
                    getDocument().getDrawingIdManager().reserve(inline.getDocPr().getId());
115
                    getDocument().getDrawingIdManager().reserve(inline.getDocPr().getId());
118
                }
116
                }
Lines 120-136 Link Here
120
        }
118
        }
121
119
122
        // Look for any text in any of our pictures or drawings
120
        // Look for any text in any of our pictures or drawings
123
        StringBuffer text = new StringBuffer();
121
        StringBuilder text = new StringBuilder();
124
        List<XmlObject> pictTextObjs = new ArrayList<XmlObject>();
122
        List<XmlObject> pictTextObjs = new ArrayList<XmlObject>();
125
        pictTextObjs.addAll(r.getPictList());
123
        pictTextObjs.addAll(Arrays.asList(r.getPictArray()));
126
        pictTextObjs.addAll(drawingList);
124
        pictTextObjs.addAll(Arrays.asList(r.getDrawingArray()));
127
        for(XmlObject o : pictTextObjs) {
125
        for(XmlObject o : pictTextObjs) {
128
            XmlObject[] t = o.selectPath("declare namespace w='http://schemas.openxmlformats.org/wordprocessingml/2006/main' .//w:t");
126
            XmlObject[] ts = o.selectPath("declare namespace w='http://schemas.openxmlformats.org/wordprocessingml/2006/main' .//w:t");
129
            for (int m = 0; m < t.length; m++) {
127
            for (XmlObject t : ts) {
130
                NodeList kids = t[m].getDomNode().getChildNodes();
128
                NodeList kids = t.getDomNode().getChildNodes();
131
                for (int n = 0; n < kids.getLength(); n++) {
129
                for (int n = 0; n < kids.getLength(); n++) {
132
                    if (kids.item(n) instanceof Text) {
130
                    if (kids.item(n) instanceof Text) {
133
                        if(text.length() > 0)
131
                        if (text.length() > 0)
134
                            text.append("\n");
132
                            text.append("\n");
135
                        text.append(kids.item(n).getNodeValue());
133
                        text.append(kids.item(n).getNodeValue());
136
                    }
134
                    }
Lines 317-323 Link Here
317
     * @param value the literal text which shall be displayed in the document
315
     * @param value the literal text which shall be displayed in the document
318
     */
316
     */
319
    public void setText(String value) {
317
    public void setText(String value) {
320
        setText(value,run.getTList().size());
318
        setText(value,run.sizeOfTArray());
321
    }
319
    }
322
320
323
    /**
321
    /**
(-)src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java (-2 / +1 lines)
Lines 162-169 Link Here
162
   private void init() {
162
   private void init() {
163
       if (commentsTable != null) {
163
       if (commentsTable != null) {
164
           commentCellRefs = new LinkedList<CellReference>();
164
           commentCellRefs = new LinkedList<CellReference>();
165
           List<CTComment> commentList = commentsTable.getCTComments().getCommentList().getCommentList();
165
           for (CTComment comment : commentsTable.getCTComments().getCommentList().getCommentArray()) {
166
           for (CTComment comment : commentList) {
167
               commentCellRefs.add(new CellReference(comment.getRef()));
166
               commentCellRefs.add(new CellReference(comment.getRef()));
168
           }
167
           }
169
       }   
168
       }   
(-)src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java (-1 / +1 lines)
Lines 1413-1419 Link Here
1413
    private void reprocessNamedRanges() {
1413
    private void reprocessNamedRanges() {
1414
        namedRanges = new ArrayList<XSSFName>();
1414
        namedRanges = new ArrayList<XSSFName>();
1415
        if(workbook.isSetDefinedNames()) {
1415
        if(workbook.isSetDefinedNames()) {
1416
            for(CTDefinedName ctName : workbook.getDefinedNames().getDefinedNameList()) {
1416
            for(CTDefinedName ctName : workbook.getDefinedNames().getDefinedNameArray()) {
1417
                namedRanges.add(new XSSFName(ctName, this));
1417
                namedRanges.add(new XSSFName(ctName, this));
1418
            }
1418
            }
1419
        }
1419
        }
(-)src/ooxml/java/org/apache/poi/xslf/usermodel/DrawingTable.java (-3 / +3 lines)
Lines 30-40 Link Here
30
    }
30
    }
31
31
32
    public DrawingTableRow[] getRows() {
32
    public DrawingTableRow[] getRows() {
33
        List<CTTableRow> ctTableRows = table.getTrList();
33
        CTTableRow[] ctTableRows = table.getTrArray();
34
        DrawingTableRow[] o = new DrawingTableRow[ctTableRows.size()];
34
        DrawingTableRow[] o = new DrawingTableRow[ctTableRows.length];
35
35
36
        for (int i=0; i<o.length; i++) {
36
        for (int i=0; i<o.length; i++) {
37
            o[i] = new DrawingTableRow(ctTableRows.get(i));
37
            o[i] = new DrawingTableRow(ctTableRows[i]);
38
        }
38
        }
39
39
40
        return o;
40
        return o;
(-)src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java (-2 / +2 lines)
Lines 62-68 Link Here
62
        assertEquals(1, ps.size());
62
        assertEquals(1, ps.size());
63
        XWPFParagraph p = ps.get(0);
63
        XWPFParagraph p = ps.get(0);
64
64
65
        assertEquals(5, p.getCTP().getRList().size());
65
        assertEquals(5, p.getCTP().sizeOfRArray());
66
        assertEquals("First header column!\tMid header\tRight header!", p
66
        assertEquals("First header column!\tMid header\tRight header!", p
67
                .getText());
67
                .getText());
68
    }
68
    }
Lines 242-248 Link Here
242
        assertEquals(0, paragraph.getCTP().sizeOfBookmarkEndArray());
242
        assertEquals(0, paragraph.getCTP().sizeOfBookmarkEndArray());
243
        CTBookmark ctBookmark = paragraph.getCTP().getBookmarkStartArray(0);
243
        CTBookmark ctBookmark = paragraph.getCTP().getBookmarkStartArray(0);
244
        assertEquals("poi", ctBookmark.getName());
244
        assertEquals("poi", ctBookmark.getName());
245
        for(CTBookmark bookmark : paragraph.getCTP().getBookmarkStartList()) {
245
        for(CTBookmark bookmark : paragraph.getCTP().getBookmarkStartArray()) {
246
           assertEquals("poi", bookmark.getName());
246
           assertEquals("poi", bookmark.getName());
247
        }
247
        }
248
    }
248
    }
(-)src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTable.java (-2 / +3 lines)
Lines 71-78 Link Here
71
        }
71
        }
72
72
73
        _table = (CTTable) rs[0];
73
        _table = (CTTable) rs[0];
74
        _rows = new ArrayList<XSLFTableRow>(_table.sizeOfTrArray());
74
        CTTableRow[] trArray = _table.getTrArray();
75
        for(CTTableRow row : _table.getTrList()) _rows.add(new XSLFTableRow(row, this));
75
        _rows = new ArrayList<XSLFTableRow>(trArray.length);
76
        for(CTTableRow row : trArray) _rows.add(new XSLFTableRow(row, this));
76
    }
77
    }
77
78
78
    @Internal
79
    @Internal
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnote.java (-3 / +3 lines)
Lines 125-136 Link Here
125
     */
125
     */
126
    public void insertTable(int pos, XWPFTable table) {
126
    public void insertTable(int pos, XWPFTable table) {
127
        bodyElements.add(pos, table);
127
        bodyElements.add(pos, table);
128
        int i;
128
        int i = 0;
129
        for (i = 0; i < ctFtnEdn.getTblList().size(); i++) {
129
        for (CTTbl tbl : ctFtnEdn.getTblArray()) {
130
            CTTbl tbl = ctFtnEdn.getTblArray(i);
131
            if(tbl == table.getCTTbl()){
130
            if(tbl == table.getCTTbl()){
132
                break;
131
                break;
133
            }
132
            }
133
            i++;
134
        }
134
        }
135
        tables.add(i, table);
135
        tables.add(i, table);
136
136
(-)src/ooxml/testcases/org/apache/poi/xssf/usermodel/helpers/TestColumnHelper.java (-1 / +1 lines)
Lines 186-192 Link Here
186
        helper.addCleanColIntoCols(cols1, col9);
186
        helper.addCleanColIntoCols(cols1, col9);
187
187
188
        // TODO - assert something interesting
188
        // TODO - assert something interesting
189
        assertEquals(12, cols1.getColList().size());
189
        assertEquals(12, cols1.sizeOfColArray());
190
        assertEquals(1, cols1.getColArray(0).getMin());
190
        assertEquals(1, cols1.getColArray(0).getMin());
191
        assertEquals(16750, cols1.getColArray(11).getMax());
191
        assertEquals(16750, cols1.getColArray(11).getMax());
192
    }
192
    }
(-)src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXMLSlideShow.java (-6 / +2 lines)
Lines 68-76 Link Here
68
      assertEquals(2, xml.getSlides().length);
68
      assertEquals(2, xml.getSlides().length);
69
69
70
      // Check they're as expected
70
      // Check they're as expected
71
      CTSlideIdListEntry[] slides = new CTSlideIdListEntry[
71
      CTSlideIdListEntry[] slides = xml.getCTPresentation().getSldIdLst().getSldIdArray();
72
         xml.getCTPresentation().getSldIdLst().getSldIdList().size()];
73
      xml.getCTPresentation().getSldIdLst().getSldIdList().toArray(slides);
74
72
75
      assertEquals(256, slides[0].getId());
73
      assertEquals(256, slides[0].getId());
76
      assertEquals(257, slides[1].getId());
74
      assertEquals(257, slides[1].getId());
Lines 86-94 Link Here
86
      assertNotNull(xml.getSlides()[1].getNotes());
84
      assertNotNull(xml.getSlides()[1].getNotes());
87
85
88
      // Next up look for the slide master
86
      // Next up look for the slide master
89
      CTSlideMasterIdListEntry[] masters = new CTSlideMasterIdListEntry[
87
      CTSlideMasterIdListEntry[] masters = xml.getCTPresentation().getSldMasterIdLst().getSldMasterIdArray();
90
         xml.getCTPresentation().getSldMasterIdLst().getSldMasterIdList().size()];
91
      xml.getCTPresentation().getSldMasterIdLst().getSldMasterIdList().toArray(masters);
92
88
93
      assertEquals(2147483648l, masters[0].getId());
89
      assertEquals(2147483648l, masters[0].getId());
94
      assertEquals("rId1", masters[0].getId2());
90
      assertEquals("rId1", masters[0].getId2());
(-)src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableStyles.java (-2 / +3 lines)
Lines 43-50 Link Here
43
        super(part, rel);
43
        super(part, rel);
44
44
45
        _tblStyleLst = CTTableStyleList.Factory.parse(getPackagePart().getInputStream());
45
        _tblStyleLst = CTTableStyleList.Factory.parse(getPackagePart().getInputStream());
46
        _styles = new ArrayList<XSLFTableStyle>(_tblStyleLst.sizeOfTblStyleArray());
46
        CTTableStyle[] tblStyleArray = _tblStyleLst.getTblStyleArray();
47
        for(CTTableStyle c : _tblStyleLst.getTblStyleList()){
47
        _styles = new ArrayList<XSLFTableStyle>(tblStyleArray.length);
48
        for(CTTableStyle c : tblStyleArray){
48
            _styles.add(new XSLFTableStyle(c));
49
            _styles.add(new XSLFTableStyle(c));
49
        }
50
        }
50
    }
51
    }
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFLatentStyles.java (-1 / +1 lines)
Lines 39-45 Link Here
39
	 * checks wheter specific LatentStyleID is a latentStyle
39
	 * checks wheter specific LatentStyleID is a latentStyle
40
	*/
40
	*/
41
	protected boolean isLatentStyle(String latentStyleID){	
41
	protected boolean isLatentStyle(String latentStyleID){	
42
		for ( CTLsdException lsd: latentStyles.getLsdExceptionList()) {
42
		for ( CTLsdException lsd: latentStyles.getLsdExceptionArray()) {
43
			if(lsd.getName().equals(latentStyleID));
43
			if(lsd.getName().equals(latentStyleID));
44
				return true;
44
				return true;
45
		}
45
		}
(-)src/ooxml/testcases/org/apache/poi/xslf/TestXSLFSlideShow.java (-11 / +5 lines)
Lines 66-82 Link Here
66
		
66
		
67
		// Should have 1 master
67
		// Should have 1 master
68
		assertEquals(1, xml.getSlideMasterReferences().sizeOfSldMasterIdArray());
68
		assertEquals(1, xml.getSlideMasterReferences().sizeOfSldMasterIdArray());
69
		assertEquals(1, xml.getSlideMasterReferences().getSldMasterIdList().size());
69
70
		
71
		// Should have three sheets
70
		// Should have three sheets
72
		assertEquals(2, xml.getSlideReferences().sizeOfSldIdArray());
71
		assertEquals(2, xml.getSlideReferences().sizeOfSldIdArray());
73
		assertEquals(2, xml.getSlideReferences().getSldIdList().size());
72
74
		
75
		// Check they're as expected
73
		// Check they're as expected
76
		CTSlideIdListEntry[] slides = new CTSlideIdListEntry[
74
		CTSlideIdListEntry[] slides = xml.getSlideReferences().getSldIdArray();
77
		    xml.getSlideReferences().getSldIdList().size()];
78
		xml.getSlideReferences().getSldIdList().toArray(slides);
79
		
75
80
		assertEquals(256, slides[0].getId());
76
		assertEquals(256, slides[0].getId());
81
		assertEquals(257, slides[1].getId());
77
		assertEquals(257, slides[1].getId());
82
		assertEquals("rId2", slides[0].getId2());
78
		assertEquals("rId2", slides[0].getId2());
Lines 91-99 Link Here
91
		assertNotNull(xml.getNotes(slides[1]));
87
		assertNotNull(xml.getNotes(slides[1]));
92
		
88
		
93
		// And again for the master
89
		// And again for the master
94
		CTSlideMasterIdListEntry[] masters = new CTSlideMasterIdListEntry[
90
		CTSlideMasterIdListEntry[] masters = xml.getSlideMasterReferences().getSldMasterIdArray();
95
			xml.getSlideMasterReferences().getSldMasterIdList().size()];
96
		xml.getSlideMasterReferences().getSldMasterIdList().toArray(masters);
97
		
91
		
98
		assertEquals(2147483648l, masters[0].getId());
92
		assertEquals(2147483648l, masters[0].getId());
99
		assertEquals("rId1", masters[0].getId2());
93
		assertEquals("rId1", masters[0].getId2());
(-)src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java (-46 / +44 lines)
Lines 344-379 Link Here
344
        sheet.groupColumn(10, 11);
344
        sheet.groupColumn(10, 11);
345
        CTCols cols = sheet.getCTWorksheet().getColsArray(0);
345
        CTCols cols = sheet.getCTWorksheet().getColsArray(0);
346
        assertEquals(2, cols.sizeOfColArray());
346
        assertEquals(2, cols.sizeOfColArray());
347
        List<CTCol> colArray = cols.getColList();
347
        CTCol[] colArray = cols.getColArray();
348
        assertNotNull(colArray);
348
        assertNotNull(colArray);
349
        assertEquals(2 + 1, colArray.get(0).getMin()); // 1 based
349
        assertEquals(2 + 1, colArray[0].getMin()); // 1 based
350
        assertEquals(7 + 1, colArray.get(0).getMax()); // 1 based
350
        assertEquals(7 + 1, colArray[0].getMax()); // 1 based
351
        assertEquals(1, colArray.get(0).getOutlineLevel());
351
        assertEquals(1, colArray[0].getOutlineLevel());
352
352
353
        //two level
353
        //two level
354
        sheet.groupColumn(1, 2);
354
        sheet.groupColumn(1, 2);
355
        cols = sheet.getCTWorksheet().getColsArray(0);
355
        cols = sheet.getCTWorksheet().getColsArray(0);
356
        assertEquals(4, cols.sizeOfColArray());
356
        assertEquals(4, cols.sizeOfColArray());
357
        colArray = cols.getColList();
357
        colArray = cols.getColArray();
358
        assertEquals(2, colArray.get(1).getOutlineLevel());
358
        assertEquals(2, colArray[1].getOutlineLevel());
359
359
360
        //three level
360
        //three level
361
        sheet.groupColumn(6, 8);
361
        sheet.groupColumn(6, 8);
362
        sheet.groupColumn(2, 3);
362
        sheet.groupColumn(2, 3);
363
        cols = sheet.getCTWorksheet().getColsArray(0);
363
        cols = sheet.getCTWorksheet().getColsArray(0);
364
        assertEquals(7, cols.sizeOfColArray());
364
        assertEquals(7, cols.sizeOfColArray());
365
        colArray = cols.getColList();
365
        colArray = cols.getColArray();
366
        assertEquals(3, colArray.get(1).getOutlineLevel());
366
        assertEquals(3, colArray[1].getOutlineLevel());
367
        assertEquals(3, sheet.getCTWorksheet().getSheetFormatPr().getOutlineLevelCol());
367
        assertEquals(3, sheet.getCTWorksheet().getSheetFormatPr().getOutlineLevelCol());
368
368
369
        sheet.ungroupColumn(8, 10);
369
        sheet.ungroupColumn(8, 10);
370
        colArray = cols.getColList();
370
        colArray = cols.getColArray();
371
        //assertEquals(3, colArray[1].getOutlineLevel());
371
        //assertEquals(3, colArray[1].getOutlineLevel());
372
372
373
        sheet.ungroupColumn(4, 6);
373
        sheet.ungroupColumn(4, 6);
374
        sheet.ungroupColumn(2, 2);
374
        sheet.ungroupColumn(2, 2);
375
        colArray = cols.getColList();
375
        colArray = cols.getColArray();
376
        assertEquals(4, colArray.size());
376
        assertEquals(4, colArray.length);
377
        assertEquals(2, sheet.getCTWorksheet().getSheetFormatPr().getOutlineLevelCol());
377
        assertEquals(2, sheet.getCTWorksheet().getSheetFormatPr().getOutlineLevelCol());
378
    }
378
    }
379
379
Lines 758-766 Link Here
758
        XSSFSheet xs = sheet;
758
        XSSFSheet xs = sheet;
759
        CTWorksheet cts = xs.getCTWorksheet();
759
        CTWorksheet cts = xs.getCTWorksheet();
760
760
761
        List<CTCols> cols_s = cts.getColsList();
761
        assertEquals(1, cts.sizeOfColsArray());
762
        assertEquals(1, cols_s.size());
762
        CTCols cols = cts.getColsArray(0);
763
        CTCols cols = cols_s.get(0);
764
        assertEquals(1, cols.sizeOfColArray());
763
        assertEquals(1, cols.sizeOfColArray());
765
        CTCol col = cols.getColArray(0);
764
        CTCol col = cols.getColArray(0);
766
765
Lines 773-781 Link Here
773
        // Now set another
772
        // Now set another
774
        sheet.setColumnWidth(3, 33 * 256);
773
        sheet.setColumnWidth(3, 33 * 256);
775
774
776
        cols_s = cts.getColsList();
775
        assertEquals(1, cts.sizeOfColsArray());
777
        assertEquals(1, cols_s.size());
776
        cols = cts.getColsArray(0);
778
        cols = cols_s.get(0);
779
        assertEquals(2, cols.sizeOfColArray());
777
        assertEquals(2, cols.sizeOfColArray());
780
778
781
        col = cols.getColArray(0);
779
        col = cols.getColArray(0);
Lines 983-1009 Link Here
983
        row3.createCell(5);
981
        row3.createCell(5);
984
982
985
983
986
        List<CTRow> xrow = sheetData.getRowList();
984
        CTRow[] xrow = sheetData.getRowArray();
987
        assertEquals(3, xrow.size());
985
        assertEquals(3, xrow.length);
988
986
989
        //rows are sorted: {0, 1, 2}
987
        //rows are sorted: {0, 1, 2}
990
        assertEquals(4, xrow.get(0).sizeOfCArray());
988
        assertEquals(4, xrow[0].sizeOfCArray());
991
        assertEquals(1, xrow.get(0).getR());
989
        assertEquals(1, xrow[0].getR());
992
        assertTrue(xrow.get(0).equals(row3.getCTRow()));
990
        assertTrue(xrow[0].equals(row3.getCTRow()));
993
991
994
        assertEquals(3, xrow.get(1).sizeOfCArray());
992
        assertEquals(3, xrow[1].sizeOfCArray());
995
        assertEquals(2, xrow.get(1).getR());
993
        assertEquals(2, xrow[1].getR());
996
        assertTrue(xrow.get(1).equals(row2.getCTRow()));
994
        assertTrue(xrow[1].equals(row2.getCTRow()));
997
995
998
        assertEquals(2, xrow.get(2).sizeOfCArray());
996
        assertEquals(2, xrow[2].sizeOfCArray());
999
        assertEquals(3, xrow.get(2).getR());
997
        assertEquals(3, xrow[2].getR());
1000
        assertTrue(xrow.get(2).equals(row1.getCTRow()));
998
        assertTrue(xrow[2].equals(row1.getCTRow()));
1001
999
1002
        List<CTCell> xcell = xrow.get(0).getCList();
1000
        CTCell[] xcell = xrow[0].getCArray();
1003
        assertEquals("D1", xcell.get(0).getR());
1001
        assertEquals("D1", xcell[0].getR());
1004
        assertEquals("A1", xcell.get(1).getR());
1002
        assertEquals("A1", xcell[1].getR());
1005
        assertEquals("C1", xcell.get(2).getR());
1003
        assertEquals("C1", xcell[2].getR());
1006
        assertEquals("F1", xcell.get(3).getR());
1004
        assertEquals("F1", xcell[3].getR());
1007
1005
1008
        //re-creating a row does NOT add extra data to the parent
1006
        //re-creating a row does NOT add extra data to the parent
1009
        row2 = sheet.createRow(1);
1007
        row2 = sheet.createRow(1);
Lines 1015-1039 Link Here
1015
        workbook = XSSFTestDataSamples.writeOutAndReadBack(workbook);
1013
        workbook = XSSFTestDataSamples.writeOutAndReadBack(workbook);
1016
        sheet = workbook.getSheetAt(0);
1014
        sheet = workbook.getSheetAt(0);
1017
        wsh = sheet.getCTWorksheet();
1015
        wsh = sheet.getCTWorksheet();
1018
        xrow = sheetData.getRowList();
1016
        xrow = sheetData.getRowArray();
1019
        assertEquals(3, xrow.size());
1017
        assertEquals(3, xrow.length);
1020
1018
1021
        //rows are sorted: {0, 1, 2}
1019
        //rows are sorted: {0, 1, 2}
1022
        assertEquals(4, xrow.get(0).sizeOfCArray());
1020
        assertEquals(4, xrow[0].sizeOfCArray());
1023
        assertEquals(1, xrow.get(0).getR());
1021
        assertEquals(1, xrow[0].getR());
1024
        //cells are now sorted
1022
        //cells are now sorted
1025
        xcell = xrow.get(0).getCList();
1023
        xcell = xrow[0].getCArray();
1026
        assertEquals("A1", xcell.get(0).getR());
1024
        assertEquals("A1", xcell[0].getR());
1027
        assertEquals("C1", xcell.get(1).getR());
1025
        assertEquals("C1", xcell[1].getR());
1028
        assertEquals("D1", xcell.get(2).getR());
1026
        assertEquals("D1", xcell[2].getR());
1029
        assertEquals("F1", xcell.get(3).getR());
1027
        assertEquals("F1", xcell[3].getR());
1030
1028
1031
1029
1032
        assertEquals(0, xrow.get(1).sizeOfCArray());
1030
        assertEquals(0, xrow[1].sizeOfCArray());
1033
        assertEquals(2, xrow.get(1).getR());
1031
        assertEquals(2, xrow[1].getR());
1034
1032
1035
        assertEquals(2, xrow.get(2).sizeOfCArray());
1033
        assertEquals(2, xrow[2].sizeOfCArray());
1036
        assertEquals(3, xrow.get(2).getR());
1034
        assertEquals(3, xrow[2].getR());
1037
1035
1038
    }
1036
    }
1039
1037
(-)src/ooxml/testcases/org/apache/poi/xssf/util/TestCTColComparator.java (-7 / +5 lines)
Lines 27-65 Link Here
27
public final class TestCTColComparator extends TestCase {
27
public final class TestCTColComparator extends TestCase {
28
28
29
    public void testCompare() {
29
    public void testCompare() {
30
        CTColComparator comparator = new CTColComparator();
31
        CTCol o1 = CTCol.Factory.newInstance();
30
        CTCol o1 = CTCol.Factory.newInstance();
32
        o1.setMin(1);
31
        o1.setMin(1);
33
        o1.setMax(10);
32
        o1.setMax(10);
34
        CTCol o2 = CTCol.Factory.newInstance();
33
        CTCol o2 = CTCol.Factory.newInstance();
35
        o2.setMin(11);
34
        o2.setMin(11);
36
        o2.setMax(12);
35
        o2.setMax(12);
37
        assertEquals(-1, comparator.compare(o1, o2));
36
        assertEquals(-1, CTColComparator.BY_MIN_MAX.compare(o1, o2));
38
        CTCol o3 = CTCol.Factory.newInstance();
37
        CTCol o3 = CTCol.Factory.newInstance();
39
        o3.setMin(5);
38
        o3.setMin(5);
40
        o3.setMax(8);
39
        o3.setMax(8);
41
        CTCol o4 = CTCol.Factory.newInstance();
40
        CTCol o4 = CTCol.Factory.newInstance();
42
        o4.setMin(5);
41
        o4.setMin(5);
43
        o4.setMax(80);
42
        o4.setMax(80);
44
        assertEquals(-1, comparator.compare(o3, o4));
43
        assertEquals(-1, CTColComparator.BY_MIN_MAX.compare(o3, o4));
45
    }
44
    }
46
45
47
    public void testArraysSort() {
46
    public void testArraysSort() {
48
        CTColComparator comparator = new CTColComparator();
49
        CTCol o1 = CTCol.Factory.newInstance();
47
        CTCol o1 = CTCol.Factory.newInstance();
50
        o1.setMin(1);
48
        o1.setMin(1);
51
        o1.setMax(10);
49
        o1.setMax(10);
52
        CTCol o2 = CTCol.Factory.newInstance();
50
        CTCol o2 = CTCol.Factory.newInstance();
53
        o2.setMin(11);
51
        o2.setMin(11);
54
        o2.setMax(12);
52
        o2.setMax(12);
55
        assertEquals(-1, comparator.compare(o1, o2));
53
        assertEquals(-1, CTColComparator.BY_MIN_MAX.compare(o1, o2));
56
        CTCol o3 = CTCol.Factory.newInstance();
54
        CTCol o3 = CTCol.Factory.newInstance();
57
        o3.setMin(5);
55
        o3.setMin(5);
58
        o3.setMax(80);
56
        o3.setMax(80);
59
        CTCol o4 = CTCol.Factory.newInstance();
57
        CTCol o4 = CTCol.Factory.newInstance();
60
        o4.setMin(5);
58
        o4.setMin(5);
61
        o4.setMax(8);
59
        o4.setMax(8);
62
        assertEquals(1, comparator.compare(o3, o4));
60
        assertEquals(1, CTColComparator.BY_MIN_MAX.compare(o3, o4));
63
        CTCol[] cols = new CTCol[4];
61
        CTCol[] cols = new CTCol[4];
64
        cols[0] = o1;
62
        cols[0] = o1;
65
        cols[1] = o2;
63
        cols[1] = o2;
Lines 67-73 Link Here
67
        cols[3] = o4;
65
        cols[3] = o4;
68
        assertEquals(80, cols[2].getMax());
66
        assertEquals(80, cols[2].getMax());
69
        assertEquals(8, cols[3].getMax());
67
        assertEquals(8, cols[3].getMax());
70
        Arrays.sort(cols, comparator);
68
        Arrays.sort(cols, CTColComparator.BY_MIN_MAX);
71
        assertEquals(12, cols[3].getMax());
69
        assertEquals(12, cols[3].getMax());
72
        assertEquals(8, cols[1].getMax());
70
        assertEquals(8, cols[1].getMax());
73
        assertEquals(80, cols[2].getMax());
71
        assertEquals(80, cols[2].getMax());
(-)src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFChart.java (-2 / +2 lines)
Lines 307-319 Link Here
307
	}
307
	}
308
308
309
	private void parseCategoryAxis() {
309
	private void parseCategoryAxis() {
310
		for (CTCatAx catAx : chart.getPlotArea().getCatAxList()) {
310
		for (CTCatAx catAx : chart.getPlotArea().getCatAxArray()) {
311
			axis.add(new XSSFCategoryAxis(this, catAx));
311
			axis.add(new XSSFCategoryAxis(this, catAx));
312
		}
312
		}
313
	}
313
	}
314
314
315
	private void parseValueAxis() {
315
	private void parseValueAxis() {
316
		for (CTValAx valAx : chart.getPlotArea().getValAxList()) {
316
		for (CTValAx valAx : chart.getPlotArea().getValAxArray()) {
317
			axis.add(new XSSFValueAxis(this, valAx));
317
			axis.add(new XSSFValueAxis(this, valAx));
318
		}
318
		}
319
	}
319
	}
(-)src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheetConditionalFormatting.java (-2 / +2 lines)
Lines 144-150 Link Here
144
144
145
145
146
        int priority = 1;
146
        int priority = 1;
147
        for(CTConditionalFormatting c : _sheet.getCTWorksheet().getConditionalFormattingList()){
147
        for(CTConditionalFormatting c : _sheet.getCTWorksheet().getConditionalFormattingArray()){
148
            priority += c.sizeOfCfRuleArray();
148
            priority += c.sizeOfCfRuleArray();
149
        }
149
        }
150
150
Lines 220-226 Link Here
220
    */
220
    */
221
    public void removeConditionalFormatting(int index) {
221
    public void removeConditionalFormatting(int index) {
222
        checkIndex(index);
222
        checkIndex(index);
223
        _sheet.getCTWorksheet().getConditionalFormattingList().remove(index);
223
        _sheet.getCTWorksheet().removeConditionalFormatting(index);
224
    }
224
    }
225
225
226
    private void checkIndex(int index) {
226
    private void checkIndex(int index) {
(-)src/ooxml/java/org/apache/poi/xssf/model/MapInfo.java (-2 / +2 lines)
Lines 72-78 Link Here
72
			mapInfo = doc.getMapInfo();
72
			mapInfo = doc.getMapInfo();
73
73
74
            maps= new HashMap<Integer, XSSFMap>();
74
            maps= new HashMap<Integer, XSSFMap>();
75
            for(CTMap map :mapInfo.getMapList()){
75
            for(CTMap map :mapInfo.getMapArray()){
76
                maps.put((int)map.getID(), new XSSFMap(map,this));
76
                maps.put((int)map.getID(), new XSSFMap(map,this));
77
            }
77
            }
78
78
Lines 107-113 Link Here
107
	public CTSchema getCTSchemaById(String schemaId){
107
	public CTSchema getCTSchemaById(String schemaId){
108
		CTSchema xmlSchema = null;
108
		CTSchema xmlSchema = null;
109
109
110
		for(CTSchema schema: mapInfo.getSchemaList()){
110
		for(CTSchema schema: mapInfo.getSchemaArray()){
111
			if(schema.getID().equals(schemaId)){
111
			if(schema.getID().equals(schemaId)){
112
				xmlSchema = schema;
112
				xmlSchema = schema;
113
				break;
113
				break;
(-)src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java (-3 / +3 lines)
Lines 60-72 Link Here
60
        // re-read the saved file and make sure headers in the xml are in the original order
60
        // re-read the saved file and make sure headers in the xml are in the original order
61
        inputWorkbook = new org.apache.poi.xssf.usermodel.XSSFWorkbook(new FileInputStream(outputFile));
61
        inputWorkbook = new org.apache.poi.xssf.usermodel.XSSFWorkbook(new FileInputStream(outputFile));
62
        CTTable ctTable = inputWorkbook.getSheetAt(0).getTables().get(0).getCTTable();
62
        CTTable ctTable = inputWorkbook.getSheetAt(0).getTables().get(0).getCTTable();
63
        List<CTTableColumn> ctTableColumnList = ctTable.getTableColumns().getTableColumnList();
63
        CTTableColumn[] ctTableColumnArray = ctTable.getTableColumns().getTableColumnArray();
64
64
65
        assertEquals("number of headers in xml table should match number of header cells in worksheet",
65
        assertEquals("number of headers in xml table should match number of header cells in worksheet",
66
                headers.size(), ctTableColumnList.size());
66
                headers.size(), ctTableColumnArray.length);
67
        for (int i = 0; i < headers.size(); i++) {
67
        for (int i = 0; i < headers.size(); i++) {
68
            assertEquals("header name in xml table should match number of header cells in worksheet",
68
            assertEquals("header name in xml table should match number of header cells in worksheet",
69
                    headers.get(i), ctTableColumnList.get(i).getName());
69
                    headers.get(i), ctTableColumnArray[i].getName());
70
        }
70
        }
71
        assertTrue(outputFile.delete());
71
        assertTrue(outputFile.delete());
72
    }
72
    }
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java (-1 / +1 lines)
Lines 79-85 Link Here
79
        }
79
        }
80
80
81
        // Find our footnotes
81
        // Find our footnotes
82
        for(CTFtnEdn note : ctFootnotes.getFootnoteList()) {
82
        for(CTFtnEdn note : ctFootnotes.getFootnoteArray()) {
83
            listFootnote.add(new XWPFFootnote(note, this));
83
            listFootnote.add(new XWPFFootnote(note, this));
84
        }
84
        }
85
    }
85
    }
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSDTContent.java (-2 / +2 lines)
Lines 50-57 Link Here
50
    private List<ISDTContents> bodyElements = new ArrayList<ISDTContents>();
50
    private List<ISDTContents> bodyElements = new ArrayList<ISDTContents>();
51
51
52
    public XWPFSDTContent(CTSdtContentRun sdtRun, IBody part, IRunBody parent){
52
    public XWPFSDTContent(CTSdtContentRun sdtRun, IBody part, IRunBody parent){
53
        for (CTR ctr : sdtRun.getRList()){
53
        for (CTR ctr : sdtRun.getRArray()){
54
            XWPFRun run = new XWPFRun((CTR) ctr, parent);
54
            XWPFRun run = new XWPFRun(ctr, parent);
55
            runs.add(run);
55
            runs.add(run);
56
            bodyElements.add(run);
56
            bodyElements.add(run);
57
        }
57
        }
(-)src/ooxml/java/org/apache/poi/xslf/model/geom/CustomGeometry.java (-3 / +3 lines)
Lines 38-54 Link Here
38
38
39
    public CustomGeometry(CTCustomGeometry2D geom) {
39
    public CustomGeometry(CTCustomGeometry2D geom) {
40
        CTGeomGuideList avLst = geom.getAvLst();
40
        CTGeomGuideList avLst = geom.getAvLst();
41
        if(avLst != null) for(CTGeomGuide gd : avLst.getGdList()){
41
        if(avLst != null) for(CTGeomGuide gd : avLst.getGdArray()){
42
            adjusts.add(new AdjustValue(gd));
42
            adjusts.add(new AdjustValue(gd));
43
        }
43
        }
44
44
45
        CTGeomGuideList gdLst = geom.getGdLst();
45
        CTGeomGuideList gdLst = geom.getGdLst();
46
        if(gdLst != null) for(CTGeomGuide gd : gdLst.getGdList()){
46
        if(gdLst != null) for(CTGeomGuide gd : gdLst.getGdArray()){
47
            guides.add(new Guide(gd));
47
            guides.add(new Guide(gd));
48
        }
48
        }
49
49
50
        CTPath2DList pathLst = geom.getPathLst();
50
        CTPath2DList pathLst = geom.getPathLst();
51
        if(pathLst != null) for(CTPath2D spPath : pathLst.getPathList()){
51
        if(pathLst != null) for(CTPath2D spPath : pathLst.getPathArray()){
52
            paths.add(new Path(spPath));
52
            paths.add(new Path(spPath));
53
        }
53
        }
54
54
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java (-2 / +2 lines)
Lines 86-92 Link Here
86
      }
86
      }
87
      
87
      
88
      // Build up all the style objects
88
      // Build up all the style objects
89
      for(CTStyle style : ctStyles.getStyleList()) {
89
      for(CTStyle style : ctStyles.getStyleArray()) {
90
         listStyle.add(new XWPFStyle(style, this));
90
         listStyle.add(new XWPFStyle(style, this));
91
      }
91
      }
92
   }
92
   }
Lines 137-143 Link Here
137
	public void addStyle(XWPFStyle style){
137
	public void addStyle(XWPFStyle style){
138
		listStyle.add(style);
138
		listStyle.add(style);
139
		ctStyles.addNewStyle();
139
		ctStyles.addNewStyle();
140
		int pos = (ctStyles.getStyleList().size()) - 1;
140
		int pos = ctStyles.sizeOfStyleArray() - 1;
141
		ctStyles.setStyleArray(pos, style.getCTStyle());
141
		ctStyles.setStyleArray(pos, style.getCTStyle());
142
	}
142
	}
143
	/**
143
	/**
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFTableRow.java (-3 / +3 lines)
Lines 155-161 Link Here
155
    public List<XWPFTableCell> getTableCells(){
155
    public List<XWPFTableCell> getTableCells(){
156
	if(tableCells == null){
156
	if(tableCells == null){
157
	    List<XWPFTableCell> cells = new ArrayList<XWPFTableCell>();
157
	    List<XWPFTableCell> cells = new ArrayList<XWPFTableCell>();
158
	    for (CTTc tableCell : ctRow.getTcList()) {
158
	    for (CTTc tableCell : ctRow.getTcArray()) {
159
		cells.add(new XWPFTableCell(tableCell, this, table.getBody()));
159
		cells.add(new XWPFTableCell(tableCell, this, table.getBody()));
160
	    }
160
	    }
161
       //TODO: it is possible to have an SDT that contains a cell in within a row
161
       //TODO: it is possible to have an SDT that contains a cell in within a row
Lines 201-207 Link Here
201
	boolean isCant = false;
201
	boolean isCant = false;
202
	CTTrPr trpr = getTrPr();
202
	CTTrPr trpr = getTrPr();
203
	if (trpr.sizeOfCantSplitArray() > 0) {
203
	if (trpr.sizeOfCantSplitArray() > 0) {
204
	    CTOnOff onoff = trpr.getCantSplitList().get(0);
204
	    CTOnOff onoff = trpr.getCantSplitArray(0);
205
	    isCant = onoff.getVal().equals(STOnOff.ON);
205
	    isCant = onoff.getVal().equals(STOnOff.ON);
206
	}
206
	}
207
	return isCant;
207
	return isCant;
Lines 229-235 Link Here
229
	boolean repeat = false;
229
	boolean repeat = false;
230
	CTTrPr trpr = getTrPr();
230
	CTTrPr trpr = getTrPr();
231
	if (trpr.sizeOfTblHeaderArray() > 0) {
231
	if (trpr.sizeOfTblHeaderArray() > 0) {
232
	    CTOnOff rpt = trpr.getTblHeaderList().get(0);
232
	    CTOnOff rpt = trpr.getTblHeaderArray(0);
233
	    repeat = rpt.getVal().equals(STOnOff.ON);
233
	    repeat = rpt.getVal().equals(STOnOff.ON);
234
	}
234
	}
235
	return repeat;
235
	return repeat;
(-)src/ooxml/java/org/apache/poi/xwpf/model/XWPFCommentsDecorator.java (-1 / +1 lines)
Lines 39-45 Link Here
39
		XWPFComment comment;
39
		XWPFComment comment;
40
		commentText = new StringBuffer();
40
		commentText = new StringBuffer();
41
41
42
		for(CTMarkupRange anchor : paragraph.getCTP().getCommentRangeStartList())
42
		for(CTMarkupRange anchor : paragraph.getCTP().getCommentRangeStartArray())
43
		{
43
		{
44
			if((comment = paragraph.getDocument().getCommentByID(anchor.getId().toString())) != null)
44
			if((comment = paragraph.getDocument().getCommentByID(anchor.getId().toString())) != null)
45
				commentText.append("\tComment by " + comment.getAuthor()+": "+comment.getText());
45
				commentText.append("\tComment by " + comment.getAuthor()+": "+comment.getText());
(-)src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java (-13 / +9 lines)
Lines 184-190 Link Here
184
                } else if (relation.equals(XWPFRelation.COMMENT.getRelation())) {
184
                } else if (relation.equals(XWPFRelation.COMMENT.getRelation())) {
185
                    // TODO Create according XWPFComment class, extending POIXMLDocumentPart
185
                    // TODO Create according XWPFComment class, extending POIXMLDocumentPart
186
                    CommentsDocument cmntdoc = CommentsDocument.Factory.parse(p.getPackagePart().getInputStream());
186
                    CommentsDocument cmntdoc = CommentsDocument.Factory.parse(p.getPackagePart().getInputStream());
187
                    for (CTComment ctcomment : cmntdoc.getComments().getCommentList()) {
187
                    for (CTComment ctcomment : cmntdoc.getComments().getCommentArray()) {
188
                        comments.add(new XWPFComment(ctcomment, this));
188
                        comments.add(new XWPFComment(ctcomment, this));
189
                    }
189
                    }
190
                } else if (relation.equals(XWPFRelation.SETTINGS.getRelation())) {
190
                } else if (relation.equals(XWPFRelation.SETTINGS.getRelation())) {
Lines 241-247 Link Here
241
            } else if (relation.equals(XWPFRelation.ENDNOTE.getRelation())){
241
            } else if (relation.equals(XWPFRelation.ENDNOTE.getRelation())){
242
                EndnotesDocument endnotesDocument = EndnotesDocument.Factory.parse(p.getPackagePart().getInputStream());
242
                EndnotesDocument endnotesDocument = EndnotesDocument.Factory.parse(p.getPackagePart().getInputStream());
243
243
244
                for(CTFtnEdn ctFtnEdn : endnotesDocument.getEndnotes().getEndnoteList()) {
244
                for(CTFtnEdn ctFtnEdn : endnotesDocument.getEndnotes().getEndnoteArray()) {
245
                    endnotes.put(ctFtnEdn.getId().intValue(), new XWPFFootnote(this, ctFtnEdn));
245
                    endnotes.put(ctFtnEdn.getId().intValue(), new XWPFFootnote(this, ctFtnEdn));
246
                }
246
                }
247
            }
247
            }
Lines 364-373 Link Here
364
    }
364
    }
365
365
366
    public XWPFHyperlink getHyperlinkByID(String id) {
366
    public XWPFHyperlink getHyperlinkByID(String id) {
367
        Iterator<XWPFHyperlink> iter = hyperlinks.iterator();
367
        for (XWPFHyperlink link : hyperlinks) {
368
        while (iter.hasNext()) {
369
            XWPFHyperlink link = iter.next();
370
            if(link.getId().equals(id))
368
            if (link.getId().equals(id))
371
                return link;
369
                return link;
372
        }
370
        }
373
371
Lines 396-405 Link Here
396
    }
394
    }
397
395
398
    public XWPFComment getCommentByID(String id) {
396
    public XWPFComment getCommentByID(String id) {
399
        Iterator<XWPFComment> iter = comments.iterator();
397
        for (XWPFComment comment : comments) {
400
        while (iter.hasNext()) {
401
            XWPFComment comment = iter.next();
402
            if(comment.getId().equals(id))
398
            if (comment.getId().equals(id))
403
                return comment;
399
                return comment;
404
        }
400
        }
405
401
Lines 1189-1200 Link Here
1189
    @Override
1185
    @Override
1190
    public void insertTable(int pos, XWPFTable table) {
1186
    public void insertTable(int pos, XWPFTable table) {
1191
        bodyElements.add(pos, table);
1187
        bodyElements.add(pos, table);
1192
        int i;
1188
        int i = 0;
1193
        for (i = 0; i < ctDocument.getBody().getTblList().size(); i++) {
1189
        for (CTTbl tbl : ctDocument.getBody().getTblArray()) {
1194
            CTTbl tbl = ctDocument.getBody().getTblArray(i);
1195
            if (tbl == table.getCTTbl()) {
1190
            if (tbl == table.getCTTbl()) {
1196
                break;
1191
                break;
1197
            }
1192
            }
1193
            i++;
1198
        }
1194
        }
1199
        tables.add(i, table);
1195
        tables.add(i, table);
1200
    }
1196
    }
(-)src/ooxml/java/org/apache/poi/xssf/model/CommentsTable.java (-9 / +12 lines)
Lines 149-163 Link Here
149
149
150
    public boolean removeComment(String cellRef) {
150
    public boolean removeComment(String cellRef) {
151
        CTCommentList lst = comments.getCommentList();
151
        CTCommentList lst = comments.getCommentList();
152
        if(lst != null) for(int i=0; i < lst.sizeOfCommentArray(); i++) {
152
        if(lst != null) {
153
            int commentCount = lst.sizeOfCommentArray();
154
            for(int i=0; i < commentCount; i++) {
153
            CTComment comment = lst.getCommentArray(i);
155
                CTComment comment = lst.getCommentArray(i);
154
            if (cellRef.equals(comment.getRef())) {
156
                if (cellRef.equals(comment.getRef())) {
155
                lst.removeComment(i);
157
                    lst.removeComment(i);
156
                
158
157
                if(commentRefs != null) {
159
                    if(commentRefs != null) {
158
                   commentRefs.remove(cellRef);
160
                       commentRefs.remove(cellRef);
159
                }
161
                    }
160
                return true;
162
                    return true;
163
                }
161
            }
164
            }
162
        }
165
        }
163
        return false;
166
        return false;
(-)src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun.java (-3 / +3 lines)
Lines 180-186 Link Here
180
        run.addCarriageReturn();
180
        run.addCarriageReturn();
181
        run.setText("T2");
181
        run.setText("T2");
182
        run.addCarriageReturn();
182
        run.addCarriageReturn();
183
        assertEquals(3, run.getCTR().getCrList().size());
183
        assertEquals(3, run.getCTR().sizeOfCrArray());
184
        
184
        
185
        assertEquals("T1\n\nT2\n", run.toString());
185
        assertEquals("T1\n\nT2\n", run.toString());
186
    }
186
    }
Lines 200-207 Link Here
200
        run.setText("T2");
200
        run.setText("T2");
201
        run.addTab();
201
        run.addTab();
202
        run.setText("T3");
202
        run.setText("T3");
203
        assertEquals(1, run.getCTR().getCrList().size());
203
        assertEquals(1, run.getCTR().sizeOfCrArray());
204
        assertEquals(1, run.getCTR().getTabList().size());
204
        assertEquals(1, run.getCTR().sizeOfTabArray());
205
        
205
        
206
        assertEquals("T1\nT2\tT3", run.toString());
206
        assertEquals("T1\nT2\tT3", run.toString());
207
    }
207
    }
(-)src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java (-1 / +1 lines)
Lines 64-70 Link Here
64
        _paragraphs = new ArrayList<XSLFTextParagraph>();
64
        _paragraphs = new ArrayList<XSLFTextParagraph>();
65
        CTTextBody txBody = getTextBody(false);
65
        CTTextBody txBody = getTextBody(false);
66
        if (txBody != null) {
66
        if (txBody != null) {
67
            for (CTTextParagraph p : txBody.getPList()) {
67
            for (CTTextParagraph p : txBody.getPArray()) {
68
                _paragraphs.add(new XSLFTextParagraph(p, this));
68
                _paragraphs.add(new XSLFTextParagraph(p, this));
69
            }
69
            }
70
        }
70
        }
(-)src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFComments.java (-1 / +1 lines)
Lines 66-71 Link Here
66
    }
66
    }
67
    
67
    
68
    public CTComment getCommentAt(int pos) {
68
    public CTComment getCommentAt(int pos) {
69
       return _comments.getCmList().get(pos);
69
       return _comments.getCmArray(pos);
70
    }
70
    }
71
}
71
}
(-)src/ooxml/java/org/apache/poi/xssf/util/CTColComparator.java (-20 / +20 lines)
Lines 21-46 Link Here
21
21
22
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCol;
22
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCol;
23
23
24
public class CTColComparator implements Comparator<CTCol>{
24
public class CTColComparator {
25
25
26
    public int compare(CTCol o1, CTCol o2) {
26
    private CTColComparator() {}
27
        if (o1.getMin() < o2.getMin()) {
27
28
            return -1;
28
    public static final Comparator<CTCol> BY_MAX = new Comparator<CTCol>() {
29
        @Override
30
        public int compare(CTCol col1, CTCol col2) {
31
            long col1max = col1.getMax();
32
            long col2max = col2.getMax();
33
            return col1max < col2max ? -1 : col1max > col2max ? 1 : 0;
29
        }
34
        }
30
        else if (o1.getMin() > o2.getMin()) {
35
    };
31
            return 1;
32
        }
33
        else {
34
            if (o1.getMax() < o2.getMax()) {
35
                return -1;
36
            }
37
            if (o1.getMax() > o2.getMax()) {
38
                return 1;
39
            }
40
            return 0;
41
        }
42
    }
43
    
36
44
    
37
    public static final Comparator<CTCol> BY_MIN_MAX = new Comparator<CTCol>() {
38
        @Override
39
        public int compare(CTCol col1, CTCol col2) {
40
            long col11min = col1.getMin();
41
            long col2min = col2.getMin();
42
            return col11min < col2min ? -1 : col11min > col2min ? 1 : BY_MAX.compare(col1, col2);
43
        }
44
    };
45
    
45
46
}
46
}
(-)src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFCommonSlideData.java (-4 / +3 lines)
Lines 51-61 Link Here
51
51
52
        processShape(gs, out);
52
        processShape(gs, out);
53
53
54
        for (CTGroupShape shape : gs.getGrpSpList()) {
54
        for (CTGroupShape shape : gs.getGrpSpArray()) {
55
            processShape(shape, out);
55
            processShape(shape, out);
56
        }
56
        }
57
57
58
        for (CTGraphicalObjectFrame frame: gs.getGraphicFrameList()) {
58
        for (CTGraphicalObjectFrame frame: gs.getGraphicFrameArray()) {
59
            CTGraphicalObjectData data = frame.getGraphic().getGraphicData();
59
            CTGraphicalObjectData data = frame.getGraphic().getGraphicData();
60
            XmlCursor c = data.newCursor();
60
            XmlCursor c = data.newCursor();
61
            c.selectPath("declare namespace pic='"+CTTable.type.getName().getNamespaceURI()+"' .//pic:tbl");
61
            c.selectPath("declare namespace pic='"+CTTable.type.getName().getNamespaceURI()+"' .//pic:tbl");
Lines 98-105 Link Here
98
    }
98
    }
99
99
100
    private void processShape(CTGroupShape gs, List<DrawingTextBody> out) {
100
    private void processShape(CTGroupShape gs, List<DrawingTextBody> out) {
101
        List<CTShape> shapes = gs.getSpList();
101
        for (CTShape shape : gs.getSpArray()) {
102
        for (CTShape shape : shapes) {
103
            CTTextBody ctTextBody = shape.getTxBody();
102
            CTTextBody ctTextBody = shape.getTxBody();
104
            if (ctTextBody==null) {
103
            if (ctTextBody==null) {
105
                continue;
104
                continue;
(-)src/ooxml/java/org/apache/poi/POIXMLProperties.java (-2 / +2 lines)
Lines 373-379 Link Here
373
		 */
373
		 */
374
		protected int nextPid(){
374
		protected int nextPid(){
375
			int propid = 1;
375
			int propid = 1;
376
			for(CTProperty p : props.getProperties().getPropertyList()){
376
			for(CTProperty p : props.getProperties().getPropertyArray()){
377
				if(p.getPid() > propid) propid = p.getPid();
377
				if(p.getPid() > propid) propid = p.getPid();
378
			}
378
			}
379
			return propid + 1;
379
			return propid + 1;
Lines 386-392 Link Here
386
		 * @return whether a property with the given name exists in the custom properties
386
		 * @return whether a property with the given name exists in the custom properties
387
		 */
387
		 */
388
		public boolean contains(String name){
388
		public boolean contains(String name){
389
			for(CTProperty p : props.getProperties().getPropertyList()){
389
			for(CTProperty p : props.getProperties().getPropertyArray()){
390
				if(p.getName().equals(name)) return true;
390
				if(p.getName().equals(name)) return true;
391
			}
391
			}
392
			return false;
392
			return false;
(-)src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFCommentAuthors.java (-1 / +1 lines)
Lines 63-69 Link Here
63
    
63
    
64
    public CTCommentAuthor getAuthorById(long id) {
64
    public CTCommentAuthor getAuthorById(long id) {
65
       // TODO Have a map
65
       // TODO Have a map
66
       for (CTCommentAuthor author : _authors.getCmAuthorList()) {
66
       for (CTCommentAuthor author : _authors.getCmAuthorArray()) {
67
          if (author.getId() == id) {
67
          if (author.getId() == id) {
68
             return author;
68
             return author;
69
          }
69
          }
(-)src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSimpleShape.java (-1 / +1 lines)
Lines 249-255 Link Here
249
        CTStyleMatrix styleMatrix = slide.getTheme().getXmlObject().getThemeElements().getFmtScheme();
249
        CTStyleMatrix styleMatrix = slide.getTheme().getXmlObject().getThemeElements().getFmtScheme();
250
        CTEffectStyleList lst = styleMatrix.getEffectStyleLst();
250
        CTEffectStyleList lst = styleMatrix.getEffectStyleLst();
251
        assertNotNull(lst);
251
        assertNotNull(lst);
252
        for(CTEffectStyleItem ef : lst.getEffectStyleList()){
252
        for(CTEffectStyleItem ef : lst.getEffectStyleArray()){
253
            CTOuterShadowEffect obj = ef.getEffectLst().getOuterShdw();
253
            CTOuterShadowEffect obj = ef.getEffectLst().getOuterShdw();
254
        }
254
        }
255
    }
255
    }
(-)src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/ColumnHelper.java (-69 / +50 lines)
Lines 19-25 Link Here
19
19
20
import java.util.ArrayList;
20
import java.util.ArrayList;
21
import java.util.Arrays;
21
import java.util.Arrays;
22
import java.util.Comparator;
23
import java.util.HashSet;
22
import java.util.HashSet;
24
import java.util.Iterator;
23
import java.util.Iterator;
25
import java.util.List;
24
import java.util.List;
Lines 54-101 Link Here
54
        this.newCols = CTCols.Factory.newInstance();
53
        this.newCols = CTCols.Factory.newInstance();
55
54
56
        CTCols aggregateCols = CTCols.Factory.newInstance();
55
        CTCols aggregateCols = CTCols.Factory.newInstance();
57
        List<CTCols> colsList = worksheet.getColsList();
56
        CTCols[] colsArray = worksheet.getColsArray();
58
        assert(colsList != null);
57
        assert(colsArray != null);
59
        
58
        
60
        for (CTCols cols : colsList) {
59
        for (CTCols cols : colsArray) {
61
            for (CTCol col : cols.getColList()) {
60
            for (CTCol col : cols.getColArray()) {
62
                cloneCol(aggregateCols, col);
61
                cloneCol(aggregateCols, col);
63
            }
62
            }
64
        }
63
        }
65
        
64
        
66
        sortColumns(aggregateCols);
65
        sortColumns(aggregateCols);
67
        
66
        
68
        CTCol[] colArray = new CTCol[aggregateCols.getColList().size()];
67
        CTCol[] colArray = aggregateCols.getColArray();
69
        aggregateCols.getColList().toArray(colArray);
70
        sweepCleanColumns(newCols, colArray, null);
68
        sweepCleanColumns(newCols, colArray, null);
71
        
69
        
72
        int i = colsList.size();
70
        int i = colsArray.length;
73
        for (int y = i - 1; y >= 0; y--) {
71
        for (int y = i - 1; y >= 0; y--) {
74
            worksheet.removeCols(y);
72
            worksheet.removeCols(y);
75
        }
73
        }
76
        worksheet.addNewCols();
74
        worksheet.addNewCols();
77
        worksheet.setColsArray(0, newCols);
75
        worksheet.setColsArray(0, newCols);
78
    }
76
    }
79
    
77
80
    private static class CTColByMaxComparator implements Comparator<CTCol> {
81
82
        public int compare(CTCol arg0, CTCol arg1) {
83
            if (arg0.getMax() < arg1.getMax()) {
84
                return -1;
85
            } else {
86
                if (arg0.getMax() > arg1.getMax()) return 1;
87
                else return 0;
88
            }
89
        }
90
        
91
    }
92
93
    /**
78
    /**
94
     * @see <a href="http://en.wikipedia.org/wiki/Sweep_line_algorithm">Sweep line algorithm</a>
79
     * @see <a href="http://en.wikipedia.org/wiki/Sweep_line_algorithm">Sweep line algorithm</a>
95
     */
80
     */
96
    private void sweepCleanColumns(CTCols cols, CTCol[] flattenedColsArray, CTCol overrideColumn) {
81
    private void sweepCleanColumns(CTCols cols, CTCol[] flattenedColsArray, CTCol overrideColumn) {
97
        List<CTCol> flattenedCols = new ArrayList<CTCol>(Arrays.asList(flattenedColsArray));
82
        List<CTCol> flattenedCols = new ArrayList<CTCol>(Arrays.asList(flattenedColsArray));
98
        TreeSet<CTCol> currentElements = new TreeSet<CTCol>(new CTColByMaxComparator());
83
        TreeSet<CTCol> currentElements = new TreeSet<CTCol>(CTColComparator.BY_MAX);
99
        ListIterator<CTCol> flIter = flattenedCols.listIterator();
84
        ListIterator<CTCol> flIter = flattenedCols.listIterator();
100
        CTCol haveOverrideColumn = null;
85
        CTCol haveOverrideColumn = null;
101
        long lastMaxIndex = 0;
86
        long lastMaxIndex = 0;
Lines 103-109 Link Here
103
        while (flIter.hasNext()) {
88
        while (flIter.hasNext()) {
104
            CTCol col = flIter.next();
89
            CTCol col = flIter.next();
105
            long currentIndex = col.getMin();
90
            long currentIndex = col.getMin();
106
            long nextIndex = (col.getMax() > currentMax) ? col.getMax() : currentMax;
91
            long colMax = col.getMax();
92
            long nextIndex = (colMax > currentMax) ? colMax : currentMax;
107
            if (flIter.hasNext()) {
93
            if (flIter.hasNext()) {
108
                nextIndex = flIter.next().getMin();
94
                nextIndex = flIter.next().getMin();
109
                flIter.previous();
95
                flIter.previous();
Lines 116-125 Link Here
116
            }
102
            }
117
            if (!currentElements.isEmpty() && lastMaxIndex < currentIndex) {
103
            if (!currentElements.isEmpty() && lastMaxIndex < currentIndex) {
118
                // we need to process previous elements first
104
                // we need to process previous elements first
119
                insertCol(cols, lastMaxIndex, currentIndex - 1, currentElements.toArray(new CTCol[]{}), true, haveOverrideColumn);
105
                insertCol(cols, lastMaxIndex, currentIndex - 1, currentElements.toArray(new CTCol[currentElements.size()]), true, haveOverrideColumn);
120
            }
106
            }
121
            currentElements.add(col);
107
            currentElements.add(col);
122
            if (col.getMax() > currentMax) currentMax = col.getMax();
108
            if (colMax > currentMax) currentMax = colMax;
123
            if (col.equals(overrideColumn)) haveOverrideColumn = overrideColumn;
109
            if (col.equals(overrideColumn)) haveOverrideColumn = overrideColumn;
124
            while (currentIndex <= nextIndex && !currentElements.isEmpty()) {
110
            while (currentIndex <= nextIndex && !currentElements.isEmpty()) {
125
                Set<CTCol> currentIndexElements = new HashSet<CTCol>();
111
                Set<CTCol> currentIndexElements = new HashSet<CTCol>();
Lines 130-155 Link Here
130
                    CTCol currentElem = currentElements.first();
116
                    CTCol currentElem = currentElements.first();
131
                    currentElemIndex = currentElem.getMax();
117
                    currentElemIndex = currentElem.getMax();
132
                    currentIndexElements.add(currentElem);
118
                    currentIndexElements.add(currentElem);
133
                    
119
134
                    for (CTCol cc : currentElements.tailSet(currentElem)) {
120
                    while (true) {
135
                        if (cc == null || cc.getMax() == currentElemIndex) break;
121
                        CTCol higherElem = currentElements.higher(currentElem);
136
                        currentIndexElements.add(cc);
122
                        if (higherElem == null || higherElem.getMax() != currentElemIndex)
137
                        if (col.getMax() > currentMax) currentMax = col.getMax();
123
                            break;
124
                        currentElem = higherElem;
125
                        currentIndexElements.add(currentElem);
126
                        if (colMax > currentMax) currentMax = colMax;
138
                        if (col.equals(overrideColumn)) haveOverrideColumn = overrideColumn;
127
                        if (col.equals(overrideColumn)) haveOverrideColumn = overrideColumn;
139
                    }
128
                    }
140
141
                    // JDK 6 code
142
                    // while (currentElements.higher(currentElem) != null && currentElements.higher(currentElem).getMax() == currentElemIndex) {
143
                    //     currentElem = currentElements.higher(currentElem);
144
                    //     currentIndexElements.add(currentElem);
145
                    //     if (col.getMax() > currentMax) currentMax = col.getMax();
146
                    //     if (col.equals(overrideColumn)) haveOverrideColumn = overrideColumn;
147
                    // }
148
                }
129
                }
149
                
130
                
150
                
131
                
151
                if (currentElemIndex < nextIndex || !flIter.hasNext()) {
132
                if (currentElemIndex < nextIndex || !flIter.hasNext()) {
152
                    insertCol(cols, currentIndex, currentElemIndex, currentElements.toArray(new CTCol[]{}), true, haveOverrideColumn);
133
                    insertCol(cols, currentIndex, currentElemIndex, currentElements.toArray(new CTCol[currentElements.size()]), true, haveOverrideColumn);
153
                    if (flIter.hasNext()) {
134
                    if (flIter.hasNext()) {
154
                        if (nextIndex > currentElemIndex) {
135
                        if (nextIndex > currentElemIndex) {
155
                            currentElements.removeAll(currentIndexElements);
136
                            currentElements.removeAll(currentIndexElements);
Lines 171-179 Link Here
171
    }
152
    }
172
153
173
    public static void sortColumns(CTCols newCols) {
154
    public static void sortColumns(CTCols newCols) {
174
        CTCol[] colArray = new CTCol[newCols.getColList().size()];
155
        CTCol[] colArray = newCols.getColArray();
175
        newCols.getColList().toArray(colArray);
156
        Arrays.sort(colArray, CTColComparator.BY_MIN_MAX);
176
        Arrays.sort(colArray, new CTColComparator());
177
        newCols.setColArray(colArray);
157
        newCols.setColArray(colArray);
178
    }
158
    }
179
159
Lines 198-243 Link Here
198
     *  as 1 based.
178
     *  as 1 based.
199
     */
179
     */
200
    public CTCol getColumn1Based(long index1, boolean splitColumns) {
180
    public CTCol getColumn1Based(long index1, boolean splitColumns) {
201
        CTCols colsArray = worksheet.getColsArray(0);
181
        CTCols cols = worksheet.getColsArray(0);
202
        
182
        
203
        // Fetching the array is quicker than working on the new style
183
        // Fetching the array is quicker than working on the new style
204
        //  list, assuming we need to read many of them (which we often do),
184
        //  list, assuming we need to read many of them (which we often do),
205
        //  and assuming we're not making many changes (which we're not)
185
        //  and assuming we're not making many changes (which we're not)
206
        @SuppressWarnings("deprecation")
186
        @SuppressWarnings("deprecation")
207
        CTCol[] cols = colsArray.getColArray();
187
        CTCol[] colArray = cols.getColArray();
208
        
188
209
        for (int i = 0; i < cols.length; i++) {
189
        for (CTCol col : colArray) {
210
            CTCol colArray = cols[i];
190
            long colMin = col.getMin();
211
            if (colArray.getMin() <= index1 && colArray.getMax() >= index1) {
191
            long colMax = col.getMax();
192
            if (colMin <= index1 && colMax >= index1) {
212
                if (splitColumns) {
193
                if (splitColumns) {
213
                    if (colArray.getMin() < index1) {
194
                    if (colMin < index1) {
214
                        insertCol(colsArray, colArray.getMin(), (index1 - 1), new CTCol[]{colArray});
195
                        insertCol(cols, colMin, (index1 - 1), new CTCol[]{col});
215
                    }
196
                    }
216
                    if (colArray.getMax() > index1) {
197
                    if (colMax > index1) {
217
                        insertCol(colsArray, (index1 + 1), colArray.getMax(), new CTCol[]{colArray});
198
                        insertCol(cols, (index1 + 1), colMax, new CTCol[]{col});
218
                    }
199
                    }
219
                    colArray.setMin(index1);
200
                    col.setMin(index1);
220
                    colArray.setMax(index1);
201
                    col.setMax(index1);
221
                }
202
                }
222
                return colArray;
203
                return col;
223
            }
204
            }
224
        }
205
        }
225
        return null;
206
        return null;
226
    }
207
    }
227
    
208
228
    public CTCols addCleanColIntoCols(CTCols cols, CTCol col) {
209
    public CTCols addCleanColIntoCols(CTCols cols, CTCol col) {
229
        CTCols newCols = CTCols.Factory.newInstance();
210
        CTCols newCols = CTCols.Factory.newInstance();
230
        for (CTCol c : cols.getColList()) {
211
        for (CTCol c : cols.getColArray()) {
231
            cloneCol(newCols, c);
212
            cloneCol(newCols, c);
232
        }
213
        }
233
        cloneCol(newCols, col);
214
        cloneCol(newCols, col);
234
        sortColumns(newCols);
215
        sortColumns(newCols);
235
        CTCol[] colArray = new CTCol[newCols.getColList().size()];
216
        CTCol[] colArray = newCols.getColArray();
236
        newCols.getColList().toArray(colArray);
237
        CTCols returnCols = CTCols.Factory.newInstance();
217
        CTCols returnCols = CTCols.Factory.newInstance();
238
        sweepCleanColumns(returnCols, colArray, col);
218
        sweepCleanColumns(returnCols, colArray, col);
239
        colArray = new CTCol[returnCols.getColList().size()];
219
        colArray = returnCols.getColArray();
240
        returnCols.getColList().toArray(colArray);
241
        cols.setColArray(colArray);
220
        cols.setColArray(colArray);
242
        return returnCols;
221
        return returnCols;
243
    }
222
    }
Lines 273-280 Link Here
273
        return columnExists1Based(cols, index+1);
252
        return columnExists1Based(cols, index+1);
274
    }
253
    }
275
    private boolean columnExists1Based(CTCols cols, long index1) {
254
    private boolean columnExists1Based(CTCols cols, long index1) {
276
        for (int i = 0; i < cols.sizeOfColArray(); i++) {
255
        for (CTCol col : cols.getColArray()) {
277
            if (cols.getColArray(i).getMin() == index1) {
256
            if (col.getMin() == index1) {
278
                return true;
257
                return true;
279
            }
258
            }
280
        }
259
        }
Lines 344-362 Link Here
344
    }
323
    }
345
324
346
    private boolean columnExists(CTCols cols, long min, long max) {
325
    private boolean columnExists(CTCols cols, long min, long max) {
347
        for (int i = 0; i < cols.sizeOfColArray(); i++) {
326
        for (CTCol col : cols.getColArray()) {
348
            if (cols.getColArray(i).getMin() == min && cols.getColArray(i).getMax() == max) {
327
            if (col.getMin() == min && col.getMax() == max) {
349
                return true;
328
                return true;
350
            }
329
            }
351
        }
330
        }
352
        return false;
331
        return false;
353
    }
332
    }
354
    
333
    
355
    public int getIndexOfColumn(CTCols cols, CTCol col) {
334
    public int getIndexOfColumn(CTCols cols, CTCol searchCol) {
356
        for (int i = 0; i < cols.sizeOfColArray(); i++) {
335
        int i = 0;
357
            if (cols.getColArray(i).getMin() == col.getMin() && cols.getColArray(i).getMax() == col.getMax()) {
336
        for (CTCol col : cols.getColArray()) {
337
            if (col.getMin() == searchCol.getMin() && col.getMax() == searchCol.getMax()) {
358
                return i;
338
                return i;
359
            }
339
            }
340
            i++;
360
        }
341
        }
361
        return -1;
342
        return -1;
362
    }
343
    }
(-)src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java (-8 / +7 lines)
Lines 140-147 Link Here
140
140
141
            _slides = new ArrayList<XSLFSlide>();
141
            _slides = new ArrayList<XSLFSlide>();
142
            if (_presentation.isSetSldIdLst()) {
142
            if (_presentation.isSetSldIdLst()) {
143
                List<CTSlideIdListEntry> slideIds = _presentation.getSldIdLst().getSldIdList();
143
                for (CTSlideIdListEntry slId : _presentation.getSldIdLst().getSldIdArray()) {
144
                for (CTSlideIdListEntry slId : slideIds) {
145
                    XSLFSlide sh = shIdMap.get(slId.getId2());
144
                    XSLFSlide sh = shIdMap.get(slId.getId2());
146
                    if (sh == null) {
145
                    if (sh == null) {
147
                        _logger.log(POILogger.WARN, "Slide with r:id " + slId.getId() + " was defined, but didn't exist in package, skipping");
146
                        _logger.log(POILogger.WARN, "Slide with r:id " + slId.getId() + " was defined, but didn't exist in package, skipping");
Lines 207-213 Link Here
207
        if (!_presentation.isSetSldIdLst()) slideList = _presentation.addNewSldIdLst();
206
        if (!_presentation.isSetSldIdLst()) slideList = _presentation.addNewSldIdLst();
208
        else {
207
        else {
209
            slideList = _presentation.getSldIdLst();
208
            slideList = _presentation.getSldIdLst();
210
            for(CTSlideIdListEntry slideId : slideList.getSldIdList()){
209
            for(CTSlideIdListEntry slideId : slideList.getSldIdArray()){
211
                slideNumber = (int)Math.max(slideId.getId() + 1, slideNumber);
210
                slideNumber = (int)Math.max(slideId.getId() + 1, slideNumber);
212
                cnt++;
211
                cnt++;
213
            }
212
            }
Lines 283-298 Link Here
283
        _slides.add(newIndex, _slides.remove(oldIndex));
282
        _slides.add(newIndex, _slides.remove(oldIndex));
284
283
285
        // fix ordering in the low-level xml
284
        // fix ordering in the low-level xml
286
        List<CTSlideIdListEntry> slideIds = _presentation.getSldIdLst().getSldIdList();
285
        CTSlideIdList sldIdLst = _presentation.getSldIdLst();
287
        CTSlideIdListEntry oldEntry = slideIds.get(oldIndex);
286
        CTSlideIdListEntry oldEntry = sldIdLst.getSldIdArray(oldIndex);
288
        slideIds.add(newIndex, oldEntry);
287
        sldIdLst.insertNewSldId(newIndex).set(oldEntry);
289
        slideIds.remove(oldEntry);
288
        sldIdLst.removeSldId(oldIndex);
290
    }
289
    }
291
290
292
    public XSLFSlide removeSlide(int index){
291
    public XSLFSlide removeSlide(int index){
293
        XSLFSlide slide = _slides.remove(index);
292
        XSLFSlide slide = _slides.remove(index);
294
        removeRelation(slide);
293
        removeRelation(slide);
295
         _presentation.getSldIdLst().getSldIdList().remove(index);
294
         _presentation.getSldIdLst().removeSldId(index);
296
        return slide;
295
        return slide;
297
    }
296
    }
298
    
297
    
(-)src/ooxml/testcases/org/apache/poi/xssf/model/TestCalculationChain.java (-2 / +2 lines)
Lines 32-38 Link Here
32
        CalculationChain chain = wb.getCalculationChain();
32
        CalculationChain chain = wb.getCalculationChain();
33
        //the bean holding the reference to the formula to be deleted
33
        //the bean holding the reference to the formula to be deleted
34
        CTCalcCell c = chain.getCTCalcChain().getCArray(0);
34
        CTCalcCell c = chain.getCTCalcChain().getCArray(0);
35
        int cnt = chain.getCTCalcChain().getCList().size();
35
        int cnt = chain.getCTCalcChain().sizeOfCArray();
36
        assertEquals(10, c.getI());
36
        assertEquals(10, c.getI());
37
        assertEquals("E1", c.getR());
37
        assertEquals("E1", c.getR());
38
38
Lines 44-50 Link Here
44
44
45
        //the count of items is less by one
45
        //the count of items is less by one
46
        c = chain.getCTCalcChain().getCArray(0);
46
        c = chain.getCTCalcChain().getCArray(0);
47
        int cnt2 =  chain.getCTCalcChain().getCList().size();
47
        int cnt2 =  chain.getCTCalcChain().sizeOfCArray();
48
        assertEquals(cnt - 1, cnt2);
48
        assertEquals(cnt - 1, cnt2);
49
        //the first item in the calculation chain is the former second one
49
        //the first item in the calculation chain is the former second one
50
        assertEquals(10, c.getI());
50
        assertEquals(10, c.getI());

Return to bug 56854