Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id D8476200C49 for ; Fri, 17 Mar 2017 11:10:03 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id D6BCE160B80; Fri, 17 Mar 2017 10:10:03 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 10DB2160B6D for ; Fri, 17 Mar 2017 11:10:01 +0100 (CET) Received: (qmail 16755 invoked by uid 500); 17 Mar 2017 10:10:01 -0000 Mailing-List: contact commits-help@poi.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@poi.apache.org Delivered-To: mailing list commits@poi.apache.org Received: (qmail 16746 invoked by uid 99); 17 Mar 2017 10:10:01 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Mar 2017 10:10:01 +0000 Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 861C63A05CD for ; Fri, 17 Mar 2017 10:10:00 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1787320 - in /poi/trunk/src/ooxml: java/org/apache/poi/ java/org/apache/poi/xssf/ java/org/apache/poi/xssf/binary/ java/org/apache/poi/xssf/eventusermodel/ java/org/apache/poi/xssf/extractor/ java/org/apache/poi/xssf/model/ java/org/apache... Date: Fri, 17 Mar 2017 10:10:00 -0000 To: commits@poi.apache.org From: tallison@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20170317101000.861C63A05CD@svn01-us-west.apache.org> archived-at: Fri, 17 Mar 2017 10:10:04 -0000 Author: tallison Date: Fri Mar 17 10:09:59 2017 New Revision: 1787320 URL: http://svn.apache.org/viewvc?rev=1787320&view=rev Log: 60826 -- clean up. Many, many thanks to Javen O'Neal's code review! Modified: poi/trunk/src/ooxml/java/org/apache/poi/POIXMLRelation.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/XLSBUnsupportedException.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellHeader.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellRange.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBComment.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCommentsTable.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHeaderFooter.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHeaderFooters.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHyperlinksTable.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBParseException.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBParser.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRecordType.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRelation.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRichStr.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRichTextString.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBSheetHandler.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBStylesTable.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBUtils.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFHyperlinkRecord.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/package.html poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFBEventBasedExcelExtractor.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFEventBasedExcelExtractor.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFImportFromXML.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFFormulaEvaluator.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRelation.java poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFBReader.java poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFBEventBasedExcelExtractor.java poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFEventBasedExcelExtractor.java Modified: poi/trunk/src/ooxml/java/org/apache/poi/POIXMLRelation.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/POIXMLRelation.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/POIXMLRelation.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/POIXMLRelation.java Fri Mar 17 10:09:59 2017 @@ -16,11 +16,26 @@ ==================================================================== */ package org.apache.poi; +import java.io.IOException; +import java.io.InputStream; +import java.util.Iterator; + +import org.apache.poi.openxml4j.exceptions.InvalidFormatException; +import org.apache.poi.openxml4j.opc.PackagePart; +import org.apache.poi.openxml4j.opc.PackagePartName; +import org.apache.poi.openxml4j.opc.PackageRelationship; +import org.apache.poi.openxml4j.opc.PackageRelationshipCollection; +import org.apache.poi.openxml4j.opc.PackagingURIHelper; +import org.apache.poi.util.POILogFactory; +import org.apache.poi.util.POILogger; + /** * Represents a descriptor of a OOXML relation. */ public abstract class POIXMLRelation { + private static final POILogger log = POILogFactory.getLogger(POIXMLRelation.class); + /** * Describes the content stored in a part. */ @@ -131,4 +146,25 @@ public abstract class POIXMLRelation { public Class getRelationClass(){ return _cls; } + + /** + * Fetches the InputStream to read the contents, based + * of the specified core part, for which we are defined + * as a suitable relationship + * + * @since 3.16-beta3 + */ + public InputStream getContents(PackagePart corePart) throws IOException, InvalidFormatException { + PackageRelationshipCollection prc = + corePart.getRelationshipsByType(getRelation()); + Iterator it = prc.iterator(); + if(it.hasNext()) { + PackageRelationship rel = it.next(); + PackagePartName relName = PackagingURIHelper.createPartName(rel.getTargetURI()); + PackagePart part = corePart.getPackage().getPart(relName); + return part.getInputStream(); + } + log.log(POILogger.WARN, "No part " + getDefaultFileName() + " found"); + return null; + } } Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/XLSBUnsupportedException.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/XLSBUnsupportedException.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/XLSBUnsupportedException.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/XLSBUnsupportedException.java Fri Mar 17 10:09:59 2017 @@ -20,7 +20,7 @@ import org.apache.poi.UnsupportedFileFor /** * We don't support .xlsb for read and write via {@link org.apache.poi.xssf.usermodel.XSSFWorkbook}. - * As of POI 3.15-beta3, we do support streaming reading of xlsb files + * As of POI 3.16-beta3, we do support streaming reading of xlsb files * via {@link org.apache.poi.xssf.eventusermodel.XSSFBReader} */ public class XLSBUnsupportedException extends UnsupportedFileFormatException { Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellHeader.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellHeader.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellHeader.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellHeader.java Fri Mar 17 10:09:59 2017 @@ -17,7 +17,6 @@ package org.apache.poi.xssf.binary; -import org.apache.poi.ss.util.CellReference; import org.apache.poi.util.Internal; import org.apache.poi.util.LittleEndian; @@ -25,6 +24,8 @@ import org.apache.poi.util.LittleEndian; * This class encapsulates what the spec calls a "Cell" object. * I added "Header" to clarify that this does not contain the contents * of the cell, only the column number, the style id and the phonetic boolean + * + * @since 3.16-beta3 */ @Internal class XSSFBCellHeader { @@ -61,10 +62,6 @@ class XSSFBCellHeader { return colNum; } - String formatAddressAsString() { - return CellReference.convertNumToColString(colNum)+(rowNum+1); - } - int getStyleIdx() { return styleIdx; } Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellRange.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellRange.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellRange.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCellRange.java Fri Mar 17 10:09:59 2017 @@ -21,10 +21,14 @@ package org.apache.poi.xssf.binary; import org.apache.poi.util.Internal; import org.apache.poi.util.LittleEndian; +/** + * @since 3.16-beta3 + */ @Internal class XSSFBCellRange { + //TODO: Convert this to generate an AreaReference - public final static int length = 4* LittleEndian.INT_SIZE; + public static final int length = 4* LittleEndian.INT_SIZE; /** * Parses an RfX cell range from the data starting at the offset. * This performs no range checking. Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBComment.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBComment.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBComment.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBComment.java Fri Mar 17 10:09:59 2017 @@ -24,6 +24,9 @@ import org.apache.poi.ss.util.CellAddres import org.apache.poi.util.Internal; import org.apache.poi.xssf.usermodel.XSSFComment; +/** + * @since 3.16-beta3 + */ @Internal class XSSFBComment extends XSSFComment { Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCommentsTable.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCommentsTable.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCommentsTable.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBCommentsTable.java Fri Mar 17 10:09:59 2017 @@ -20,7 +20,6 @@ package org.apache.poi.xssf.binary; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; -import java.util.Comparator; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -31,10 +30,13 @@ import org.apache.poi.ss.util.CellAddres import org.apache.poi.util.Internal; import org.apache.poi.util.LittleEndian; +/** + * @since 3.16-beta3 + */ @Internal public class XSSFBCommentsTable extends XSSFBParser { - private Map comments = new TreeMap(new CellAddressComparator());//String is the cellAddress A1 + private Map comments = new TreeMap(); private Queue commentAddresses = new LinkedList(); private List authors = new ArrayList(); @@ -92,22 +94,4 @@ public class XSSFBCommentsTable extends } return comments.get(cellAddress); } - - private final static class CellAddressComparator implements Comparator { - - @Override - public int compare(CellAddress o1, CellAddress o2) { - if (o1.getRow() < o2.getRow()) { - return -1; - } else if (o1.getRow() > o2.getRow()) { - return 1; - } - if (o1.getColumn() < o2.getColumn()) { - return -1; - } else if (o1.getColumn() > o2.getColumn()) { - return 1; - } - return 0; - } - } } Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHeaderFooter.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHeaderFooter.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHeaderFooter.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHeaderFooter.java Fri Mar 17 10:09:59 2017 @@ -20,12 +20,17 @@ package org.apache.poi.xssf.binary; import org.apache.poi.util.Internal; import org.apache.poi.xssf.usermodel.helpers.HeaderFooterHelper; +/** + * @since 3.16-beta3 + */ @Internal class XSSFBHeaderFooter { + + private static final HeaderFooterHelper HEADER_FOOTER_HELPER = new HeaderFooterHelper(); + private final String headerFooterTypeLabel; private final boolean isHeader; private String rawString; - private HeaderFooterHelper headerFooterHelper = new HeaderFooterHelper(); XSSFBHeaderFooter(String headerFooterTypeLabel, boolean isHeader) { @@ -43,9 +48,9 @@ class XSSFBHeaderFooter { String getString() { StringBuilder sb = new StringBuilder(); - String left = headerFooterHelper.getLeftSection(rawString); - String center = headerFooterHelper.getCenterSection(rawString); - String right = headerFooterHelper.getRightSection(rawString); + String left = HEADER_FOOTER_HELPER.getLeftSection(rawString); + String center = HEADER_FOOTER_HELPER.getCenterSection(rawString); + String right = HEADER_FOOTER_HELPER.getRightSection(rawString); if (left != null && left.length() > 0) { sb.append(left); } Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHeaderFooters.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHeaderFooters.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHeaderFooters.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHeaderFooters.java Fri Mar 17 10:09:59 2017 @@ -18,10 +18,14 @@ package org.apache.poi.xssf.binary; import org.apache.poi.util.Internal; +/** + * @since 3.16-beta3 + */ @Internal class XSSFBHeaderFooters { public static XSSFBHeaderFooters parse(byte[] data) { + //parse these at some point. boolean diffOddEven = false; boolean diffFirst = false; boolean scaleWDoc = false; Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHyperlinksTable.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHyperlinksTable.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHyperlinksTable.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBHyperlinksTable.java Fri Mar 17 10:09:59 2017 @@ -36,10 +36,13 @@ import org.apache.poi.ss.util.CellRangeU import org.apache.poi.util.Internal; import org.apache.poi.xssf.usermodel.XSSFRelation; +/** + * @since 3.16-beta3 + */ @Internal public class XSSFBHyperlinksTable { - private final static BitSet RECORDS = new BitSet(); + private static final BitSet RECORDS = new BitSet(); static { Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBParseException.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBParseException.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBParseException.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBParseException.java Fri Mar 17 10:09:59 2017 @@ -18,7 +18,9 @@ package org.apache.poi.xssf.binary; /** - * Parse exception while reading an xssfb + * Parse exception while reading an xssfb. + * + * @since 3.16-beta3 */ public class XSSFBParseException extends RuntimeException { Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBParser.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBParser.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBParser.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBParser.java Fri Mar 17 10:09:59 2017 @@ -25,9 +25,11 @@ import org.apache.poi.util.Internal; import org.apache.poi.util.LittleEndianInputStream; /** - * Experimental parser for Microsoft's ooxml xssfb format. + * Experimental parser for Microsoft's ooxml xlsb format. * Not thread safe, obviously. Need to create a new one * for each thread. + * + * @since 3.16-beta3 */ @Internal public abstract class XSSFBParser { @@ -40,6 +42,11 @@ public abstract class XSSFBParser { records = null; } + /** + * + * @param is inputStream + * @param bitSet call {@link #handleRecord(int, byte[])} only on those records in this bitSet + */ XSSFBParser(InputStream is, BitSet bitSet) { this.is = new LittleEndianInputStream(is); records = bitSet; @@ -98,7 +105,7 @@ public abstract class XSSFBParser { //However, on a large Excel spreadsheet, this parser was 1/3 faster than //the ooxml sax parser (5 seconds for xssfb and 7.5 seconds for xssf. //The code is far cleaner to have the parser read all - //of the data rather than having every component promise that it read + //of the data rather than having every component promise that it will read //the correct amount. abstract public void handleRecord(int recordType, byte[] data) throws XSSFBParseException; Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRecordType.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRecordType.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRecordType.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRecordType.java Fri Mar 17 10:09:59 2017 @@ -17,8 +17,14 @@ package org.apache.poi.xssf.binary; +import java.util.HashMap; +import java.util.Map; + import org.apache.poi.util.Internal; +/** + * @since 3.16-beta3 + */ @Internal public enum XSSFBRecordType { @@ -69,6 +75,14 @@ public enum XSSFBRecordType { BrtBundleSh(156), //defines worksheet in wb part Unimplemented(-1); + private static final Map TYPE_MAP = + new HashMap(); + + static { + for (XSSFBRecordType type : XSSFBRecordType.values()) { + TYPE_MAP.put(type.getId(), type); + } + } private final int id; @@ -81,12 +95,11 @@ public enum XSSFBRecordType { } public static XSSFBRecordType lookup(int id) { - for (XSSFBRecordType r : XSSFBRecordType.values()) { - if (r.id == id) { - return r; - } + XSSFBRecordType type = TYPE_MAP.get(id); + if (type == null) { + return Unimplemented; } - return Unimplemented; + return type; } } Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRelation.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRelation.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRelation.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRelation.java Fri Mar 17 10:09:59 2017 @@ -17,19 +17,9 @@ package org.apache.poi.xssf.binary; -import java.io.IOException; -import java.io.InputStream; -import java.util.Iterator; - import org.apache.poi.POIXMLDocumentPart; import org.apache.poi.POIXMLRelation; -import org.apache.poi.openxml4j.exceptions.InvalidFormatException; -import org.apache.poi.openxml4j.opc.PackagePart; -import org.apache.poi.openxml4j.opc.PackagePartName; -import org.apache.poi.openxml4j.opc.PackageRelationship; -import org.apache.poi.openxml4j.opc.PackageRelationshipCollection; import org.apache.poi.openxml4j.opc.PackageRelationshipTypes; -import org.apache.poi.openxml4j.opc.PackagingURIHelper; import org.apache.poi.util.Internal; import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogger; @@ -64,22 +54,4 @@ public class XSSFBRelation extends POIXM super(type, rel, defaultName, cls); } - /** - * Fetches the InputStream to read the contents, based - * of the specified core part, for which we are defined - * as a suitable relationship - */ - public InputStream getContents(PackagePart corePart) throws IOException, InvalidFormatException { - PackageRelationshipCollection prc = - corePart.getRelationshipsByType(getRelation()); - Iterator it = prc.iterator(); - if (it.hasNext()) { - PackageRelationship rel = it.next(); - PackagePartName relName = PackagingURIHelper.createPartName(rel.getTargetURI()); - PackagePart part = corePart.getPackage().getPart(relName); - return part.getInputStream(); - } - log.log(POILogger.WARN, "No part " + getDefaultFileName() + " found"); - return null; - } } Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRichStr.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRichStr.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRichStr.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRichStr.java Fri Mar 17 10:09:59 2017 @@ -19,6 +19,9 @@ package org.apache.poi.xssf.binary; import org.apache.poi.util.Internal; +/** + * @since 3.16-beta3 + */ @Internal class XSSFBRichStr { Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRichTextString.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRichTextString.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRichTextString.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRichTextString.java Fri Mar 17 10:09:59 2017 @@ -19,11 +19,14 @@ package org.apache.poi.xssf.binary; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.util.Internal; +import org.apache.poi.util.NotImplemented; import org.apache.poi.xssf.usermodel.XSSFRichTextString; /** * Wrapper class around String so that we can use it in Comment. * Nothing has been implemented yet except for {@link #getString()}. + * + * @since 3.16-beta3 */ @Internal class XSSFBRichTextString extends XSSFRichTextString { @@ -34,21 +37,25 @@ class XSSFBRichTextString extends XSSFRi } @Override + @NotImplemented public void applyFont(int startIndex, int endIndex, short fontIndex) { } @Override + @NotImplemented public void applyFont(int startIndex, int endIndex, Font font) { } @Override + @NotImplemented public void applyFont(Font font) { } @Override + @NotImplemented public void clearFormatting() { } @@ -64,16 +71,19 @@ class XSSFBRichTextString extends XSSFRi } @Override + @NotImplemented public int numFormattingRuns() { return 0; } @Override + @NotImplemented public int getIndexOfFormattingRun(int index) { return 0; } @Override + @NotImplemented public void applyFont(short fontIndex) { } Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBSharedStringsTable.java Fri Mar 17 10:09:59 2017 @@ -28,6 +28,9 @@ import org.apache.poi.util.Internal; import org.apache.poi.util.LittleEndian; import org.xml.sax.SAXException; +/** + * @since 3.16-beta3 + */ @Internal public class XSSFBSharedStringsTable { @@ -69,8 +72,6 @@ public class XSSFBSharedStringsTable { /** * Like POIXMLDocumentPart constructor - * - * @since POI 3.14-Beta3 */ XSSFBSharedStringsTable(PackagePart part) throws IOException, SAXException { readFrom(part.getInputStream()); @@ -81,8 +82,14 @@ public class XSSFBSharedStringsTable { reader.parse(); } + /** + * + * @return a defensive copy of strings + */ public List getItems() { - return strings; + List ret = new ArrayList(strings.size()); + ret.addAll(strings); + return ret; } public String getEntryAt(int i) { Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBSheetHandler.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBSheetHandler.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBSheetHandler.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBSheetHandler.java Fri Mar 17 10:09:59 2017 @@ -29,10 +29,13 @@ import org.apache.poi.xssf.eventusermode import org.apache.poi.xssf.usermodel.XSSFComment; import org.apache.poi.xssf.usermodel.XSSFRichTextString; +/** + * @since 3.16-beta3 + */ @Internal public class XSSFBSheetHandler extends XSSFBParser { - private final static int CHECK_ALL_ROWS = -1; + private static final int CHECK_ALL_ROWS = -1; private final XSSFBSharedStringsTable stringsTable; private final XSSFSheetXMLHandler.SheetContentsHandler handler; Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBStylesTable.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBStylesTable.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBStylesTable.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBStylesTable.java Fri Mar 17 10:09:59 2017 @@ -28,6 +28,12 @@ import org.apache.poi.POIXMLException; import org.apache.poi.ss.usermodel.BuiltinFormats; import org.apache.poi.util.Internal; +/** + * This is a very thin shim to gather number formats from styles.bin + * files. + * + * @since 3.16-beta3 + */ @Internal public class XSSFBStylesTable extends XSSFBParser { Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBUtils.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBUtils.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBUtils.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBUtils.java Fri Mar 17 10:09:59 2017 @@ -24,6 +24,9 @@ import org.apache.poi.POIXMLException; import org.apache.poi.util.Internal; import org.apache.poi.util.LittleEndian; +/** + * @since 3.16-beta3 + */ @Internal public class XSSFBUtils { Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFHyperlinkRecord.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFHyperlinkRecord.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFHyperlinkRecord.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFHyperlinkRecord.java Fri Mar 17 10:09:59 2017 @@ -29,6 +29,7 @@ import org.apache.poi.util.Internal; * The {@link #display} is often empty and should be filled from * the contents of the anchor cell. * + * @since 3.16-beta3 */ @Internal public class XSSFHyperlinkRecord { Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/package.html URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/package.html?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/package.html (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/package.html Fri Mar 17 10:09:59 2017 @@ -27,17 +27,17 @@ for streaming/read-only processing of xl

