Return-Path: Delivered-To: apmail-poi-commits-archive@locus.apache.org Received: (qmail 38562 invoked from network); 7 Jun 2008 00:53:37 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 7 Jun 2008 00:53:37 -0000 Received: (qmail 81525 invoked by uid 500); 7 Jun 2008 00:53:40 -0000 Delivered-To: apmail-poi-commits-archive@poi.apache.org Received: (qmail 81487 invoked by uid 500); 7 Jun 2008 00:53:40 -0000 Mailing-List: contact commits-help@poi.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@poi.apache.org Delivered-To: mailing list commits@poi.apache.org Received: (qmail 81477 invoked by uid 99); 7 Jun 2008 00:53:40 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Jun 2008 17:53:40 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 07 Jun 2008 00:52:49 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id BA9A223889BA; Fri, 6 Jun 2008 17:53:06 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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... Date: Sat, 07 Jun 2008 00:53:03 -0000 To: commits@poi.apache.org From: josh@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080607005306.BA9A223889BA@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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 @@ + 45091 - Fixed serialization of RefN~ tokens. Simplified Ptg class hierarchy 45133 - Fixed OBJ Record (5Dh) to pad the sub-record data to a 4-byte boundary 45145 - Fixed Sheet to always enforce RowRecordsAggregate before ValueRecordsAggregate 45123 - Fixed SharedFormulaRecord.convertSharedFormulas() to propagate token operand classes 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 @@ + 45091 - Fixed serialization of RefN~ tokens. Simplified Ptg class hierarchy 45133 - Fixed OBJ Record (5Dh) to pad the sub-record data to a 4-byte boundary 45145 - Fixed Sheet to always enforce RowRecordsAggregate before ValueRecordsAggregate 45123 - Fixed SharedFormulaRecord.convertSharedFormulas() to propagate token operand classes 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 true if the last row relative, else * false */ - 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