diff options
Diffstat (limited to 'src/java/org/apache/poi')
11 files changed, 47 insertions, 34 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<iSize; i++) { + for (final ValueEval arg : args) { Boolean tempVe; - ValueEval arg = args[i]; if (arg instanceof TwoDEval) { TwoDEval ae = (TwoDEval) arg; int height = ae.getHeight(); @@ -81,7 +80,9 @@ public abstract class BooleanFunction implements Function { } if (arg instanceof RefEval) { RefEval re = (RefEval) arg; - for (int sIx = re.getFirstSheetIndex(); sIx <= re.getLastSheetIndex(); sIx++) { + final int firstSheetIndex = re.getFirstSheetIndex(); + final int lastSheetIndex = re.getLastSheetIndex(); + for (int sIx = firstSheetIndex; sIx <= lastSheetIndex; sIx++) { ValueEval ve = re.getInnerValueEval(sIx); tempVe = OperandResolver.coerceValueToBoolean(ve, true); if (tempVe != null) { diff --git a/src/java/org/apache/poi/ss/formula/functions/CountUtils.java b/src/java/org/apache/poi/ss/formula/functions/CountUtils.java index 270f787bc7..5dae60f946 100644 --- a/src/java/org/apache/poi/ss/formula/functions/CountUtils.java +++ b/src/java/org/apache/poi/ss/formula/functions/CountUtils.java @@ -49,7 +49,9 @@ final class CountUtils { public static int countMatchingCellsInArea(ThreeDEval areaEval, I_MatchPredicate criteriaPredicate) { int result = 0; - for (int sIx=areaEval.getFirstSheetIndex(); sIx <= areaEval.getLastSheetIndex(); sIx++) { + final int firstSheetIndex = areaEval.getFirstSheetIndex(); + final int lastSheetIndex = areaEval.getLastSheetIndex(); + for (int sIx = firstSheetIndex; sIx <= lastSheetIndex; sIx++) { int height = areaEval.getHeight(); int width = areaEval.getWidth(); for (int rrIx=0; rrIx<height; rrIx++) { @@ -75,7 +77,9 @@ final class CountUtils { public static int countMatchingCellsInRef(RefEval refEval, I_MatchPredicate criteriaPredicate) { int result = 0; - for (int sIx = refEval.getFirstSheetIndex(); sIx <= refEval.getLastSheetIndex(); sIx++) { + final int firstSheetIndex = refEval.getFirstSheetIndex(); + final int lastSheetIndex = refEval.getLastSheetIndex(); + for (int sIx = firstSheetIndex; sIx <= lastSheetIndex; sIx++) { ValueEval ve = refEval.getInnerValueEval(sIx); if(criteriaPredicate.matches(ve)) { result++; diff --git a/src/java/org/apache/poi/ss/formula/functions/DStarRunner.java b/src/java/org/apache/poi/ss/formula/functions/DStarRunner.java index 519d7d91bb..f64253b914 100644 --- a/src/java/org/apache/poi/ss/formula/functions/DStarRunner.java +++ b/src/java/org/apache/poi/ss/formula/functions/DStarRunner.java @@ -89,7 +89,8 @@ public final class DStarRunner implements Function3Arg { } // Iterate over all DB entries. - for(int row = 1; row < db.getHeight(); ++row) { + final int height = db.getHeight(); + for(int row = 1; row < height; ++row) { boolean matches = true; try { matches = fullfillsConditions(db, row, cdb); @@ -189,7 +190,8 @@ public final class DStarRunner implements Function3Arg { private static int getColumnForString(TwoDEval db,String name) throws EvaluationException { int resultColumn = -1; - for(int column = 0; column < db.getWidth(); ++column) { + final int width = db.getWidth(); + for(int column = 0; column < width; ++column) { ValueEval columnNameValueEval = db.getValue(0, column); String columnName = getStringFromValueEval(columnNameValueEval); if(name.equals(columnName)) { @@ -215,9 +217,11 @@ public final class DStarRunner implements Function3Arg { // Only one row must match to accept the input, so rows are ORed. // Each row is made up of cells where each cell is a condition, // all have to match, so they are ANDed. - for(int conditionRow = 1; conditionRow < cdb.getHeight(); ++conditionRow) { + final int height = cdb.getHeight(); + for(int conditionRow = 1; conditionRow < height; ++conditionRow) { boolean matches = true; - for(int column = 0; column < cdb.getWidth(); ++column) { // columns are ANDed + final int width = cdb.getWidth(); + for(int column = 0; column < width; ++column) { // columns are ANDed // Whether the condition column matches a database column, if not it's a // special column that accepts formulas. boolean columnCondition = true; diff --git a/src/java/org/apache/poi/ss/formula/functions/Mode.java b/src/java/org/apache/poi/ss/formula/functions/Mode.java index 1e13504bbf..5f21324d53 100644 --- a/src/java/org/apache/poi/ss/formula/functions/Mode.java +++ b/src/java/org/apache/poi/ss/formula/functions/Mode.java @@ -106,7 +106,9 @@ public final class Mode implements Function { } if (arg instanceof RefEval) { RefEval re = (RefEval) arg; - for (int sIx = re.getFirstSheetIndex(); sIx <= re.getLastSheetIndex(); sIx++) { + final int firstSheetIndex = re.getFirstSheetIndex(); + final int lastSheetIndex = re.getLastSheetIndex(); + for (int sIx = firstSheetIndex; sIx <= lastSheetIndex; sIx++) { collectValue(re.getInnerValueEval(sIx), temp, true); } return; diff --git a/src/java/org/apache/poi/ss/formula/functions/TextFunction.java b/src/java/org/apache/poi/ss/formula/functions/TextFunction.java index 7cffa1b897..3c08eee787 100644 --- a/src/java/org/apache/poi/ss/formula/functions/TextFunction.java +++ b/src/java/org/apache/poi/ss/formula/functions/TextFunction.java @@ -126,9 +126,10 @@ public abstract class TextFunction implements Function { protected ValueEval evaluate(String text) { StringBuilder sb = new StringBuilder(); boolean shouldMakeUppercase = true; - String lowercaseText = text.toLowerCase(Locale.ROOT); - String uppercaseText = text.toUpperCase(Locale.ROOT); - for(int i = 0; i < text.length(); ++i) { + final String lowercaseText = text.toLowerCase(Locale.ROOT); + final String uppercaseText = text.toUpperCase(Locale.ROOT); + final int length = text.length(); + for(int i = 0; i < length; ++i) { if (shouldMakeUppercase) { sb.append(uppercaseText.charAt(i)); } diff --git a/src/java/org/apache/poi/ss/formula/ptg/ArrayPtg.java b/src/java/org/apache/poi/ss/formula/ptg/ArrayPtg.java index de107a2cbd..1dcf023b68 100644 --- a/src/java/org/apache/poi/ss/formula/ptg/ArrayPtg.java +++ b/src/java/org/apache/poi/ss/formula/ptg/ArrayPtg.java @@ -169,18 +169,18 @@ public final class ArrayPtg extends Ptg { public String toFormulaString() { StringBuffer b = new StringBuffer(); b.append("{"); - for (int y=0;y<getRowCount();y++) { + for (int y = 0; y < _nRows; y++) { if (y > 0) { b.append(";"); } - for (int x=0;x<getColumnCount();x++) { - if (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; } |