Index: src/java/org/apache/poi/ss/usermodel/FormulaError.java
===================================================================
--- src/java/org/apache/poi/ss/usermodel/FormulaError.java (revision 1698089)
+++ src/java/org/apache/poi/ss/usermodel/FormulaError.java (working copy)
@@ -152,6 +152,10 @@
}
}
+ /**
+ * @param errorCode the error code
+ * @return true if error code is a recognized error code
+ */
public static final boolean isValidCode(int errorCode) {
for (FormulaError error : values()) {
if (error.getCode() == errorCode) return true;
@@ -160,11 +164,21 @@
return false;
}
+ /**
+ * @param type the error code
+ * @return FormulaError enum corresponding to the error code
+ * @throws IllegalArgumentException if error code is unrecognized
+ */
public static FormulaError forInt(byte type){
- FormulaError err = bmap.get(type);
+ final FormulaError err = bmap.get(type);
if(err == null) throw new IllegalArgumentException("Unknown error type: " + type);
return err;
}
+ /**
+ * @param type the error code
+ * @return FormulaError enum corresponding to the error code
+ * @throws IllegalArgumentException if error code is unrecognized
+ */
public static FormulaError forInt(int type){
FormulaError err = imap.get(type);
if(err == null) err = bmap.get((byte)type);
@@ -172,8 +186,13 @@
return err;
}
- public static FormulaError forString(String code){
- FormulaError err = smap.get(code);
+ /**
+ * @param code the error code string
+ * @return FormulaError enum corresponding to the error code
+ * @throws IllegalArgumentException if error code is unrecognized
+ */
+ public static FormulaError forString(String code) throws IllegalArgumentException {
+ final FormulaError err = smap.get(code);
if(err == null) throw new IllegalArgumentException("Unknown error code: " + code);
return err;
}
Index: src/java/org/apache/poi/ss/formula/constant/ErrorConstant.java
===================================================================
--- src/java/org/apache/poi/ss/formula/constant/ErrorConstant.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/constant/ErrorConstant.java (working copy)
@@ -18,6 +18,7 @@
package org.apache.poi.ss.formula.constant;
import org.apache.poi.ss.usermodel.ErrorConstants;
+import org.apache.poi.ss.usermodel.FormulaError;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
/**
@@ -26,27 +27,20 @@
* This class is a type-safe wrapper for a 16-bit int value performing a similar job to
* ErrorEval.
*
+ * @deprecated Use {@link FormulaError} instead where possible
+ *
* @author Josh Micich
*/
public class ErrorConstant {
private static POILogger logger = POILogFactory.getLogger(ErrorConstant.class);
- // convenient access to name space
- private static final ErrorConstants EC = null;
- @SuppressWarnings("static-access")
- private static final ErrorConstant NULL = new ErrorConstant(EC.ERROR_NULL);
- @SuppressWarnings("static-access")
- private static final ErrorConstant DIV_0 = new ErrorConstant(EC.ERROR_DIV_0);
- @SuppressWarnings("static-access")
- private static final ErrorConstant VALUE = new ErrorConstant(EC.ERROR_VALUE);
- @SuppressWarnings("static-access")
- private static final ErrorConstant REF = new ErrorConstant(EC.ERROR_REF);
- @SuppressWarnings("static-access")
- private static final ErrorConstant NAME = new ErrorConstant(EC.ERROR_NAME);
- @SuppressWarnings("static-access")
- private static final ErrorConstant NUM = new ErrorConstant(EC.ERROR_NUM);
- @SuppressWarnings("static-access")
- private static final ErrorConstant NA = new ErrorConstant(EC.ERROR_NA);
+ private static final ErrorConstant NULL = new ErrorConstant(ErrorConstants.ERROR_NULL);
+ private static final ErrorConstant DIV_0 = new ErrorConstant(ErrorConstants.ERROR_DIV_0);
+ private static final ErrorConstant VALUE = new ErrorConstant(ErrorConstants.ERROR_VALUE);
+ private static final ErrorConstant REF = new ErrorConstant(ErrorConstants.ERROR_REF);
+ private static final ErrorConstant NAME = new ErrorConstant(ErrorConstants.ERROR_NAME);
+ private static final ErrorConstant NUM = new ErrorConstant(ErrorConstants.ERROR_NUM);
+ private static final ErrorConstant NA = new ErrorConstant(ErrorConstants.ERROR_NA);
private final int _errorCode;
Index: src/java/org/apache/poi/ss/formula/ptg/NotEqualPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/NotEqualPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/NotEqualPtg.java (working copy)
@@ -24,6 +24,7 @@
*/
public final class NotEqualPtg extends ValueOperatorPtg {
public final static byte sid = 0x0e;
+ private final static String NOT_EQUAL = "<>";
public static final ValueOperatorPtg instance = new NotEqualPtg();
@@ -43,8 +44,7 @@
StringBuffer buffer = new StringBuffer();
buffer.append( operands[0] );
-
- buffer.append("<>");
+ buffer.append(NOT_EQUAL);
buffer.append( operands[1] );
return buffer.toString();
Index: src/java/org/apache/poi/ss/formula/ptg/UnionPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/UnionPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/UnionPtg.java (working copy)
@@ -25,6 +25,7 @@
*/
public final class UnionPtg extends OperationPtg {
public final static byte sid = 0x10;
+ private final static String UNION = ",";
public static final OperationPtg instance = new UnionPtg();
@@ -47,7 +48,7 @@
public String toFormulaString()
{
- return ",";
+ return UNION;
}
@@ -57,7 +58,7 @@
StringBuffer buffer = new StringBuffer();
buffer.append(operands[ 0 ]);
- buffer.append(",");
+ buffer.append(UNION);
buffer.append(operands[ 1 ]);
return buffer.toString();
}
Index: src/java/org/apache/poi/ss/formula/ptg/Deleted3DPxg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/Deleted3DPxg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/Deleted3DPxg.java (working copy)
@@ -18,7 +18,7 @@
package org.apache.poi.ss.formula.ptg;
import org.apache.poi.ss.formula.SheetNameFormatter;
-import org.apache.poi.ss.usermodel.ErrorConstants;
+import org.apache.poi.ss.usermodel.FormulaError;
import org.apache.poi.util.LittleEndianOutput;
@@ -48,7 +48,7 @@
}
sb.append("sheet=").append(getSheetName());
sb.append(" ! ");
- sb.append(ErrorConstants.getText(ErrorConstants.ERROR_REF));
+ sb.append(FormulaError.REF.getString());
sb.append("]");
return sb.toString();
}
@@ -75,7 +75,7 @@
SheetNameFormatter.appendFormat(sb, sheetName);
}
sb.append('!');
- sb.append(ErrorConstants.getText(ErrorConstants.ERROR_REF));
+ sb.append(FormulaError.REF.getString());
return sb.toString();
}
Index: src/java/org/apache/poi/ss/formula/ptg/AreaPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/AreaPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/AreaPtg.java (working copy)
@@ -17,6 +17,7 @@
package org.apache.poi.ss.formula.ptg;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.util.AreaReference;
import org.apache.poi.util.LittleEndianInput;
@@ -33,9 +34,13 @@
public AreaPtg(LittleEndianInput in) {
super(in);
}
+ @Deprecated
public AreaPtg(String arearef) {
super(new AreaReference(arearef));
}
+ public AreaPtg(String arearef, SpreadsheetVersion version) {
+ super(new AreaReference(arearef, version));
+ }
public AreaPtg(AreaReference areaRef) {
super(areaRef);
}
Index: src/java/org/apache/poi/ss/formula/ptg/Ptg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/Ptg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/Ptg.java (working copy)
@@ -249,6 +249,16 @@
public String toString(){
return this.getClass().toString();
}
+
+ @Override
+ public boolean equals(Object other) {
+ return (other instanceof Ptg) && toString().equals(other.toString());
+ }
+
+ @Override
+ public int hashCode() {
+ return toString().hashCode();
+ }
public static final byte CLASS_REF = 0x00;
public static final byte CLASS_VALUE = 0x20;
Index: src/java/org/apache/poi/ss/formula/ptg/AreaErrPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/AreaErrPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/AreaErrPtg.java (working copy)
@@ -17,7 +17,7 @@
package org.apache.poi.ss.formula.ptg;
-import org.apache.poi.ss.usermodel.ErrorConstants;
+import org.apache.poi.ss.usermodel.FormulaError;
import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
@@ -49,7 +49,7 @@
}
public String toFormulaString() {
- return ErrorConstants.getText(ErrorConstants.ERROR_REF);
+ return FormulaError.REF.getString();
}
public byte getDefaultOperandClass() {
Index: src/java/org/apache/poi/ss/formula/ptg/RefErrorPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/RefErrorPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/RefErrorPtg.java (working copy)
@@ -17,7 +17,7 @@
package org.apache.poi.ss.formula.ptg;
-import org.apache.poi.ss.usermodel.ErrorConstants;
+import org.apache.poi.ss.usermodel.FormulaError;
import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
@@ -53,7 +53,7 @@
}
public String toFormulaString() {
- return ErrorConstants.getText(ErrorConstants.ERROR_REF);
+ return FormulaError.REF.getString();
}
public byte getDefaultOperandClass() {
Index: src/java/org/apache/poi/ss/formula/ptg/DeletedRef3DPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/DeletedRef3DPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/DeletedRef3DPtg.java (working copy)
@@ -18,7 +18,7 @@
package org.apache.poi.ss.formula.ptg;
-import org.apache.poi.ss.usermodel.ErrorConstants;
+import org.apache.poi.ss.usermodel.FormulaError;
import org.apache.poi.ss.formula.FormulaRenderingWorkbook;
import org.apache.poi.ss.formula.WorkbookDependentFormula;
import org.apache.poi.util.LittleEndianInput;
@@ -49,7 +49,7 @@
public String toFormulaString(FormulaRenderingWorkbook book) {
return ExternSheetNameResolver.prependSheetName(book, field_1_index_extern_sheet,
- ErrorConstants.getText(ErrorConstants.ERROR_REF));
+ FormulaError.REF.getString());
}
public String toFormulaString() {
throw new RuntimeException("3D references need a workbook to determine formula text");
Index: src/java/org/apache/poi/ss/formula/ptg/PowerPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/PowerPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/PowerPtg.java (working copy)
@@ -24,6 +24,7 @@
*/
public final class PowerPtg extends ValueOperatorPtg {
public final static byte sid = 0x07;
+ private final static String POWER = "^";
public static final ValueOperatorPtg instance = new PowerPtg();
@@ -36,15 +37,14 @@
}
public int getNumberOfOperands() {
- return 2; // TODO - 2 seems wrong (Jun 2008). Maybe this method is not relevant
+ return 2;
}
public String toFormulaString(String[] operands) {
StringBuffer buffer = new StringBuffer();
-
buffer.append(operands[ 0 ]);
- buffer.append("^");
+ buffer.append(POWER);
buffer.append(operands[ 1 ]);
return buffer.toString();
}
Index: src/java/org/apache/poi/ss/formula/ptg/Area3DPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/Area3DPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/Area3DPtg.java (working copy)
@@ -40,6 +40,7 @@
private int field_1_index_extern_sheet;
+ @Deprecated
public Area3DPtg(String arearef, int externIdx) {
super(new AreaReference(arearef));
setExternSheetIndex(externIdx);
Index: src/java/org/apache/poi/ss/formula/ptg/Area3DPxg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/Area3DPxg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/Area3DPxg.java (working copy)
@@ -17,6 +17,7 @@
package org.apache.poi.ss.formula.ptg;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.SheetIdentifier;
import org.apache.poi.ss.formula.SheetNameFormatter;
import org.apache.poi.ss.formula.SheetRangeIdentifier;
@@ -36,9 +37,13 @@
private String firstSheetName;
private String lastSheetName;
- public Area3DPxg(int externalWorkbookNumber, SheetIdentifier sheetName, String arearef) {
- this(externalWorkbookNumber, sheetName, new AreaReference(arearef));
- }
+ @Deprecated
+ public Area3DPxg(int externalWorkbookNumber, SheetIdentifier sheetName, String arearef) {
+ this(externalWorkbookNumber, sheetName, new AreaReference(arearef));
+ }
+ public Area3DPxg(int externalWorkbookNumber, SheetIdentifier sheetName, String arearef, SpreadsheetVersion version) {
+ this(externalWorkbookNumber, sheetName, new AreaReference(arearef, version));
+ }
public Area3DPxg(int externalWorkbookNumber, SheetIdentifier sheetName, AreaReference arearef) {
super(arearef);
this.externalWorkbookNumber = externalWorkbookNumber;
@@ -50,15 +55,19 @@
}
}
+ @Deprecated
public Area3DPxg(SheetIdentifier sheetName, String arearef) {
this(sheetName, new AreaReference(arearef));
}
+ public Area3DPxg(SheetIdentifier sheetName, String arearef, SpreadsheetVersion version) {
+ this(sheetName, new AreaReference(arearef, version));
+ }
public Area3DPxg(SheetIdentifier sheetName, AreaReference arearef) {
this(-1, sheetName, arearef);
}
- @Override
- public String toString() {
+ @Override
+ public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(getClass().getName());
sb.append(" [");
@@ -76,8 +85,8 @@
sb.append(formatReferenceAsString());
sb.append("]");
return sb.toString();
- }
-
+ }
+
public int getExternalWorkbookNumber() {
return externalWorkbookNumber;
}
Index: src/java/org/apache/poi/ss/formula/ptg/IntersectionPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/IntersectionPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/IntersectionPtg.java (working copy)
@@ -24,6 +24,7 @@
*/
public final class IntersectionPtg extends OperationPtg {
public final static byte sid = 0x0f;
+ public final static String INTERSECTION = " ";
public static final OperationPtg instance = new IntersectionPtg();
@@ -44,14 +45,14 @@
}
public String toFormulaString() {
- return " ";
+ return INTERSECTION;
}
public String toFormulaString(String[] operands) {
StringBuffer buffer = new StringBuffer();
buffer.append(operands[0]);
- buffer.append(" ");
+ buffer.append(INTERSECTION);
buffer.append(operands[1]);
return buffer.toString();
}
Index: src/java/org/apache/poi/ss/formula/ptg/DeletedArea3DPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/DeletedArea3DPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/DeletedArea3DPtg.java (working copy)
@@ -17,7 +17,7 @@
package org.apache.poi.ss.formula.ptg;
-import org.apache.poi.ss.usermodel.ErrorConstants;
+import org.apache.poi.ss.usermodel.FormulaError;
import org.apache.poi.ss.formula.FormulaRenderingWorkbook;
import org.apache.poi.ss.formula.WorkbookDependentFormula;
import org.apache.poi.util.LittleEndianInput;
@@ -49,7 +49,7 @@
}
public String toFormulaString(FormulaRenderingWorkbook book) {
return ExternSheetNameResolver.prependSheetName(book, field_1_index_extern_sheet,
- ErrorConstants.getText(ErrorConstants.ERROR_REF));
+ FormulaError.REF.getString());
}
public String toFormulaString() {
throw new RuntimeException("3D references need a workbook to determine formula text");
Index: src/java/org/apache/poi/ss/formula/ptg/ErrPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/ErrPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/ErrPtg.java (working copy)
@@ -17,7 +17,10 @@
package org.apache.poi.ss.formula.ptg;
-import org.apache.poi.ss.usermodel.ErrorConstants;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.poi.ss.usermodel.FormulaError;
import org.apache.poi.util.LittleEndianInput;
import org.apache.poi.util.LittleEndianOutput;
@@ -26,43 +29,45 @@
*/
public final class ErrPtg extends ScalarConstantPtg {
- // convenient access to namespace
- private static final ErrorConstants EC = null;
-
/** #NULL! - Intersection of two cell ranges is empty */
- @SuppressWarnings("static-access")
- public static final ErrPtg NULL_INTERSECTION = new ErrPtg(EC.ERROR_NULL);
+ public static final ErrPtg NULL_INTERSECTION = new ErrPtg(FormulaError.NULL);
+
/** #DIV/0! - Division by zero */
- @SuppressWarnings("static-access")
- public static final ErrPtg DIV_ZERO = new ErrPtg(EC.ERROR_DIV_0);
+ public static final ErrPtg DIV_ZERO = new ErrPtg(FormulaError.DIV0);
+
/** #VALUE! - Wrong type of operand */
- @SuppressWarnings("static-access")
- public static final ErrPtg VALUE_INVALID = new ErrPtg(EC.ERROR_VALUE);
+ public static final ErrPtg VALUE_INVALID = new ErrPtg(FormulaError.VALUE);
+
/** #REF! - Illegal or deleted cell reference */
- @SuppressWarnings("static-access")
- public static final ErrPtg REF_INVALID = new ErrPtg(EC.ERROR_REF);
+ public static final ErrPtg REF_INVALID = new ErrPtg(FormulaError.REF);
+
/** #NAME? - Wrong function or range name */
- @SuppressWarnings("static-access")
- public static final ErrPtg NAME_INVALID = new ErrPtg(EC.ERROR_NAME);
+ public static final ErrPtg NAME_INVALID = new ErrPtg(FormulaError.NAME);
+
/** #NUM! - Value range overflow */
- @SuppressWarnings("static-access")
- public static final ErrPtg NUM_ERROR = new ErrPtg(EC.ERROR_NUM);
+ public static final ErrPtg NUM_ERROR = new ErrPtg(FormulaError.NUM);
+
/** #N/A - Argument or function not available */
- @SuppressWarnings("static-access")
- public static final ErrPtg N_A = new ErrPtg(EC.ERROR_NA);
-
-
+ public static final ErrPtg N_A = new ErrPtg(FormulaError.NA);
+
+ private static Map bmap = new HashMap();
+ static {
+ bmap.put(FormulaError.NULL.getCode(), NULL_INTERSECTION);
+ bmap.put(FormulaError.DIV0.getCode(), DIV_ZERO);
+ bmap.put(FormulaError.VALUE.getCode(), VALUE_INVALID);
+ bmap.put(FormulaError.REF.getCode(), REF_INVALID);
+ bmap.put(FormulaError.NAME.getCode(), NAME_INVALID);
+ bmap.put(FormulaError.NUM.getCode(), NUM_ERROR);
+ bmap.put(FormulaError.NA.getCode(), N_A);
+ }
+
public static final short sid = 0x1c;
private static final int SIZE = 2;
private final int field_1_error_code;
/** Creates new ErrPtg */
-
- private ErrPtg(int errorCode) {
- if(!ErrorConstants.isValidCode(errorCode)) {
- throw new IllegalArgumentException("Invalid error code (" + errorCode + ")");
- }
- field_1_error_code = errorCode;
+ private ErrPtg(FormulaError error) {
+ field_1_error_code = error.getCode();
}
public static ErrPtg read(LittleEndianInput in) {
@@ -75,7 +80,7 @@
}
public String toFormulaString() {
- return ErrorConstants.getText(field_1_error_code);
+ return FormulaError.forInt(field_1_error_code).getString();
}
public int getSize() {
@@ -87,15 +92,13 @@
}
public static ErrPtg valueOf(int code) {
- switch(code) {
- case ErrorConstants.ERROR_DIV_0: return DIV_ZERO;
- case ErrorConstants.ERROR_NA: return N_A;
- case ErrorConstants.ERROR_NAME: return NAME_INVALID;
- case ErrorConstants.ERROR_NULL: return NULL_INTERSECTION;
- case ErrorConstants.ERROR_NUM: return NUM_ERROR;
- case ErrorConstants.ERROR_REF: return REF_INVALID;
- case ErrorConstants.ERROR_VALUE: return VALUE_INVALID;
- }
- throw new RuntimeException("Unexpected error code (" + code + ")");
+ return valueOf((byte) code);
}
+
+ private static ErrPtg valueOf(byte code) {
+ if (bmap.containsKey(code))
+ return bmap.get(code);
+ else
+ throw new RuntimeException("Unexpected error code (" + code + ")");
+ }
}
Index: src/java/org/apache/poi/ss/formula/ptg/EqualPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/EqualPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/EqualPtg.java (working copy)
@@ -23,6 +23,7 @@
*/
public final class EqualPtg extends ValueOperatorPtg {
public final static byte sid = 0x0b;
+ private final static String EQUAL = "=";
public static final ValueOperatorPtg instance = new EqualPtg();
@@ -43,7 +44,7 @@
buffer.append(operands[ 0 ]);
- buffer.append("=");
+ buffer.append(EQUAL);
buffer.append(operands[ 1 ]);
return buffer.toString();
}
Index: src/java/org/apache/poi/ss/formula/ptg/GreaterEqualPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/GreaterEqualPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/GreaterEqualPtg.java (working copy)
@@ -26,6 +26,7 @@
public final class GreaterEqualPtg extends ValueOperatorPtg {
public final static int SIZE = 1;
public final static byte sid = 0x0c;
+ private final static String GREATER_THAN_OR_EQUAL = ">=";
public static final ValueOperatorPtg instance = new GreaterEqualPtg();
@@ -45,8 +46,7 @@
StringBuffer buffer = new StringBuffer();
buffer.append(operands[ 0 ]);
-
- buffer.append(">=");
+ buffer.append(GREATER_THAN_OR_EQUAL);
buffer.append(operands[ 1 ]);
return buffer.toString();
Index: src/java/org/apache/poi/ss/formula/ptg/ParenthesisPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/ParenthesisPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/ParenthesisPtg.java (working copy)
@@ -33,6 +33,8 @@
private final static int SIZE = 1;
public final static byte sid = 0x15;
+ private final static String OPEN = "(";
+ private final static String CLOSE = ")";
public static final ControlPtg instance = new ParenthesisPtg();
@@ -49,10 +51,10 @@
}
public String toFormulaString() {
- return "()";
+ return OPEN + CLOSE;
}
public String toFormulaString(String[] operands) {
- return "(" + operands[0] + ")";
+ return OPEN + operands[0] + CLOSE;
}
}
Index: src/java/org/apache/poi/ss/formula/ptg/SubtractPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/SubtractPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/SubtractPtg.java (working copy)
@@ -24,6 +24,7 @@
*/
public final class SubtractPtg extends ValueOperatorPtg {
public final static byte sid = 0x04;
+ public final static String SUBTRACT = "-";
public static final ValueOperatorPtg instance = new SubtractPtg();
@@ -43,7 +44,7 @@
StringBuffer buffer = new StringBuffer();
buffer.append(operands[ 0 ]);
- buffer.append("-");
+ buffer.append(SUBTRACT);
buffer.append(operands[ 1 ]);
return buffer.toString();
}
Index: src/java/org/apache/poi/ss/formula/ptg/LessEqualPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/LessEqualPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/LessEqualPtg.java (working copy)
@@ -28,6 +28,7 @@
*/
public final class LessEqualPtg extends ValueOperatorPtg {
public final static byte sid = 0x0a;
+ private final static String LESS_THAN_OR_EQUAL = "<=";
public static final ValueOperatorPtg instance = new LessEqualPtg();
@@ -46,7 +47,7 @@
public String toFormulaString(String[] operands) {
StringBuffer buffer = new StringBuffer();
buffer.append( operands[0] );
- buffer.append("<=");
+ buffer.append(LESS_THAN_OR_EQUAL);
buffer.append( operands[1] );
return buffer.toString();
}
Index: src/java/org/apache/poi/ss/formula/ptg/UnknownPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/UnknownPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/UnknownPtg.java (working copy)
@@ -25,6 +25,7 @@
public class UnknownPtg extends Ptg {
private short size = 1;
private final int _sid;
+ private final static String UNKNOWN = "UNKNOWN";
public UnknownPtg(int sid) {
_sid = sid;
@@ -42,7 +43,7 @@
}
public String toFormulaString() {
- return "UNKNOWN";
+ return UNKNOWN;
}
public byte getDefaultOperandClass() {
return Ptg.CLASS_VALUE;
Index: src/java/org/apache/poi/ss/formula/ptg/DividePtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/DividePtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/DividePtg.java (working copy)
@@ -24,6 +24,7 @@
*/
public final class DividePtg extends ValueOperatorPtg {
public final static byte sid = 0x06;
+ private final static String DIVIDE = "/";
public static final ValueOperatorPtg instance = new DividePtg();
@@ -43,7 +44,7 @@
StringBuffer buffer = new StringBuffer();
buffer.append(operands[ 0 ]);
- buffer.append("/");
+ buffer.append(DIVIDE);
buffer.append(operands[ 1 ]);
return buffer.toString();
}
Index: src/java/org/apache/poi/ss/formula/ptg/MultiplyPtg.java
===================================================================
--- src/java/org/apache/poi/ss/formula/ptg/MultiplyPtg.java (revision 1698089)
+++ src/java/org/apache/poi/ss/formula/ptg/MultiplyPtg.java (working copy)
@@ -24,6 +24,7 @@
*/
public final class MultiplyPtg extends ValueOperatorPtg {
public final static byte sid = 0x05;
+ private final static String MULT = "*";
public static final ValueOperatorPtg instance = new MultiplyPtg();
@@ -43,7 +44,7 @@
StringBuffer buffer = new StringBuffer();
buffer.append(operands[ 0 ]);
- buffer.append("*");
+ buffer.append(MULT);
buffer.append(operands[ 1 ]);
return buffer.toString();
}
Index: src/testcases/org/apache/poi/ss/formula/ptg/TestArea3DPtg.java
===================================================================
--- src/testcases/org/apache/poi/ss/formula/ptg/TestArea3DPtg.java (revision 1698089)
+++ src/testcases/org/apache/poi/ss/formula/ptg/TestArea3DPtg.java (working copy)
@@ -19,6 +19,8 @@
import org.apache.poi.hssf.usermodel.HSSFEvaluationWorkbook;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.SpreadsheetVersion;
+import org.apache.poi.ss.util.AreaReference;
/**
* Tests for Area3DPtg
@@ -27,12 +29,32 @@
*/
public final class TestArea3DPtg extends AbstractPtgTestCase {
+ @SuppressWarnings("deprecation")
+ public void testConstructors() {
+ final String ref = "A1:B1";
+ final SpreadsheetVersion version = SpreadsheetVersion.EXCEL97;
+ final AreaReference areaRef = new AreaReference("A1:B1", version);
+
+ final Area3DPtg aptgRef = new Area3DPtg(0, 0, 0, 1, true, true, true, true, -1);
+ Area3DPtg aptg;
+ aptg = new Area3DPtg(areaRef, -1);
+ assertTrue(aptgRef.equals(aptg));
+ assertEquals(aptgRef, aptg);
+
+ aptg = new Area3DPtg(ref, -1); //deprecated
+ assertEquals(aptgRef, aptg);
+
+ aptg = new Area3DPtg(0, 0, 0, 1, true, true, true, true, -1);
+ assertEquals(aptgRef, aptg);
+ }
+
/**
* confirms that sheet names get properly escaped
*/
public void testToFormulaString() {
- Area3DPtg target = new Area3DPtg("A1:B1", (short)0);
+ final AreaReference ref = new AreaReference("A1:B1", SpreadsheetVersion.EXCEL97);
+ Area3DPtg target = new Area3DPtg(ref, (short)0);
String sheetName = "my sheet";
HSSFWorkbook wb = createWorkbookWithSheet(sheetName);
Index: src/testcases/org/apache/poi/ss/formula/ptg/TestAreaPtg.java
===================================================================
--- src/testcases/org/apache/poi/ss/formula/ptg/TestAreaPtg.java (revision 1698089)
+++ src/testcases/org/apache/poi/ss/formula/ptg/TestAreaPtg.java (working copy)
@@ -22,6 +22,8 @@
import org.apache.poi.hssf.model.HSSFFormulaParser;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.SpreadsheetVersion;
+import org.apache.poi.ss.util.AreaReference;
/**
* Tests for {@link AreaPtg}.
@@ -41,6 +43,28 @@
relative = new AreaPtg(firstRow,lastRow,firstCol,lastCol,true,true,true,true);
absolute = new AreaPtg(firstRow,lastRow,firstCol,lastCol,false,false,false,false);
}
+
+ @SuppressWarnings("deprecation")
+ public void testConstructors()
+ {
+ final String ref = "A5:B7";
+ final SpreadsheetVersion version = SpreadsheetVersion.EXCEL2007;
+
+ AreaPtg aptg;
+ aptg = new AreaPtg(new AreaReference(ref, version));
+ assertEquals(ref, aptg.toFormulaString());
+
+ // FIXME: add AreaPtg(LittleEndianInput) test
+
+ aptg = new AreaPtg(ref); //deprecated
+ assertEquals(ref, aptg.toFormulaString());
+
+ aptg = new AreaPtg(ref, version);
+ assertEquals(ref, aptg.toFormulaString());
+
+ aptg = new AreaPtg(4,6,0,1,true,true,true,true);
+ assertEquals(ref, aptg.toFormulaString());
+ }
public void testSetColumnsAbsolute()
{