mirror of https://github.com/apache/poi.git
Adjust some JavaDoc and fix some IDE warnings
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1871505 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4c034f0e20
commit
57b0576f63
|
@ -649,7 +649,7 @@ public class ToCSV {
|
||||||
// passed to the main method.
|
// passed to the main method.
|
||||||
converter.convertExcelToCSV(args[0], args[1]);
|
converter.convertExcelToCSV(args[0], args[1]);
|
||||||
}
|
}
|
||||||
else if(args.length == 3){
|
else if(args.length == 3) {
|
||||||
// The Source File/Folder, Destination Folder and Separator
|
// The Source File/Folder, Destination Folder and Separator
|
||||||
// were passed to the main method.
|
// were passed to the main method.
|
||||||
converter.convertExcelToCSV(args[0], args[1], args[2]);
|
converter.convertExcelToCSV(args[0], args[1], args[2]);
|
||||||
|
@ -711,7 +711,7 @@ public class ToCSV {
|
||||||
* be a call to the listFiles() method when made on an instance of the
|
* be a call to the listFiles() method when made on an instance of the
|
||||||
* File class and that object refers to a folder/directory
|
* File class and that object refers to a folder/directory
|
||||||
*/
|
*/
|
||||||
class ExcelFilenameFilter implements FilenameFilter {
|
static class ExcelFilenameFilter implements FilenameFilter {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine those files that will be returned by a call to the
|
* Determine those files that will be returned by a call to the
|
||||||
|
|
|
@ -63,7 +63,6 @@ import org.apache.poi.ss.formula.ptg.UnionPtg;
|
||||||
import org.apache.poi.ss.usermodel.Cell;
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
import org.apache.poi.ss.usermodel.CellRange;
|
import org.apache.poi.ss.usermodel.CellRange;
|
||||||
import org.apache.poi.ss.usermodel.CellStyle;
|
import org.apache.poi.ss.usermodel.CellStyle;
|
||||||
import org.apache.poi.ss.usermodel.CellType;
|
|
||||||
import org.apache.poi.ss.usermodel.DataValidation;
|
import org.apache.poi.ss.usermodel.DataValidation;
|
||||||
import org.apache.poi.ss.usermodel.DataValidationHelper;
|
import org.apache.poi.ss.usermodel.DataValidationHelper;
|
||||||
import org.apache.poi.ss.usermodel.Row;
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
|
@ -1452,15 +1451,15 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
|
||||||
* Sets desktop window pane display area, when the
|
* Sets desktop window pane display area, when the
|
||||||
* file is first opened in a viewer.
|
* file is first opened in a viewer.
|
||||||
*
|
*
|
||||||
* @param toprow the top row to show in desktop window pane
|
* @param topRow the top row to show in desktop window pane
|
||||||
* @param leftcol the left column to show in desktop window pane
|
* @param leftCol the left column to show in desktop window pane
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void showInPane(int toprow, int leftcol) {
|
public void showInPane(int topRow, int leftCol) {
|
||||||
int maxrow = SpreadsheetVersion.EXCEL97.getLastRowIndex();
|
int maxrow = SpreadsheetVersion.EXCEL97.getLastRowIndex();
|
||||||
if (toprow > maxrow) throw new IllegalArgumentException("Maximum row number is " + maxrow);
|
if (topRow > maxrow) throw new IllegalArgumentException("Maximum row number is " + maxrow);
|
||||||
|
|
||||||
showInPane((short)toprow, (short)leftcol);
|
showInPane((short) topRow, (short) leftCol);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Sets desktop window pane display area, when the
|
* Sets desktop window pane display area, when the
|
||||||
|
@ -1748,11 +1747,10 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
|
||||||
* For n < 0, it will shift columns left.
|
* For n < 0, it will shift columns left.
|
||||||
* Additionally adjusts formulas.
|
* Additionally adjusts formulas.
|
||||||
* Probably should also process other features (hyperlinks, comments...) in the way analog to shiftRows method
|
* Probably should also process other features (hyperlinks, comments...) in the way analog to shiftRows method
|
||||||
* @param startRow the row to start shifting
|
* @param startColumn the column to start shifting
|
||||||
* @param endRow the row to end shifting
|
* @param endColumn the column to end shifting
|
||||||
* @param n the number of rows to shift
|
* @param n the number of columns to shift
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Beta
|
@Beta
|
||||||
@Override
|
@Override
|
||||||
public void shiftColumns(int startColumn, int endColumn, int n){
|
public void shiftColumns(int startColumn, int endColumn, int n){
|
||||||
|
@ -2454,9 +2452,9 @@ public final class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet {
|
||||||
for (Object object : container.getChildren()) {
|
for (Object object : container.getChildren()) {
|
||||||
HSSFShape shape = (HSSFShape) object;
|
HSSFShape shape = (HSSFShape) object;
|
||||||
if (shape instanceof HSSFShapeGroup) {
|
if (shape instanceof HSSFShapeGroup) {
|
||||||
HSSFShape res = lookForComment((HSSFShapeContainer) shape, row, column);
|
HSSFComment res = lookForComment((HSSFShapeContainer) shape, row, column);
|
||||||
if (null != res) {
|
if (null != res) {
|
||||||
return (HSSFComment) res;
|
return res;
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -176,7 +176,6 @@ public class CellElapsedFormatter extends CellFormatter {
|
||||||
case 'h':
|
case 'h':
|
||||||
return 24;
|
return 24;
|
||||||
case 'm':
|
case 'm':
|
||||||
return 60;
|
|
||||||
case 's':
|
case 's':
|
||||||
return 60;
|
return 60;
|
||||||
case '0':
|
case '0':
|
||||||
|
|
|
@ -127,8 +127,8 @@ public final class CollaboratingWorkbooksEnvironment {
|
||||||
int nItems = evaluators.length;
|
int nItems = evaluators.length;
|
||||||
IEvaluationListener evalListener = evaluators[0].getEvaluationListener();
|
IEvaluationListener evalListener = evaluators[0].getEvaluationListener();
|
||||||
// make sure that all evaluators have the same listener
|
// make sure that all evaluators have the same listener
|
||||||
for(int i=0; i<nItems; i++) {
|
for (WorkbookEvaluator evaluator : evaluators) {
|
||||||
if(evalListener != evaluators[i].getEvaluationListener()) {
|
if (evalListener != evaluator.getEvaluationListener()) {
|
||||||
// This would be very complex to support
|
// This would be very complex to support
|
||||||
throw new RuntimeException("Workbook evaluators must all have the same evaluation listener");
|
throw new RuntimeException("Workbook evaluators must all have the same evaluation listener");
|
||||||
}
|
}
|
||||||
|
@ -145,13 +145,13 @@ public final class CollaboratingWorkbooksEnvironment {
|
||||||
*/
|
*/
|
||||||
private void unhookOldEnvironments(WorkbookEvaluator[] evaluators) {
|
private void unhookOldEnvironments(WorkbookEvaluator[] evaluators) {
|
||||||
Set<CollaboratingWorkbooksEnvironment> oldEnvs = new HashSet<>();
|
Set<CollaboratingWorkbooksEnvironment> oldEnvs = new HashSet<>();
|
||||||
for(int i=0; i<evaluators.length; i++) {
|
for (WorkbookEvaluator evaluator : evaluators) {
|
||||||
oldEnvs.add(evaluators[i].getEnvironment());
|
oldEnvs.add(evaluator.getEnvironment());
|
||||||
}
|
}
|
||||||
CollaboratingWorkbooksEnvironment[] oldCWEs = new CollaboratingWorkbooksEnvironment[oldEnvs.size()];
|
CollaboratingWorkbooksEnvironment[] oldCWEs = new CollaboratingWorkbooksEnvironment[oldEnvs.size()];
|
||||||
oldEnvs.toArray(oldCWEs);
|
oldEnvs.toArray(oldCWEs);
|
||||||
for (int i = 0; i < oldCWEs.length; i++) {
|
for (CollaboratingWorkbooksEnvironment oldCWE : oldCWEs) {
|
||||||
oldCWEs[i].unhook();
|
oldCWE.unhook();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -163,8 +163,8 @@ public final class CollaboratingWorkbooksEnvironment {
|
||||||
// Never dismantle the EMPTY environment
|
// Never dismantle the EMPTY environment
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (int i = 0; i < _evaluators.length; i++) {
|
for (WorkbookEvaluator evaluator : _evaluators) {
|
||||||
_evaluators[i].detachFromEnvironment();
|
evaluator.detachFromEnvironment();
|
||||||
}
|
}
|
||||||
_unhooked = true;
|
_unhooked = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -351,9 +351,9 @@ public final class OperationEvaluationContext {
|
||||||
ValueEval[] values = new ValueEval[tokens.length * tokens[0].length];
|
ValueEval[] values = new ValueEval[tokens.length * tokens[0].length];
|
||||||
|
|
||||||
int index = 0;
|
int index = 0;
|
||||||
for (int jdx = 0; jdx < tokens.length; jdx++) {
|
for (Object[] token : tokens) {
|
||||||
for (int idx = 0; idx < tokens[0].length; idx++) {
|
for (int idx = 0; idx < tokens[0].length; idx++) {
|
||||||
values[index++] = convertObjectEval(tokens[jdx][idx]);
|
values[index++] = convertObjectEval(token[idx]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -369,10 +369,10 @@ public final class OperationEvaluationContext {
|
||||||
return new StringEval((String)token);
|
return new StringEval((String)token);
|
||||||
}
|
}
|
||||||
if (token instanceof Double) {
|
if (token instanceof Double) {
|
||||||
return new NumberEval(((Double)token).doubleValue());
|
return new NumberEval((Double) token);
|
||||||
}
|
}
|
||||||
if (token instanceof Boolean) {
|
if (token instanceof Boolean) {
|
||||||
return BoolEval.valueOf(((Boolean)token).booleanValue());
|
return BoolEval.valueOf((Boolean) token);
|
||||||
}
|
}
|
||||||
if (token instanceof ErrorConstant) {
|
if (token instanceof ErrorConstant) {
|
||||||
return ErrorEval.valueOf(((ErrorConstant)token).getErrorCode());
|
return ErrorEval.valueOf(((ErrorConstant)token).getErrorCode());
|
||||||
|
@ -437,7 +437,7 @@ public final class OperationEvaluationContext {
|
||||||
|
|
||||||
// Try to parse it as a name
|
// Try to parse it as a name
|
||||||
int sheetNameAt = name.indexOf('!');
|
int sheetNameAt = name.indexOf('!');
|
||||||
EvaluationName evalName = null;
|
EvaluationName evalName;
|
||||||
if (sheetNameAt > -1) {
|
if (sheetNameAt > -1) {
|
||||||
// Sheet based name
|
// Sheet based name
|
||||||
String sheetName = name.substring(0, sheetNameAt);
|
String sheetName = name.substring(0, sheetNameAt);
|
||||||
|
|
|
@ -38,25 +38,25 @@ import org.apache.poi.ss.util.PaneInformation;
|
||||||
public interface Sheet extends Iterable<Row> {
|
public interface Sheet extends Iterable<Row> {
|
||||||
|
|
||||||
/* Constants for margins */
|
/* Constants for margins */
|
||||||
public static final short LeftMargin = 0;
|
short LeftMargin = 0;
|
||||||
|
|
||||||
public static final short RightMargin = 1;
|
short RightMargin = 1;
|
||||||
|
|
||||||
public static final short TopMargin = 2;
|
short TopMargin = 2;
|
||||||
|
|
||||||
public static final short BottomMargin = 3;
|
short BottomMargin = 3;
|
||||||
|
|
||||||
public static final short HeaderMargin = 4;
|
short HeaderMargin = 4;
|
||||||
|
|
||||||
public static final short FooterMargin = 5;
|
short FooterMargin = 5;
|
||||||
|
|
||||||
public static final byte PANE_LOWER_RIGHT = (byte) 0;
|
byte PANE_LOWER_RIGHT = (byte) 0;
|
||||||
|
|
||||||
public static final byte PANE_UPPER_RIGHT = (byte) 1;
|
byte PANE_UPPER_RIGHT = (byte) 1;
|
||||||
|
|
||||||
public static final byte PANE_LOWER_LEFT = (byte) 2;
|
byte PANE_LOWER_LEFT = (byte) 2;
|
||||||
|
|
||||||
public static final byte PANE_UPPER_LEFT = (byte) 3;
|
byte PANE_UPPER_LEFT = (byte) 3;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new row within the sheet and return the high level representation
|
* Create a new row within the sheet and return the high level representation
|
||||||
|
@ -79,7 +79,7 @@ public interface Sheet extends Iterable<Row> {
|
||||||
* defined you get a null. This is to say row 4 represents the fifth row on a sheet.
|
* defined you get a null. This is to say row 4 represents the fifth row on a sheet.
|
||||||
*
|
*
|
||||||
* @param rownum row to get (0-based)
|
* @param rownum row to get (0-based)
|
||||||
* @return Row representing the rownumber or null if its not defined on the sheet
|
* @return Row representing the row-number or null if its not defined on the sheet
|
||||||
*/
|
*/
|
||||||
Row getRow(int rownum);
|
Row getRow(int rownum);
|
||||||
|
|
||||||
|
@ -135,14 +135,14 @@ public interface Sheet extends Iterable<Row> {
|
||||||
*
|
*
|
||||||
* @param value true for right to left, false otherwise.
|
* @param value true for right to left, false otherwise.
|
||||||
*/
|
*/
|
||||||
public void setRightToLeft(boolean value);
|
void setRightToLeft(boolean value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether the text is displayed in right-to-left mode in the window
|
* Whether the text is displayed in right-to-left mode in the window
|
||||||
*
|
*
|
||||||
* @return whether the text is displayed in right-to-left mode in the window
|
* @return whether the text is displayed in right-to-left mode in the window
|
||||||
*/
|
*/
|
||||||
public boolean isRightToLeft();
|
boolean isRightToLeft();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the width (in units of 1/256th of a character width)<p>
|
* Set the width (in units of 1/256th of a character width)<p>
|
||||||
|
@ -266,7 +266,7 @@ public interface Sheet extends Iterable<Row> {
|
||||||
* (0 based) column, or null if no style has been
|
* (0 based) column, or null if no style has been
|
||||||
* set for that column
|
* set for that column
|
||||||
*/
|
*/
|
||||||
public CellStyle getColumnStyle(int column);
|
CellStyle getColumnStyle(int column);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Sets the CellStyle that applies to the given
|
* Sets the CellStyle that applies to the given
|
||||||
|
@ -357,14 +357,14 @@ public interface Sheet extends Iterable<Row> {
|
||||||
*
|
*
|
||||||
* @return the merged region at the specified index
|
* @return the merged region at the specified index
|
||||||
*/
|
*/
|
||||||
public CellRangeAddress getMergedRegion(int index);
|
CellRangeAddress getMergedRegion(int index);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the list of merged regions.
|
* Returns the list of merged regions.
|
||||||
*
|
*
|
||||||
* @return the list of merged regions
|
* @return the list of merged regions
|
||||||
*/
|
*/
|
||||||
public List<CellRangeAddress> getMergedRegions();
|
List<CellRangeAddress> getMergedRegions();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an iterator of the physical rows
|
* Returns an iterator of the physical rows
|
||||||
|
@ -616,7 +616,7 @@ public interface Sheet extends Iterable<Row> {
|
||||||
* Sets the protection enabled as well as the password
|
* Sets the protection enabled as well as the password
|
||||||
* @param password to set for protection. Pass <code>null</code> to remove protection
|
* @param password to set for protection. Pass <code>null</code> to remove protection
|
||||||
*/
|
*/
|
||||||
public void protectSheet(String password);
|
void protectSheet(String password);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Answer whether scenario protection is enabled or disabled
|
* Answer whether scenario protection is enabled or disabled
|
||||||
|
@ -642,7 +642,7 @@ public interface Sheet extends Iterable<Row> {
|
||||||
* @param scale window zoom magnification
|
* @param scale window zoom magnification
|
||||||
* @throws IllegalArgumentException if scale is invalid
|
* @throws IllegalArgumentException if scale is invalid
|
||||||
*/
|
*/
|
||||||
public void setZoom(int scale);
|
void setZoom(int scale);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The top row in the visible view when the sheet is
|
* The top row in the visible view when the sheet is
|
||||||
|
@ -664,10 +664,10 @@ public interface Sheet extends Iterable<Row> {
|
||||||
* Sets desktop window pane display area, when the
|
* Sets desktop window pane display area, when the
|
||||||
* file is first opened in a viewer.
|
* file is first opened in a viewer.
|
||||||
*
|
*
|
||||||
* @param toprow the top row to show in desktop window pane
|
* @param topRow the top row to show in desktop window pane
|
||||||
* @param leftcol the left column to show in desktop window pane
|
* @param leftCol the left column to show in desktop window pane
|
||||||
*/
|
*/
|
||||||
void showInPane(int toprow, int leftcol);
|
void showInPane(int topRow, int leftCol);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shifts rows between startRow and endRow n number of rows.
|
* Shifts rows between startRow and endRow n number of rows.
|
||||||
|
@ -1024,19 +1024,19 @@ public interface Sheet extends Iterable<Row> {
|
||||||
*/
|
*/
|
||||||
CellRange<? extends Cell> removeArrayFormula(Cell cell);
|
CellRange<? extends Cell> removeArrayFormula(Cell cell);
|
||||||
|
|
||||||
public DataValidationHelper getDataValidationHelper();
|
DataValidationHelper getDataValidationHelper();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the list of DataValidation in the sheet.
|
* Returns the list of DataValidation in the sheet.
|
||||||
* @return list of DataValidation in the sheet
|
* @return list of DataValidation in the sheet
|
||||||
*/
|
*/
|
||||||
public List<? extends DataValidation> getDataValidations();
|
List<? extends DataValidation> getDataValidations();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a data validation object
|
* Creates a data validation object
|
||||||
* @param dataValidation The Data validation object settings
|
* @param dataValidation The Data validation object settings
|
||||||
*/
|
*/
|
||||||
public void addValidationData(DataValidation dataValidation);
|
void addValidationData(DataValidation dataValidation);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable filtering for a range of cells
|
* Enable filtering for a range of cells
|
||||||
|
@ -1157,7 +1157,7 @@ public interface Sheet extends Iterable<Row> {
|
||||||
* @param column The 0-based index of the column to look at.
|
* @param column The 0-based index of the column to look at.
|
||||||
* @return hyperlink if there is a hyperlink anchored at row, column; otherwise returns null
|
* @return hyperlink if there is a hyperlink anchored at row, column; otherwise returns null
|
||||||
*/
|
*/
|
||||||
public Hyperlink getHyperlink(int row, int column);
|
Hyperlink getHyperlink(int row, int column);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a Hyperlink in this sheet located in a cell specified by {code addr}
|
* Get a Hyperlink in this sheet located in a cell specified by {code addr}
|
||||||
|
@ -1166,14 +1166,14 @@ public interface Sheet extends Iterable<Row> {
|
||||||
* @return hyperlink if there is a hyperlink anchored at {@code addr}; otherwise returns {@code null}
|
* @return hyperlink if there is a hyperlink anchored at {@code addr}; otherwise returns {@code null}
|
||||||
* @since POI 3.15 beta 3
|
* @since POI 3.15 beta 3
|
||||||
*/
|
*/
|
||||||
public Hyperlink getHyperlink(CellAddress addr);
|
Hyperlink getHyperlink(CellAddress addr);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a list of Hyperlinks in this sheet
|
* Get a list of Hyperlinks in this sheet
|
||||||
*
|
*
|
||||||
* @return Hyperlinks for the sheet
|
* @return Hyperlinks for the sheet
|
||||||
*/
|
*/
|
||||||
public List<? extends Hyperlink> getHyperlinkList();
|
List<? extends Hyperlink> getHyperlinkList();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return location of the active cell, e.g. <code>A1</code>.
|
* Return location of the active cell, e.g. <code>A1</code>.
|
||||||
|
@ -1181,7 +1181,7 @@ public interface Sheet extends Iterable<Row> {
|
||||||
* @return the location of the active cell.
|
* @return the location of the active cell.
|
||||||
* @since 3.14beta1
|
* @since 3.14beta1
|
||||||
*/
|
*/
|
||||||
public CellAddress getActiveCell();
|
CellAddress getActiveCell();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets location of the active cell
|
* Sets location of the active cell
|
||||||
|
@ -1189,5 +1189,5 @@ public interface Sheet extends Iterable<Row> {
|
||||||
* @param address the location of the active cell, e.g. <code>A1</code>.
|
* @param address the location of the active cell, e.g. <code>A1</code>.
|
||||||
* @since 3.14beta1
|
* @since 3.14beta1
|
||||||
*/
|
*/
|
||||||
public void setActiveCell(CellAddress address);
|
void setActiveCell(CellAddress address);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,7 @@ import java.io.FileInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.security.GeneralSecurityException;
|
import java.security.GeneralSecurityException;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.security.SecureRandom;
|
import java.security.SecureRandom;
|
||||||
|
@ -381,7 +382,7 @@ public class AgileEncryptor extends Encryptor implements Cloneable {
|
||||||
xo.setSaveNoXmlDecl();
|
xo.setSaveNoXmlDecl();
|
||||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||||
try {
|
try {
|
||||||
bos.write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n".getBytes("UTF-8"));
|
bos.write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n".getBytes(StandardCharsets.UTF_8));
|
||||||
ed.save(bos, xo);
|
ed.save(bos, xo);
|
||||||
bos.writeTo(os);
|
bos.writeTo(os);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
|
|
@ -915,13 +915,13 @@ public class SXSSFSheet implements Sheet
|
||||||
* Sets desktop window pane display area, when the
|
* Sets desktop window pane display area, when the
|
||||||
* file is first opened in a viewer.
|
* file is first opened in a viewer.
|
||||||
*
|
*
|
||||||
* @param toprow the top row to show in desktop window pane
|
* @param topRow the top row to show in desktop window pane
|
||||||
* @param leftcol the left column to show in desktop window pane
|
* @param leftCol the left column to show in desktop window pane
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void showInPane(int toprow, int leftcol)
|
public void showInPane(int topRow, int leftCol)
|
||||||
{
|
{
|
||||||
_sh.showInPane(toprow, leftcol);
|
_sh.showInPane(topRow, leftCol);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -29,6 +29,7 @@ import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.io.OutputStreamWriter;
|
import java.io.OutputStreamWriter;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
import org.apache.poi.ss.usermodel.Cell;
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
|
@ -103,7 +104,7 @@ public class SheetDataWriter implements Closeable {
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
return new BufferedWriter(
|
return new BufferedWriter(
|
||||||
new OutputStreamWriter(decorated, "UTF-8"));
|
new OutputStreamWriter(decorated, StandardCharsets.UTF_8));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -113,7 +114,7 @@ public class SheetDataWriter implements Closeable {
|
||||||
*
|
*
|
||||||
* @param fos the stream to decorate
|
* @param fos the stream to decorate
|
||||||
* @return a decorated stream
|
* @return a decorated stream
|
||||||
* @throws IOException
|
* @throws IOException if decorating the stream fails
|
||||||
* @see #decorateInputStream(FileInputStream)
|
* @see #decorateInputStream(FileInputStream)
|
||||||
*/
|
*/
|
||||||
protected OutputStream decorateOutputStream(FileOutputStream fos) throws IOException {
|
protected OutputStream decorateOutputStream(FileOutputStream fos) throws IOException {
|
||||||
|
@ -154,7 +155,7 @@ public class SheetDataWriter implements Closeable {
|
||||||
*
|
*
|
||||||
* @param fis the stream to decorate
|
* @param fis the stream to decorate
|
||||||
* @return a decorated stream
|
* @return a decorated stream
|
||||||
* @throws IOException
|
* @throws IOException if decorating the stream fails
|
||||||
* @see #decorateOutputStream(FileOutputStream)
|
* @see #decorateOutputStream(FileOutputStream)
|
||||||
*/
|
*/
|
||||||
protected InputStream decorateInputStream(FileInputStream fis) throws IOException {
|
protected InputStream decorateInputStream(FileInputStream fis) throws IOException {
|
||||||
|
|
|
@ -267,6 +267,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
for (CTRow row : worksheetParam.getSheetData().getRowArray()) {
|
for (CTRow row : worksheetParam.getSheetData().getRowArray()) {
|
||||||
XSSFRow r = new XSSFRow(row, this);
|
XSSFRow r = new XSSFRow(row, this);
|
||||||
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
||||||
|
//noinspection UnnecessaryBoxing
|
||||||
final Integer rownumI = Integer.valueOf(r.getRowNum()); // NOSONAR
|
final Integer rownumI = Integer.valueOf(r.getRowNum()); // NOSONAR
|
||||||
_rows.put(rownumI, r);
|
_rows.put(rownumI, r);
|
||||||
}
|
}
|
||||||
|
@ -756,6 +757,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
@Override
|
@Override
|
||||||
public XSSFRow createRow(int rownum) {
|
public XSSFRow createRow(int rownum) {
|
||||||
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
||||||
|
//noinspection UnnecessaryBoxing
|
||||||
final Integer rownumI = Integer.valueOf(rownum); // NOSONAR
|
final Integer rownumI = Integer.valueOf(rownum); // NOSONAR
|
||||||
CTRow ctRow;
|
CTRow ctRow;
|
||||||
XSSFRow prev = _rows.get(rownumI);
|
XSSFRow prev = _rows.get(rownumI);
|
||||||
|
@ -1073,7 +1075,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
@Override
|
@Override
|
||||||
public boolean isDisplayZeros(){
|
public boolean isDisplayZeros(){
|
||||||
final CTSheetView dsv = getDefaultSheetView(false);
|
final CTSheetView dsv = getDefaultSheetView(false);
|
||||||
return (dsv != null) ? dsv.getShowZeros() : true;
|
return (dsv == null) || dsv.getShowZeros();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1380,7 +1382,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
if (pane.isSetTopLeftCell()) {
|
if (pane.isSetTopLeftCell()) {
|
||||||
final CellReference cellRef = new CellReference(pane.getTopLeftCell());
|
final CellReference cellRef = new CellReference(pane.getTopLeftCell());
|
||||||
row = (short)cellRef.getRow();
|
row = (short)cellRef.getRow();
|
||||||
col = (short)cellRef.getCol();
|
col = cellRef.getCol();
|
||||||
}
|
}
|
||||||
|
|
||||||
final short x = (short)pane.getXSplit();
|
final short x = (short)pane.getXSplit();
|
||||||
|
@ -1477,6 +1479,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
@Override
|
@Override
|
||||||
public XSSFRow getRow(int rownum) {
|
public XSSFRow getRow(int rownum) {
|
||||||
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
||||||
|
//noinspection UnnecessaryBoxing
|
||||||
final Integer rownumI = Integer.valueOf(rownum); // NOSONAR
|
final Integer rownumI = Integer.valueOf(rownum); // NOSONAR
|
||||||
return _rows.get(rownumI);
|
return _rows.get(rownumI);
|
||||||
}
|
}
|
||||||
|
@ -1509,7 +1512,9 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
||||||
|
//noinspection UnnecessaryBoxing
|
||||||
final Integer startI = Integer.valueOf(startRowNum); // NOSONAR
|
final Integer startI = Integer.valueOf(startRowNum); // NOSONAR
|
||||||
|
//noinspection UnnecessaryBoxing
|
||||||
final Integer endI = Integer.valueOf(endRowNum+1); // NOSONAR
|
final Integer endI = Integer.valueOf(endRowNum+1); // NOSONAR
|
||||||
final Collection<XSSFRow> inclusive = _rows.subMap(startI, endI).values();
|
final Collection<XSSFRow> inclusive = _rows.subMap(startI, endI).values();
|
||||||
rows.addAll(inclusive);
|
rows.addAll(inclusive);
|
||||||
|
@ -1774,7 +1779,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
@Override
|
@Override
|
||||||
public boolean isDisplayFormulas() {
|
public boolean isDisplayFormulas() {
|
||||||
final CTSheetView dsv = getDefaultSheetView(false);
|
final CTSheetView dsv = getDefaultSheetView(false);
|
||||||
return (dsv != null) ? dsv.getShowFormulas() : false;
|
return dsv != null && dsv.getShowFormulas();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1787,7 +1792,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
@Override
|
@Override
|
||||||
public boolean isDisplayGridlines() {
|
public boolean isDisplayGridlines() {
|
||||||
final CTSheetView dsv = getDefaultSheetView(false);
|
final CTSheetView dsv = getDefaultSheetView(false);
|
||||||
return (dsv != null) ? dsv.getShowGridLines() : true;
|
return (dsv == null) || dsv.getShowGridLines();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1820,7 +1825,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
@Override
|
@Override
|
||||||
public boolean isDisplayRowColHeadings() {
|
public boolean isDisplayRowColHeadings() {
|
||||||
final CTSheetView dsv = getDefaultSheetView(false);
|
final CTSheetView dsv = getDefaultSheetView(false);
|
||||||
return (dsv != null) ? dsv.getShowRowColHeaders() : true;
|
return (dsv == null) || dsv.getShowRowColHeaders();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2017,8 +2022,9 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
row.removeCell(cell);
|
row.removeCell(cell);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
|
||||||
final int rowNum = row.getRowNum();
|
final int rowNum = row.getRowNum();
|
||||||
|
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
||||||
|
//noinspection UnnecessaryBoxing
|
||||||
final Integer rowNumI = Integer.valueOf(rowNum); // NOSONAR
|
final Integer rowNumI = Integer.valueOf(rowNum); // NOSONAR
|
||||||
// this is not the physical row number!
|
// this is not the physical row number!
|
||||||
final int idx = _rows.headMap(rowNumI).size();
|
final int idx = _rows.headMap(rowNumI).size();
|
||||||
|
@ -2272,8 +2278,8 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void unsetCollapsed(Boolean collapsed, CTCol ci) {
|
private void unsetCollapsed(Boolean collapsed, CTCol ci) {
|
||||||
if (collapsed != null && collapsed.booleanValue()) {
|
if (collapsed != null && collapsed) {
|
||||||
ci.setCollapsed(collapsed);
|
ci.setCollapsed(true);
|
||||||
} else {
|
} else {
|
||||||
ci.unsetCollapsed();
|
ci.unsetCollapsed();
|
||||||
}
|
}
|
||||||
|
@ -3067,6 +3073,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
_rows.clear();
|
_rows.clear();
|
||||||
for(XSSFRow r : rowList) {
|
for(XSSFRow r : rowList) {
|
||||||
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
||||||
|
//noinspection UnnecessaryBoxing
|
||||||
final Integer rownumI = new Integer(r.getRowNum()); // NOSONAR
|
final Integer rownumI = new Integer(r.getRowNum()); // NOSONAR
|
||||||
_rows.put(rownumI, r);
|
_rows.put(rownumI, r);
|
||||||
}
|
}
|
||||||
|
@ -3082,6 +3089,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
if (shouldRemoveRow(startRow, endRow, n, rownum)) {
|
if (shouldRemoveRow(startRow, endRow, n, rownum)) {
|
||||||
// remove row from worksheet.getSheetData row array
|
// remove row from worksheet.getSheetData row array
|
||||||
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
// Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
|
||||||
|
//noinspection UnnecessaryBoxing
|
||||||
final Integer rownumI = Integer.valueOf(row.getRowNum()); // NOSONAR
|
final Integer rownumI = Integer.valueOf(row.getRowNum()); // NOSONAR
|
||||||
int idx = _rows.headMap(rownumI).size();
|
int idx = _rows.headMap(rownumI).size();
|
||||||
worksheet.getSheetData().removeRow(idx);
|
worksheet.getSheetData().removeRow(idx);
|
||||||
|
@ -3266,12 +3274,12 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
* Location of the top left visible cell Location of the top left visible cell in the bottom right
|
* Location of the top left visible cell Location of the top left visible cell in the bottom right
|
||||||
* pane (when in Left-to-Right mode).
|
* pane (when in Left-to-Right mode).
|
||||||
*
|
*
|
||||||
* @param toprow the top row to show in desktop window pane
|
* @param topRow the top row to show in desktop window pane
|
||||||
* @param leftcol the left column to show in desktop window pane
|
* @param leftCol the left column to show in desktop window pane
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void showInPane(int toprow, int leftcol) {
|
public void showInPane(int topRow, int leftCol) {
|
||||||
final CellReference cellReference = new CellReference(toprow, leftcol);
|
final CellReference cellReference = new CellReference(topRow, leftCol);
|
||||||
final String cellRef = cellReference.formatAsString();
|
final String cellRef = cellReference.formatAsString();
|
||||||
final CTPane pane = getPane(true);
|
final CTPane pane = getPane(true);
|
||||||
assert(pane != null);
|
assert(pane != null);
|
||||||
|
@ -3357,7 +3365,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
@Override
|
@Override
|
||||||
public boolean isSelected() {
|
public boolean isSelected() {
|
||||||
final CTSheetView dsv = getDefaultSheetView(false);
|
final CTSheetView dsv = getDefaultSheetView(false);
|
||||||
return (dsv != null) ? dsv.getTabSelected() : false;
|
return dsv != null && dsv.getTabSelected();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -3516,8 +3524,8 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
if (n > 0 && rownum > endRow) {
|
if (n > 0 && rownum > endRow) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (n < 0 && rownum < startRow) {
|
else {
|
||||||
return true;
|
return n < 0 && rownum < startRow;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -4711,7 +4719,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (coo == null) ? null : coo;
|
return coo;
|
||||||
} finally {
|
} finally {
|
||||||
cur.dispose();
|
cur.dispose();
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ package org.apache.poi.xssf.model;
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -252,7 +253,7 @@ public final class TestSharedStringsTable extends TestCase {
|
||||||
List<String> strs = new ArrayList<>();
|
List<String> strs = new ArrayList<>();
|
||||||
POIDataSamples samples = POIDataSamples.getSpreadSheetInstance();
|
POIDataSamples samples = POIDataSamples.getSpreadSheetInstance();
|
||||||
BufferedReader br = new BufferedReader(
|
BufferedReader br = new BufferedReader(
|
||||||
new InputStreamReader(samples.openResourceAsStream(filename), "UTF-8"));
|
new InputStreamReader(samples.openResourceAsStream(filename), StandardCharsets.UTF_8));
|
||||||
String s;
|
String s;
|
||||||
while ((s = br.readLine()) != null) {
|
while ((s = br.readLine()) != null) {
|
||||||
if (s.trim().length() > 0) {
|
if (s.trim().length() > 0) {
|
||||||
|
|
|
@ -26,6 +26,7 @@ import static org.junit.Assert.assertTrue;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
import org.apache.poi.util.IOUtils;
|
import org.apache.poi.util.IOUtils;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -63,7 +64,7 @@ public final class TestSheetDataWriter {
|
||||||
FileInputStream is = new FileInputStream(file);
|
FileInputStream is = new FileInputStream(file);
|
||||||
String text;
|
String text;
|
||||||
try {
|
try {
|
||||||
text = new String(IOUtils.toByteArray(is), "UTF-8");
|
text = new String(IOUtils.toByteArray(is), StandardCharsets.UTF_8);
|
||||||
} finally {
|
} finally {
|
||||||
is.close();
|
is.close();
|
||||||
}
|
}
|
||||||
|
@ -82,7 +83,7 @@ public final class TestSheetDataWriter {
|
||||||
FileInputStream is = new FileInputStream(file);
|
FileInputStream is = new FileInputStream(file);
|
||||||
String text;
|
String text;
|
||||||
try {
|
try {
|
||||||
text = new String(IOUtils.toByteArray(is), "UTF-8");
|
text = new String(IOUtils.toByteArray(is), StandardCharsets.UTF_8);
|
||||||
} finally {
|
} finally {
|
||||||
is.close();
|
is.close();
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,7 @@ import java.io.FileInputStream;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -697,7 +698,7 @@ public final class TestXSSFWorkbook extends BaseTestXWorkbook {
|
||||||
|
|
||||||
sheetBack.commit();
|
sheetBack.commit();
|
||||||
|
|
||||||
String str = new String(IOUtils.toByteArray(sheetBack.getPackagePart().getInputStream()), "UTF-8");
|
String str = new String(IOUtils.toByteArray(sheetBack.getPackagePart().getInputStream()), StandardCharsets.UTF_8);
|
||||||
|
|
||||||
assertEquals(1, countMatches(str, "<worksheet"));
|
assertEquals(1, countMatches(str, "<worksheet"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@ import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
import org.apache.poi.POIDataSamples;
|
import org.apache.poi.POIDataSamples;
|
||||||
import org.apache.poi.hmef.attribute.MAPIAttribute;
|
import org.apache.poi.hmef.attribute.MAPIAttribute;
|
||||||
|
@ -118,7 +119,7 @@ public final class TestCompressedRTF {
|
||||||
// Decompress it
|
// Decompress it
|
||||||
CompressedRTF comp = new CompressedRTF();
|
CompressedRTF comp = new CompressedRTF();
|
||||||
byte[] decomp = comp.decompress(new ByteArrayInputStream(data));
|
byte[] decomp = comp.decompress(new ByteArrayInputStream(data));
|
||||||
String decompStr = new String(decomp, "ASCII");
|
String decompStr = new String(decomp, StandardCharsets.US_ASCII);
|
||||||
|
|
||||||
// Test
|
// Test
|
||||||
assertEquals(block1.length(), decomp.length);
|
assertEquals(block1.length(), decomp.length);
|
||||||
|
@ -147,7 +148,7 @@ public final class TestCompressedRTF {
|
||||||
// Decompress it
|
// Decompress it
|
||||||
CompressedRTF comp = new CompressedRTF();
|
CompressedRTF comp = new CompressedRTF();
|
||||||
byte[] decomp = comp.decompress(new ByteArrayInputStream(data));
|
byte[] decomp = comp.decompress(new ByteArrayInputStream(data));
|
||||||
String decompStr = new String(decomp, "ASCII");
|
String decompStr = new String(decomp, StandardCharsets.US_ASCII);
|
||||||
|
|
||||||
// Test
|
// Test
|
||||||
assertEquals(block2.length(), decomp.length);
|
assertEquals(block2.length(), decomp.length);
|
||||||
|
@ -195,7 +196,7 @@ public final class TestCompressedRTF {
|
||||||
}
|
}
|
||||||
|
|
||||||
// By String
|
// By String
|
||||||
String expString = new String(expected, "ASCII");
|
String expString = new String(expected, StandardCharsets.US_ASCII);
|
||||||
String decompStr = rtfAttr.getDataString();
|
String decompStr = rtfAttr.getDataString();
|
||||||
assertEquals(expString.length(), decompStr.length());
|
assertEquals(expString.length(), decompStr.length());
|
||||||
assertEquals(expString, decompStr);
|
assertEquals(expString, decompStr);
|
||||||
|
|
|
@ -27,6 +27,7 @@ import java.io.ByteArrayInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
import org.apache.poi.POIDataSamples;
|
import org.apache.poi.POIDataSamples;
|
||||||
import org.apache.poi.hmef.attribute.MAPIAttribute;
|
import org.apache.poi.hmef.attribute.MAPIAttribute;
|
||||||
|
@ -109,7 +110,7 @@ public final class TestHMEFMessage {
|
||||||
);
|
);
|
||||||
assertEquals(
|
assertEquals(
|
||||||
"IPM.Microsoft Mail.Note\0",
|
"IPM.Microsoft Mail.Note\0",
|
||||||
new String(msg.getMessageAttribute(TNEFProperty.ID_MESSAGECLASS).getData(), "ASCII")
|
new String(msg.getMessageAttribute(TNEFProperty.ID_MESSAGECLASS).getData(), StandardCharsets.US_ASCII)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,7 +142,7 @@ public final class TestHMEFMessage {
|
||||||
// Then by String
|
// Then by String
|
||||||
String contents = msg.getBody();
|
String contents = msg.getBody();
|
||||||
// It's all low bytes
|
// It's all low bytes
|
||||||
byte[] contentsBytes = contents.getBytes("ASCII");
|
byte[] contentsBytes = contents.getBytes(StandardCharsets.US_ASCII);
|
||||||
assertContents("message.rtf", contentsBytes);
|
assertContents("message.rtf", contentsBytes);
|
||||||
|
|
||||||
// try to get a message id that does not exist
|
// try to get a message id that does not exist
|
||||||
|
@ -163,7 +164,7 @@ public final class TestHMEFMessage {
|
||||||
String contents = msg.getBody();
|
String contents = msg.getBody();
|
||||||
//System.out.println(contents);
|
//System.out.println(contents);
|
||||||
// It's all low bytes
|
// It's all low bytes
|
||||||
byte[] contentsBytes = contents.getBytes("ASCII");
|
byte[] contentsBytes = contents.getBytes(StandardCharsets.US_ASCII);
|
||||||
// assertContents("message.rtf", contentsBytes);
|
// assertContents("message.rtf", contentsBytes);
|
||||||
assertNotNull(contentsBytes);
|
assertNotNull(contentsBytes);
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ import static org.junit.Assert.assertNotNull;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
@ -74,7 +75,7 @@ public final class TestTNEFAttributes {
|
||||||
// Claims not to be text, but really is
|
// Claims not to be text, but really is
|
||||||
assertEquals(
|
assertEquals(
|
||||||
"IPM.Microsoft Mail.Note\0",
|
"IPM.Microsoft Mail.Note\0",
|
||||||
new String(quick.getMessageAttribute(TNEFProperty.ID_MESSAGECLASS).getData(), "ASCII")
|
new String(quick.getMessageAttribute(TNEFProperty.ID_MESSAGECLASS).getData(), StandardCharsets.US_ASCII)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Try constructing two attributes
|
// Try constructing two attributes
|
||||||
|
@ -135,7 +136,7 @@ public final class TestTNEFAttributes {
|
||||||
assertEquals(TNEFStringAttribute.class, attr.getClass());
|
assertEquals(TNEFStringAttribute.class, attr.getClass());
|
||||||
|
|
||||||
// It is a null terminated string
|
// It is a null terminated string
|
||||||
assertEquals("quick.doc\u0000", new String(attr.getData(), "ASCII"));
|
assertEquals("quick.doc\u0000", new String(attr.getData(), StandardCharsets.US_ASCII));
|
||||||
|
|
||||||
// But when we ask for the string, that is sorted for us
|
// But when we ask for the string, that is sorted for us
|
||||||
TNEFStringAttribute str = (TNEFStringAttribute) attr;
|
TNEFStringAttribute str = (TNEFStringAttribute) attr;
|
||||||
|
|
|
@ -20,6 +20,7 @@ package org.apache.poi.hslf.record;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests that TextBytesAtom works properly
|
* Tests that TextBytesAtom works properly
|
||||||
|
@ -54,7 +55,7 @@ public final class TestTextBytesAtom extends TestCase {
|
||||||
|
|
||||||
public void testChangeText() throws Exception {
|
public void testChangeText() throws Exception {
|
||||||
TextBytesAtom tba = new TextBytesAtom(data,0,data.length);
|
TextBytesAtom tba = new TextBytesAtom(data,0,data.length);
|
||||||
tba.setText(alt_text.getBytes("ISO-8859-1"));
|
tba.setText(alt_text.getBytes(StandardCharsets.ISO_8859_1));
|
||||||
|
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
tba.writeOut(baos);
|
tba.writeOut(baos);
|
||||||
|
|
|
@ -68,19 +68,19 @@ public final class TestMinusZeroResult extends TestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testTextRendering() {
|
public void testTextRendering() {
|
||||||
confirmTextRendering("-0", MINUS_ZERO);
|
confirmTextRendering(MINUS_ZERO);
|
||||||
// sub-normal negative numbers also display as '-0'
|
// sub-normal negative numbers also display as '-0'
|
||||||
confirmTextRendering("-0", Double.longBitsToDouble(0x8000100020003000L));
|
confirmTextRendering(Double.longBitsToDouble(0x8000100020003000L));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Uses {@link ConcatEval} to force number-to-text conversion
|
* Uses {@link ConcatEval} to force number-to-text conversion
|
||||||
*/
|
*/
|
||||||
private static void confirmTextRendering(String expRendering, double d) {
|
private static void confirmTextRendering(double d) {
|
||||||
ValueEval[] args = { StringEval.EMPTY_INSTANCE, new NumberEval(d), };
|
ValueEval[] args = { StringEval.EMPTY_INSTANCE, new NumberEval(d), };
|
||||||
StringEval se = (StringEval) EvalInstances.Concat.evaluate(args, -1, (short)-1);
|
StringEval se = (StringEval) EvalInstances.Concat.evaluate(args, -1, (short)-1);
|
||||||
String result = se.getStringValue();
|
String result = se.getStringValue();
|
||||||
assertEquals(expRendering, result);
|
assertEquals("-0", result);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void checkEval(double expectedResult, Function instance, double... dArgs) {
|
private static void checkEval(double expectedResult, Function instance, double... dArgs) {
|
||||||
|
@ -104,12 +104,14 @@ public final class TestMinusZeroResult extends TestCase {
|
||||||
* Not really a POI test - just shows similar behaviour of '-0.0' in Java.
|
* Not really a POI test - just shows similar behaviour of '-0.0' in Java.
|
||||||
*/
|
*/
|
||||||
public void testJava() {
|
public void testJava() {
|
||||||
|
|
||||||
assertEquals(0x8000000000000000L, Double.doubleToLongBits(MINUS_ZERO));
|
assertEquals(0x8000000000000000L, Double.doubleToLongBits(MINUS_ZERO));
|
||||||
|
|
||||||
// The simple operators consider all zeros to be the same
|
// The simple operators consider all zeros to be the same
|
||||||
|
//noinspection SimplifiableJUnitAssertion,ConstantConditions
|
||||||
assertTrue(MINUS_ZERO == MINUS_ZERO);
|
assertTrue(MINUS_ZERO == MINUS_ZERO);
|
||||||
|
//noinspection SimplifiableJUnitAssertion,ConstantConditions
|
||||||
assertTrue(MINUS_ZERO == +0.0);
|
assertTrue(MINUS_ZERO == +0.0);
|
||||||
|
//noinspection ConstantConditions
|
||||||
assertFalse(MINUS_ZERO < +0.0);
|
assertFalse(MINUS_ZERO < +0.0);
|
||||||
|
|
||||||
// Double.compare() considers them different
|
// Double.compare() considers them different
|
||||||
|
|
|
@ -31,6 +31,7 @@ import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.io.PushbackInputStream;
|
import java.io.PushbackInputStream;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import org.apache.poi.EmptyFileException;
|
import org.apache.poi.EmptyFileException;
|
||||||
|
@ -65,14 +66,14 @@ public final class TestIOUtils {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testPeekFirst8Bytes() throws Exception {
|
public void testPeekFirst8Bytes() throws Exception {
|
||||||
assertArrayEquals("01234567".getBytes("UTF-8"),
|
assertArrayEquals("01234567".getBytes(StandardCharsets.UTF_8),
|
||||||
IOUtils.peekFirst8Bytes(new ByteArrayInputStream("0123456789".getBytes("UTF-8"))));
|
IOUtils.peekFirst8Bytes(new ByteArrayInputStream("0123456789".getBytes(StandardCharsets.UTF_8))));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testPeekFirst8BytesWithPushbackInputStream() throws Exception {
|
public void testPeekFirst8BytesWithPushbackInputStream() throws Exception {
|
||||||
assertArrayEquals("01234567".getBytes("UTF-8"),
|
assertArrayEquals("01234567".getBytes(StandardCharsets.UTF_8),
|
||||||
IOUtils.peekFirst8Bytes(new PushbackInputStream(new ByteArrayInputStream("0123456789".getBytes("UTF-8")), 8)));
|
IOUtils.peekFirst8Bytes(new PushbackInputStream(new ByteArrayInputStream("0123456789".getBytes(StandardCharsets.UTF_8)), 8)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue