You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2008/06/09 15:30:19 UTC

svn commit: r664700 [1/3] - in /poi/branches/ooxml: ./ src/documentation/content/xdocs/ src/java/org/apache/poi/ddf/ src/java/org/apache/poi/hssf/model/ src/java/org/apache/poi/hssf/record/ src/java/org/apache/poi/hssf/record/formula/ src/java/org/apac...

Author: nick
Date: Mon Jun  9 06:30:17 2008
New Revision: 664700

URL: http://svn.apache.org/viewvc?rev=664700&view=rev
Log:
Merged revisions 638786-638802,638805-638811,638813-638814,638816-639230,639233-639241,639243-639253,639255-639486,639488-639601,639603-639835,639837-639917,639919-640056,640058-640710,640712-641156,641158-641184,641186-641795,641797-641798,641800-641933,641935-641963,641965-641966,641968-641995,641997-642230,642232-642562,642564-642565,642568-642570,642572-642573,642576-642736,642739-642877,642879,642881-642890,642892-642903,642905-642945,642947-643624,643626-643653,643655-643669,643671,643673-643830,643832-643833,643835-644342,644344-644472,644474-644508,644510-645347,645349-645351,645353-645559,645561-645565,645568-645951,645953-646193,646195-646311,646313-646404,646406-646665,646667-646853,646855-646869,646871-647151,647153-647185,647187-647277,647279-647566,647568-647573,647575,647578-647711,647714-647737,647739-647823,647825-648155,648157-648202,648204-648273,648275,648277-648302,648304-648333,648335-648588,648590-648622,648625-648673,648675-649141,649144,649146-649556,
 649558-649795,649799,649801-649910,649912-649913,649915-650128,650131-650132,650134-650137,650140-650914,650916-651991,651993-652284,652286-652287,652289,652291,652293-652297,652299-652328,652330-652425,652427-652445,652447-652560,652562-652933,652935,652937-652993,652995-653116,653118-653124,653126-653483,653487-653519,653522-653550,653552-653607,653609-653667,653669-653674,653676-653814,653817-653830,653832-653891,653893-653944,653946-654055,654057-654355,654357-654365,654367-654648,654651-655215,655217-655277,655279-655281,655283-655911,655913-656212,656214,656216-656251,656253-656698,656700-656756,656758-656892,656894-657135,657137-657165,657168-657179,657181-657354,657356-657357,657359-657701,657703-657874,657876-658032,658034-658284,658286,658288-658301,658303-658307,658309-658321,658323-658335,658337-658348,658351,658353-658832,658834-658983,658985,658987-659066,659068-659402,659404-659428,659430-659451,659453-659454,659456-659461,659463-659477,659479-659524,659526-65
 9571,659574,659576-660255,660257-660262,660264-660279,660281-660343,660345-660473,660475-660827,660829-660833,660835-660888,660890-663321,663323-663435,663437-663764,663766-663854,663856-664671 via svnmerge from 
https://svn.apache.org:443/repos/asf/poi/trunk

........
  r664220 | josh | 2008-06-07 01:53:01 +0100 (Sat, 07 Jun 2008) | 1 line
  
  Fix for bug 45091 - serialization of RefN~ tokens. Simplified Ptg class hierarchy
........
  r664490 | yegor | 2008-06-08 13:30:25 +0100 (Sun, 08 Jun 2008) | 1 line
  
  Correctly increment the reference count of a blip when a picture is inserted
........
  r664491 | yegor | 2008-06-08 13:31:19 +0100 (Sun, 08 Jun 2008) | 1 line
  
  Support custom image renderers
........
  r664492 | yegor | 2008-06-08 13:32:10 +0100 (Sun, 08 Jun 2008) | 1 line
  
  Fixed TextShape.resizeToFitText() to properly resize TextShape. See patch#45140
........
  r664493 | yegor | 2008-06-08 13:37:39 +0100 (Sun, 08 Jun 2008) | 1 line
  
  expose access to OEPlaceholderAtom  so that users can determine whether a shape represents ppt placeholder (date/time, footer or slide number)
........
  r664515 | yegor | 2008-06-08 16:31:05 +0100 (Sun, 08 Jun 2008) | 1 line
  
  bug#44692 - Fixed HSSFPicture.resize() to properly resize pictures if the underlying columns/rows have modified size
........

Added:
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java
      - copied unchanged from r664515, poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java
      - copied, changed from r664515, poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/RefPtg.java
      - copied unchanged from r664515, poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/RefPtgBase.java
      - copied, changed from r664515, poi/trunk/src/java/org/apache/poi/hssf/record/formula/RefPtgBase.java
    poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hslf/blip/BitmapPainter.java
      - copied unchanged from r664515, poi/trunk/src/scratchpad/src/org/apache/poi/hslf/blip/BitmapPainter.java
    poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hslf/blip/ImagePainter.java
      - copied unchanged from r664515, poi/trunk/src/scratchpad/src/org/apache/poi/hslf/blip/ImagePainter.java
    poi/branches/ooxml/src/scratchpad/testcases/org/apache/poi/hslf/model/TestImagePainter.java
      - copied unchanged from r664515, poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/model/TestImagePainter.java
    poi/branches/ooxml/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPicture.java
      - copied unchanged from r664515, poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPicture.java
Removed:
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaAPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaNAPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaNVPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaVPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ArrayPtgA.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ArrayPtgV.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/RefAPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/RefNAPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/RefNVPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/RefVPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ReferencePtg.java
Modified:
    poi/branches/ooxml/   (props changed)
    poi/branches/ooxml/src/documentation/content/xdocs/changes.xml
    poi/branches/ooxml/src/documentation/content/xdocs/status.xml
    poi/branches/ooxml/src/java/org/apache/poi/ddf/EscherDggRecord.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/model/FormulaParser.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/FormulaRecord.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/NameRecord.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/SharedFormulaRecord.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AbstractFunctionPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AddPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ConcatPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/DividePtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/EqualPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/GreaterEqualPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/GreaterThanPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/IntPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/IntersectionPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/LessEqualPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/LessThanPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MissingArgPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/NamePtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/NotEqualPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/NumberPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/OperationPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ParenthesisPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/PercentPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/PowerPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Ptg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/RangePtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/RefErrorPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/RefNPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ScalarConstantPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/StringPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/SubtractPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/UnaryMinusPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/UnaryPlusPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/UnionPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ValueOperatorPtg.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/eval/Ref2DEval.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFPicture.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
    poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
    poi/branches/ooxml/src/java/org/apache/poi/ss/usermodel/FormulaEvaluator.java
    poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hslf/model/MasterSheet.java
    poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hslf/model/Picture.java
    poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hslf/model/SimpleShape.java
    poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hslf/model/Slide.java
    poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hslf/model/TextRun.java
    poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hslf/model/TextShape.java
    poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hslf/record/StyleTextPropAtom.java
    poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hslf/usermodel/PictureData.java
    poi/branches/ooxml/src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/model/TestFormulaParser.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/model/TestFormulaParserIf.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/model/TestRVA.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestSharedFormulaRecord.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/TestArrayPtg.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/TestReferencePtg.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/eval/TestPercentEval.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/eval/TestUnaryPlusEval.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/functions/EvalFactory.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/functions/TestCountFuncs.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/functions/TestMid.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/functions/TestSumproduct.java
    poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/functions/TestTFunc.java

Propchange: poi/branches/ooxml/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Jun  9 06:30:17 2008
@@ -1 +1 @@
-/poi/trunk:1-638784,638786-639486,639488-639601,639603-640056,640058-642562,642564-642566,642568-642574,642576-642736,642739-650914,650916-663870
+/poi/trunk:1-638784,638786-639486,639488-639601,639603-640056,640058-642562,642564-642566,642568-642574,642576-642736,642739-650914,650916-664671

Modified: poi/branches/ooxml/src/documentation/content/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/documentation/content/xdocs/changes.xml?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/documentation/content/xdocs/changes.xml (original)
+++ poi/branches/ooxml/src/documentation/content/xdocs/changes.xml Mon Jun  9 06:30:17 2008
@@ -46,6 +46,11 @@
            <action dev="POI-DEVELOPERS" type="add">Created a common interface for handling Excel files, irrespective of if they are .xls or .xlsx</action>
         </release>
         <release version="3.1-final" date="2008-06-??">