POI does not yet support opening .xlsb files with XSSFWorkbook, but you can read files with XSSFBReader - in o.a.p.xssf.eventusermodel. + in org.apache.poi.xssf.eventusermodel.

- This feature was added in poi-3.15-beta3 and should be considered experimental. Most classes + This feature was added in poi-3.16-beta3 and should be considered experimental. Most classes have been marked @Internal and the API is subject to change.

Related Documentation

For overviews, tutorials, examples, guides, and tool documentation, please see: Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java Fri Mar 17 10:09:59 2017 @@ -44,6 +44,8 @@ import org.apache.poi.xssf.usermodel.XSS /** * Reader for xlsb files. + * + * @since 3.16-beta3 */ public class XSSFBReader extends XSSFReader { /** Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java Fri Mar 17 10:09:59 2017 @@ -380,7 +380,7 @@ public class XSSFReader { } } - protected final static class XSSFSheetRef { + protected static final class XSSFSheetRef { //do we need to store sheetId, too? private final String id; private final String name; @@ -401,9 +401,9 @@ public class XSSFReader { //scrapes sheet reference info and order from workbook.xml private static class XMLSheetRefReader extends DefaultHandler { - private final static String SHEET = "sheet"; - private final static String ID = "id"; - private final static String NAME = "name"; + private static final String SHEET = "sheet"; + private static final String ID = "id"; + private static final String NAME = "name"; private final List sheetRefs = new LinkedList(); Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFBEventBasedExcelExtractor.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFBEventBasedExcelExtractor.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFBEventBasedExcelExtractor.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFBEventBasedExcelExtractor.java Fri Mar 17 10:09:59 2017 @@ -23,6 +23,8 @@ import org.apache.poi.POIXMLTextExtracto import org.apache.poi.openxml4j.exceptions.OpenXML4JException; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.ss.usermodel.DataFormatter; +import org.apache.poi.util.POILogFactory; +import org.apache.poi.util.POILogger; import org.apache.poi.xssf.binary.XSSFBCommentsTable; import org.apache.poi.xssf.binary.XSSFBHyperlinksTable; import org.apache.poi.xssf.binary.XSSFBSharedStringsTable; @@ -37,11 +39,15 @@ import org.xml.sax.SAXException; /** * Implementation of a text extractor or xlsb Excel * files that uses SAX-like binary parsing. + * + * @since 3.16-beta3 */ public class XSSFBEventBasedExcelExtractor extends XSSFEventBasedExcelExtractor implements org.apache.poi.ss.extractor.ExcelExtractor { - public static final XSSFRelation[] SUPPORTED_TYPES = new XSSFRelation[] { + private static final POILogger LOGGER = POILogFactory.getLogger(XSSFBEventBasedExcelExtractor.class); + + public static final XSSFRelation[] SUPPORTED_TYPES = new XSSFRelation[]{ XSSFRelation.XLSB_BINARY_WORKBOOK }; @@ -93,15 +99,15 @@ public class XSSFBEventBasedExcelExtract throws IOException, SAXException { DataFormatter formatter; - if (locale == null) { + if (getLocale() == null) { formatter = new DataFormatter(); } else { - formatter = new DataFormatter(locale); + formatter = new DataFormatter(getLocale()); } XSSFBSheetHandler xssfbSheetHandler = new XSSFBSheetHandler( sheetInputStream, - styles, comments, strings, sheetContentsExtractor, formatter, formulasNotResults + styles, comments, strings, sheetContentsExtractor, formatter, getFormulasNotResults() ); xssfbSheetHandler.parse(); } @@ -111,8 +117,8 @@ public class XSSFBEventBasedExcelExtract */ public String getText() { try { - XSSFBSharedStringsTable strings = new XSSFBSharedStringsTable(container); - XSSFBReader xssfbReader = new XSSFBReader(container); + XSSFBSharedStringsTable strings = new XSSFBSharedStringsTable(getPackage()); + XSSFBReader xssfbReader = new XSSFBReader(getPackage()); XSSFBStylesTable styles = xssfbReader.getXSSFBStylesTable(); XSSFBReader.SheetIterator iter = (XSSFBReader.SheetIterator) xssfbReader.getSheetsData(); @@ -121,23 +127,23 @@ public class XSSFBEventBasedExcelExtract XSSFBHyperlinksTable hyperlinksTable = null; while (iter.hasNext()) { InputStream stream = iter.next(); - if (includeSheetNames) { + if (getIncludeSheetNames()) { text.append(iter.getSheetName()); text.append('\n'); } if (handleHyperlinksInCells) { hyperlinksTable = new XSSFBHyperlinksTable(iter.getSheetPart()); } - XSSFBCommentsTable comments = includeCellComments ? iter.getXSSFBSheetComments() : null; + XSSFBCommentsTable comments = getIncludeCellComments() ? iter.getXSSFBSheetComments() : null; processSheet(sheetExtractor, styles, comments, strings, stream); - if (includeHeadersFooters) { + if (getIncludeHeadersFooters()) { sheetExtractor.appendHeaderText(text); } sheetExtractor.appendCellText(text); - if (includeTextBoxes) { + if (getIncludeTextBoxes()) { processShapes(iter.getShapes(), text); } - if (includeHeadersFooters) { + if (getIncludeHeadersFooters()) { sheetExtractor.appendFooterText(text); } sheetExtractor.reset(); @@ -146,13 +152,13 @@ public class XSSFBEventBasedExcelExtract return text.toString(); } catch (IOException e) { - System.err.println(e); + LOGGER.log(POILogger.WARN, e); return null; } catch (SAXException se) { - System.err.println(se); + LOGGER.log(POILogger.WARN, se); return null; } catch (OpenXML4JException o4je) { - System.err.println(o4je); + LOGGER.log(POILogger.WARN, o4je); return null; } } Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFEventBasedExcelExtractor.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFEventBasedExcelExtractor.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFEventBasedExcelExtractor.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFEventBasedExcelExtractor.java Fri Mar 17 10:09:59 2017 @@ -32,6 +32,8 @@ import org.apache.poi.POIXMLTextExtracto import org.apache.poi.openxml4j.exceptions.OpenXML4JException; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.ss.usermodel.DataFormatter; +import org.apache.poi.util.POILogFactory; +import org.apache.poi.util.POILogger; import org.apache.poi.util.SAXHelper; import org.apache.poi.xssf.eventusermodel.ReadOnlySharedStringsTable; import org.apache.poi.xssf.eventusermodel.XSSFReader; @@ -54,15 +56,18 @@ import org.xml.sax.XMLReader; */ public class XSSFEventBasedExcelExtractor extends POIXMLTextExtractor implements org.apache.poi.ss.extractor.ExcelExtractor { - OPCPackage container; + + private static final POILogger LOGGER = POILogFactory.getLogger(XSSFEventBasedExcelExtractor.class); + + private OPCPackage container; private POIXMLProperties properties; - Locale locale; - boolean includeTextBoxes = true; - boolean includeSheetNames = true; - boolean includeCellComments = false; - boolean includeHeadersFooters = true; - boolean formulasNotResults = false; + private Locale locale; + private boolean includeTextBoxes = true; + private boolean includeSheetNames = true; + private boolean includeCellComments = false; + private boolean includeHeadersFooters = true; + private boolean formulasNotResults = false; private boolean concatenatePhoneticRuns = true; public XSSFEventBasedExcelExtractor(String path) throws XmlException, OpenXML4JException, IOException { @@ -93,6 +98,18 @@ public class XSSFEventBasedExcelExtracto public void setIncludeSheetNames(boolean includeSheetNames) { this.includeSheetNames = includeSheetNames; } + + + /** + * + * @return whether to include sheet names + * + * @since 3.16-beta3 + */ + public boolean getIncludeSheetNames() { + return includeSheetNames; + } + /** * Should we return the formula itself, and not * the result it produces? Default is false @@ -100,12 +117,33 @@ public class XSSFEventBasedExcelExtracto public void setFormulasNotResults(boolean formulasNotResults) { this.formulasNotResults = formulasNotResults; } + + /** + * + * @return whether to include formulas but not results + * + * @since 3.16-beta3 + */ + public boolean getFormulasNotResults() { + return formulasNotResults; + } + /** * Should headers and footers be included? Default is true */ public void setIncludeHeadersFooters(boolean includeHeadersFooters) { this.includeHeadersFooters = includeHeadersFooters; } + + /** + * + * @return whether or not to include headers and footers + * + * @since 3.16-beta3 + */ + public boolean getIncludeHeadersFooters() { + return includeHeadersFooters; + } /** * Should text from textboxes be included? Default is true */ @@ -114,6 +152,15 @@ public class XSSFEventBasedExcelExtracto } /** + * + * @return whether or not to extract textboxes + * + * @since 3.16-beta3 + */ + public boolean getIncludeTextBoxes() { + return includeTextBoxes; + } + /** * Should cell comments be included? Default is false */ public void setIncludeCellComments(boolean includeCellComments) { @@ -121,6 +168,14 @@ public class XSSFEventBasedExcelExtracto } /** + * @return whether cell comments should be included + * + * @since 3.16-beta3 + */ + public boolean getIncludeCellComments() { + return includeCellComments; + } + /** * Concatenate text from <rPh> text elements in SharedStringsTable * Default is true; * @param concatenatePhoneticRuns @@ -133,6 +188,14 @@ public class XSSFEventBasedExcelExtracto } /** + * @return locale + * + * @since 3.16-beta3 + */ + public Locale getLocale() { + return locale; + } + /** * Returns the opened OPCPackage container. */ @Override @@ -162,6 +225,8 @@ public class XSSFEventBasedExcelExtracto return properties.getCustomProperties(); } + + /** * Processes the given sheet */ @@ -229,13 +294,13 @@ public class XSSFEventBasedExcelExtracto return text.toString(); } catch(IOException e) { - System.err.println(e); + LOGGER.log(POILogger.WARN, e); return null; } catch(SAXException se) { - System.err.println(se); + LOGGER.log(POILogger.WARN, se); return null; } catch(OpenXML4JException o4je) { - System.err.println(o4je); + LOGGER.log(POILogger.WARN, o4je); return null; } } Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFImportFromXML.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFImportFromXML.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFImportFromXML.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFImportFromXML.java Fri Mar 17 10:09:59 2017 @@ -71,7 +71,7 @@ public class XSSFImportFromXML { private final XSSFMap _map; - private final static POILogger logger = POILogFactory.getLogger(XSSFImportFromXML.class); + private static final POILogger logger = POILogFactory.getLogger(XSSFImportFromXML.class); public XSSFImportFromXML(XSSFMap map) { _map = map; Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java Fri Mar 17 10:09:59 2017 @@ -85,7 +85,7 @@ public class SharedStringsTable extends private SstDocument _sstDoc; - private final static XmlOptions options = new XmlOptions(); + private static final XmlOptions options = new XmlOptions(); static { options.put( XmlOptions.SAVE_INNER ); options.put( XmlOptions.SAVE_AGGRESSIVE_NAMESPACES ); Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCell.java Fri Mar 17 10:09:59 2017 @@ -1069,8 +1069,8 @@ public class SXSSFCell implements Cell { static abstract class Property { - final static int COMMENT=1; - final static int HYPERLINK=2; + static final int COMMENT=1; + static final int HYPERLINK=2; Object _value; Property _next; public Property(Object value) Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFFormulaEvaluator.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFFormulaEvaluator.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFFormulaEvaluator.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFFormulaEvaluator.java Fri Mar 17 10:09:59 2017 @@ -34,7 +34,7 @@ import org.apache.poi.xssf.usermodel.Bas * lookup cells within the current Window. */ public final class SXSSFFormulaEvaluator extends BaseXSSFFormulaEvaluator { - private final static POILogger logger = POILogFactory.getLogger(SXSSFFormulaEvaluator.class); + private static final POILogger logger = POILogFactory.getLogger(SXSSFFormulaEvaluator.class); private SXSSFWorkbook wb; Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java Fri Mar 17 10:09:59 2017 @@ -59,19 +59,19 @@ public final class XSSFName implements N /** * A built-in defined name that specifies the workbook's print area */ - public final static String BUILTIN_PRINT_AREA = "_xlnm.Print_Area"; + public static final String BUILTIN_PRINT_AREA = "_xlnm.Print_Area"; /** * A built-in defined name that specifies the row(s) or column(s) to repeat * at the top of each printed page. */ - public final static String BUILTIN_PRINT_TITLE = "_xlnm.Print_Titles"; + public static final String BUILTIN_PRINT_TITLE = "_xlnm.Print_Titles"; /** * A built-in defined name that refers to a range containing the criteria values * to be used in applying an advanced filter to a range of data */ - public final static String BUILTIN_CRITERIA = "_xlnm.Criteria:"; + public static final String BUILTIN_CRITERIA = "_xlnm.Criteria:"; /** @@ -79,7 +79,7 @@ public final class XSSFName implements N * output values resulting from applying an advanced filter criteria to a source * range */ - public final static String BUILTIN_EXTRACT = "_xlnm.Extract:"; + public static final String BUILTIN_EXTRACT = "_xlnm.Extract:"; /** * ?an be one of the following @@ -88,22 +88,22 @@ public final class XSSFName implements N *
  • This defined name refers to a range to which an AutoFilter has been * applied */ - public final static String BUILTIN_FILTER_DB = "_xlnm._FilterDatabase"; + public static final String BUILTIN_FILTER_DB = "_xlnm._FilterDatabase"; /** * A built-in defined name that refers to a consolidation area */ - public final static String BUILTIN_CONSOLIDATE_AREA = "_xlnm.Consolidate_Area"; + public static final String BUILTIN_CONSOLIDATE_AREA = "_xlnm.Consolidate_Area"; /** * A built-in defined name that specified that the range specified is from a database data source */ - public final static String BUILTIN_DATABASE = "_xlnm.Database"; + public static final String BUILTIN_DATABASE = "_xlnm.Database"; /** * A built-in defined name that refers to a sheet title. */ - public final static String BUILTIN_SHEET_TITLE = "_xlnm.Sheet_Title"; + public static final String BUILTIN_SHEET_TITLE = "_xlnm.Sheet_Title"; private XSSFWorkbook _workbook; private CTDefinedName _ctName; Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPivotTable.java Fri Mar 17 10:09:59 2017 @@ -18,6 +18,7 @@ package org.apache.poi.xssf.usermodel; import static org.apache.poi.POIXMLTypeLoader.DEFAULT_XML_OPTIONS; +import javax.xml.namespace.QName; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -25,8 +26,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import javax.xml.namespace.QName; - import org.apache.poi.POIXMLDocumentPart; import org.apache.poi.openxml4j.opc.PackagePart; import org.apache.poi.ss.usermodel.Cell; @@ -40,13 +39,32 @@ import org.apache.poi.util.Beta; import org.apache.poi.util.Internal; import org.apache.xmlbeans.XmlException; import org.apache.xmlbeans.XmlOptions; -import org.openxmlformats.schemas.spreadsheetml.x2006.main.*; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCacheSource; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColFields; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDataField; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDataFields; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTField; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTItems; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTLocation; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageField; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageFields; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotCacheDefinition; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotField; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotFields; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotTableDefinition; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotTableStyle; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRowFields; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheetSource; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.STAxis; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.STDataConsolidateFunction; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.STItemType; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.STSourceType; public class XSSFPivotTable extends POIXMLDocumentPart { - protected final static short CREATED_VERSION = 3; - protected final static short MIN_REFRESHABLE_VERSION = 3; - protected final static short UPDATED_VERSION = 3; + protected static final short CREATED_VERSION = 3; + protected static final short MIN_REFRESHABLE_VERSION = 3; + protected static final short UPDATED_VERSION = 3; private CTPivotTableDefinition pivotTableDefinition; private XSSFPivotCacheDefinition pivotCacheDefinition; Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRelation.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRelation.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRelation.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRelation.java Fri Mar 17 10:09:59 2017 @@ -16,24 +16,13 @@ ==================================================================== */ package org.apache.poi.xssf.usermodel; -import java.io.IOException; -import java.io.InputStream; import java.util.HashMap; -import java.util.Iterator; import java.util.Map; import org.apache.poi.POIXMLDocument; import org.apache.poi.POIXMLDocumentPart; import org.apache.poi.POIXMLRelation; -import org.apache.poi.openxml4j.exceptions.InvalidFormatException; -import org.apache.poi.openxml4j.opc.PackagePart; -import org.apache.poi.openxml4j.opc.PackagePartName; -import org.apache.poi.openxml4j.opc.PackageRelationship; -import org.apache.poi.openxml4j.opc.PackageRelationshipCollection; import org.apache.poi.openxml4j.opc.PackageRelationshipTypes; -import org.apache.poi.openxml4j.opc.PackagingURIHelper; -import org.apache.poi.util.POILogFactory; -import org.apache.poi.util.POILogger; import org.apache.poi.xssf.model.CalculationChain; import org.apache.poi.xssf.model.CommentsTable; import org.apache.poi.xssf.model.ExternalLinksTable; @@ -49,8 +38,6 @@ import org.apache.poi.xssf.model.ThemesT */ public final class XSSFRelation extends POIXMLRelation { - private static final POILogger log = POILogFactory.getLogger(XSSFRelation.class); - /** * A map to lookup POIXMLRelation by its relation type */ @@ -369,25 +356,6 @@ public final class XSSFRelation extends } /** - * Fetches the InputStream to read the contents, based - * of the specified core part, for which we are defined - * as a suitable relationship - */ - public InputStream getContents(PackagePart corePart) throws IOException, InvalidFormatException { - PackageRelationshipCollection prc = - corePart.getRelationshipsByType(getRelation()); - Iterator it = prc.iterator(); - if(it.hasNext()) { - PackageRelationship rel = it.next(); - PackagePartName relName = PackagingURIHelper.createPartName(rel.getTargetURI()); - PackagePart part = corePart.getPackage().getPart(relName); - return part.getInputStream(); - } - log.log(POILogger.WARN, "No part " + getDefaultFileName() + " found"); - return null; - } - - /** * Get POIXMLRelation by relation type * * @param rel relation type, for example, Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/extractor/TestExtractorFactory.java Fri Mar 17 10:09:59 2017 @@ -175,16 +175,12 @@ public class TestExtractorFactory { extractor.close(); extractor = ExtractorFactory.createExtractor(xlsb); - assertTrue( - extractor.getText().contains("test") - ); + assertContains(extractor.getText(), "test"); extractor.close(); extractor = ExtractorFactory.createExtractor(xltx); - assertTrue( - extractor.getText().contains("test") - ); + assertContains(extractor.getText(), "test"); extractor.close(); // TODO Support OOXML-Strict, see bug #57699 @@ -258,9 +254,7 @@ public class TestExtractorFactory { extractor.close(); extractor = ExtractorFactory.createExtractor(dotx); - assertTrue( - extractor.getText().contains("Test") - ); + assertContains(extractor.getText(), "Test"); extractor.close(); // PowerPoint (PPT) Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFBReader.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFBReader.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFBReader.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFBReader.java Fri Mar 17 10:09:59 2017 @@ -17,9 +17,9 @@ package org.apache.poi.xssf.eventusermodel; +import static org.apache.poi.POITestCase.assertContains; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; import java.io.InputStream; import java.util.ArrayList; @@ -44,54 +44,52 @@ public class TestXSSFBReader { assertEquals(1, sheetTexts.size()); String xsxml = sheetTexts.get(0); - assertContains("This is a string", xsxml); - assertContains("13", xsxml); - assertContains("13.12112313", xsxml); - assertContains("$ 3.03", xsxml); - assertContains("20%", xsxml); - assertContains("13.12", xsxml); - assertContains("1.23457E+14", xsxml); - assertContains("1.23457E+15", xsxml); + assertContains(xsxml, "This is a string"); + assertContains(xsxml, "13"); + assertContains(xsxml, "13.12112313"); + assertContains(xsxml, "$ 3.03"); + assertContains(xsxml, "20%"); + assertContains(xsxml, "13.12"); + assertContains(xsxml, "1.23457E+14"); + assertContains(xsxml, "1.23457E+15"); - assertContains("46/1963", xsxml);//custom format 1 - assertContains("3/128", xsxml);//custom format 2 + assertContains(xsxml, "46/1963");//custom format 1 + assertContains(xsxml, "3/128");//custom format 2 - assertContains("\n" + + assertContains(xsxml, "\n" + "\tlonger int\n" + "\t1.23457E+15\n" + "\tAllison, Timothy B.:\n" + "test comment2\n" + - "", xsxml); + ""); - assertContains("\n" + + assertContains(xsxml, "\n" + "\tcomment6Allison, Timothy B.:\n" + "comment6 actually in cell\n" + - "", xsxml); + ""); - assertContains("\n" + + assertContains(xsxml, "\n" + "\tAllison, Timothy B.:\n" + "comment7 end of file\n" + - "", xsxml); + ""); - assertContains("\n" + + assertContains(xsxml, "\n" + "\tAllison, Timothy B.:\n" + "comment8 end of file\n" + - "", xsxml); + ""); - assertContains("
    OddLeftHeader OddCenterHeader OddRightHeader
    ", xsxml); - assertContains("
    OddLeftFooter OddCenterFooter OddRightFooter
    ", xsxml); - assertContains( - "
    EvenLeftHeader EvenCenterHeader EvenRightHeader\n
    ", - xsxml); - assertContains( - "
    EvenLeftFooter EvenCenterFooter EvenRightFooter
    ", - xsxml); - assertContains( - "
    FirstPageLeftHeader FirstPageCenterHeader FirstPageRightHeader
    ", - xsxml); - assertContains( - "
    FirstPageLeftFooter FirstPageCenterFooter FirstPageRightFooter
    ", - xsxml); + assertContains(xsxml, + "
    OddLeftHeader OddCenterHeader OddRightHeader
    "); + assertContains(xsxml, + "
    OddLeftFooter OddCenterFooter OddRightFooter
    "); + assertContains(xsxml, + "
    EvenLeftHeader EvenCenterHeader EvenRightHeader\n
    "); + assertContains(xsxml, + "
    EvenLeftFooter EvenCenterFooter EvenRightFooter
    "); + assertContains(xsxml, + "
    FirstPageLeftHeader FirstPageCenterHeader FirstPageRightHeader
    "); + assertContains(xsxml, + "
    FirstPageLeftFooter FirstPageCenterFooter FirstPageRightFooter
    "); } @@ -99,25 +97,24 @@ public class TestXSSFBReader { public void testComments() throws Exception { List sheetTexts = getSheets("comments.xlsb"); String xsxml = sheetTexts.get(0); - assertContains( + assertContains(xsxml, "\n" + "\tcomment top row1 (index0)\n" + "\trow1\n" + - "", xsxml); - assertContains( + ""); + assertContains(xsxml, "\n" + "\tAllison, Timothy B.:\n" + "comment row2 (index1)\n" + - "", - xsxml); - assertContains("\n" + + ""); + assertContains(xsxml, "\n" + "\trow3comment top row3 (index2)\n" + - "\trow3\n", xsxml); + "\trow3\n"); - assertContains("\n" + + assertContains(xsxml, "\n" + "\tcomment top row4 (index3)\n" + "\trow4\n" + - "", xsxml); + ""); } @@ -131,7 +128,7 @@ public class TestXSSFBReader { assertNotNull(r.getXSSFBStylesTable()); XSSFBSharedStringsTable sst = new XSSFBSharedStringsTable(pkg); XSSFBStylesTable xssfbStylesTable = r.getXSSFBStylesTable(); - XSSFBReader.SheetIterator it = (XSSFBReader.SheetIterator)r.getSheetsData(); + XSSFBReader.SheetIterator it = (XSSFBReader.SheetIterator) r.getSheetsData(); while (it.hasNext()) { InputStream is = it.next(); @@ -152,22 +149,11 @@ public class TestXSSFBReader { } - //This converts all [\r\n\t]+ to " " - private void assertContains(String needle, String haystack) { - needle = needle.replaceAll("[\r\n\t]+", " "); - haystack = haystack.replaceAll("[\r\n\t]+", " "); - if (haystack.indexOf(needle) < 0) { - fail("couldn't find >"+needle+"< in: "+haystack ); - } - } - - @Test public void testDate() throws Exception { List sheets = getSheets("date.xlsb"); assertEquals(1, sheets.size()); - assertContains("1/12/13", sheets.get(0)); - + assertContains(sheets.get(0), "1/12/13"); } @@ -178,9 +164,10 @@ public class TestXSSFBReader { sb.append(""); } - public void endSheet(){ + public void endSheet() { sb.append(""); } + @Override public void startRow(int rowNum) { sb.append("\n"); @@ -209,9 +196,9 @@ public class TestXSSFBReader { @Override public void headerFooter(String text, boolean isHeader, String tagName) { if (isHeader) { - sb.append("
    "+text+"
    "); + sb.append("
    " + text + "
    "); } else { - sb.append("
    "+text+"
    "); + sb.append(""); } } Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFBEventBasedExcelExtractor.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFBEventBasedExcelExtractor.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFBEventBasedExcelExtractor.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFBEventBasedExcelExtractor.java Fri Mar 17 10:09:59 2017 @@ -17,6 +17,7 @@ package org.apache.poi.xssf.extractor; +import static org.apache.poi.POITestCase.assertContains; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -90,10 +91,9 @@ public class TestXSSFBEventBasedExcelExt try { String text = ooxmlExtractor.getText(); - - assertTrue(text.indexOf("Line 1") > -1); - assertTrue(text.indexOf("Line 2") > -1); - assertTrue(text.indexOf("Line 3") > -1); + assertContains(text, "Line 1"); + assertContains(text, "Line 2"); + assertContains(text, "Line 3"); } finally { ooxmlExtractor.close(); } Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFEventBasedExcelExtractor.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFEventBasedExcelExtractor.java?rev=1787320&r1=1787319&r2=1787320&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFEventBasedExcelExtractor.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFEventBasedExcelExtractor.java Fri Mar 17 10:09:59 2017 @@ -17,6 +17,7 @@ package org.apache.poi.xssf.extractor; +import static org.apache.poi.POITestCase.assertContains; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -130,21 +131,21 @@ public class TestXSSFEventBasedExcelExtr String text = extractor.getText(); // Numbers - assertTrue("Unable to find expected word in text\n" + text, text.contains("43")); - assertTrue("Unable to find expected word in text\n" + text, text.contains("22")); + assertContains(text, "43"); + assertContains(text, "22"); // Strings - assertTrue("Unable to find expected word in text\n" + text, text.contains("ABCDE")); - assertTrue("Unable to find expected word in text\n" + text, text.contains("Long Text")); - + assertContains(text, "ABCDE"); + assertContains(text, "Long Text"); + // Inline Strings - assertTrue("Unable to find expected word in text\n" + text, text.contains("1st Inline String")); - assertTrue("Unable to find expected word in text\n" + text, text.contains("And More")); - + assertContains(text, "1st Inline String"); + assertContains(text, "And More"); + // Formulas - assertTrue("Unable to find expected word in text\n" + text, text.contains("A2")); - assertTrue("Unable to find expected word in text\n" + text, text.contains("A5-A$2")); - + assertContains(text, "A2"); + assertContains(text, "A5-A$2"); + extractor.close(); } @@ -185,10 +186,9 @@ public class TestXSSFEventBasedExcelExtr try { String text = ooxmlExtractor.getText(); - - assertTrue(text.indexOf("Line 1") > -1); - assertTrue(text.indexOf("Line 2") > -1); - assertTrue(text.indexOf("Line 3") > -1); + assertContains(text, "Line 1"); + assertContains(text, "Line 2"); + assertContains(text, "Line 3"); } finally { ooxmlExtractor.close(); } @@ -356,8 +356,8 @@ public class TestXSSFEventBasedExcelExtr new XSSFEventBasedExcelExtractor( XSSFTestDataSamples.openSamplePackage("59021.xlsx")); String text = ex.getText(); - assertTrue("can't find Abhkazia", text.contains("Abkhazia - Fixed")); - assertTrue("can't find 10/02/2016", text.contains("10/02/2016")); + assertContains(text, "Abkhazia - Fixed"); + assertContains(text, "10/02/2016"); ex.close(); } @@ -368,7 +368,7 @@ public class TestXSSFEventBasedExcelExtr new XSSFEventBasedExcelExtractor( XSSFTestDataSamples.openSamplePackage("51519.xlsx")); String text = ex.getText(); - assertTrue("can't find appended phonetic run", text.contains("\u65E5\u672C\u30AA\u30E9\u30AF\u30EB \u30CB\u30DB\u30F3")); + assertContains(text, "\u65E5\u672C\u30AA\u30E9\u30AF\u30EB \u30CB\u30DB\u30F3"); ex.close(); //now try turning them off --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org For additional commands, e-mail: commits-help@poi.apache.org