ASF Bugzilla – Attachment 33063 Details for
Bug 58331
[PATCH] Several Ptg updates: AreaPtg(String) is deprecated, replace ErrorConstants with FormulaError, remove hard-coded strings
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
various changes to Ptg classes
ptg_updates.patch (text/plain), 30.64 KB, created by
Javen O'Neal
on 2015-09-04 23:52:29 UTC
(
hide
)
Description:
various changes to Ptg classes
Filename:
MIME Type:
Creator:
Javen O'Neal
Created:
2015-09-04 23:52:29 UTC
Size:
30.64 KB
patch
obsolete
>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 > * <tt>ErrorEval</tt>. > * >+ * @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; >- > /** <b>#NULL!</b> - 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); >+ > /** <b>#DIV/0!</b> - 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); >+ > /** <b>#VALUE!</b> - 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); >+ > /** <b>#REF!</b> - 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); >+ > /** <b>#NAME?</b> - 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); >+ > /** <b>#NUM!</b> - 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); >+ > /** <b>#N/A</b> - 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<Byte, ErrPtg> bmap = new HashMap<Byte, ErrPtg>(); >+ 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() > {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 58331
: 33063