You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by jo...@apache.org on 2008/06/07 02:53:03 UTC
svn commit: r664220 [1/3] - in /poi/trunk/src: documentation/content/xdocs/
java/org/apache/poi/hssf/model/ java/org/apache/poi/hssf/record/
java/org/apache/poi/hssf/record/formula/
java/org/apache/poi/hssf/record/formula/eval/ java/org/apache/poi/hssf...
Author: josh
Date: Fri Jun 6 17:53:01 2008
New Revision: 664220
URL: http://svn.apache.org/viewvc?rev=664220&view=rev
Log:
Fix for bug 45091 - serialization of RefN~ tokens. Simplified Ptg class hierarchy
Added:
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java (with props)
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java
- copied, changed from r664139, poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefPtgBase.java
- copied, changed from r664139, poi/trunk/src/java/org/apache/poi/hssf/record/formula/ReferencePtg.java
Removed:
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaAPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaNAPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaNVPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaVPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/ArrayPtgA.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/ArrayPtgV.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefAPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefNAPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefNVPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefVPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/ReferencePtg.java
Modified:
poi/trunk/src/documentation/content/xdocs/changes.xml
poi/trunk/src/documentation/content/xdocs/status.xml
poi/trunk/src/java/org/apache/poi/hssf/model/FormulaParser.java
poi/trunk/src/java/org/apache/poi/hssf/record/FormulaRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/NameRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/SharedFormulaRecord.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AbstractFunctionPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AddPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/ConcatPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/DividePtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/EqualPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/GreaterEqualPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/GreaterThanPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntersectionPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/LessEqualPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/LessThanPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/MissingArgPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/NamePtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/NotEqualPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/NumberPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/OperationPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/ParenthesisPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/PercentPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/PowerPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ptg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/RangePtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefErrorPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefNPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/ScalarConstantPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/StringPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/SubtractPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/UnaryMinusPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/UnaryPlusPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/UnionPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/ValueOperatorPtg.java
poi/trunk/src/java/org/apache/poi/hssf/record/formula/eval/Ref2DEval.java
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFFormulaEvaluator.java
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
poi/trunk/src/testcases/org/apache/poi/hssf/model/TestFormulaParser.java
poi/trunk/src/testcases/org/apache/poi/hssf/model/TestFormulaParserIf.java
poi/trunk/src/testcases/org/apache/poi/hssf/model/TestRVA.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/TestSharedFormulaRecord.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/TestArrayPtg.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/TestReferencePtg.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/eval/TestPercentEval.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/eval/TestUnaryPlusEval.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/EvalFactory.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestCountFuncs.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMid.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestSumproduct.java
poi/trunk/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTFunc.java
Modified: poi/trunk/src/documentation/content/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/changes.xml?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/changes.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/changes.xml Fri Jun 6 17:53:01 2008
@@ -37,6 +37,7 @@
<!-- Don't forget to update status.xml too! -->
<release version="3.1-final" date="2008-06-??">
+ <action dev="POI-DEVELOPERS" type="fix">45091 - Fixed serialization of RefN~ tokens. Simplified Ptg class hierarchy</action>
<action dev="POI-DEVELOPERS" type="fix">45133 - Fixed OBJ Record (5Dh) to pad the sub-record data to a 4-byte boundary</action>
<action dev="POI-DEVELOPERS" type="fix">45145 - Fixed Sheet to always enforce RowRecordsAggregate before ValueRecordsAggregate</action>
<action dev="POI-DEVELOPERS" type="fix">45123 - Fixed SharedFormulaRecord.convertSharedFormulas() to propagate token operand classes</action>
Modified: poi/trunk/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/status.xml?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/status.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/status.xml Fri Jun 6 17:53:01 2008
@@ -34,6 +34,7 @@
<!-- Don't forget to update changes.xml too! -->
<changes>
<release version="3.1-final" date="2008-06-??">
+ <action dev="POI-DEVELOPERS" type="fix">45091 - Fixed serialization of RefN~ tokens. Simplified Ptg class hierarchy</action>
<action dev="POI-DEVELOPERS" type="fix">45133 - Fixed OBJ Record (5Dh) to pad the sub-record data to a 4-byte boundary</action>
<action dev="POI-DEVELOPERS" type="fix">45145 - Fixed Sheet to always enforce RowRecordsAggregate before ValueRecordsAggregate</action>
<action dev="POI-DEVELOPERS" type="fix">45123 - Fixed SharedFormulaRecord.convertSharedFormulas() to propagate token operand classes</action>
Modified: poi/trunk/src/java/org/apache/poi/hssf/model/FormulaParser.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/model/FormulaParser.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/model/FormulaParser.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/model/FormulaParser.java Fri Jun 6 17:53:01 2008
@@ -274,7 +274,7 @@
boolean cellRef = CELL_REFERENCE_PATTERN.matcher(name).matches();
if (cellRef) {
- return new ReferencePtg(name);
+ return new RefPtg(name);
}
for(int i = 0; i < book.getNumberOfNames(); i++) {
@@ -324,9 +324,9 @@
FunctionMetadata fm = FunctionMetadataRegistry.getFunctionByName(name.toUpperCase());
int numArgs = args.length;
if(fm == null) {
- if (namePtg == null) {
- throw new IllegalStateException("NamePtg must be supplied for external functions");
- }
+ if (namePtg == null) {
+ throw new IllegalStateException("NamePtg must be supplied for external functions");
+ }
// must be external function
ParseNode[] allArgs = new ParseNode[numArgs+1];
allArgs[0] = new ParseNode(namePtg);
@@ -335,8 +335,8 @@
}
if (namePtg != null) {
- throw new IllegalStateException("NamePtg no applicable to internal functions");
- }
+ throw new IllegalStateException("NamePtg no applicable to internal functions");
+ }
boolean isVarArgs = !fm.hasFixedArgsLength();
int funcIx = fm.getIndex();
validateNumArgs(args.length, fm);
@@ -392,7 +392,7 @@
SkipWhite();
if (isArgumentDelimiter(look)) {
if (missedPrevArg) {
- temp.add(new ParseNode(new MissingArgPtg()));
+ temp.add(new ParseNode(MissingArgPtg.instance));
numArgs++;
}
if (look == ')') {
@@ -417,7 +417,7 @@
/** Parse and Translate a Math Factor */
private ParseNode powerFactor() {
- ParseNode result = percentFactor();
+ ParseNode result = percentFactor();
while(true) {
SkipWhite();
if(look != '^') {
@@ -425,19 +425,19 @@
}
Match('^');
ParseNode other = percentFactor();
- result = new ParseNode(new PowerPtg(), result, other);
+ result = new ParseNode(PowerPtg.instance, result, other);
}
}
private ParseNode percentFactor() {
- ParseNode result = parseSimpleFactor();
+ ParseNode result = parseSimpleFactor();
while(true) {
SkipWhite();
if(look != '%') {
return result;
}
Match('%');
- result = new ParseNode(new PercentPtg(), result);
+ result = new ParseNode(PercentPtg.instance, result);
}
}
@@ -452,15 +452,15 @@
return new ParseNode(parseErrorLiteral());
case '-':
Match('-');
- return new ParseNode(new UnaryMinusPtg(), powerFactor());
+ return new ParseNode(UnaryMinusPtg.instance, powerFactor());
case '+':
Match('+');
- return new ParseNode(new UnaryPlusPtg(), powerFactor());
+ return new ParseNode(UnaryPlusPtg.instance, powerFactor());
case '(':
Match('(');
ParseNode inside = comparisonExpression();
Match(')');
- return new ParseNode(new ParenthesisPtg(), inside);
+ return new ParseNode(ParenthesisPtg.instance, inside);
case '"':
return new ParseNode(parseStringLiteral());
}
@@ -625,18 +625,18 @@
/** Parse and Translate a Math Term */
private ParseNode Term() {
- ParseNode result = powerFactor();
+ ParseNode result = powerFactor();
while(true) {
SkipWhite();
Ptg operator;
switch(look) {
case '*':
Match('*');
- operator = new MultiplyPtg();
+ operator = MultiplyPtg.instance;
break;
case '/':
Match('/');
- operator = new DividePtg();
+ operator = DividePtg.instance;
break;
default:
return result; // finished with Term
@@ -647,7 +647,7 @@
}
private ParseNode comparisonExpression() {
- ParseNode result = concatExpression();
+ ParseNode result = concatExpression();
while (true) {
SkipWhite();
switch(look) {
@@ -666,26 +666,26 @@
private Ptg getComparisonToken() {
if(look == '=') {
Match(look);
- return new EqualPtg();
+ return EqualPtg.instance;
}
boolean isGreater = look == '>';
Match(look);
if(isGreater) {
if(look == '=') {
Match('=');
- return new GreaterEqualPtg();
+ return GreaterEqualPtg.instance;
}
- return new GreaterThanPtg();
+ return GreaterThanPtg.instance;
}
switch(look) {
case '=':
Match('=');
- return new LessEqualPtg();
+ return LessEqualPtg.instance;
case '>':
Match('>');
- return new NotEqualPtg();
+ return NotEqualPtg.instance;
}
- return new LessThanPtg();
+ return LessThanPtg.instance;
}
@@ -698,7 +698,7 @@
}
Match('&');
ParseNode other = additiveExpression();
- result = new ParseNode(new ConcatPtg(), result, other);
+ result = new ParseNode(ConcatPtg.instance, result, other);
}
return result;
}
@@ -706,18 +706,18 @@
/** Parse and Translate an Expression */
private ParseNode additiveExpression() {
- ParseNode result = Term();
+ ParseNode result = Term();
while (true) {
SkipWhite();
Ptg operator;
switch(look) {
case '+':
Match('+');
- operator = new AddPtg();
+ operator = AddPtg.instance;
break;
case '-':
Match('-');
- operator = new SubtractPtg();
+ operator = SubtractPtg.instance;
break;
default:
return result; // finished with additive expression
@@ -771,9 +771,9 @@
}
public Ptg[] getRPNPtg(int formulaType) {
- OperandClassTransformer oct = new OperandClassTransformer(formulaType);
+ OperandClassTransformer oct = new OperandClassTransformer(formulaType);
// RVA is for 'operand class': 'reference', 'value', 'array'
- oct.transformFormula(_rootNode);
+ oct.transformFormula(_rootNode);
return ParseNode.toTokenArray(_rootNode);
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/FormulaRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/FormulaRecord.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/FormulaRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/FormulaRecord.java Fri Jun 6 17:53:01 2008
@@ -557,7 +557,7 @@
if (field_8_parsed_expr != null)
size = field_8_parsed_expr.size();
for (int i=0; i< size; i++) {
- Ptg ptg = (Ptg)((Ptg)field_8_parsed_expr.get(i)).clone();
+ Ptg ptg = ((Ptg)field_8_parsed_expr.get(i)).copy();
rec.field_8_parsed_expr.add(i, ptg);
}
rec.value_data = value_data;
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/NameRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/NameRecord.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/NameRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/NameRecord.java Fri Jun 6 17:53:01 2008
@@ -737,7 +737,7 @@
}
// And then a union if we had more than one area
if(refs.length > 1) {
- ptg = new UnionPtg();
+ ptg = UnionPtg.instance;
field_13_name_definition.push(ptg);
this.setDefinitionTextLength( (short)(getDefinitionLength() + ptg.getSize()) );
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/SharedFormulaRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/SharedFormulaRecord.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/SharedFormulaRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/SharedFormulaRecord.java Fri Jun 6 17:53:01 2008
@@ -207,22 +207,10 @@
}
if (ptg instanceof RefNPtg) {
RefNPtg refNPtg = (RefNPtg)ptg;
- ptg = new ReferencePtg(fixupRelativeRow(formulaRow,refNPtg.getRow(),refNPtg.isRowRelative()),
+ ptg = new RefPtg(fixupRelativeRow(formulaRow,refNPtg.getRow(),refNPtg.isRowRelative()),
fixupRelativeColumn(formulaColumn,refNPtg.getColumn(),refNPtg.isColRelative()),
refNPtg.isRowRelative(),
refNPtg.isColRelative());
- } else if (ptg instanceof RefNVPtg) {
- RefNVPtg refNVPtg = (RefNVPtg)ptg;
- ptg = new RefVPtg(fixupRelativeRow(formulaRow,refNVPtg.getRow(),refNVPtg.isRowRelative()),
- fixupRelativeColumn(formulaColumn,refNVPtg.getColumn(),refNVPtg.isColRelative()),
- refNVPtg.isRowRelative(),
- refNVPtg.isColRelative());
- } else if (ptg instanceof RefNAPtg) {
- RefNAPtg refNAPtg = (RefNAPtg)ptg;
- ptg = new RefAPtg( fixupRelativeRow(formulaRow,refNAPtg.getRow(),refNAPtg.isRowRelative()),
- fixupRelativeColumn(formulaColumn,refNAPtg.getColumn(),refNAPtg.isColRelative()),
- refNAPtg.isRowRelative(),
- refNAPtg.isColRelative());
} else if (ptg instanceof AreaNPtg) {
AreaNPtg areaNPtg = (AreaNPtg)ptg;
ptg = new AreaPtg(fixupRelativeRow(formulaRow,areaNPtg.getFirstRow(),areaNPtg.isFirstRowRelative()),
@@ -233,26 +221,6 @@
areaNPtg.isLastRowRelative(),
areaNPtg.isFirstColRelative(),
areaNPtg.isLastColRelative());
- } else if (ptg instanceof AreaNVPtg) {
- AreaNVPtg areaNVPtg = (AreaNVPtg)ptg;
- ptg = new AreaVPtg(fixupRelativeRow(formulaRow,areaNVPtg.getFirstRow(),areaNVPtg.isFirstRowRelative()),
- fixupRelativeRow(formulaRow,areaNVPtg.getLastRow(),areaNVPtg.isLastRowRelative()),
- fixupRelativeColumn(formulaColumn,areaNVPtg.getFirstColumn(),areaNVPtg.isFirstColRelative()),
- fixupRelativeColumn(formulaColumn,areaNVPtg.getLastColumn(),areaNVPtg.isLastColRelative()),
- areaNVPtg.isFirstRowRelative(),
- areaNVPtg.isLastRowRelative(),
- areaNVPtg.isFirstColRelative(),
- areaNVPtg.isLastColRelative());
- } else if (ptg instanceof AreaNAPtg) {
- AreaNAPtg areaNAPtg = (AreaNAPtg)ptg;
- ptg = new AreaAPtg(fixupRelativeRow(formulaRow,areaNAPtg.getFirstRow(),areaNAPtg.isFirstRowRelative()),
- fixupRelativeRow(formulaRow,areaNAPtg.getLastRow(),areaNAPtg.isLastRowRelative()),
- fixupRelativeColumn(formulaColumn,areaNAPtg.getFirstColumn(),areaNAPtg.isFirstColRelative()),
- fixupRelativeColumn(formulaColumn,areaNAPtg.getLastColumn(),areaNAPtg.isLastColRelative()),
- areaNAPtg.isFirstRowRelative(),
- areaNAPtg.isLastRowRelative(),
- areaNAPtg.isFirstColRelative(),
- areaNAPtg.isLastColRelative());
}
if (!ptg.isBaseToken()) {
ptg.setClass(originalOperandClass);
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/AbstractFunctionPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/AbstractFunctionPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/AbstractFunctionPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/AbstractFunctionPtg.java Fri Jun 6 17:53:01 2008
@@ -56,12 +56,6 @@
return sb.toString();
}
- public int getType() {
- return -1;
- }
-
-
-
public short getFunctionIndex() {
return field_2_fnc_index;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/AddPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/AddPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/AddPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/AddPtg.java Fri Jun 6 17:53:01 2008
@@ -17,9 +17,6 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.hssf.record.RecordInputStream;
-
/**
* Addition operator PTG the "+" binomial operator. If you need more
* explanation than that then well...We really can't help you here.
@@ -27,49 +24,23 @@
* @author Jason Height (jheight at chariot dot net dot au)
*/
public final class AddPtg extends ValueOperatorPtg {
- public final static int SIZE = 1;
public final static byte sid = 0x03;
private final static String ADD = "+";
- /** Creates new AddPtg */
-
- public AddPtg()
- {
- }
-
- public AddPtg(RecordInputStream in)
- {
+ public static final ValueOperatorPtg instance = new AddPtg();
- // doesn't need anything
+ private AddPtg() {
+ // enforce singleton
}
-
- public void writeBytes(byte [] array, int offset)
- {
- array[ offset + 0 ] = sid;
- }
-
- public int getSize()
- {
- return SIZE;
+ protected byte getSid() {
+ return sid;
}
- public int getType()
- {
- return TYPE_BINARY;
- }
-
- public int getNumberOfOperands()
- {
+ public int getNumberOfOperands() {
return 2;
}
-
- /** Implementation of method from Ptg */
- public String toFormulaString(HSSFWorkbook book)
- {
- return "+";
- }
/** implementation of method from OperationsPtg*/
public String toFormulaString(String[] operands) {
@@ -80,9 +51,4 @@
buffer.append(operands[ 1 ]);
return buffer.toString();
}
-
- public Object clone() {
- return new AddPtg();
- }
-
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java Fri Jun 6 17:53:01 2008
@@ -95,7 +95,7 @@
public void writeBytes( byte[] array, int offset )
{
- array[0 + offset] = (byte) ( sid + ptgClass );
+ array[0 + offset] = (byte) ( sid + getPtgClass() );
LittleEndian.putShort( array, 1 + offset, getExternSheetIndex() );
LittleEndian.putShort( array, 3 + offset, (short)getFirstRow() );
LittleEndian.putShort( array, 5 + offset, (short)getLastRow() );
@@ -280,24 +280,10 @@
return retval.toString();
}
- public byte getDefaultOperandClass()
- {
+ public byte getDefaultOperandClass() {
return Ptg.CLASS_REF;
}
-
- public Object clone()
- {
- Area3DPtg ptg = new Area3DPtg();
- ptg.field_1_index_extern_sheet = field_1_index_extern_sheet;
- ptg.field_2_first_row = field_2_first_row;
- ptg.field_3_last_row = field_3_last_row;
- ptg.field_4_first_column = field_4_first_column;
- ptg.field_5_last_column = field_5_last_column;
- ptg.setClass(ptgClass);
- return ptg;
- }
-
-
+ // TODO - one junit relies on this. remove
public boolean equals( Object o )
{
if ( this == o ) return true;
@@ -313,18 +299,4 @@
return true;
}
-
- public int hashCode()
- {
- // TODO - hashCode seems to be unused
- int result;
- result = (int) field_1_index_extern_sheet;
- result = 29 * result + (int) field_2_first_row;
- result = 29 * result + (int) field_3_last_row;
- result = 29 * result + (int) field_4_first_column;
- result = 29 * result + (int) field_5_last_column;
- return result;
- }
-
-
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java Fri Jun 6 17:53:01 2008
@@ -17,73 +17,40 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.BitField;
-
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.util.LittleEndian;
/**
* AreaErr - handles deleted cell area references.
*
* @author Daniel Noll (daniel at nuix dot com dot au)
*/
-public class AreaErrPtg extends AreaPtg
-{
+public final class AreaErrPtg extends OperandPtg {
public final static byte sid = 0x2b;
- private AreaErrPtg()
- {
- //Required for clone methods
- super();
- }
-
- public AreaErrPtg(RecordInputStream in)
- {
- super(in);
- }
-
- public String toString()
- {
- StringBuffer buffer = new StringBuffer();
-
- buffer.append("AreaErrPtg\n");
- buffer.append("firstRow = " + getFirstRow()).append("\n");
- buffer.append("lastRow = " + getLastRow()).append("\n");
- buffer.append("firstCol = " + getFirstColumn()).append("\n");
- buffer.append("lastCol = " + getLastColumn()).append("\n");
- buffer.append("firstColRowRel= "
- + isFirstRowRelative()).append("\n");
- buffer.append("lastColRowRel = "
- + isLastRowRelative()).append("\n");
- buffer.append("firstColRel = " + isFirstColRelative()).append("\n");
- buffer.append("lastColRel = " + isLastColRelative()).append("\n");
- return buffer.toString();
+ public AreaErrPtg(RecordInputStream in) {
+ // 8 bytes unused:
+ in.readInt();
+ in.readInt();
}
public void writeBytes(byte [] array, int offset) {
- super.writeBytes(array, offset);
- array[offset] = (byte) (sid + ptgClass);
+ array[offset] = (byte) (sid + getPtgClass());
+ LittleEndian.putInt(array, offset+1, 0);
+ LittleEndian.putInt(array, offset+5, 0);
}
- public String toFormulaString(HSSFWorkbook book)
- {
+ public String toFormulaString(HSSFWorkbook book) {
return "#REF!";
}
-
- public Object clone()
- {
- AreaErrPtg ptg = new AreaErrPtg();
- ptg.setFirstRow(getFirstRow());
- ptg.setFirstColumn(getFirstColumn());
- ptg.setLastRow(getLastRow());
- ptg.setLastColumn(getLastColumn());
- ptg.setFirstColRelative(isFirstColRelative());
- ptg.setLastColRelative(isLastColRelative());
- ptg.setFirstRowRelative(isFirstRowRelative());
- ptg.setLastRowRelative(isLastRowRelative());
- ptg.setClass(ptgClass);
- return ptg;
- }
+
+ public byte getDefaultOperandClass() {
+ return Ptg.CLASS_REF;
+ }
+
+ public int getSize() {
+ return 9;
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java Fri Jun 6 17:53:01 2008
@@ -1,4 +1,3 @@
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -16,49 +15,22 @@
limitations under the License.
==================================================================== */
-/*
- * AreaPtg.java
- *
- * Created on November 17, 2001, 9:30 PM
- */
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.BitField;
-
import org.apache.poi.hssf.record.RecordInputStream;
-import org.apache.poi.hssf.util.AreaReference;
-import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
* Specifies a rectangular area of cells A1:A4 for instance.
* @author Jason Height (jheight at chariot dot net dot au)
*/
+public final class AreaNPtg extends AreaPtgBase {
+ public final static short sid = 0x2D;
-public final class AreaNPtg extends AreaPtg
-{
- public final static short sid = 0x2D;
-
- protected AreaNPtg() {
- //Required for clone methods
- }
-
- public AreaNPtg(RecordInputStream in)
- {
- super(in);
- }
-
- public String getAreaPtgName() {
- return "AreaNPtg";
- }
-
- public String toFormulaString(HSSFWorkbook book)
- {
- throw notImplemented();
- }
-
- public Object clone() {
- throw notImplemented();
- }
+ public AreaNPtg(RecordInputStream in) {
+ super(in);
+ }
+
+ protected byte getSid() {
+ return sid;
+ }
}
Added: poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java?rev=664220&view=auto
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java (added)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java Fri Jun 6 17:53:01 2008
@@ -0,0 +1,41 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+
+package org.apache.poi.hssf.record.formula;
+
+import org.apache.poi.hssf.record.RecordInputStream;
+
+/**
+ * Specifies a rectangular area of cells A1:A4 for instance.
+ * @author Jason Height (jheight at chariot dot net dot au)
+ */
+public final class AreaPtg extends AreaPtgBase {
+ public final static short sid = 0x25;
+
+ public AreaPtg(int firstRow, int lastRow, int firstColumn, int lastColumn, boolean firstRowRelative, boolean lastRowRelative, boolean firstColRelative, boolean lastColRelative) {
+ super(firstRow, lastRow, firstColumn, lastColumn, firstRowRelative, lastRowRelative, firstColRelative, lastColRelative);
+ }
+ public AreaPtg(RecordInputStream in) {
+ super(in);
+ }
+ public AreaPtg(String arearef) {
+ super(arearef);
+ }
+ protected byte getSid() {
+ return sid;
+ }
+}
Propchange: poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java
------------------------------------------------------------------------------
svn:executable = *
Propchange: poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java (from r664139, poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java)
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java?p2=poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java&p1=poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java&r1=664139&r2=664220&rev=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java Fri Jun 6 17:53:01 2008
@@ -31,7 +31,7 @@
* @author andy
* @author Jason Height (jheight at chariot dot net dot au)
*/
-public class AreaPtg extends OperandPtg implements AreaI {
+public abstract class AreaPtgBase extends OperandPtg implements AreaI {
/**
* TODO - (May-2008) fix subclasses of AreaPtg 'AreaN~' which are used in shared formulas.
* see similar comment in ReferencePtg
@@ -55,11 +55,7 @@
private final static BitField colRelative = BitFieldFactory.getInstance(0x4000);
private final static BitField columnMask = BitFieldFactory.getInstance(0x3FFF);
- protected AreaPtg() {
- //Required for clone methods
- }
-
- public AreaPtg(String arearef) {
+ protected AreaPtgBase(String arearef) {
AreaReference ar = new AreaReference(arearef);
CellReference firstCell = ar.getFirstCell();
CellReference lastCell = ar.getLastCell();
@@ -73,7 +69,7 @@
setLastRowRelative(!lastCell.isRowAbsolute());
}
- public AreaPtg(int firstRow, int lastRow, int firstColumn, int lastColumn,
+ protected AreaPtgBase(int firstRow, int lastRow, int firstColumn, int lastColumn,
boolean firstRowRelative, boolean lastRowRelative, boolean firstColRelative, boolean lastColRelative) {
checkColumnBounds(firstColumn);
@@ -101,20 +97,15 @@
}
}
- public AreaPtg(RecordInputStream in)
+ protected AreaPtgBase(RecordInputStream in)
{
field_1_first_row = in.readUShort();
field_2_last_row = in.readUShort();
field_3_first_column = in.readUShort();
field_4_last_column = in.readUShort();
- //System.out.println(toString());
}
-
- public String getAreaPtgName() {
- return "AreaPtg";
- }
- public String toString() {
+ public final String toString() {
StringBuffer sb = new StringBuffer();
sb.append(getClass().getName());
sb.append(" [");
@@ -122,25 +113,25 @@
sb.append("]");
return sb.toString();
}
+ protected abstract byte getSid();
- public void writeBytes(byte [] array, int offset) {
- array[offset] = (byte) (sid + ptgClass);
+ public final void writeBytes(byte [] array, int offset) {
+ array[offset] = (byte) (getSid() + getPtgClass());
LittleEndian.putShort(array,offset+1,(short)field_1_first_row);
LittleEndian.putShort(array,offset+3,(short)field_2_last_row);
LittleEndian.putShort(array,offset+5,(short)field_3_first_column);
LittleEndian.putShort(array,offset+7,(short)field_4_last_column);
}
- public int getSize()
- {
+
+ public final int getSize() {
return SIZE;
}
/**
* @return the first row in the area
*/
- public int getFirstRow()
- {
+ public final int getFirstRow() {
return field_1_first_row;
}
@@ -148,7 +139,7 @@
* sets the first row
* @param rowIx number (0-based)
*/
- public void setFirstRow(int rowIx) {
+ public final void setFirstRow(int rowIx) {
checkRowBounds(rowIx);
field_1_first_row = rowIx;
}
@@ -156,15 +147,14 @@
/**
* @return last row in the range (x2 in x1,y1-x2,y2)
*/
- public int getLastRow()
- {
+ public final int getLastRow() {
return field_2_last_row;
}
/**
* @param rowIx last row number in the area
*/
- public void setLastRow(int rowIx) {
+ public final void setLastRow(int rowIx) {
checkRowBounds(rowIx);
field_2_last_row = rowIx;
}
@@ -172,24 +162,21 @@
/**
* @return the first column number in the area.
*/
- public int getFirstColumn()
- {
+ public final int getFirstColumn() {
return columnMask.getValue(field_3_first_column);
}
/**
* @return the first column number + the options bit settings unstripped
*/
- public short getFirstColumnRaw()
- {
+ public final short getFirstColumnRaw() {
return (short) field_3_first_column; // TODO
}
/**
* @return whether or not the first row is a relative reference or not.
*/
- public boolean isFirstRowRelative()
- {
+ public final boolean isFirstRowRelative() {
return rowRelative.isSet(field_3_first_column);
}
@@ -197,62 +184,57 @@
* sets the first row to relative or not
* @param rel is relative or not.
*/
- public void setFirstRowRelative(boolean rel) {
+ public final void setFirstRowRelative(boolean rel) {
field_3_first_column=rowRelative.setBoolean(field_3_first_column,rel);
}
/**
* @return isrelative first column to relative or not
*/
- public boolean isFirstColRelative()
- {
+ public final boolean isFirstColRelative() {
return colRelative.isSet(field_3_first_column);
}
/**
* set whether the first column is relative
*/
- public void setFirstColRelative(boolean rel) {
+ public final void setFirstColRelative(boolean rel) {
field_3_first_column=colRelative.setBoolean(field_3_first_column,rel);
}
/**
* set the first column in the area
*/
- public void setFirstColumn(int colIx) {
+ public final void setFirstColumn(int colIx) {
checkColumnBounds(colIx);
field_3_first_column=columnMask.setValue(field_3_first_column, colIx);
}
/**
- * set the first column irespective of the bitmasks
+ * set the first column irrespective of the bitmasks
*/
- public void setFirstColumnRaw(int column)
- {
+ public final void setFirstColumnRaw(int column) {
field_3_first_column = column;
}
/**
* @return lastcolumn in the area
*/
- public int getLastColumn()
- {
+ public final int getLastColumn() {
return columnMask.getValue(field_4_last_column);
}
/**
* @return last column and bitmask (the raw field)
*/
- public short getLastColumnRaw()
- {
+ public final short getLastColumnRaw() {
return (short) field_4_last_column;
}
/**
* @return last row relative or not
*/
- public boolean isLastRowRelative()
- {
+ public final boolean isLastRowRelative() {
return rowRelative.isSet(field_4_last_column);
}
@@ -261,30 +243,28 @@
* @param rel <code>true</code> if the last row relative, else
* <code>false</code>
*/
- public void setLastRowRelative(boolean rel) {
+ public final void setLastRowRelative(boolean rel) {
field_4_last_column=rowRelative.setBoolean(field_4_last_column,rel);
}
/**
* @return lastcol relative or not
*/
- public boolean isLastColRelative()
- {
+ public final boolean isLastColRelative() {
return colRelative.isSet(field_4_last_column);
}
/**
* set whether the last column should be relative or not
*/
- public void setLastColRelative(boolean rel) {
+ public final void setLastColRelative(boolean rel) {
field_4_last_column=colRelative.setBoolean(field_4_last_column,rel);
}
-
/**
* set the last column in the area
*/
- public void setLastColumn(int colIx) {
+ public final void setLastColumn(int colIx) {
checkColumnBounds(colIx);
field_4_last_column=columnMask.setValue(field_4_last_column, colIx);
}
@@ -292,8 +272,7 @@
/**
* set the last column irrespective of the bitmasks
*/
- public void setLastColumnRaw(short column)
- {
+ public final void setLastColumnRaw(short column) {
field_4_last_column = column;
}
@@ -304,15 +283,4 @@
public byte getDefaultOperandClass() {
return Ptg.CLASS_REF;
}
-
- public Object clone() {
- AreaPtg ptg = new AreaPtg();
- ptg.field_1_first_row = field_1_first_row;
- ptg.field_2_last_row = field_2_last_row;
- ptg.field_3_first_column = field_3_first_column;
- ptg.field_4_last_column = field_4_last_column;
- ptg.setClass(ptgClass);
- return ptg;
- }
-
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java Fri Jun 6 17:53:01 2008
@@ -35,29 +35,28 @@
*
* @author Jason Height (jheight at chariot dot net dot au)
*/
-public class ArrayPtg extends Ptg {
+public final class ArrayPtg extends Ptg {
public static final byte sid = 0x20;
private static final int RESERVED_FIELD_LEN = 7;
// TODO - fix up field visibility and subclasses
- protected byte[] field_1_reserved;
+ private byte[] field_1_reserved;
+
// data from these fields comes after the Ptg data of all tokens in current formula
- protected short token_1_columns;
- protected short token_2_rows;
- protected Object[] token_3_arrayValues;
-
- protected ArrayPtg() {
- //Required for clone methods
- }
+ private short token_1_columns;
+ private short token_2_rows;
+ private Object[] token_3_arrayValues;
- public ArrayPtg(RecordInputStream in)
- {
+ public ArrayPtg(RecordInputStream in) {
field_1_reserved = new byte[RESERVED_FIELD_LEN];
// TODO - add readFully method to RecordInputStream
for(int i=0; i< RESERVED_FIELD_LEN; i++) {
field_1_reserved[i] = in.readByte();
}
}
+ public Object[] getTokenArrayValues() {
+ return (Object[]) token_3_arrayValues.clone();
+ }
public boolean isBaseToken() {
return false;
@@ -117,7 +116,7 @@
public void writeBytes(byte[] data, int offset) {
- LittleEndian.putByte(data, offset + 0, sid + ptgClass);
+ LittleEndian.putByte(data, offset + 0, sid + getPtgClass());
System.arraycopy(field_1_reserved, 0, data, offset+1, RESERVED_FIELD_LEN);
}
@@ -190,13 +189,9 @@
}
public Object clone() {
- ArrayPtg ptg = new ArrayPtg();
+ ArrayPtg ptg = (ArrayPtg) super.clone();
ptg.field_1_reserved = (byte[]) field_1_reserved.clone();
-
- ptg.token_1_columns = token_1_columns;
- ptg.token_2_rows = token_2_rows;
ptg.token_3_arrayValues = (Object[]) token_3_arrayValues.clone();
- ptg.setClass(ptgClass);
return ptg;
}
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java Fri Jun 6 17:53:01 2008
@@ -30,11 +30,7 @@
public final class BoolPtg extends ScalarConstantPtg {
public final static int SIZE = 2;
public final static byte sid = 0x1d;
- private boolean field_1_value;
-
- private BoolPtg() {
- //Required for clone methods
- }
+ private final boolean field_1_value;
public BoolPtg(RecordInputStream in)
{
@@ -46,11 +42,6 @@
field_1_value = (formulaToken.equals("TRUE"));
}
- public void setValue(boolean value)
- {
- field_1_value = value;
- }
-
public boolean getValue()
{
return field_1_value;
@@ -71,10 +62,4 @@
{
return field_1_value ? "TRUE" : "FALSE";
}
-
- public Object clone() {
- BoolPtg ptg = new BoolPtg();
- ptg.field_1_value = field_1_value;
- return ptg;
- }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/ConcatPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/ConcatPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/ConcatPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/ConcatPtg.java Fri Jun 6 17:53:01 2008
@@ -17,54 +17,29 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.hssf.record.RecordInputStream;
-
/**
*
* @author andy
* @author Jason Height (jheight at chariot dot net dot au)
*/
public final class ConcatPtg extends ValueOperatorPtg {
- public final static int SIZE = 1;
public final static byte sid = 0x08;
private final static String CONCAT = "&";
- public ConcatPtg(RecordInputStream in)
- {
- // No contents
- }
-
- public ConcatPtg() {
-
- }
-
- public void writeBytes(byte [] array, int offset)
- {
- array[ offset + 0 ] = sid;
- }
+ public static final ValueOperatorPtg instance = new ConcatPtg();
- public int getSize()
- {
- return SIZE;
+ private ConcatPtg() {
+ // enforce singleton
}
-
- public int getType()
- {
- return TYPE_BINARY;
+
+ protected byte getSid() {
+ return sid;
}
- public int getNumberOfOperands()
- {
+ public int getNumberOfOperands() {
return 2;
}
-
- public String toFormulaString(HSSFWorkbook book)
- {
- return CONCAT;
- }
-
public String toFormulaString(String[] operands) {
StringBuffer buffer = new StringBuffer();
@@ -74,9 +49,4 @@
buffer.append(operands[ 1 ]);
return buffer.toString();
}
-
- public Object clone() {
- return new ConcatPtg();
- }
-
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/DividePtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/DividePtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/DividePtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/DividePtg.java Fri Jun 6 17:53:01 2008
@@ -17,66 +17,34 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.hssf.record.RecordInputStream;
-
/**
* This PTG implements the standard binomial divide "/"
* @author Andrew C. Oliver acoliver at apache dot org
* @author Jason Height (jheight at chariot dot net dot au)
*/
public final class DividePtg extends ValueOperatorPtg {
- public final static int SIZE = 1;
public final static byte sid = 0x06;
- /** Creates new AddPtg */
-
- public DividePtg()
- {
- }
-
- public DividePtg(RecordInputStream in)
- {
+ public static final ValueOperatorPtg instance = new DividePtg();
- // doesn't need anything
+ private DividePtg() {
+ // enforce singleton
}
-
- public void writeBytes(byte [] array, int offset)
- {
- array[ offset + 0 ] = sid;
- }
-
- public int getSize()
- {
- return SIZE;
+
+ protected byte getSid() {
+ return sid;
}
- public int getType()
- {
- return TYPE_BINARY;
- }
-
- public int getNumberOfOperands()
- {
+ public int getNumberOfOperands() {
return 2;
}
- public String toFormulaString(HSSFWorkbook book)
- {
- return "/";
- }
-
public String toFormulaString(String[] operands) {
StringBuffer buffer = new StringBuffer();
buffer.append(operands[ 0 ]);
- buffer.append(toFormulaString((HSSFWorkbook)null));
+ buffer.append("/");
buffer.append(operands[ 1 ]);
return buffer.toString();
}
-
- public Object clone() {
- DividePtg ptg = new DividePtg();
- return ptg;
- }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/EqualPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/EqualPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/EqualPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/EqualPtg.java Fri Jun 6 17:53:01 2008
@@ -17,67 +17,34 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.hssf.record.RecordInputStream;
-
/**
*
* @author andy
*/
public final class EqualPtg extends ValueOperatorPtg {
- public final static int SIZE = 1;
public final static byte sid = 0x0b;
- /** Creates new AddPtg */
-
- public EqualPtg()
- {
- }
-
- public EqualPtg(RecordInputStream in)
- {
+ public static final ValueOperatorPtg instance = new EqualPtg();
- // doesn't need anything
+ private EqualPtg() {
+ // enforce singleton
}
-
- public void writeBytes(byte [] array, int offset)
- {
- array[ offset + 0 ] = sid;
- }
-
- public int getSize()
- {
- return SIZE;
+
+ protected byte getSid() {
+ return sid;
}
- public int getType()
- {
- return TYPE_BINARY;
- }
-
- public int getNumberOfOperands()
- {
+ public int getNumberOfOperands() {
return 2;
}
-
- public String toFormulaString(HSSFWorkbook book)
- {
- return "=";
- }
public String toFormulaString(String[] operands) {
StringBuffer buffer = new StringBuffer();
buffer.append(operands[ 0 ]);
- buffer.append(toFormulaString((HSSFWorkbook)null));
+ buffer.append("=");
buffer.append(operands[ 1 ]);
return buffer.toString();
}
-
- public Object clone() {
- return new EqualPtg();
- }
-
-
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java Fri Jun 6 17:53:01 2008
@@ -47,7 +47,7 @@
public static final short sid = 0x1c;
private static final int SIZE = 2;
- private int field_1_error_code;
+ private final int field_1_error_code;
/** Creates new ErrPtg */
@@ -64,7 +64,7 @@
public void writeBytes(byte [] array, int offset)
{
- array[offset] = (byte) (sid + ptgClass);
+ array[offset] = (byte) (sid + getPtgClass());
array[offset + 1] = (byte)field_1_error_code;
}
@@ -76,10 +76,6 @@
return SIZE;
}
- public Object clone() {
- return new ErrPtg(field_1_error_code);
- }
-
public int getErrorCode() {
return field_1_error_code;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java Fri Jun 6 17:53:01 2008
@@ -1,4 +1,3 @@
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -30,20 +29,11 @@
* @author Jason Height (jheight at chariot dot net dot au)
* @author dmui (save existing implementation)
*/
-
public final class ExpPtg extends ControlPtg {
private final static int SIZE = 5;
public final static short sid = 0x1;
- private short field_1_first_row;
- private short field_2_first_col;
-
- /** Creates new ExpPtg */
-
- public ExpPtg()
- {
- }
-
- /** Creates new ExpPtg */
+ private final short field_1_first_row;
+ private final short field_2_first_col;
public ExpPtg(RecordInputStream in)
{
@@ -83,12 +73,4 @@
buffer.append("col = ").append(getColumn()).append("\n");
return buffer.toString();
}
-
- public Object clone() {
- ExpPtg result = new ExpPtg();
- result.field_1_first_row = field_1_first_row;
- result.field_2_first_col = field_2_first_col;
- return result;
- }
-
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java Fri Jun 6 17:53:01 2008
@@ -56,7 +56,7 @@
}
public void writeBytes(byte[] array, int offset) {
- array[offset+0]= (byte) (sid + ptgClass);
+ array[offset+0]= (byte) (sid + getPtgClass());
LittleEndian.putShort(array,offset+1,field_2_fnc_index);
}
@@ -64,12 +64,6 @@
return numParams;
}
- public Object clone() {
- FuncPtg ptg = new FuncPtg(field_2_fnc_index);
- ptg.setClass(ptgClass);
- return ptg;
- }
-
public int getSize() {
return SIZE;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java Fri Jun 6 17:53:01 2008
@@ -30,11 +30,7 @@
public final static byte sid = 0x22;
private final static int SIZE = 4;
- private FuncVarPtg() {
- //Required for clone methods
- }
-
- /**Creates new function pointer from a byte array
+ /**Creates new function pointer from a byte array
* usually called while reading an excel file.
*/
public FuncVarPtg(RecordInputStream in) {
@@ -69,7 +65,7 @@
}
public void writeBytes(byte[] array, int offset) {
- array[offset+0]=(byte) (sid + ptgClass);
+ array[offset+0]=(byte) (sid + getPtgClass());
array[offset+1]=field_1_num_args;
LittleEndian.putShort(array,offset+2,field_2_fnc_index);
}
@@ -78,14 +74,6 @@
return field_1_num_args;
}
- public Object clone() {
- FuncVarPtg ptg = new FuncVarPtg();
- ptg.field_1_num_args = field_1_num_args;
- ptg.field_2_fnc_index = field_2_fnc_index;
- ptg.setClass(ptgClass);
- return ptg;
- }
-
public int getSize() {
return SIZE;
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/GreaterEqualPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/GreaterEqualPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/GreaterEqualPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/GreaterEqualPtg.java Fri Jun 6 17:53:01 2008
@@ -17,8 +17,6 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.hssf.record.RecordInputStream;
/**
* PTG class to implement greater or equal to
@@ -29,56 +27,28 @@
public final static int SIZE = 1;
public final static byte sid = 0x0c;
- /** Creates new GreaterEqualPtg */
+ public static final ValueOperatorPtg instance = new GreaterEqualPtg();
- public GreaterEqualPtg()
- {
+ private GreaterEqualPtg() {
+ // enforce singleton
}
-
- public GreaterEqualPtg(RecordInputStream in)
- {
-
- // doesn't need anything
- }
-
- public void writeBytes(byte [] array, int offset)
- {
- array[ offset + 0 ] = sid;
+
+ protected byte getSid() {
+ return sid;
}
- public int getSize()
- {
- return SIZE;
- }
-
- public int getType()
- {
- return TYPE_BINARY;
- }
-
- public int getNumberOfOperands()
- {
+ public int getNumberOfOperands() {
return 2;
}
- public String toFormulaString(HSSFWorkbook book)
- {
- return ">=";
- }
-
public String toFormulaString(String[] operands) {
StringBuffer buffer = new StringBuffer();
buffer.append(operands[ 0 ]);
- buffer.append(toFormulaString((HSSFWorkbook)null));
+ buffer.append(">=");
buffer.append(operands[ 1 ]);
return buffer.toString();
}
-
- public Object clone() {
- return new GreaterEqualPtg();
- }
-
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/GreaterThanPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/GreaterThanPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/GreaterThanPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/GreaterThanPtg.java Fri Jun 6 17:53:01 2008
@@ -17,82 +17,34 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.record.RecordInputStream;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
* Greater than operator PTG ">"
* @author Cameron Riley (criley at ekmail.com)
*/
public final class GreaterThanPtg extends ValueOperatorPtg {
- public final static int SIZE = 1;
public final static byte sid = 0x0D;
private final static String GREATERTHAN = ">";
- /**
- * Constructor. Creates new GreaterThanPtg
- */
- public GreaterThanPtg()
- {
- //deliberately empty
- }
+ public static final ValueOperatorPtg instance = new GreaterThanPtg();
- /**
- * Constructor. Create a new GreaterThanPtg.
- * @param in the RecordInputstream to read the record from
- */
- public GreaterThanPtg(RecordInputStream in)
- {
- //deliberately empty
+ private GreaterThanPtg() {
+ // enforce singleton
}
- /**
- * Write the sid to an array
- * @param array the array of bytes to write the sid to
- * @param offset the offset to add the sid to
- */
- public void writeBytes(byte [] array, int offset)
- {
- array[ offset + 0 ] = sid;
- }
-
- /**
- * Get the size of the sid
- * @return int the size of the sid in terms of byte additions to an array
- */
- public int getSize()
- {
- return SIZE;
- }
-
- /**
- * Get the type of PTG for Greater Than
- * @return int the identifier for the type
- */
- public int getType()
- {
- return TYPE_BINARY;
+ protected byte getSid() {
+ return sid;
}
/**
* Get the number of operands for the Less than operator
* @return int the number of operands
*/
- public int getNumberOfOperands()
- {
+ public int getNumberOfOperands() {
return 2;
}
/**
- * Implementation of method from Ptg
- * @param book the Sheet References
- */
- public String toFormulaString(HSSFWorkbook book)
- {
- return this.GREATERTHAN;
- }
-
- /**
* Implementation of method from OperationsPtg
* @param operands a String array of operands
* @return String the Formula as a String
@@ -102,17 +54,8 @@
StringBuffer buffer = new StringBuffer();
buffer.append(operands[ 0 ]);
- buffer.append(this.GREATERTHAN);
+ buffer.append(GREATERTHAN);
buffer.append(operands[ 1 ]);
return buffer.toString();
}
-
- /**
- * Implementation of clone method from Object
- * @return Object a clone of this class as an Object
- */
- public Object clone()
- {
- return new GreaterThanPtg();
- }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntPtg.java Fri Jun 6 17:53:01 2008
@@ -43,13 +43,12 @@
public final static int SIZE = 3;
public final static byte sid = 0x1e;
- private int field_1_value;
+ private final int field_1_value;
public IntPtg(RecordInputStream in) {
this(in.readUShort());
}
-
public IntPtg(int value) {
if(!isInRange(value)) {
throw new IllegalArgumentException("value is out of range: " + value);
@@ -61,7 +60,6 @@
return field_1_value;
}
-
public void writeBytes(byte [] array, int offset)
{
array[ offset + 0 ] = sid;
@@ -76,9 +74,6 @@
return String.valueOf(getValue());
}
- public Object clone() {
- return new IntPtg(field_1_value);
- }
public String toString() {
StringBuffer sb = new StringBuffer(64);
sb.append(getClass().getName()).append(" [");
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntersectionPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntersectionPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntersectionPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/IntersectionPtg.java Fri Jun 6 17:53:01 2008
@@ -18,7 +18,6 @@
package org.apache.poi.hssf.record.formula;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.hssf.record.RecordInputStream;
/**
* @author Daniel Noll (daniel at nuix dot com dot au)
@@ -26,14 +25,10 @@
public final class IntersectionPtg extends OperationPtg {
public final static byte sid = 0x0f;
+ public static final OperationPtg instance = new IntersectionPtg();
- public IntersectionPtg()
- {
- }
-
- public IntersectionPtg(RecordInputStream in)
- {
- // doesn't need anything
+ private IntersectionPtg() {
+ // enforce singleton
}
public final boolean isBaseToken() {
@@ -50,16 +45,6 @@
array[ offset + 0 ] = sid;
}
- public Object clone()
- {
- return new IntersectionPtg();
- }
-
- public int getType()
- {
- return TYPE_BINARY;
- }
-
/** Implementation of method from Ptg */
public String toFormulaString(HSSFWorkbook book)
{
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/LessEqualPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/LessEqualPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/LessEqualPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/LessEqualPtg.java Fri Jun 6 17:53:01 2008
@@ -19,8 +19,6 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.hssf.record.RecordInputStream;
/**
@@ -29,58 +27,27 @@
* @author fred at stsci dot edu
*/
public final class LessEqualPtg extends ValueOperatorPtg {
- public final static int SIZE = 1;
public final static byte sid = 0x0a;
- /**
- * Creates new LessEqualPtg
- */
- public LessEqualPtg()
- {
+ public static final ValueOperatorPtg instance = new LessEqualPtg();
+ private LessEqualPtg() {
+ // enforce singleton
}
-
- public LessEqualPtg( RecordInputStream in )
- {
- // doesn't need anything
- }
-
- public void writeBytes( byte[] array, int offset )
- {
- array[offset + 0] = sid;
+
+ protected byte getSid() {
+ return sid;
}
- public int getSize()
- {
- return SIZE;
- }
-
- public int getType()
- {
- return TYPE_BINARY;
- }
-
- public int getNumberOfOperands()
- {
+ public int getNumberOfOperands() {
return 2;
}
- public String toFormulaString( HSSFWorkbook book )
- {
- return "<=";
- }
-
- public String toFormulaString( String[] operands )
- {
+ public String toFormulaString(String[] operands) {
StringBuffer buffer = new StringBuffer();
buffer.append( operands[0] );
- buffer.append( toFormulaString( (HSSFWorkbook) null ) );
+ buffer.append("<=");
buffer.append( operands[1] );
return buffer.toString();
}
-
- public Object clone()
- {
- return new LessEqualPtg();
- }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/LessThanPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/LessThanPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/LessThanPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/LessThanPtg.java Fri Jun 6 17:53:01 2008
@@ -17,9 +17,6 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.hssf.record.RecordInputStream;
-
/**
* Less than operator PTG "<". The SID is taken from the
* Openoffice.orgs Documentation of the Excel File Format,
@@ -27,79 +24,31 @@
* @author Cameron Riley (criley at ekmail.com)
*/
public final class LessThanPtg extends ValueOperatorPtg {
- /** the size of the Ptg */
- public final static int SIZE = 1;
-
/** the sid for the less than operator as hex */
public final static byte sid = 0x09;
/** identifier for LESS THAN char */
private final static String LESSTHAN = "<";
- /**
- * Constructor. Creates new LessThanPtg
- */
- public LessThanPtg()
- {
- //deliberately empty
- }
+ public static final ValueOperatorPtg instance = new LessThanPtg();
- /**
- * Constructor. Create a new LessThanPtg.
- * @param in the RecordInputstream to read the record from
- */
- public LessThanPtg(RecordInputStream in)
- {
- //deliberately empty
+ private LessThanPtg() {
+ // enforce singleton
}
- /**
- * Write the sid to an array
- * @param array the array of bytes to write the sid to
- * @param offset the offset to add the sid to
- */
- public void writeBytes(byte[] array, int offset)
- {
- array[ offset + 0 ] = sid;
- }
-
- /**
- * Get the size of the sid
- * @return int the size of the sid in terms of byte additions to an array
- */
- public int getSize()
- {
- return SIZE;
- }
-
- /**
- * Get the type of PTG for Less Than
- * @return int the identifier for the type
- */
- public int getType()
- {
- return TYPE_BINARY;
+ protected byte getSid() {
+ return sid;
}
/**
* Get the number of operands for the Less than operator
* @return int the number of operands
*/
- public int getNumberOfOperands()
- {
+ public int getNumberOfOperands() {
return 2;
}
- /**
- * Implementation of method from Ptg
- * @param book the Sheet References
- */
- public String toFormulaString(HSSFWorkbook book)
- {
- return this.LESSTHAN;
- }
-
- /**
+ /**
* Implementation of method from OperationsPtg
* @param operands a String array of operands
* @return String the Formula as a String
@@ -108,18 +57,8 @@
{
StringBuffer buffer = new StringBuffer();
buffer.append(operands[ 0 ]);
- buffer.append(this.LESSTHAN);
+ buffer.append(LESSTHAN);
buffer.append(operands[ 1 ]);
return buffer.toString();
}
-
- /**
- * Implementation of clone method from Object
- * @return Object a clone of this class as an Object
- */
- public Object clone()
- {
- return new LessThanPtg();
- }
-
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java Fri Jun 6 17:53:01 2008
@@ -64,7 +64,7 @@
public void writeBytes(byte [] array, int offset)
{
- array[offset] = (byte) (sid + ptgClass);
+ array[offset] = (byte) (sid + getPtgClass());
LittleEndian.putInt(array, offset + 1, field_1_reserved);
LittleEndian.putShort(array, offset + 5, field_2_subex_len);
}
@@ -79,12 +79,7 @@
return ""; // TODO: Not sure how to format this. -- DN
}
- public byte getDefaultOperandClass() {return Ptg.CLASS_VALUE;}
-
- public Object clone() {
- MemAreaPtg ptg = new MemAreaPtg();
- ptg.field_1_reserved = field_1_reserved;
- ptg.field_2_subex_len = field_2_subex_len;
- return ptg;
+ public byte getDefaultOperandClass() {
+ return Ptg.CLASS_VALUE;
}
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java Fri Jun 6 17:53:01 2008
@@ -1,4 +1,3 @@
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -16,17 +15,10 @@
limitations under the License.
==================================================================== */
-
-/*
- * MemErrPtg.java
- *
- * Created on November 21, 2001, 8:46 AM
- */
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.util.LittleEndian;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
*
@@ -35,9 +27,7 @@
* @author Daniel Noll (daniel at nuix dot com dot au)
*/
-public class MemErrPtg
- extends MemAreaPtg
-{
+public final class MemErrPtg extends MemAreaPtg {
public final static short sid = 0x27;
/** Creates new MemErrPtg */
@@ -46,26 +36,17 @@
{
}
- public MemErrPtg(RecordInputStream in)
- {
+ public MemErrPtg(RecordInputStream in) {
super(in);
}
- public void writeBytes(byte [] array, int offset)
- {
+ public void writeBytes(byte [] array, int offset) {
super.writeBytes(array, offset);
- array[offset] = (byte) (sid + ptgClass);
+ array[offset] = (byte) (sid + getPtgClass());
}
public String toFormulaString(HSSFWorkbook book)
{
return "ERR#";
}
-
- public Object clone() {
- MemErrPtg ptg = new MemErrPtg();
- ptg.setReserved(getReserved());
- ptg.setSubexpressionLength(getSubexpressionLength());
- return ptg;
- }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java Fri Jun 6 17:53:01 2008
@@ -15,12 +15,6 @@
limitations under the License.
==================================================================== */
-
-/*
- * Ptg.java
- *
- * Created on October 28, 2001, 6:30 PM
- */
package org.apache.poi.hssf.record.formula;
import org.apache.poi.util.LittleEndian;
@@ -30,25 +24,23 @@
/**
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class MemFuncPtg extends OperandPtg {
+public final class MemFuncPtg extends OperandPtg {
public final static byte sid = 0x29;
- private short field_1_len_ref_subexpression = 0;
-
- public MemFuncPtg()
- {
- //Required for clone methods
- }
+ private final int field_1_len_ref_subexpression;
/**Creates new function pointer from a byte array
* usually called while reading an excel file.
*/
- public MemFuncPtg( RecordInputStream in )
- {
- field_1_len_ref_subexpression = in.readShort();
+ public MemFuncPtg(RecordInputStream in) {
+ this(in.readUShort());
}
- public int getSize()
+ public MemFuncPtg(int subExprLen) {
+ field_1_len_ref_subexpression = subExprLen;
+ }
+
+ public int getSize()
{
return 3;
}
@@ -56,7 +48,7 @@
public void writeBytes( byte[] array, int offset )
{
array[offset + 0] = sid ;
- LittleEndian.putShort( array, offset + 1, (short)field_1_len_ref_subexpression );
+ LittleEndian.putUShort( array, offset + 1, field_1_len_ref_subexpression );
}
public String toFormulaString(HSSFWorkbook book)
@@ -66,7 +58,7 @@
public byte getDefaultOperandClass()
{
- return 0;
+ return Ptg.CLASS_REF;
}
public int getNumberOfOperands()
@@ -74,21 +66,8 @@
return field_1_len_ref_subexpression;
}
- public Object clone()
- {
- MemFuncPtg ptg = new MemFuncPtg();
- ptg.field_1_len_ref_subexpression = this.field_1_len_ref_subexpression;
- return ptg;
- }
-
public int getLenRefSubexpression()
{
return field_1_len_ref_subexpression;
}
-
- public void setLenRefSubexpression(int len)
- {
- field_1_len_ref_subexpression = (short)len;
- }
-
}
\ No newline at end of file
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/MissingArgPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/MissingArgPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/MissingArgPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/MissingArgPtg.java Fri Jun 6 17:53:01 2008
@@ -18,7 +18,6 @@
package org.apache.poi.hssf.record.formula;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.hssf.record.RecordInputStream;
/**
* Missing Function Arguments
@@ -31,16 +30,10 @@
private final static int SIZE = 1;
public final static byte sid = 0x16;
- public MissingArgPtg()
+ public static final Ptg instance = new MissingArgPtg();
+ private MissingArgPtg()
{
}
-
- public MissingArgPtg(RecordInputStream in)
- {
- // doesn't need anything
- }
-
-
public void writeBytes(byte [] array, int offset)
{
@@ -51,15 +44,9 @@
{
return SIZE;
}
-
public String toFormulaString(HSSFWorkbook book)
{
return " ";
}
-
- public Object clone() {
- return new MissingArgPtg();
- }
-
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java Fri Jun 6 17:53:01 2008
@@ -14,83 +14,37 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-package org.apache.poi.hssf.record.formula;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.hssf.record.RecordInputStream;
+package org.apache.poi.hssf.record.formula;
/**
* Implements the standard mathmatical multiplication - *
* @author Andrew C. Oliver (acoliver at apache dot org)
* @author Jason Height (jheight at chariot dot net dot au)
*/
-
public final class MultiplyPtg extends ValueOperatorPtg {
- public final static int SIZE = 1;
public final static byte sid = 0x05;
- /** Creates new AddPtg */
-
- public MultiplyPtg()
- {
- }
-
- public MultiplyPtg(RecordInputStream in)
- {
+ public static final ValueOperatorPtg instance = new MultiplyPtg();
- // doesn't need anything
+ private MultiplyPtg() {
+ // enforce singleton
}
- public void writeBytes(byte [] array, int offset)
- {
- array[ offset + 0 ] = sid;
+ protected byte getSid() {
+ return sid;
}
- public int getSize()
- {
- return SIZE;
- }
-
- public int getType()
- {
- return TYPE_BINARY;
- }
-
- public int getNumberOfOperands()
- {
+ public int getNumberOfOperands() {
return 2;
}
-
- public int getStringLength() {
- return 1;
- }
-
-
- public String toFormulaString(HSSFWorkbook book)
- {
- return "*";
- }
-
- public String toFormulaString(Ptg [] operands)
- {
- StringBuffer buffer = new StringBuffer();
-
- buffer.append(operands[ 0 ].toFormulaString((HSSFWorkbook)null));
- buffer.append("*");
- buffer.append(operands[ 1 ].toFormulaString((HSSFWorkbook)null));
- return buffer.toString();
- }
public String toFormulaString(String[] operands) {
StringBuffer buffer = new StringBuffer();
buffer.append(operands[ 0 ]);
- buffer.append(toFormulaString((HSSFWorkbook)null));
+ buffer.append("*");
buffer.append(operands[ 1 ]);
return buffer.toString();
}
-
- public Object clone() {
- return new MultiplyPtg();
- }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/NamePtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/NamePtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/NamePtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/NamePtg.java Fri Jun 6 17:53:01 2008
@@ -17,11 +17,10 @@
package org.apache.poi.hssf.record.formula;
-import org.apache.poi.util.LittleEndian;
+import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.usermodel.HSSFName;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.hssf.record.NameRecord;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.util.LittleEndian;
/**
*
@@ -34,12 +33,6 @@
/** one-based index to defined name record */
private short field_1_label_index;
private short field_2_zero; // reserved must be 0
- boolean xtra=false;
-
-
- private NamePtg() {
- //Required for clone methods
- }
/**
* Creates new NamePtg and sets its name index to that of the corresponding defined name record
@@ -69,12 +62,9 @@
/** Creates new NamePtg */
- public NamePtg(RecordInputStream in)
- {
- //field_1_ixti = LittleEndian.getShort(data, offset);
+ public NamePtg(RecordInputStream in) {
field_1_label_index = in.readShort();
field_2_zero = in.readShort();
- //if (data[offset+6]==0) xtra=true;
}
/**
@@ -84,15 +74,13 @@
return field_1_label_index-1; // convert to zero based
}
- public void writeBytes(byte [] array, int offset)
- {
- array[offset+0]= (byte) (sid + ptgClass);
+ public void writeBytes(byte [] array, int offset) {
+ array[offset+0]= (byte) (sid + getPtgClass());
LittleEndian.putShort(array,offset+1,field_1_label_index);
LittleEndian.putShort(array,offset+3, field_2_zero);
}
- public int getSize()
- {
+ public int getSize() {
return SIZE;
}
@@ -101,12 +89,7 @@
return book.getNameName(field_1_label_index - 1);
}
- public byte getDefaultOperandClass() {return Ptg.CLASS_REF;}
-
- public Object clone() {
- NamePtg ptg = new NamePtg();
- ptg.field_1_label_index = field_1_label_index;
- ptg.field_2_zero = field_2_zero;
- return ptg;
- }
+ public byte getDefaultOperandClass() {
+ return Ptg.CLASS_REF;
+ }
}
Modified: poi/trunk/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java?rev=664220&r1=664219&r2=664220&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java Fri Jun 6 17:53:01 2008
@@ -33,31 +33,20 @@
private short field_3_reserved; // reserved must be 0
- private NameXPtg() {
- //Required for clone methods
- }
-
- /** Creates new NamePtg */
-
- public NameXPtg(RecordInputStream in)
- {
+ public NameXPtg(RecordInputStream in) {
field_1_ixals = in.readShort();
field_2_ilbl = in.readShort();
field_3_reserved = in.readShort();
-
- //field_2_reserved = LittleEndian.getByteArray(data, offset + 12,12);
}
- public void writeBytes(byte [] array, int offset)
- {
- array[ offset + 0 ] = (byte)(sid + ptgClass);
+ public void writeBytes(byte [] array, int offset) {
+ array[ offset + 0 ] = (byte)(sid + getPtgClass());
LittleEndian.putShort(array, offset + 1, field_1_ixals);
LittleEndian.putShort(array,offset+3, field_2_ilbl);
LittleEndian.putShort(array, offset + 5, field_3_reserved);
}
- public int getSize()
- {
+ public int getSize() {
return SIZE;
}
@@ -67,14 +56,7 @@
return book.resolveNameXText(field_1_ixals, field_2_ilbl-1);
}
- public byte getDefaultOperandClass() {return Ptg.CLASS_VALUE;}
-
- public Object clone() {
- NameXPtg ptg = new NameXPtg();
- ptg.field_1_ixals = field_1_ixals;
- ptg.field_3_reserved = field_3_reserved;
- ptg.field_2_ilbl = field_2_ilbl;
- ptg.setClass(ptgClass);
- return ptg;
- }
+ public byte getDefaultOperandClass() {
+ return Ptg.CLASS_VALUE;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org