From ff0e46af6dad8c609bcc28a4a13b3119fb49d7eb Mon Sep 17 00:00:00 2001 From: Javen O'Neal Date: Sun, 3 Jul 2016 07:20:47 +0000 Subject: [PATCH] bug 59773: move loop invariants outside of loop or change for loops to for-each loops git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1751131 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/ss/formula/functions/BooleanFunction.java | 7 ++++--- .../poi/ss/formula/functions/CountUtils.java | 8 ++++++-- .../poi/ss/formula/functions/DStarRunner.java | 12 ++++++++---- .../org/apache/poi/ss/formula/functions/Mode.java | 4 +++- .../poi/ss/formula/functions/TextFunction.java | 7 ++++--- .../org/apache/poi/ss/formula/ptg/ArrayPtg.java | 14 +++++++------- .../org/apache/poi/ss/usermodel/DataFormatter.java | 3 +-- src/java/org/apache/poi/ss/usermodel/DateUtil.java | 12 +++++++----- src/java/org/apache/poi/ss/util/AreaReference.java | 2 +- src/java/org/apache/poi/util/DrawingDump.java | 9 +++++---- src/java/org/apache/poi/util/StringUtil.java | 3 +-- .../apache/poi/poifs/crypt/dsig/SignatureInfo.java | 4 +++- .../poi/xssf/streaming/SXSSFFormulaEvaluator.java | 13 ++++++------- .../xssf/usermodel/BaseXSSFEvaluationWorkbook.java | 8 ++++++-- .../org/apache/poi/xssf/usermodel/XSSFChart.java | 9 ++++++--- .../org/apache/poi/xssf/usermodel/XSSFSheet.java | 3 ++- 16 files changed, 70 insertions(+), 48 deletions(-) diff --git a/src/java/org/apache/poi/ss/formula/functions/BooleanFunction.java b/src/java/org/apache/poi/ss/formula/functions/BooleanFunction.java index 0970dc0bb2..5d011e3b20 100644 --- a/src/java/org/apache/poi/ss/formula/functions/BooleanFunction.java +++ b/src/java/org/apache/poi/ss/formula/functions/BooleanFunction.java @@ -60,9 +60,8 @@ public abstract class BooleanFunction implements Function { /* * Note: no short-circuit boolean loop exit because any ErrorEvals will override the result */ - for (int i=0, iSize=args.length; i 0) { b.append(";"); } - for (int x=0;x 0) { + for (int x = 0; x < _nColumns; x++) { + if (x > 0) { b.append(","); } - Object o = _arrayValues[getValueIndex(x, y)]; - b.append(getConstantText(o)); - } - } + Object o = _arrayValues[getValueIndex(x, y)]; + b.append(getConstantText(o)); + } + } b.append("}"); return b.toString(); } diff --git a/src/java/org/apache/poi/ss/usermodel/DataFormatter.java b/src/java/org/apache/poi/ss/usermodel/DataFormatter.java index 6771207cc5..4de0936f58 100644 --- a/src/java/org/apache/poi/ss/usermodel/DataFormatter.java +++ b/src/java/org/apache/poi/ss/usermodel/DataFormatter.java @@ -563,8 +563,7 @@ public class DataFormatter implements Observer { else if (c == 's' || c == 'S') { sb.append('s'); // if 'M' precedes 's' it should be minutes ('m') - for (int i = 0; i < ms.size(); i++) { - int index = ms.get(i).intValue(); + for (int index : ms) { if (sb.charAt(index) == 'M') { sb.replace(index, index+1, "m"); } diff --git a/src/java/org/apache/poi/ss/usermodel/DateUtil.java b/src/java/org/apache/poi/ss/usermodel/DateUtil.java index 1613a54f6a..f4e4cc5756 100644 --- a/src/java/org/apache/poi/ss/usermodel/DateUtil.java +++ b/src/java/org/apache/poi/ss/usermodel/DateUtil.java @@ -395,10 +395,11 @@ public class DateUtil { // The code above was reworked as suggested in bug 48425: // simple loop is more efficient than consecutive regexp replacements. }*/ - StringBuilder sb = new StringBuilder(fs.length()); - for (int i = 0; i < fs.length(); i++) { + final int length = fs.length(); + StringBuilder sb = new StringBuilder(length); + for (int i = 0; i < length; i++) { char c = fs.charAt(i); - if (i < fs.length() - 1) { + if (i < length - 1) { char nc = fs.charAt(i + 1); if (c == '\\') { switch (nc) { @@ -435,8 +436,9 @@ public class DateUtil { // You're allowed something like dd/mm/yy;[red]dd/mm/yy // which would place dates before 1900/1904 in red // For now, only consider the first one - if(fs.indexOf(';') > 0 && fs.indexOf(';') < fs.length()-1) { - fs = fs.substring(0, fs.indexOf(';')); + final int separatorIndex = fs.indexOf(';'); + if(0 < separatorIndex && separatorIndex < fs.length()-1) { + fs = fs.substring(0, separatorIndex); } // Ensure it has some date letters in it diff --git a/src/java/org/apache/poi/ss/util/AreaReference.java b/src/java/org/apache/poi/ss/util/AreaReference.java index 52e6d4aff5..8576511a2b 100644 --- a/src/java/org/apache/poi/ss/util/AreaReference.java +++ b/src/java/org/apache/poi/ss/util/AreaReference.java @@ -101,7 +101,7 @@ public class AreaReference { } } - private boolean isPlainColumn(String refPart) { + private static boolean isPlainColumn(String refPart) { for(int i=refPart.length()-1; i>=0; i--) { int ch = refPart.charAt(i); if (ch == '$' && i==0) { diff --git a/src/java/org/apache/poi/util/DrawingDump.java b/src/java/org/apache/poi/util/DrawingDump.java index 2f7e324d3b..bc06bcfc1a 100644 --- a/src/java/org/apache/poi/util/DrawingDump.java +++ b/src/java/org/apache/poi/util/DrawingDump.java @@ -27,6 +27,7 @@ import java.nio.charset.Charset; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.NPOIFSFileSystem; +import org.apache.poi.ss.usermodel.Sheet; /** * Dump out the aggregated escher records @@ -42,11 +43,11 @@ public class DrawingDump pw.println( "Drawing group:" ); wb.dumpDrawingGroupRecords(true); - for (int sheetNum = 1; sheetNum <= wb.getNumberOfSheets(); sheetNum++) + int i = 1; + for (Sheet sheet : wb) { - pw.println( "Sheet " + sheetNum + ":" ); - HSSFSheet sheet = wb.getSheetAt(sheetNum - 1); - sheet.dumpDrawingRecords(true, pw); + pw.println( "Sheet " + i + "(" + sheet.getSheetName() + "):" ); + ((HSSFSheet) sheet).dumpDrawingRecords(true, pw); } } finally { wb.close(); diff --git a/src/java/org/apache/poi/util/StringUtil.java b/src/java/org/apache/poi/util/StringUtil.java index afec8225d4..6272c14e50 100644 --- a/src/java/org/apache/poi/util/StringUtil.java +++ b/src/java/org/apache/poi/util/StringUtil.java @@ -271,8 +271,7 @@ public class StringUtil { public static boolean hasMultibyte(String value) { if (value == null) return false; - for (int i = 0; i < value.length(); i++) { - char c = value.charAt(i); + for (char c : value.toCharArray()) { if (c > 0xFF) { return true; } diff --git a/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureInfo.java b/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureInfo.java index 4eb8e49513..d7f648faea 100644 --- a/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureInfo.java +++ b/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureInfo.java @@ -229,7 +229,8 @@ public class SignatureInfo implements SignatureConfigurable { Document doc = DocumentHelper.readDocument(signaturePart.getInputStream()); XPath xpath = XPathFactory.newInstance().newXPath(); NodeList nl = (NodeList)xpath.compile("//*[@Id]").evaluate(doc, XPathConstants.NODESET); - for (int i=0; i)xmlSignature.getSignedInfo().getReferences()) { SignatureFacet.brokenJvmWorkaround(ref); } diff --git a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFFormulaEvaluator.java b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFFormulaEvaluator.java index ff81cd3578..3415af3010 100644 --- a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFFormulaEvaluator.java +++ b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFFormulaEvaluator.java @@ -23,6 +23,7 @@ import org.apache.poi.ss.formula.WorkbookEvaluator; import org.apache.poi.ss.formula.udf.UDFFinder; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogger; import org.apache.poi.xssf.usermodel.BaseXSSFFormulaEvaluator; @@ -100,26 +101,24 @@ public final class SXSSFFormulaEvaluator extends BaseXSSFFormulaEvaluator { SXSSFFormulaEvaluator eval = new SXSSFFormulaEvaluator(wb); // Check they're all available - for (int i=0; i -1) { if (! skipOutOfWindow) throw new RowFlushedException(0); logger.log(POILogger.INFO, "Rows up to " + lastFlushedRowNum + " have already been flushed, skipping"); } // Evaluate what we have - for (Row r : s) { + for (Row r : sheet) { for (Cell c : r) { if (c.getCellType() == Cell.CELL_TYPE_FORMULA) { eval.evaluateFormulaCell(c); diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java index 28a9ecf7d3..b2ca1e1809 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/BaseXSSFEvaluationWorkbook.java @@ -118,11 +118,14 @@ public abstract class BaseXSSFEvaluationWorkbook implements FormulaRenderingWork // Not properly referenced throw new RuntimeException("Book not linked for filename " + bookName); } + /* case-sensitive */ private int findExternalLinkIndex(String bookName, List tables) { - for (int i=0; i