+           <action dev="POI-DEVELOPERS" type="fix">44692 - Fixed HSSFPicture.resize() to properly resize pictures if the underlying columns/rows have modified size</action>
+           <action dev="POI-DEVELOPERS" type="add">Support custom image renderers in HSLF</action>
+           <action dev="POI-DEVELOPERS" type="fix">Correctly increment the reference count of a blip when a picture is inserted</action>
+           <action dev="POI-DEVELOPERS" type="fix">45110 - Fixed TextShape.resizeToFitText() to properly resize TextShape</action>
+           <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/branches/ooxml/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/documentation/content/xdocs/status.xml?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/documentation/content/xdocs/status.xml (original)
+++ poi/branches/ooxml/src/documentation/content/xdocs/status.xml Mon Jun  9 06:30:17 2008
@@ -43,6 +43,11 @@
            <action dev="POI-DEVELOPERS" type="add">Created a common interface for handling Excel files, irrespective of if they are .xls or .xlsx</action>
         </release>
         <release version="3.1-final" date="2008-06-??">
+           <action dev="POI-DEVELOPERS" type="fix">44692 - Fixed HSSFPicture.resize() to properly resize pictures if the underlying columns/rows have modified size</action>
+           <action dev="POI-DEVELOPERS" type="add">Support custom image renderers in HSLF</action>
+           <action dev="POI-DEVELOPERS" type="fix">Correctly increment the reference count of a blip when a picture is inserted</action>
+           <action dev="POI-DEVELOPERS" type="fix">45110 - Fixed TextShape.resizeToFitText() to properly resize TextShape</action>
+           <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/branches/ooxml/src/java/org/apache/poi/ddf/EscherDggRecord.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/ddf/EscherDggRecord.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/ddf/EscherDggRecord.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/ddf/EscherDggRecord.java Mon Jun  9 06:30:17 2008
@@ -238,6 +238,10 @@
         return maxDgId;
     }
 
+    public void setMaxDrawingGroupId(int id){
+        maxDgId = id;
+    }
+
      public FileIdCluster[] getFileIdClusters()
     {
         return field_5_fileIdClusters;

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/model/FormulaParser.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/model/FormulaParser.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/model/FormulaParser.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/model/FormulaParser.java Mon Jun  9 06:30:17 2008
@@ -97,7 +97,7 @@
      *  parse results.
      * This class is recommended only for single threaded use.
      *
-     * If you only have a usermodel.HSSFWorkbook, and not a
+     * If you only have a usermodel.Workbook, and not a
      *  model.Workbook, then use the convenience method on
      *  usermodel.HSSFFormulaEvaluator
      */
@@ -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
@@ -743,7 +743,7 @@
 
     /**
      *  API call to execute the parsing of the formula
-     * @deprecated use Ptg[] FormulaParser.parse(String, HSSFWorkbook) directly
+     * @deprecated use Ptg[] FormulaParser.parse(String, Workbook) directly
      */
     public void parse() {
         pointer=0;
@@ -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/branches/ooxml/src/java/org/apache/poi/hssf/record/FormulaRecord.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/FormulaRecord.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/FormulaRecord.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/FormulaRecord.java Mon Jun  9 06:30:17 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/branches/ooxml/src/java/org/apache/poi/hssf/record/NameRecord.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/NameRecord.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/NameRecord.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/NameRecord.java Mon Jun  9 06:30:17 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/branches/ooxml/src/java/org/apache/poi/hssf/record/SharedFormulaRecord.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/SharedFormulaRecord.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/SharedFormulaRecord.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/SharedFormulaRecord.java Mon Jun  9 06:30:17 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AbstractFunctionPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AbstractFunctionPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AbstractFunctionPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AbstractFunctionPtg.java Mon Jun  9 06:30:17 2008
@@ -56,12 +56,6 @@
         return sb.toString();
     }
 
-    public int getType() {
-        return -1;
-    }
-
-
-
     public short getFunctionIndex() {
         return field_2_fnc_index;
     }

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AddPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AddPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AddPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AddPtg.java Mon Jun  9 06:30:17 2008
@@ -17,9 +17,6 @@
 
 package org.apache.poi.hssf.record.formula;
 
-import org.apache.poi.ss.usermodel.Workbook;
-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(Workbook 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/Area3DPtg.java Mon Jun  9 06:30:17 2008
@@ -18,9 +18,9 @@
 package org.apache.poi.hssf.record.formula;
 
 import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.ss.util.CellReference;
 import org.apache.poi.hssf.util.AreaReference;
-import org.apache.poi.hssf.util.CellReference;
+import org.apache.poi.hssf.record.RecordInputStream;
 import org.apache.poi.util.BitField;
 import org.apache.poi.util.BitFieldFactory;
 import org.apache.poi.util.LittleEndian;
@@ -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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaErrPtg.java Mon Jun  9 06:30:17 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.ss.usermodel.Workbook;
 import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.ss.usermodel.Workbook;
+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(Workbook book)
-    {
+    public String toFormulaString(Workbook 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaNPtg.java Mon Jun  9 06:30:17 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.ss.usermodel.Workbook;
 
 /**
  * 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(Workbook book)
-  {
-    throw notImplemented();
-  }
-
-  public Object clone() {
-    throw notImplemented();
-  }
+	public AreaNPtg(RecordInputStream in) {
+		super(in);
+	}
+
+	protected byte getSid() {
+		return sid;
+	}
 }

Copied: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java (from r664515, poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java)
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java?p2=poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java&p1=poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java&r1=664515&r2=664700&rev=664700&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/AreaPtgBase.java Mon Jun  9 06:30:17 2008
@@ -21,9 +21,9 @@
 import org.apache.poi.util.BitField;
 import org.apache.poi.util.BitFieldFactory;
 
+import org.apache.poi.ss.util.CellReference;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.hssf.util.AreaReference;
-import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.hssf.record.RecordInputStream;
 
 /**
@@ -276,7 +276,7 @@
         field_4_last_column = column;
     }
     
-    public String toFormulaString(HSSFWorkbook book) {
+    public String toFormulaString(Workbook book) {
         return AreaReference.formatAsString(this);
     }
 

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ArrayPtg.java Mon Jun  9 06:30:17 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/BoolPtg.java Mon Jun  9 06:30:17 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ConcatPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ConcatPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ConcatPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ConcatPtg.java Mon Jun  9 06:30:17 2008
@@ -17,54 +17,29 @@
 
 package org.apache.poi.hssf.record.formula;
 
-import org.apache.poi.ss.usermodel.Workbook;
-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(Workbook 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/DividePtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/DividePtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/DividePtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/DividePtg.java Mon Jun  9 06:30:17 2008
@@ -17,66 +17,34 @@
 
 package org.apache.poi.hssf.record.formula;
 
-import org.apache.poi.ss.usermodel.Workbook;
-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(Workbook book)
-    {
-        return "/";
-    }
-
      public String toFormulaString(String[] operands) {
         StringBuffer buffer = new StringBuffer();
 
         buffer.append(operands[ 0 ]);
-        buffer.append(toFormulaString((Workbook)null));
+        buffer.append("/");
         buffer.append(operands[ 1 ]);
         return buffer.toString();
     }      
-
-    public Object clone() {
-      DividePtg ptg = new DividePtg();
-      return ptg;
-    }
 }

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/EqualPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/EqualPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/EqualPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/EqualPtg.java Mon Jun  9 06:30:17 2008
@@ -17,67 +17,34 @@
 
 package org.apache.poi.hssf.record.formula;
 
-import org.apache.poi.ss.usermodel.Workbook;
-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(Workbook book)
-    {
-        return "=";
-    }
  
     public String toFormulaString(String[] operands) {
          StringBuffer buffer = new StringBuffer();
 
         
         buffer.append(operands[ 0 ]);
-        buffer.append(toFormulaString((Workbook)null));
+        buffer.append("=");
         buffer.append(operands[ 1 ]);
         return buffer.toString();
     }       
-
-    public Object clone() {
-      return new EqualPtg();
-    }
-
-
 }

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ErrPtg.java Mon Jun  9 06:30:17 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/ExpPtg.java Mon Jun  9 06:30:17 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/FuncPtg.java Mon Jun  9 06:30:17 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/FuncVarPtg.java Mon Jun  9 06:30:17 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/GreaterEqualPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/GreaterEqualPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/GreaterEqualPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/GreaterEqualPtg.java Mon Jun  9 06:30:17 2008
@@ -17,8 +17,6 @@
 
 package org.apache.poi.hssf.record.formula;
 
-import org.apache.poi.ss.usermodel.Workbook;
-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(Workbook book)
-    {
-        return ">=";
-    }
-
     public String toFormulaString(String[] operands) {
          StringBuffer buffer = new StringBuffer();
 
         buffer.append(operands[ 0 ]);
 
-        buffer.append(toFormulaString((Workbook)null));
+        buffer.append(">=");
         buffer.append(operands[ 1 ]);
 
         return buffer.toString();
     }
-
-    public Object clone() {
-      return new GreaterEqualPtg();
-    }
-
 }

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/GreaterThanPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/GreaterThanPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/GreaterThanPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/GreaterThanPtg.java Mon Jun  9 06:30:17 2008
@@ -17,82 +17,34 @@
 
 package org.apache.poi.hssf.record.formula;
 
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.hssf.record.RecordInputStream;
 
 /**
  * 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(Workbook 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/IntPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/IntPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/IntPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/IntPtg.java Mon Jun  9 06:30:17 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/IntersectionPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/IntersectionPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/IntersectionPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/IntersectionPtg.java Mon Jun  9 06:30:17 2008
@@ -18,7 +18,6 @@
 package org.apache.poi.hssf.record.formula;
 
 import org.apache.poi.ss.usermodel.Workbook;
-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(Workbook book)
     {

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/LessEqualPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/LessEqualPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/LessEqualPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/LessEqualPtg.java Mon Jun  9 06:30:17 2008
@@ -19,8 +19,6 @@
 package org.apache.poi.hssf.record.formula;
 
 
-import org.apache.poi.ss.usermodel.Workbook;
-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( Workbook book )
-    {
-        return "<=";
-    }
-
-    public String toFormulaString( String[] operands )
-    {
+    public String toFormulaString(String[] operands) {
         StringBuffer buffer = new StringBuffer();
         buffer.append( operands[0] );
-        buffer.append( toFormulaString( (Workbook) null ) );
+        buffer.append("<=");
         buffer.append( operands[1] );
         return buffer.toString();
     }
-
-    public Object clone()
-    {
-        return new LessEqualPtg();
-    }
 }

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/LessThanPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/LessThanPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/LessThanPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/LessThanPtg.java Mon Jun  9 06:30:17 2008
@@ -17,9 +17,6 @@
 
 package org.apache.poi.hssf.record.formula;
 
-import org.apache.poi.ss.usermodel.Workbook;
-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(Workbook 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemAreaPtg.java Mon Jun  9 06:30:17 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemErrPtg.java Mon Jun  9 06:30:17 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.ss.usermodel.Workbook;
 import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.ss.usermodel.Workbook;
 
 /**
  *
@@ -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(Workbook book)
     {
         return "ERR#";
     }
-
-    public Object clone() {
-      MemErrPtg ptg = new MemErrPtg();
-      ptg.setReserved(getReserved());
-      ptg.setSubexpressionLength(getSubexpressionLength());
-      return ptg;
-    }
 }

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MemFuncPtg.java Mon Jun  9 06:30:17 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(Workbook 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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MissingArgPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MissingArgPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MissingArgPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MissingArgPtg.java Mon Jun  9 06:30:17 2008
@@ -18,7 +18,6 @@
 package org.apache.poi.hssf.record.formula;
 
 import org.apache.poi.ss.usermodel.Workbook;
-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(Workbook book)
     {
         return " ";
     }
-        
-    public Object clone() {
-      return new MissingArgPtg();
-    }
-
 }

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java Mon Jun  9 06:30:17 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.ss.usermodel.Workbook;
-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(Workbook book)
-    {
-        return "*";
-    }
-
-    public String toFormulaString(Ptg [] operands)
-    {
-        StringBuffer buffer = new StringBuffer();
-
-        buffer.append(operands[ 0 ].toFormulaString((Workbook)null));
-        buffer.append("*");
-        buffer.append(operands[ 1 ].toFormulaString((Workbook)null));
-        return buffer.toString();
-    }
     
     public String toFormulaString(String[] operands) {
         StringBuffer buffer = new StringBuffer();
 
         buffer.append(operands[ 0 ]);
-        buffer.append(toFormulaString((Workbook)null));
+        buffer.append("*");
         buffer.append(operands[ 1 ]);
         return buffer.toString();
     }                  
-
-    public Object clone() {
-      return new MultiplyPtg();
-    }
 }

Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/NamePtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/NamePtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/NamePtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/NamePtg.java Mon Jun  9 06:30:17 2008
@@ -33,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
@@ -68,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;
     }
     
     /**
@@ -83,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;
     }
 
@@ -100,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/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java?rev=664700&r1=664699&r2=664700&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/formula/NameXPtg.java Mon Jun  9 06:30:17 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