]> source.dussan.org Git - poi.git/commitdiff
Merged revisions 709263-709264,709317 via svnmerge from
authorJosh Micich <josh@apache.org>
Fri, 31 Oct 2008 18:37:16 +0000 (18:37 +0000)
committerJosh Micich <josh@apache.org>
Fri, 31 Oct 2008 18:37:16 +0000 (18:37 +0000)
https://svn.apache.org/repos/asf/poi/trunk

........
  r709263 | josh | 2008-10-30 15:07:26 -0700 (Thu, 30 Oct 2008) | 1 line

  Removed dodgy superlcass implementation of Record.getRecordSize()
........
  r709264 | josh | 2008-10-30 15:13:56 -0700 (Thu, 30 Oct 2008) | 1 line

  Introduced Record.getDataSize() method
........
  r709317 | josh | 2008-10-30 18:02:55 -0700 (Thu, 30 Oct 2008) | 1 line

  converted getRecordSize methods to getDataSize
........

git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@709526 13f79535-47bb-0310-9956-ffa450edef68

153 files changed:
src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/DummyRecordBase.java [new file with mode: 0644]
src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/LastCellOfRowDummyRecord.java
src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingCellDummyRecord.java
src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/MissingRowDummyRecord.java
src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java
src/java/org/apache/poi/hssf/record/AreaFormatRecord.java
src/java/org/apache/poi/hssf/record/AreaRecord.java
src/java/org/apache/poi/hssf/record/AxisLineFormatRecord.java
src/java/org/apache/poi/hssf/record/AxisOptionsRecord.java
src/java/org/apache/poi/hssf/record/AxisParentRecord.java
src/java/org/apache/poi/hssf/record/AxisRecord.java
src/java/org/apache/poi/hssf/record/AxisUsedRecord.java
src/java/org/apache/poi/hssf/record/BOFRecord.java
src/java/org/apache/poi/hssf/record/BackupRecord.java
src/java/org/apache/poi/hssf/record/BarRecord.java
src/java/org/apache/poi/hssf/record/BeginRecord.java
src/java/org/apache/poi/hssf/record/BlankRecord.java
src/java/org/apache/poi/hssf/record/BookBoolRecord.java
src/java/org/apache/poi/hssf/record/BoolErrRecord.java
src/java/org/apache/poi/hssf/record/BottomMarginRecord.java
src/java/org/apache/poi/hssf/record/BoundSheetRecord.java
src/java/org/apache/poi/hssf/record/CFHeaderRecord.java
src/java/org/apache/poi/hssf/record/CFRuleRecord.java
src/java/org/apache/poi/hssf/record/CRNCountRecord.java
src/java/org/apache/poi/hssf/record/CRNRecord.java
src/java/org/apache/poi/hssf/record/CalcCountRecord.java
src/java/org/apache/poi/hssf/record/CalcModeRecord.java
src/java/org/apache/poi/hssf/record/CategorySeriesAxisRecord.java
src/java/org/apache/poi/hssf/record/ChartFormatRecord.java
src/java/org/apache/poi/hssf/record/ChartRecord.java
src/java/org/apache/poi/hssf/record/ChartTitleFormatRecord.java
src/java/org/apache/poi/hssf/record/CodepageRecord.java
src/java/org/apache/poi/hssf/record/ColumnInfoRecord.java
src/java/org/apache/poi/hssf/record/ContinueRecord.java
src/java/org/apache/poi/hssf/record/CountryRecord.java
src/java/org/apache/poi/hssf/record/DBCellRecord.java
src/java/org/apache/poi/hssf/record/DSFRecord.java
src/java/org/apache/poi/hssf/record/DVALRecord.java
src/java/org/apache/poi/hssf/record/DVRecord.java
src/java/org/apache/poi/hssf/record/DatRecord.java
src/java/org/apache/poi/hssf/record/DataFormatRecord.java
src/java/org/apache/poi/hssf/record/DateWindow1904Record.java
src/java/org/apache/poi/hssf/record/DefaultColWidthRecord.java
src/java/org/apache/poi/hssf/record/DefaultDataLabelTextPropertiesRecord.java
src/java/org/apache/poi/hssf/record/DefaultRowHeightRecord.java
src/java/org/apache/poi/hssf/record/DeltaRecord.java
src/java/org/apache/poi/hssf/record/DimensionsRecord.java
src/java/org/apache/poi/hssf/record/DrawingGroupRecord.java
src/java/org/apache/poi/hssf/record/DrawingRecord.java
src/java/org/apache/poi/hssf/record/DrawingRecordForBiffViewer.java
src/java/org/apache/poi/hssf/record/DrawingSelectionRecord.java
src/java/org/apache/poi/hssf/record/EOFRecord.java
src/java/org/apache/poi/hssf/record/EndRecord.java
src/java/org/apache/poi/hssf/record/EscherAggregate.java
src/java/org/apache/poi/hssf/record/ExtSSTInfoSubRecord.java
src/java/org/apache/poi/hssf/record/ExtSSTRecord.java
src/java/org/apache/poi/hssf/record/ExtendedFormatRecord.java
src/java/org/apache/poi/hssf/record/ExternSheetRecord.java
src/java/org/apache/poi/hssf/record/ExternalNameRecord.java
src/java/org/apache/poi/hssf/record/FilePassRecord.java
src/java/org/apache/poi/hssf/record/FileSharingRecord.java
src/java/org/apache/poi/hssf/record/FnGroupCountRecord.java
src/java/org/apache/poi/hssf/record/FontBasisRecord.java
src/java/org/apache/poi/hssf/record/FontIndexRecord.java
src/java/org/apache/poi/hssf/record/FontRecord.java
src/java/org/apache/poi/hssf/record/FooterRecord.java
src/java/org/apache/poi/hssf/record/FormatRecord.java
src/java/org/apache/poi/hssf/record/FormulaRecord.java
src/java/org/apache/poi/hssf/record/FrameRecord.java
src/java/org/apache/poi/hssf/record/GridsetRecord.java
src/java/org/apache/poi/hssf/record/GutsRecord.java
src/java/org/apache/poi/hssf/record/HCenterRecord.java
src/java/org/apache/poi/hssf/record/HeaderRecord.java
src/java/org/apache/poi/hssf/record/HideObjRecord.java
src/java/org/apache/poi/hssf/record/HyperlinkRecord.java
src/java/org/apache/poi/hssf/record/IndexRecord.java
src/java/org/apache/poi/hssf/record/InterfaceEndRecord.java
src/java/org/apache/poi/hssf/record/InterfaceHdrRecord.java
src/java/org/apache/poi/hssf/record/IterationRecord.java
src/java/org/apache/poi/hssf/record/LabelRecord.java
src/java/org/apache/poi/hssf/record/LabelSSTRecord.java
src/java/org/apache/poi/hssf/record/LeftMarginRecord.java
src/java/org/apache/poi/hssf/record/LegendRecord.java
src/java/org/apache/poi/hssf/record/LineFormatRecord.java
src/java/org/apache/poi/hssf/record/LinkedDataRecord.java
src/java/org/apache/poi/hssf/record/MMSRecord.java
src/java/org/apache/poi/hssf/record/MergeCellsRecord.java
src/java/org/apache/poi/hssf/record/MulBlankRecord.java
src/java/org/apache/poi/hssf/record/MulRKRecord.java
src/java/org/apache/poi/hssf/record/NameRecord.java
src/java/org/apache/poi/hssf/record/NoteRecord.java
src/java/org/apache/poi/hssf/record/NumberFormatIndexRecord.java
src/java/org/apache/poi/hssf/record/NumberRecord.java
src/java/org/apache/poi/hssf/record/ObjRecord.java
src/java/org/apache/poi/hssf/record/ObjectLinkRecord.java
src/java/org/apache/poi/hssf/record/ObjectProtectRecord.java
src/java/org/apache/poi/hssf/record/PageBreakRecord.java
src/java/org/apache/poi/hssf/record/PaletteRecord.java
src/java/org/apache/poi/hssf/record/PaneRecord.java
src/java/org/apache/poi/hssf/record/PasswordRecord.java
src/java/org/apache/poi/hssf/record/PasswordRev4Record.java
src/java/org/apache/poi/hssf/record/PlotAreaRecord.java
src/java/org/apache/poi/hssf/record/PlotGrowthRecord.java
src/java/org/apache/poi/hssf/record/PrecisionRecord.java
src/java/org/apache/poi/hssf/record/PrintGridlinesRecord.java
src/java/org/apache/poi/hssf/record/PrintHeadersRecord.java
src/java/org/apache/poi/hssf/record/PrintSetupRecord.java
src/java/org/apache/poi/hssf/record/ProtectRecord.java
src/java/org/apache/poi/hssf/record/ProtectionRev4Record.java
src/java/org/apache/poi/hssf/record/RKRecord.java
src/java/org/apache/poi/hssf/record/RecalcIdRecord.java
src/java/org/apache/poi/hssf/record/Record.java
src/java/org/apache/poi/hssf/record/RefModeRecord.java
src/java/org/apache/poi/hssf/record/RefreshAllRecord.java
src/java/org/apache/poi/hssf/record/RightMarginRecord.java
src/java/org/apache/poi/hssf/record/RowRecord.java
src/java/org/apache/poi/hssf/record/SCLRecord.java
src/java/org/apache/poi/hssf/record/SSTRecord.java
src/java/org/apache/poi/hssf/record/SaveRecalcRecord.java
src/java/org/apache/poi/hssf/record/ScenarioProtectRecord.java
src/java/org/apache/poi/hssf/record/SelectionRecord.java
src/java/org/apache/poi/hssf/record/SeriesChartGroupIndexRecord.java
src/java/org/apache/poi/hssf/record/SeriesIndexRecord.java
src/java/org/apache/poi/hssf/record/SeriesLabelsRecord.java
src/java/org/apache/poi/hssf/record/SeriesListRecord.java
src/java/org/apache/poi/hssf/record/SeriesRecord.java
src/java/org/apache/poi/hssf/record/SeriesTextRecord.java
src/java/org/apache/poi/hssf/record/SeriesToChartGroupRecord.java
src/java/org/apache/poi/hssf/record/SharedValueRecordBase.java
src/java/org/apache/poi/hssf/record/SheetPropertiesRecord.java
src/java/org/apache/poi/hssf/record/StringRecord.java
src/java/org/apache/poi/hssf/record/StyleRecord.java
src/java/org/apache/poi/hssf/record/SupBookRecord.java
src/java/org/apache/poi/hssf/record/TabIdRecord.java
src/java/org/apache/poi/hssf/record/TextObjectRecord.java
src/java/org/apache/poi/hssf/record/TextRecord.java
src/java/org/apache/poi/hssf/record/TickRecord.java
src/java/org/apache/poi/hssf/record/TopMarginRecord.java
src/java/org/apache/poi/hssf/record/UncalcedRecord.java
src/java/org/apache/poi/hssf/record/UnitsRecord.java
src/java/org/apache/poi/hssf/record/UnknownRecord.java
src/java/org/apache/poi/hssf/record/UseSelFSRecord.java
src/java/org/apache/poi/hssf/record/VCenterRecord.java
src/java/org/apache/poi/hssf/record/ValueRangeRecord.java
src/java/org/apache/poi/hssf/record/WSBoolRecord.java
src/java/org/apache/poi/hssf/record/WindowOneRecord.java
src/java/org/apache/poi/hssf/record/WindowProtectRecord.java
src/java/org/apache/poi/hssf/record/WindowTwoRecord.java
src/java/org/apache/poi/hssf/record/WriteAccessRecord.java
src/java/org/apache/poi/hssf/record/WriteProtectRecord.java
src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java
src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
src/testcases/org/apache/poi/hssf/util/TestRKUtil.java

diff --git a/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/DummyRecordBase.java b/src/java/org/apache/poi/hssf/eventusermodel/dummyrecord/DummyRecordBase.java
new file mode 100644 (file)
index 0000000..3331134
--- /dev/null
@@ -0,0 +1,40 @@
+/* ====================================================================
+   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.eventusermodel.dummyrecord;
+
+import org.apache.poi.hssf.record.Record;
+import org.apache.poi.hssf.record.RecordFormatException;
+
+/**
+ */
+abstract class DummyRecordBase extends Record {
+       
+       protected DummyRecordBase() {
+               //
+       }
+       
+       public final short getSid() {
+               return -1;
+       }
+       public int serialize(int offset, byte[] data) {
+               throw new RecordFormatException("Cannot serialize a dummy record");
+       }
+       protected final int getDataSize() {
+               throw new RecordFormatException("Cannot serialize a dummy record");
+       }
+}
index 670fa99d2a9784d0930636547f1c7eed83ba56c6..e0635930160f5ae9859ee8d548b87f9652ea5f6c 100644 (file)
 
 package org.apache.poi.hssf.eventusermodel.dummyrecord;
 
-import org.apache.poi.hssf.record.Record;
 
 /**
  * A dummy record to indicate that we've now had the last
  *  cell record for this row.
  */
-public class LastCellOfRowDummyRecord extends Record {
+public final class LastCellOfRowDummyRecord extends DummyRecordBase {
        private int row;
        private int lastColumnNumber;
        
@@ -45,11 +44,4 @@ public class LastCellOfRowDummyRecord extends Record {
         *  for the row.
         */
        public int getLastColumnNumber() { return lastColumnNumber; }
-       
-       public short getSid() {
-               return -1;
-       }
-       public int serialize(int offset, byte[] data) {
-               return -1;
-       }
 }
index 587ccb6596cfc81517ae2559bc9e97adcadf56c6..393e21f387a06ad57be9c5e6b0e56a8a257ade28 100644 (file)
 
 package org.apache.poi.hssf.eventusermodel.dummyrecord;
 
-import org.apache.poi.hssf.record.Record;
 
 /**
  * A dummy record for when we're missing a cell in a row,
  *  but still want to trigger something
  */
-public class MissingCellDummyRecord extends Record {
+public final class MissingCellDummyRecord extends DummyRecordBase {
        private int row;
        private int column;
        
@@ -31,14 +30,6 @@ public class MissingCellDummyRecord extends Record {
                this.row = row;
                this.column = column;
        }
-       
-       public short getSid() {
-               return -1;
-       }
-       public int serialize(int offset, byte[] data) {
-               return -1;
-       }
-       
        public int getRow() { return row; }
        public int getColumn() { return column; }
 }
index 46f76b1d348db665842b96ae78ecdaf5b4cc326a..4c128bd004e36c0760d03cc376c18ff1f0959a91 100644 (file)
 
 package org.apache.poi.hssf.eventusermodel.dummyrecord;
 
-import org.apache.poi.hssf.record.Record;
-import org.apache.poi.hssf.record.RecordInputStream;
 
 /**
  * A dummy record for when we're missing a row, but still
  *  want to trigger something
  */
-public class MissingRowDummyRecord extends Record {
+public final class MissingRowDummyRecord extends DummyRecordBase {
        private int rowNumber;
        
        public MissingRowDummyRecord(int rowNumber) {
                this.rowNumber = rowNumber;
        }
-       
-       public short getSid() {
-               return -1;
-       }
-       public int serialize(int offset, byte[] data) {
-               return -1;
-       }
-       
        public int getRowNumber() {
                return rowNumber;
        }
index bd820741811c0649efdc4f8a83ac90770df8a823..461817cce132f26c7b81d9268892d7ce5ba3ff47 100644 (file)
@@ -130,48 +130,20 @@ public abstract class AbstractEscherHolderRecord extends Record {
         }
         return getRecordSize();
     }
-
-    public int getRecordSize()
-    {
-        if (escherRecords.size() == 0 && rawData != null)
-        {
-            return rawData.length + 4;
+    protected int getDataSize() {
+        if (escherRecords.size() == 0 && rawData != null) {
+            return rawData.length;
         }
-        else
+        int size = 0;
+        for ( Iterator iterator = escherRecords.iterator(); iterator.hasNext(); )
         {
-            int size = 4;
-            for ( Iterator iterator = escherRecords.iterator(); iterator.hasNext(); )
-            {
-                EscherRecord r = (EscherRecord) iterator.next();
-                size += r.getRecordSize();
-            }
-            return size;
+            EscherRecord r = (EscherRecord) iterator.next();
+            size += r.getRecordSize();
         }
+        return size;
     }
 
-//
-//    /**
-//     * Size of record (including 4 byte header)
-//     */
-//    public int getRecordSize()
-//    {
-//        if (escherRecords.size() == 0 && rawData != null)
-//        {
-//            return rawData.length;
-//        }
-//        else
-//        {
-//            collapseShapeInformation();
-//
-//            int size = 4;
-//            for ( Iterator iterator = escherRecords.iterator(); iterator.hasNext(); )
-//            {
-//                EscherRecord r = (EscherRecord) iterator.next();
-//                size += r.getRecordSize();
-//            }
-//            return size;
-//        }
-//    }
+
 
     public abstract short getSid();
 
index f6abd9c170d94d552c907ee470291492689da770..9e3d2ea1101938eb9e3221d929434b6588d51cdc 100644 (file)
@@ -110,9 +110,8 @@ public final class AreaFormatRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 4 + 4 + 2 + 2 + 2 + 2;
+    protected int getDataSize() {
+        return 4 + 4 + 2 + 2 + 2 + 2;
     }
 
     public short getSid()
index 14a5737f569d7f148ea5b959c1eacddd467d3afc..85f2ea172b78a84d0a19a633a41828e3c75e94c4 100644 (file)
@@ -75,9 +75,8 @@ public final class AreaRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 1f6e03dbc19867afd196553a0f1ec3d1fa5c9086..dbcd14e497c333a8a9e96a8ec26f865af1f8c514 100644 (file)
@@ -70,9 +70,8 @@ public final class AxisLineFormatRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 32656d4709bff03fff5ecd4ccf96f4beca2153e3..c630cfe8235b56352c887a4666313738cea14f92 100644 (file)
@@ -142,9 +142,8 @@ public final class AxisOptionsRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2;
+    protected int getDataSize() {
+        return 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2;
     }
 
     public short getSid()
index 9a92c2e4ac55ceb480fb4005afb6db3b98599b92..0f7b8dba310e65b808f7d07ec245776b5b4cbaae 100644 (file)
@@ -96,9 +96,8 @@ public final class AxisParentRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2 + 4 + 4 + 4 + 4;
+    protected int getDataSize() {
+        return 2 + 4 + 4 + 4 + 4;
     }
 
     public short getSid()
index 0619027c9bd616d9b465d957b45f9cd0bdf7cb7c..2c989ce4269315e4a04e908cf42274699d866029 100644 (file)
@@ -97,9 +97,8 @@ public final class AxisRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2 + 4 + 4 + 4 + 4;
+    protected int getDataSize() {
+        return 2 + 4 + 4 + 4 + 4;
     }
 
     public short getSid()
index c70129d7fbd8a273d57e01fe655784857a610bbf..76e6e655144dc73cc1e52065016209be4b11d56a 100644 (file)
@@ -66,9 +66,8 @@ public final class AxisUsedRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 672505f5b0f9f1e0f616c7ff8d20d1ee2115b58a..bd71f532861667b1e1c5065a6e4420c8e6cf4d8c 100644 (file)
@@ -286,9 +286,8 @@ public class BOFRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 20;
+    protected int getDataSize() {
+        return 16;
     }
 
     public short getSid()
index 2ffbb5ba796e5700b3f61056ee6462fa131338bb..f2ee6ccf1458a6a056a55ada70a056a38919bbd6 100644 (file)
@@ -87,9 +87,8 @@ public class BackupRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index a9733c52199c9c4e4250e99176c336a4333518f7..7b62e649eeb15b2b10c3d58bdaa8789cf0168058 100644 (file)
@@ -92,9 +92,8 @@ public final class BarRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2 + 2 + 2;
+    protected int getDataSize() {
+        return 2 + 2 + 2;
     }
 
     public short getSid()
index c983590bd64228fb275b5dd2b2c1da655fb97fbd..94f78f7f8291a7bb71dccdf5f20e9f9065f65796 100644 (file)
@@ -57,9 +57,8 @@ public class BeginRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4;
+    protected int getDataSize() {
+        return 0;
     }
 
     public short getSid()
index 864cc53c3c9e666dbee76a5fe77a66a09a28d923..424f66c4c29ebec50d48b4142c7f5f89c5d8a8df 100644 (file)
@@ -144,9 +144,8 @@ public final class BlankRecord extends Record implements CellValueRecordInterfac
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 10;
+    protected int getDataSize() {
+        return 6;
     }
 
     public Object clone() {
index 0ad7a5ac6096e72a2cae766a9358b9f95c86b7d9..072f58bec88c3e9535b9ce3186100f736ecbbbe3 100644 (file)
@@ -87,9 +87,8 @@ public class BookBoolRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 5595c4f0ddd5d78b71ff6e2b40a411699508aac6..e0eb26d5232a922d76f7592076561f0daf788fe0 100644 (file)
@@ -34,7 +34,7 @@ public final class BoolErrRecord extends Record implements CellValueRecordInterf
     private short             field_3_xf_index;
     private byte              field_4_bBoolErr;
     private byte              field_5_fError;
-    
+
     /** Creates new BoolErrRecord */
     public BoolErrRecord()
     {
@@ -206,9 +206,8 @@ public final class BoolErrRecord extends Record implements CellValueRecordInterf
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 12;
+    protected int getDataSize() {
+        return 8;
     }
 
     public short getSid()
index 15d3174c2cfa89e0da9334ed302aba9120f9e59d..f0b7f7d2d15c825ba4ec220b9154355dd6a65755 100644 (file)
@@ -59,9 +59,8 @@ public final class BottomMarginRecord extends Record implements Margin {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4 + 8;
+    protected int getDataSize() {
+        return 8;
     }
 
     public short getSid()
@@ -92,4 +91,4 @@ public final class BottomMarginRecord extends Record implements Margin {
         return rec;
     }
 
-}  // END OF CLA
\ No newline at end of file
+}  // END OF C
\ No newline at end of file
index 036de6b2dfe91d4586873b80cfb32d11c296eb3a..17d337f82322ff9ec79dbd5c8ae178e3fb67990b 100644 (file)
@@ -156,7 +156,7 @@ public final class BoundSheetRecord extends Record {
                return buffer.toString();
        }
        
-       private int getDataSize() {
+       protected int getDataSize() {
                return 8 + field_5_sheetname.length() * (isMultibyte() ? 2 : 1);
        }
 
@@ -179,10 +179,6 @@ public final class BoundSheetRecord extends Record {
                return 4 + dataSize;
        }
 
-       public int getRecordSize() {
-               return 4 + getDataSize();
-       }
-
        public short getSid() {
                return sid;
        }
index 762af3be7977f4d36135f9308a9ff329555bba16..2be58b0d908d8d5c979791c351000306cc72a206 100644 (file)
@@ -130,7 +130,7 @@ public final class CFHeaderRecord extends Record {
                return buffer.toString();
        }
 
-       private int getDataSize() {
+       protected int getDataSize() {
                return 4 // 2 short fields
                        + CellRangeAddress.ENCODED_SIZE
                        + field_4_cell_ranges.getSize();
@@ -151,10 +151,6 @@ public final class CFHeaderRecord extends Record {
                return 4 + dataSize;
        }
 
-       public int getRecordSize() {
-               return 4 + getDataSize();
-       }
-
        public short getSid()
        {
                return sid;
index 214ebaa2991cfcef6e7df18c86802adfbd00170b..f9e11dbaf47790484024076420f683c6da11d5fd 100644 (file)
@@ -482,17 +482,14 @@ public final class CFRuleRecord extends Record {
                return recordsize;
        }
 
-
-       public int getRecordSize()
-       {
-               int retval =16+
+       protected int getDataSize() {
+               return 12 +
                                        (containsFontFormattingBlock()?fontFormatting.getRawRecord().length:0)+
                                        (containsBorderFormattingBlock()?8:0)+
                                        (containsPatternFormattingBlock()?4:0)+
                                        getFormulaSize(field_17_formula1)+
                                        getFormulaSize(field_18_formula2)
                                        ;
-               return retval;
        }
 
 
index 5df98bf34edcc7dcc85ab06d0822c530a834af95..e04deb79de6ce16e4a339c3d6c5e0415adaefea4 100755 (executable)
@@ -28,7 +28,7 @@ import org.apache.poi.util.LittleEndian;
 public final class CRNCountRecord extends Record {
        public final static short sid = 0x59;
 
-       private static final short BASE_RECORD_SIZE = 4;
+       private static final short DATA_SIZE = 4;
 
 
        private int      field_1_number_crn_records;
@@ -65,14 +65,13 @@ public final class CRNCountRecord extends Record {
 
        public int serialize(int offset, byte [] data) {
                LittleEndian.putShort(data, 0 + offset, sid);
-               LittleEndian.putShort(data, 2 + offset, BASE_RECORD_SIZE);
+               LittleEndian.putShort(data, 2 + offset, DATA_SIZE);
                LittleEndian.putShort(data, 4 + offset, (short)field_1_number_crn_records);
                LittleEndian.putShort(data, 6 + offset, (short)field_2_sheet_table_index);
                return getRecordSize();
        }
-
-       public int getRecordSize() {
-               return BASE_RECORD_SIZE + 4;
+       protected int getDataSize() {
+               return DATA_SIZE;
        }
 
        /**
index 050076cca27e362635e5f2df7ee492a6bad79ee7..58be686ad523b58af0ae1e8fe0c89dc0736a917f 100755 (executable)
@@ -63,7 +63,7 @@ public final class CRNRecord extends Record {
                sb.append("]");
                return sb.toString();
        }
-       private int getDataSize() {
+       protected int getDataSize() {
                return 4 + ConstantValueParser.getEncodedSize(field_4_constant_values);
        }
 
@@ -80,10 +80,6 @@ public final class CRNRecord extends Record {
                return recSize;
        }
 
-       public int getRecordSize() {
-               return getDataSize() + 4;
-       }
-
        /**
         * return the non static version of the id for this record.
         */
index eb783f3857bf2313cebf6c5a56eb844b09370032..d2001f68d0896d41ff841f004065783e5d702a52 100644 (file)
@@ -89,9 +89,8 @@ public class CalcCountRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index de8d860fcec1d0700433b7be16d51743c5fc3588..73839d82aae73fc831b0dce864efa6927008bd6b 100644 (file)
@@ -115,9 +115,8 @@ public class CalcModeRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 2842788c796334cef23c6c66896be19223a0dc75..ec6a37e51e27876d6df1a6b017c4359f4ab23af4 100644 (file)
@@ -97,9 +97,8 @@ public final class CategorySeriesAxisRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2 + 2 + 2 + 2;
+    protected int getDataSize() {
+        return 2 + 2 + 2 + 2;
     }
 
     public short getSid()
index 490cdd45551d5a5c140ce3116405c277236800c8..b39759fdc43fe4ebfad51eb352701e0d71846a2d 100644 (file)
@@ -85,9 +85,8 @@ public final class ChartFormatRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 22;
+    protected int getDataSize() {
+        return 18;
     }
 
     public short getSid()
index 62e02d4fafbfa563dbdc6de6e64a490eca532796..e07cda58e8f10a06e0b216af30e008af55bb6b46 100644 (file)
@@ -86,9 +86,8 @@ public final class ChartRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 4 + 4 + 4 + 4;
+    protected int getDataSize() {
+        return 4 + 4 + 4 + 4;
     }
 
     public short getSid()
index fd22d5229b4a4734f6ab51aa43e15364a14790aa..37f539e4a0a7d045c69a4a5c69339b39c5ee2920 100644 (file)
@@ -88,9 +88,8 @@ public class ChartTitleFormatRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4 + 2 + (4 * m_formats.size());
+    protected int getDataSize() {
+        return 2 + (4 * m_formats.size());
     }
     
        public short getSid() {
index 4675fe473041d67bc3f95a510f502976cbe74cec..4e61500dbdd6ecb2ce286c786f3588efc2f98ceb 100644 (file)
@@ -96,9 +96,8 @@ public class CodepageRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 38d05181c9f18ff37878995acad835157a47928d..1fc0907f96e94c0fcf402d66f5652bc1be14d55c 100644 (file)
@@ -280,9 +280,8 @@ public final class ColumnInfoRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 16;
+    protected int getDataSize() {
+        return 12;
     }
 
     public String toString()
index e20c4633c3b8936022e43ef81af4b27cbc0aad9b..bed97a4098d0938e1a73e05fd670f068874ed49c 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
 package org.apache.poi.hssf.record;
 
@@ -31,20 +29,14 @@ import org.apache.poi.util.LittleEndian;
  */
 public final class ContinueRecord extends Record {
     public final static short sid = 0x003C;
-    private byte[]            _data;
+    private byte[] _data;
 
     public ContinueRecord(byte[] data) {
         _data = data;
     }
 
-    /**
-     * USE ONLY within "processContinue"
-     */
-    public byte [] serialize()
-    {
-        byte[] retval = new byte[ _data.length + 4 ];
-        serialize(0, retval);
-        return retval;
+    protected int getDataSize() {
+        return _data.length;
     }
 
     public int serialize(int offset, byte[] data) {
index 7d739a9b652c701d3650308517ba700d34ca8a06..c6b3ac454d5f29fe821f175722f59556d2249b96 100644 (file)
@@ -117,9 +117,8 @@ public class CountryRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 8;
+    protected int getDataSize() {
+        return 4;
     }
 
     public short getSid()
index 4085027dd4b981ca4c6fc46e13e7af5b03647e8d..fef70667db94dcd96e380a4e73b34d5e0124b805 100644 (file)
@@ -143,10 +143,8 @@ public final class DBCellRecord extends Record {
         }
         return getRecordSize();
     }
-
-    public int getRecordSize()
-    {
-        return 8 + (getNumCellOffsets() * 2);
+    protected int getDataSize() {
+       return 4 + (getNumCellOffsets() * 2);
     }
     
     /**
index 9d405b3dda59c9e4ecbc1d53573157627c6cedc3..3d2a753aa0b6d6c61dae34896f440c19059d05fc 100644 (file)
@@ -85,9 +85,8 @@ public class DSFRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 9f051db6eb48aaf7948988d1a9ca93d8548c9ed7..69e94deacb1fb7466b8cf78538e0500bfb02698b 100644 (file)
@@ -164,9 +164,8 @@ public class DVALRecord extends Record
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 22;
+    protected int getDataSize() {
+        return 18;
     }
 
     public short getSid()
index c2c0c1f6e96c7c6ab371cc215c4291d716f95a94..c552a39f201a33347d80b5158a02d650045d3502 100644 (file)
@@ -303,8 +303,8 @@ public final class DVRecord extends Record {
                return 3 + str.length() * (StringUtil.hasMultibyte(str) ? 2 : 1);
        }
 
-       public int getRecordSize()  {
-               int size = 4+4+2+2+2+2;//header+options_field+first_formula_size+first_unused+sec_formula_size+sec+unused;
+       protected int getDataSize() {
+               int size = 4+2+2+2+2;//options_field+first_formula_size+first_unused+sec_formula_size+sec+unused;
                size += getUnicodeStringSize(_promptTitle);
                size += getUnicodeStringSize(_errorTitle);
                size += getUnicodeStringSize(_promptText);
index f93efe622696ab5d221df2358294e41f7ec21972..ef8f2a53da562aec3a4cd38744dbf2e6d43d6574 100644 (file)
@@ -78,9 +78,8 @@ public final class DatRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index b0a67aefa6160ca0e192ff9f6dc6531a36da93ae..5719ab6d2666413d2549842ba826a54db6153c69 100644 (file)
@@ -93,9 +93,8 @@ public final class DataFormatRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2 + 2 + 2 + 2;
+    protected int getDataSize() {
+        return 2 + 2 + 2 + 2;
     }
 
     public short getSid()
index dd023fa803d2e95ee4f3919386f424f0520bd3d2..19c4992810f2a43061571dbf53d0c6e9f6419313 100644 (file)
@@ -85,9 +85,8 @@ public class DateWindow1904Record
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 8ceb88edfa558ee586d7b2c94fc0674644732300..a913dc6e76fe2603b3c3734c0fb46e6cca9ae809 100644 (file)
@@ -80,9 +80,8 @@ public final class DefaultColWidthRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index e970265f21839094d97d5c941dbdd6d114610314..905616a5093e7d55938f07f995f332d3094f0eee 100644 (file)
@@ -69,9 +69,8 @@ public final class DefaultDataLabelTextPropertiesRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index ae48ea4b00179bc66e706009d996d86bdca608fd..9f0a51125608b4669a14dd4a697579dc62bd0467 100644 (file)
@@ -110,9 +110,8 @@ public class DefaultRowHeightRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 8;
+    protected int getDataSize() {
+        return 4;
     }
 
     public short getSid()
index d02eb2cef7169f37eb9474c6574f639f6c7fa27d..8cf0df0c4a6f5b9dd2f59355b0c07661f5458af9 100644 (file)
@@ -88,9 +88,8 @@ public class DeltaRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 12;
+    protected int getDataSize() {
+        return 8;
     }
 
     public short getSid()
index fa7477bc79c5dc2b6c6c258093ee298bdf2a6565..34422b8afc86dd5183f96cb03cb4d2743cfb9542 100644 (file)
@@ -165,9 +165,8 @@ public class DimensionsRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 18;
+    protected int getDataSize() {
+        return 14;
     }
 
     public short getSid()
index 1f149efbb01da7fc2406191d0466caa1fb61aa29..fb5b649a10d5546d25ee7c935da26c8b52dfa081 100644 (file)
@@ -26,8 +26,7 @@ import java.util.Iterator;
 import java.util.List;
 
 
-public class DrawingGroupRecord extends AbstractEscherHolderRecord
-{
+public final class DrawingGroupRecord extends AbstractEscherHolderRecord {
     public static final short sid = 0xEB;
 
     static final int MAX_RECORD_SIZE = 8228;
@@ -82,30 +81,25 @@ public class DrawingGroupRecord extends AbstractEscherHolderRecord
     public void processChildRecords() {
        convertRawBytesToEscherRecords();
     }
-
-    public int getRecordSize()
-    {
-        return grossSizeFromDataSize( getRawDataSize() );
+    protected int getDataSize() {
+       // TODO - convert this to a RecordAggregate
+       return grossSizeFromDataSize( getRawDataSize() ) - 4;
     }
 
-    public int getRawDataSize()
-    {
+    private int getRawDataSize() {
         List escherRecords = getEscherRecords();
         byte[] rawData = getRawData();
         if (escherRecords.size() == 0 && rawData != null)
         {
             return rawData.length;
         }
-        else
+        int size = 0;
+        for ( Iterator iterator = escherRecords.iterator(); iterator.hasNext(); )
         {
-            int size = 0;
-            for ( Iterator iterator = escherRecords.iterator(); iterator.hasNext(); )
-            {
-                EscherRecord r = (EscherRecord) iterator.next();
-                size += r.getRecordSize();
-            }
-            return size;
+            EscherRecord r = (EscherRecord) iterator.next();
+            size += r.getRecordSize();
         }
+        return size;
     }
 
     static int grossSizeFromDataSize(int dataSize)
index c8c54123c994f6ec79ef89cb7c61b852abd182af..b0af2c7e6e6cc67172d73308a743c86f4988b65f 100644 (file)
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
+
 package org.apache.poi.hssf.record;
 
 import org.apache.poi.util.LittleEndian;
 
-public class DrawingRecord extends Record
-{
-    public static final short sid = 0xEC;
+public final class DrawingRecord extends Record {
+    public static final short sid = 0x00EC;
+
+       private static final byte[] EMPTY_BYTE_ARRAY = { };
 
     private byte[] recordData;
     private byte[] contd;
 
-    public DrawingRecord()
-    {
+    public DrawingRecord() {
+       recordData = EMPTY_BYTE_ARRAY;
     }
 
     public DrawingRecord( RecordInputStream in )
@@ -54,13 +56,10 @@ public class DrawingRecord extends Record
         }
         return getRecordSize();
     }
+    protected int getDataSize() {
+        int retval = 0;
 
-    public int getRecordSize()
-    {
-        int retval = 4;
-
-        if (recordData != null)
-        {
+        if (recordData != null) {
             retval += recordData.length;
         }
         return retval;
@@ -91,10 +90,8 @@ public class DrawingRecord extends Record
     public Object clone() {
        DrawingRecord rec = new DrawingRecord();
        
-        if (recordData != null) {
-               rec.recordData = new byte[ recordData.length ];
-               System.arraycopy(recordData, 0, rec.recordData, 0, recordData.length);
-        }
+       rec.recordData = new byte[ recordData.length ];
+       System.arraycopy(recordData, 0, rec.recordData, 0, recordData.length);
        if (contd != null) {
                System.arraycopy(contd, 0, rec.contd, 0, contd.length);
                rec.contd = new byte[ contd.length ];
index 4e5536f3096a774757b0bd6b4ad71f4265d941e8..bbbe0b3eef44f9457b56a4fc2a589ff896e11607 100644 (file)
@@ -23,9 +23,7 @@ import java.io.ByteArrayInputStream;
  * This is purely for the biff viewer.  During normal operations we don't want
  * to be seeing this.
  */
-public class DrawingRecordForBiffViewer
-        extends AbstractEscherHolderRecord
-{
+public final class DrawingRecordForBiffViewer extends AbstractEscherHolderRecord {
     public static final short sid = 0xEC;
 
     public DrawingRecordForBiffViewer()
index 8b3af07272b2c0ec1839617e20ce45326b6efaea..687c11314b76bec273c155c052a03697681da3b9 100644 (file)
@@ -17,8 +17,7 @@
 
 package org.apache.poi.hssf.record;
 
-public class DrawingSelectionRecord extends AbstractEscherHolderRecord
-{
+public final class DrawingSelectionRecord extends AbstractEscherHolderRecord {
     public static final short sid = 0xED;
 
     public DrawingSelectionRecord()
index f7495179b44be6a035aab8ee48998f74216a00ec..bf9c39ba93191a80b1ee3a96413ab677adce1d20 100644 (file)
@@ -63,9 +63,8 @@ public final class EOFRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return ENCODED_SIZE;
+    protected int getDataSize() {
+        return ENCODED_SIZE - 4;
     }
 
     public short getSid()
index 6f91dc3a2472b3847419841f3434391e28f92400..86e336e5cfd2623f7f5176ab901cb24b9ef2bae8 100644 (file)
@@ -58,9 +58,8 @@ public final class EndRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4;
+    protected int getDataSize() {
+        return 0;
     }
 
     public short getSid()
index 369cf0b14fe16f282603f2a524c0312cfbb94b18..4cec5cca4bc698a6abd3b2dd14688cd966acde50 100644 (file)
@@ -498,8 +498,8 @@ public class EscherAggregate extends AbstractEscherHolderRecord
         return size;
     }
 
-    public int getRecordSize()
-    {
+    protected int getDataSize() {
+       // TODO - convert this to RecordAggregate
         convertUserModelToRecords();
         List records = getEscherRecords();
         int rawEscherSize = getEscherRecordSize( records );
@@ -516,7 +516,7 @@ public class EscherAggregate extends AbstractEscherHolderRecord
             Record r = (Record) iterator.next();
             tailRecordSize += r.getRecordSize();
         }
-        return drawingRecordSize + objRecordSize + tailRecordSize;
+        return drawingRecordSize + objRecordSize + tailRecordSize - 4;
     }
 
     /**
index 278bfd78166b4d947209ebd6292d0ed616c777a4..845f95a1623fb77b1bb2d3e9f210b1317f295bef 100644 (file)
@@ -100,9 +100,8 @@ public class ExtSSTInfoSubRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 8;
+    protected int getDataSize() {
+        return 4;
     }
 
     public short getSid()
index 14a849de5664022a94328be6d434ef670ff3e4f3..8225f6b76ddd2fa3880183d8a1b4819c0bc99b88 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
 package org.apache.poi.hssf.record;
 
-import org.apache.poi.util.LittleEndian;
-
 import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.poi.util.LittleEndian;
 
 /**
  * Title:        Extended Static String Table<P>
@@ -35,17 +34,14 @@ import java.util.ArrayList;
  * @version 2.0-pre
  * @see org.apache.poi.hssf.record.ExtSSTInfoSubRecord
  */
-
-public class ExtSSTRecord
-    extends Record
-{
+public final class ExtSSTRecord extends Record {
+    public final static short sid = 0x00FF;
     public static final int DEFAULT_BUCKET_SIZE = 8;
-    //Cant seem to find this documented but from the biffviewer it is clear that
+    //Can't seem to find this documented but from the biffviewer it is clear that
     //Excel only records the indexes for the first 128 buckets.
     public static final int MAX_BUCKETS = 128;
-    public final static short sid = 0xff;
     private short             field_1_strings_per_bucket = DEFAULT_BUCKET_SIZE;
-    private ArrayList         field_2_sst_info;
+    private List         field_2_sst_info;
 
 
     public ExtSSTRecord()
@@ -128,10 +124,8 @@ public class ExtSSTRecord
         }
         return pos;
     }
-
-    public int getRecordSize()
-    {
-        return 6 + 8*getNumInfoRecords();
+    protected int getDataSize() {
+       return 2 + 8*getNumInfoRecords();
     }
 
     public static final int getNumberOfInfoRecsForStrings(int numStrings) {
index 0bc50ca89e9a39934283a8d96eb44b097c1b4850..9d3385452018a359379ac98ae21c28da7f1578e5 100644 (file)
@@ -1787,9 +1787,8 @@ public class ExtendedFormatRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 24;
+    protected int getDataSize() {
+        return 20;
     }
 
     public short getSid()
index f6266cfa3511f1d2181685de68aa70b7f00336c8..cbb287ed15618975da29840b9e1c2018da846195 100644 (file)
@@ -153,8 +153,7 @@ public class ExternSheetRecord extends Record {
                return sb.toString();
        }
        
-       
-       private int getDataSize() {
+       protected int getDataSize() {
                return 2 + _list.size() * RefSubRecord.ENCODED_SIZE;
        }
        
@@ -189,10 +188,6 @@ public class ExternSheetRecord extends Record {
                return (RefSubRecord) _list.get(i);
        }
        
-       public int getRecordSize() {
-               return 4 + getDataSize();
-       }
-       
        /**
         * return the non static version of the id for this record.
         */
index a3dfe575c18a73fa9830afe4543f8409664259d1..73de9f0bed6798da8cbf757afd1872dbc4608c19 100755 (executable)
@@ -83,7 +83,7 @@ public final class ExternalNameRecord extends Record {
                return field_4_name;
        }
 
-       private int getDataSize(){
+       protected int getDataSize(){
                int result = 3 * 2  // 3 short fields
                        + 2 + field_4_name.length(); // nameLen and name
                if(hasFormula()) {
@@ -120,10 +120,6 @@ public final class ExternalNameRecord extends Record {
                return recSize;
        }
 
-       public int getRecordSize(){
-               return 4 + getDataSize();
-       }
-
 
        public ExternalNameRecord(RecordInputStream in) {
                field_1_option_flag = in.readShort();
index 3af87278e23abac5ec152304a3f0ce58b6436cb5..7068874ec623d898b90f649ec6e2dd6170eb87e2 100644 (file)
@@ -68,9 +68,8 @@ public class FilePassRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 8;
+    protected int getDataSize() {
+        return 4;
     }
 
     public short getSid()
index 3631251995bf5dad76ec2b0efd3a309cbab45dc8..54d94d9f831e9ef66d8d62f26b5b3d597f71d080 100644 (file)
@@ -153,12 +153,12 @@ public final class FileSharingRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize() {
+    protected int getDataSize() {
         short nameLen = getUsernameLength();
         if (nameLen < 1) {
-            return 10;
+            return 6;
         }
-        return 11+nameLen;
+        return 7+nameLen;
     }
 
     public short getSid() {
index 23de9135af495057f6b7d0f1a99be1d514029833..e92623a3e3e968fbda6e4ca387c9eab4db1c4e07 100644 (file)
@@ -93,9 +93,8 @@ public class FnGroupCountRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 452a8f9ae4a4caecaac00b22432507bc3a425140..cbe2ae4fa746ea9f47e0796db96afafda39cab01 100644 (file)
@@ -94,9 +94,8 @@ public final class FontBasisRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2 + 2 + 2 + 2 + 2;
+    protected int getDataSize() {
+        return 2 + 2 + 2 + 2 + 2;
     }
 
     public short getSid()
index 241753bacc9458338e2614c77cdb2bfd26f41572..a1ade938ff561e7ae7d9212fbbe0292815cfcb3b 100644 (file)
@@ -66,9 +66,8 @@ public final class FontIndexRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index e1d421977402492e4e9b8a73baed70b542d0aba6..890460f9e70714aa229cdc65ef31fff0b9ae4b16 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
 package org.apache.poi.hssf.record;
 
@@ -29,14 +27,9 @@ import org.apache.poi.util.BitFieldFactory;
  * Description:  An element in the Font Table<P>
  * REFERENCE:  PG 315 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<P>
  * @author Andrew C. Oliver (acoliver at apache dot org)
- * @version 2.0-pre
  */
-
-public class FontRecord
-    extends Record
-{
-    public final static short     sid                 =
-        0x31;                                                 // docs are wrong (0x231 Microsoft Support site article Q184647)
+public final class FontRecord extends Record {
+    public final static short     sid                 = 0x0031;                                                 // docs are wrong (0x231 Microsoft Support site article Q184647)
     public final static short     SS_NONE             = 0;
     public final static short     SS_SUPER            = 1;
     public final static short     SS_SUB              = 2;
@@ -509,12 +502,10 @@ public class FontRecord
         }
         return getRecordSize();
     }
-
-    public int getRecordSize()
-    {
+    protected int getDataSize() {
        // Note - no matter the original, we always
        //  re-serialise the font name as unicode
-        return (getFontNameLength() * 2) + 20;
+        return 16 + getFontNameLength() * 2;
     }
 
     public short getSid()
index 8434792172d15829448bcb8f2001b69d42cbb771..0350d3a8cdc225f81c9c44715f2273a15646bde5 100644 (file)
@@ -180,16 +180,13 @@ public class FooterRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        int retval = 4;
+    protected int getDataSize() {
+        int retval = 0;
 
-        if (getFooterLength() > 0)
-        {
+        if (getFooterLength() > 0) {
             retval+=3; // [Shawn] Fixed for two null bytes in the length
         }
-        return (isMultibyte() ? 
-            (retval + getFooterLength()*2) : (retval + getFooterLength()));
+        return retval + getFooterLength() * (isMultibyte() ? 2 : 1);
     }
 
     public short getSid()
index b8f4ea22ad44c52c4e6e158c405fbb65ec798d17..6ea2ce96325b77d02b3ab0401db39e891d185dcb 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
 package org.apache.poi.hssf.record;
 
@@ -29,13 +27,9 @@ import org.apache.poi.util.StringUtil;
  * REFERENCE:  PG 317 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<P>
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Shawn M. Laubach (slaubach at apache dot org)  
- * @version 2.0-pre
  */
-
-public class FormatRecord
-    extends Record
-{
-    public final static short sid = 0x41e;
+public final class FormatRecord extends Record {
+    public final static short sid = 0x041E;
     private short             field_1_index_code;
 
     private short             field_3_unicode_len;      // unicode string length
@@ -199,10 +193,8 @@ public class FormatRecord
       
         return getRecordSize();
     }
-
-    public int getRecordSize()
-    {
-        return 9 + ( ( field_3_unicode_flag ) ? 2 * field_3_unicode_len : field_3_unicode_len );
+    protected int getDataSize() {
+        return 5 + field_3_unicode_len * (field_3_unicode_flag ? 2 : 1);
     }
 
     public short getSid()
index e51ed77a96705cd125d424bbfdc10501af89082a..4e4edcc9a69b209ac1ff45fc633d71144585c08d 100644 (file)
@@ -353,7 +353,7 @@ public final class FormulaRecord extends Record implements CellValueRecordInterf
                return sid;
        }
 
-       private int getDataSize() {
+       protected int getDataSize() {
                return FIXED_SIZE + field_8_parsed_expr.getEncodedSize();
        }
        public int serialize(int offset, byte [] data) {
@@ -380,10 +380,6 @@ public final class FormulaRecord extends Record implements CellValueRecordInterf
                return recSize;
        }
 
-       public int getRecordSize() {
-               return 4 + getDataSize();
-       }
-
        public String toString() {
 
                StringBuffer sb = new StringBuffer();
index 357728a0e2f119efafb28863e4db081a4238e40e..65fcc67d1e58b167dfbc2d2f01f7ea3a6df22009 100644 (file)
@@ -83,9 +83,8 @@ public final class FrameRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2 + 2;
+    protected int getDataSize() {
+        return 2 + 2;
     }
 
     public short getSid()
index ad652ba8245c066924813418fa6d37a5547f4bbd..8bf52768e0f2d3dd60e9c2720d6a9e2368a869dd 100644 (file)
@@ -97,9 +97,8 @@ public class GridsetRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 0073066ec1e98ea674c9c96170868485c6db642e..2bc576f26c8d5344d16d85c6574f97fc55c2b2b2 100644 (file)
@@ -167,9 +167,8 @@ public class GutsRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 12;
+    protected int getDataSize() {
+        return 8;
     }
 
     public short getSid()
index 261431e7167df837b966089c0982c70853ab8025..41708a3f2b1afa17234e1ad62ef3ade422a9fbf6 100644 (file)
@@ -86,9 +86,8 @@ public final class HCenterRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 61ff851306a14279aca8ffe570c5fcd6b976eae6..aea321eacadbfc8e27b79ca36c8135257adf0547 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
 package org.apache.poi.hssf.record;
 
@@ -29,13 +27,9 @@ import org.apache.poi.util.StringUtil;
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Shawn Laubach (slaubach at apache dot org) Modified 3/14/02
  * @author Jason Height (jheight at chariot dot net dot au)
- * @version 2.0-pre
  */
-
-public class HeaderRecord
-    extends Record
-{
-    public final static short sid = 0x14;
+public final class HeaderRecord extends Record {
+    public final static short sid = 0x0014;
     private byte              field_1_header_len;
     private byte              field_2_reserved;
     private byte              field_3_unicode_flag;
@@ -180,16 +174,13 @@ public class HeaderRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        int retval = 4;
+    protected int getDataSize() {
+        int retval = 0;
 
-        if (getHeaderLength() != 0)
-        {
+        if (getHeaderLength() != 0) {
             retval+=3; // [Shawn] Fixed for two null bytes in the length
         }
-       return (isMultibyte() ? 
-            (retval + getHeaderLength()*2) : (retval + getHeaderLength()));
+       return retval + getHeaderLength() * (isMultibyte() ? 2 : 1);
     }
 
     public short getSid()
index 496002618ace17a9f2e770a83833375c1013ab6c..c5c587626341578bc2b8a87008fdfd8e75a701e5 100644 (file)
@@ -95,9 +95,8 @@ public class HideObjRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 6fc5b97163d5e69debbb7f0f29d7cb93333e80da..f7904a10025ceced044720ad430a98166dd346ce 100644 (file)
@@ -31,7 +31,7 @@ import org.apache.poi.util.HexDump;
  * @author      Mark Hissink Muller <a href="mailto:mark@hissinkmuller.nl >mark&064;hissinkmuller.nl</a>
  * @author      Yegor Kozlov (yegor at apache dot org)
  */
-public class HyperlinkRecord extends Record {
+public final class HyperlinkRecord extends Record {
     /**
      * Link flags
      */
@@ -405,9 +405,8 @@ public class HyperlinkRecord extends Record {
        return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        int size = 4;
+    protected int getDataSize() {
+        int size = 0;
         size += 2 + 2 + 2 + 2;  //rwFirst, rwLast, colFirst, colLast
         size += guid.length;
         size += 4;  //label_opts
index c7c3cfbb5afea00e19c75a9cc11eefb7164fa747..650d1258c8b526adea6ffc66e6719891c436c64e 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
 package org.apache.poi.hssf.record;
 
@@ -30,13 +28,9 @@ import org.apache.poi.util.LittleEndian;
  * REFERENCE:  PG 323 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<P>
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Jason Height (jheight at chariot dot net dot au)
- * @version 2.0-pre
  */
-
-public class IndexRecord
-    extends Record
-{
-    public final static short sid             = 0x20B;
+public class IndexRecord extends Record {
+    public final static short sid             = 0x020B;
     public final static int   DBCELL_CAPACITY = 30;
     public int                field_1_zero;            // reserved must be 0
     public int                field_2_first_row;       // first row on the sheet
@@ -146,9 +140,8 @@ public class IndexRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 20 + (getNumDbcells() * 4);
+    protected int getDataSize() {
+        return 16 + (getNumDbcells() * 4);
     }
     
     /** Returns the size of an INdexRecord when it needs to index the specified number of blocks
index 2a9de8e5636e3b143c4c3e40ce27b35d8688790a..5f9d8955b2e85d4175c96a91111c14bb27514868 100644 (file)
@@ -58,9 +58,8 @@ public final class InterfaceEndRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4;
+    protected int getDataSize() {
+        return 0;
     }
 
     public short getSid()
index 617e95855fcbee3220c3af50e14cac827c16a6e3..592a87b892b70bf8946729e3048f54ba443d80b7 100644 (file)
@@ -94,9 +94,8 @@ public class InterfaceHdrRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 400ee0a8c5eb40bf623b1f7d3b5097cda6680b7f..f9efca7929533a8648ac7023f69b1b07d1c56d17 100644 (file)
@@ -95,9 +95,8 @@ public class IterationRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index f4bbfb85dadd195323e71dd1b2db9244b0dfae85..95659e8aff82f22a5c71ebfc6fdbff1bd58de1ab 100644 (file)
@@ -114,10 +114,11 @@ public final class LabelRecord extends Record implements CellValueRecordInterfac
     /**
      * THROWS A RUNTIME EXCEPTION..  USE LABELSSTRecords.  YOU HAVE NO REASON to use LABELRecord!!
      */
-    public int serialize(int offset, byte [] data)
-    {
-        throw new RecordFormatException(
-            "Label Records are supported READ ONLY...convert to LabelSST");
+    public int serialize(int offset, byte [] data) {
+        throw new RecordFormatException("Label Records are supported READ ONLY...convert to LabelSST");
+    }
+    protected int getDataSize() {
+        throw new RecordFormatException("Label Records are supported READ ONLY...convert to LabelSST");
     }
 
     public short getSid()
index f2eae83debe95bd1032de991a0a549ebc0c4f245..93d849b4ec0b2470bb687805b4a24063bf49de0b 100644 (file)
@@ -140,9 +140,8 @@ public final class LabelSSTRecord extends Record implements CellValueRecordInter
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 14;
+    protected int getDataSize() {
+        return 10;
     }
 
     public short getSid()
index 1a07530866cc47e3624381582ca0ee7b840c687c..7615b0d875dad27bc6e5f81f74358bfde2504a0e 100644 (file)
@@ -53,8 +53,8 @@ public class LeftMarginRecord extends Record implements Margin
         return getRecordSize();
     }
 
-    public int getRecordSize()    {
-        return 4 + 8;
+    protected int getDataSize() {
+        return 8;
     }
 
     public short getSid()    {
@@ -82,4 +82,4 @@ public class LeftMarginRecord extends Record implements Margin
         rec.field_1_margin = this.field_1_margin;
         return rec;
     }
-}  // END OF CLA
\ No newline at end of file
+}  // END OF C
\ No newline at end of file
index d4351b72a0732bc02e18d29d4413a125996ae8d3..cdd0becf989252df27caa2f16ccb08c82ebc59c1 100644 (file)
@@ -133,9 +133,8 @@ public final class LegendRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 4 + 4 + 4 + 4 + 1 + 1 + 2;
+    protected int getDataSize() {
+        return 4 + 4 + 4 + 4 + 1 + 1 + 2;
     }
 
     public short getSid()
index 78142a17cae92097387b3cc645049b6a8023327b..da6264f3614ef67b78959229bcbfc3a3b9872a7a 100644 (file)
@@ -118,9 +118,8 @@ public final class LineFormatRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 4 + 2 + 2 + 2 + 2;
+    protected int getDataSize() {
+        return 4 + 2 + 2 + 2 + 2;
     }
 
     public short getSid()
index 543418c35384afe3dd02aae002f1d8d9a38f3723..fe5b9002c726fdac9a35d96d7fe63879a73d12b1 100644 (file)
@@ -108,9 +108,8 @@ public final class LinkedDataRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 1 + 1 + 2 + 2 + field_5_formulaOfLink.getSize();
+    protected int getDataSize() {
+        return 1 + 1 + 2 + 2 + field_5_formulaOfLink.getSize();
     }
 
     public short getSid()
index c11e2d510d16bb4ae2e3be27f995358802e7bacf..0c5564d97b541fbe6f07e51cb07e827e3eac3b8c 100644 (file)
@@ -110,9 +110,8 @@ public class MMSRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 1b917a7fce77b16641524d1b393d7998de290a4e..5ecce79aa89681b9a43e8ce79b2dcb2eea54e102 100644 (file)
@@ -72,9 +72,9 @@ public final class MergeCellsRecord extends Record {
         return _regions[_startIndex + index];
     }
 
-    public int getRecordSize() {
-       return 4 + CellRangeAddressList.getEncodedSize(_numberOfRegions);
-    }
+    protected int getDataSize() {
+               return CellRangeAddressList.getEncodedSize(_numberOfRegions);
+       }
 
     public short getSid() {
         return sid;
index 8d461fe975bdaf7639d3a721f51fe87b2fdc09da..6ecaa20f9742967f9594ef655c1c927666f5721a 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
-/*
- * MulBlankRecord.java
- *
- * Created on December 10, 2001, 12:49 PM
- */
 package org.apache.poi.hssf.record;
 
 /**
- * Title:        Mulitple Blank cell record <P>
+ * Title:        Multiple Blank cell record(0x00BE) <P/>
  * Description:  Represents a  set of columns in a row with no value but with styling.
  *               In this release we have read-only support for this record type.
- *               The RecordFactory converts this to a set of BlankRecord objects.<P>
- * REFERENCE:  PG 329 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<P>
+ *               The RecordFactory converts this to a set of BlankRecord objects.<P/>
+ * REFERENCE:  PG 329 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<P/>
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Glen Stampoultzis (glens at apache.org)
- * @version 2.0-pre
- * @see org.apache.poi.hssf.record.BlankRecord
+ * @see BlankRecord
  */
-
-public class MulBlankRecord
-    extends Record
-{
-    public final static short sid = 0xbe;
-    //private short             field_1_row;
-    private int             field_1_row;
+public final class MulBlankRecord extends Record {
+    public final static short sid = 0x00BE;
+    
+    private int               field_1_row;
     private short             field_2_first_col;
     private short[]           field_3_xfs;
     private short             field_4_last_col;
 
-    /** Creates new MulBlankRecord */
-
-    public MulBlankRecord()
-    {
-    }
 
     /**
      * get the row number of the cells this represents
      *
      * @return row number
      */
-
-    //public short getRow()
     public int getRow()
     {
         return field_1_row;
@@ -68,7 +50,6 @@ public class MulBlankRecord
      * starting column (first cell this holds in the row)
      * @return first column number
      */
-
     public short getFirstColumn()
     {
         return field_2_first_col;
@@ -78,7 +59,6 @@ public class MulBlankRecord
      * ending column (last cell this holds in the row)
      * @return first column number
      */
-
     public short getLastColumn()
     {
         return field_4_last_col;
@@ -88,7 +68,6 @@ public class MulBlankRecord
      * get the number of columns this contains (last-first +1)
      * @return number of columns (last - first +1)
      */
-
     public int getNumColumns()
     {
         return field_4_last_col - field_2_first_col + 1;
@@ -99,7 +78,6 @@ public class MulBlankRecord
      * @param coffset  the column (coffset = column - field_2_first_col)
      * @return the XF index for the column
      */
-
     public short getXFAt(int coffset)
     {
         return field_3_xfs[ coffset ];
@@ -108,16 +86,14 @@ public class MulBlankRecord
     /**
      * @param in the RecordInputstream to read the record from
      */
-    public MulBlankRecord(RecordInputStream in)
-    {
-        //field_1_row       = LittleEndian.getShort(data, 0 + offset);
+    public MulBlankRecord(RecordInputStream in) {
         field_1_row       = in.readUShort();
         field_2_first_col = in.readShort();
         field_3_xfs       = parseXFs(in);
         field_4_last_col  = in.readShort();
     }
 
-    private short [] parseXFs(RecordInputStream in)
+    private static short [] parseXFs(RecordInputStream in)
     {
         short[] retval = new short[ (in.remaining() - 2) / 2 ];
 
@@ -128,21 +104,16 @@ public class MulBlankRecord
         return retval;
     }
 
-    public String toString()
-    {
+    public String toString() {
         StringBuffer buffer = new StringBuffer();
 
         buffer.append("[MULBLANK]\n");
-        buffer.append("row  = ")
-            .append(Integer.toHexString(getRow())).append("\n");
-        buffer.append("firstcol  = ")
-            .append(Integer.toHexString(getFirstColumn())).append("\n");
-        buffer.append(" lastcol  = ")
-            .append(Integer.toHexString(getLastColumn())).append("\n");
-        for (int k = 0; k < getNumColumns(); k++)
-        {
-            buffer.append("xf").append(k).append("        = ")
-                .append(Integer.toHexString(getXFAt(k))).append("\n");
+        buffer.append("row  = ").append(Integer.toHexString(getRow())).append("\n");
+        buffer.append("firstcol  = ").append(Integer.toHexString(getFirstColumn())).append("\n");
+        buffer.append(" lastcol  = ").append(Integer.toHexString(getLastColumn())).append("\n");
+        for (int k = 0; k < getNumColumns(); k++) {
+            buffer.append("xf").append(k).append("        = ").append(
+                    Integer.toHexString(getXFAt(k))).append("\n");
         }
         buffer.append("[/MULBLANK]\n");
         return buffer.toString();
@@ -153,9 +124,10 @@ public class MulBlankRecord
         return sid;
     }
 
-    public int serialize(int offset, byte [] data)
-    {
-        throw new RecordFormatException(
-            "Sorry, you can't serialize a MulBlank in this release");
+    public int serialize(int offset, byte [] data) {
+        throw new RecordFormatException( "Sorry, you can't serialize MulBlank in this release");
+    }
+    protected int getDataSize() {
+        throw new RecordFormatException( "Sorry, you can't serialize MulBlank in this release");
     }
 }
index 0419f4921dcdff15f7d8dd595a546b1d76b9d86b..dbb41c10f0a5dfa09db0db1f58de9f56b417af24 100644 (file)
@@ -113,10 +113,11 @@ public final class MulRKRecord extends Record {
                return sid;
        }
 
-       public int serialize(int offset, byte [] data)
-       {
-               throw new RecordFormatException(
-                       "Sorry, you can't serialize a MulRK in this release");
+       public int serialize(int offset, byte [] data) {
+               throw new RecordFormatException( "Sorry, you can't serialize MulRK in this release");
+       }
+       protected int getDataSize() {
+               throw new RecordFormatException( "Sorry, you can't serialize MulRK in this release");
        }
 
        private static final class RkRec {
index 99e2cddd70e7b3b91ea1cc51dbf643570a00372c..f27fb2d88387f3eb2e54897b25a56cbdef6bfdb6 100644 (file)
@@ -408,10 +408,9 @@ public final class NameRecord extends Record {
                } 
                return nChars;
        }
-
-       public int getRecordSize(){
-               return 4 // sid + size
-                       + 13 // 3 shorts + 7 bytes
+       
+       protected int getDataSize() {
+               return 13 // 3 shorts + 7 bytes
                        + getNameRawSize()
                        + field_14_custom_menu_text.length()
                        + field_15_description_text.length()
index 1a82d56e9dd734b66ec20241ffc7b3f563031768..2888614f42dd06bd072eea5ed747fe215fbc92d5 100644 (file)
@@ -24,8 +24,8 @@ import org.apache.poi.util.LittleEndian;
  *
  * @author Yegor Kozlov
  */
-public class NoteRecord extends Record {
-    public final static short sid = 0x1C;
+public final class NoteRecord extends Record {
+    public final static short sid = 0x001C;
 
     /**
      * Flag indicating that the comment is hidden (default)
@@ -100,16 +100,13 @@ public class NoteRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        int retval = 4 + 2 + 2 + 2 + 2 + 2 + 1 + field_5_author.length() + 1;
-
-        return retval;
+    protected int getDataSize() {
+        return 2 + 2 + 2 + 2 + 2 + 1 + field_5_author.length() + 1;
     }
 
     /**
      * Convert this record to string.
-     * Used by BiffViewer and other utulities.
+     * Used by BiffViewer and other utilities.
      */
      public String toString()
     {
index 3f35184ebf57ad2956bad7fb2cfbed112d234e1d..f00f47696a1317c7065f87558bcadcf5b19df2c4 100644 (file)
@@ -66,9 +66,8 @@ public final class NumberFormatIndexRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index e4283f0eac722acbde6fcb258e592a8cd6b9d6a9..a0c55c6e420fc24a8f1d7909ddcbae4baf4c9358 100644 (file)
@@ -142,9 +142,8 @@ public final class NumberRecord extends Record implements CellValueRecordInterfa
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 18;
+    protected int getDataSize() {
+        return 14;
     }
 
     public short getSid()
index 538b1ae9f192009685cbd919faac18bff41c2780..6addf41ebabd23462ddfb165b7af0ca79cf155c7 100644 (file)
@@ -119,7 +119,7 @@ public final class ObjRecord extends Record {
                return sb.toString();
        }
        
-       private int getDataSize() {
+       protected int getDataSize() {
                if (_uninterpretedData != null) {
                        return _uninterpretedData.length;
                }
@@ -165,10 +165,6 @@ public final class ObjRecord extends Record {
                return recSize;
        }
 
-       public int getRecordSize() {
-               return 4 + getDataSize();
-       }
-
        public short getSid() {
                return sid;
        }
index 95fc5ff7f5659775c571e1dbca26b23cc8622ebf..b5a78b860dec2d7bcd914b8cafa779b3896298ec 100644 (file)
@@ -86,9 +86,8 @@ public final class ObjectLinkRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2 + 2 + 2;
+    protected int getDataSize() {
+        return 2 + 2 + 2;
     }
 
     public short getSid()
index cdbb56d8731900e234cd34577b03543d9ead194a..f0141424ac6dc924d7e641a665f15851ed561106 100644 (file)
@@ -93,9 +93,8 @@ public class ObjectProtectRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 654439f31609cfbe5a6e9e97ddbff265ff96dcc2..a3717f40e000fb9e25ad48d9c8b2437590158e7b 100644 (file)
@@ -37,7 +37,6 @@ import org.apache.poi.util.LittleEndian;
  * @author Danny Mui (dmui at apache dot org)
  */
 public abstract class PageBreakRecord extends Record {
-    private static final boolean IS_EMPTY_RECORD_WRITTEN = false;
     private static final int[] EMPTY_INT_ARRAY = { };
 
     private List _breaks;
@@ -97,23 +96,15 @@ public abstract class PageBreakRecord extends Record {
 
     }
 
-    private int getDataSize() {
-        return 2 + _breaks.size() * Break.ENCODED_SIZE;
+    public boolean isEmpty() {
+       return _breaks.isEmpty();
     }
-    public int getRecordSize() {
-        int nBreaks = _breaks.size();
-        if (!IS_EMPTY_RECORD_WRITTEN && nBreaks < 1) {
-            return 0;
-        }
-        return 4 + getDataSize();
+    protected int getDataSize() {
+        return 2 + _breaks.size() * Break.ENCODED_SIZE;
     }
 
-
     public final int serialize(int offset, byte data[]) {
         int nBreaks = _breaks.size();
-        if (!IS_EMPTY_RECORD_WRITTEN && nBreaks < 1) {
-            return 0;
-        }
         int dataSize = getDataSize();
         LittleEndian.putUShort(data, offset + 0, getSid());
         LittleEndian.putUShort(data, offset + 2, dataSize);
index 0cf78563619d9193bd47fe833b46191956daeba4..75a13f6ad3897ebea3fa99541223c847f34af0ae 100644 (file)
@@ -96,9 +96,8 @@ public class PaletteRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4 + 2 + (field_1_numcolors * 4);
+    protected int getDataSize() {
+        return 2 + (field_1_numcolors * 4);
     }
 
     public short getSid()
index f02e517a313470379a7ef3eb50525a5b663dff7d..7b16ec442f82aa62d67f331f2da19717bfe49f54 100644 (file)
@@ -102,9 +102,8 @@ public final class PaneRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2 + 2 + 2 + 2 + 2;
+    protected int getDataSize() {
+        return 2 + 2 + 2 + 2 + 2;
     }
 
     public short getSid()
index b7b9d075ab300fe0c05249b608bc72ce61d7cd79..ff6445ca85f983135b5ddee6b87b39c0d3a4c21d 100644 (file)
@@ -96,8 +96,8 @@ public class PasswordRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize() {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid() {
index 5c5567a86ba8a772b7a2b09673ca6faa4dfdf2c7..7538872fdfa39bcc6d7448fa2dac50e31fbe9588 100644 (file)
@@ -87,9 +87,8 @@ public class PasswordRev4Record
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 1a50441ff9f1c5f319d7bc16be2cfc641b2078df..d0bba5e6737aa9399bcd8e00519a0c881fedf6d0 100644 (file)
@@ -60,9 +60,8 @@ public final class PlotAreaRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4 ;
+    protected int getDataSize() {
+        return 0;
     }
 
     public short getSid()
index 04a1240809a3946189ac40245c2084a1e23ab3c2..03cf58a357a388b03cb72b9cf3d2bd72aa6ce324 100644 (file)
@@ -74,9 +74,8 @@ public final class PlotGrowthRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 4 + 4;
+    protected int getDataSize() {
+        return 4 + 4;
     }
 
     public short getSid()
index a147cfff18727d4875466b31289d624cdec3c0d4..56bb8cbd97ad37bdae2a49d8e9cb90a66a0fc644 100644 (file)
@@ -94,9 +94,8 @@ public class PrecisionRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 7b4de7c68e78d5952df97c983465d89d5317004d..1ddaed715a6f77518ba0c3ff369856aac7737061 100644 (file)
@@ -93,9 +93,8 @@ public class PrintGridlinesRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 61c1cce86eabb7d27af548345ac323133ae6aabe..5f63a5eba677e749cf695c5d30b5838d0272a189 100644 (file)
@@ -92,9 +92,8 @@ public class PrintHeadersRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index e41f278d5411e26a2f7dde266561d7303f509530..136fc03f1693a88e25a9137af7aa2e3273373390 100644 (file)
@@ -340,9 +340,8 @@ public class PrintSetupRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 38;
+    protected int getDataSize() {
+        return 34;
     }
 
     public short getSid()
index d5425c55234823e9674da19410cd15409cc45f21..a0b6bf48890dede3e5ab3e770b0dacb251b80a90 100644 (file)
@@ -94,9 +94,8 @@ public class ProtectRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index b7d2f4323f37a68b93482ee0c74eb3539edda7e9..ae86f776283596b82eaaada14842856af73bca4a 100644 (file)
@@ -92,9 +92,8 @@ public class ProtectionRev4Record
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index c4b25a5bead8f9b71c512f0e5f3785349932cbfd..48a8c564f5d94c028aa3303834e40a724187af36 100644 (file)
@@ -34,7 +34,6 @@ import org.apache.poi.util.HexDump;
  * REFERENCE:  PG 376 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<P>
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Jason Height (jheight at chariot dot net dot au)
- * @version 2.0-pre
  * @see org.apache.poi.hssf.record.NumberRecord
  */
 public final class RKRecord extends Record implements CellValueRecordInterface {
@@ -134,48 +133,12 @@ public final class RKRecord extends Record implements CellValueRecordInterface {
         return sb.toString();
     }
 
-// temporarily just constructs a new number record and returns its value
-    public int serialize(int offset, byte [] data)
-    {
-        NumberRecord rec = new NumberRecord();
-
-        rec.setColumn(getColumn());
-        rec.setRow(getRow());
-        rec.setValue(getRKNumber());
-        rec.setXFIndex(getXFIndex());
-        return rec.serialize(offset, data);
-    }
-
-    /**
-     * Debugging main()
-     * <P>
-     * Normally I'd do this in a junit test, but let's face it -- once
-     * this algorithm has been tested and it works, we are never ever
-     * going to change it. This is driven by the Faceless Enemy's
-     * minions, who dare not change the algorithm out from under us.
-     *
-     * @param ignored_args command line arguments, which we blithely
-     *                     ignore
-     */
-
-    public static void main(String ignored_args[])
-    {
-        int[]    values  =
-        {
-            0x3FF00000, 0x405EC001, 0x02F1853A, 0x02F1853B, 0xFCDD699A
-        };
-        double[] rvalues =
-        {
-            1, 1.23, 12345678, 123456.78, -13149594
-        };
-
-        for (int j = 0; j < values.length; j++)
-        {
-            System.out.println("input = " + Integer.toHexString(values[ j ])
-                               + " -> " + rvalues[ j ] + ": "
-                               + RKUtil.decodeNumber(values[ j ]));
-        }
-    }
+       public int serialize(int offset, byte [] data) {
+               throw new RecordFormatException( "Sorry, you can't serialize RK in this release");
+       }
+       protected int getDataSize() {
+               throw new RecordFormatException( "Sorry, you can't serialize RK in this release");
+       }
 
     public short getSid()
     {
index c0cab053c9a0584238ed0175ebf4670c2da78bbc..d66e31089b1e8750abf25e6ccdf9b80eb455c396 100644 (file)
@@ -116,9 +116,8 @@ public final class RecalcIdRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4 + (getRecalcIdArray().length * 2);
+    protected int getDataSize() {
+        return (getRecalcIdArray().length * 2);
     }
 
     public short getSid()
index 29c37d7047b056c628c810b5730fbe16a2d3b385..5b42e5fcbc0fb903adb094cea8c4716687aeb8f2 100644 (file)
@@ -28,7 +28,6 @@ import java.io.ByteArrayInputStream;
  * @author Andrew C. Oliver
  * @author Marc Johnson (mjohnson at apache dot org)
  * @author Jason Height (jheight at chariot dot net dot au)
- * @version 2.0-pre
  */
 public abstract class Record extends RecordBase {
 
@@ -48,31 +47,25 @@ public abstract class Record extends RecordBase {
      * @return byte array containing instance data
      */
 
-    public byte [] serialize()
-    {
+    public final byte[] serialize() {
         byte[] retval = new byte[ getRecordSize() ];
 
         serialize(0, retval);
         return retval;
     }
 
-
+    public final int getRecordSize() {
+       return 4 + getDataSize();
+    }
     /**
-     * gives the current serialized size of the record. Should include the sid and reclength (4 bytes).
+     * @return the size of the data portion of this record 
+     * (does not include initial 4 bytes for sid and size)
      */
-
-    public int getRecordSize()
-    {
-
-        // this is kind od a stupid way to do it but for now we just serialize
-        // the record and return the size of the byte array
-        return serialize().length;
-    }
-
+    protected abstract int getDataSize();
+    
     /**
      * get a string representation of the record (for biffview/debugging)
      */
-
     public String toString()
     {
         return super.toString();
index f0567509bfa57fc40d72de6ec5ddd32501c0012c..0f20d6ae1bc05343027b0bea8555c811c0009115 100644 (file)
@@ -91,9 +91,8 @@ public class RefModeRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 021a34c69be081ee891b29bf2d276b8785de5da1..41277e61725b03e0b8a710fe14cbf52e80904d57 100644 (file)
@@ -92,9 +92,8 @@ public class RefreshAllRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 32fb7c8a482a1c563c8a1aa0bf1b59da3ffab4de..2a4994bd6b60d8815888b8b568c5d2bda100945e 100644 (file)
@@ -52,7 +52,9 @@ public final class RightMarginRecord extends Record implements Margin {
         return getRecordSize();
     }
 
-    public int getRecordSize()    {        return 4 + 8;    }
+    protected int getDataSize() {
+        return 8;
+    }
 
     public short getSid()    {        return sid;    }
 
@@ -73,4 +75,4 @@ public final class RightMarginRecord extends Record implements Margin {
         rec.field_1_margin = this.field_1_margin;
         return rec;
     }
-}  // END OF CL
\ No newline at end of file
+}  // END OF 
\ No newline at end of file
index f893bf2831ec533a0fc6d8646fbbfe7557458b4e..25adc67f5aee1307d7cde936dca227fcb550feb2 100644 (file)
@@ -351,9 +351,8 @@ public final class RowRecord extends Record {
         return ENCODED_SIZE;
     }
 
-    public int getRecordSize()
-    {
-        return ENCODED_SIZE;
+    protected int getDataSize() {
+        return ENCODED_SIZE - 4;
     }
 
     public short getSid()
index 09093af6c67dbbb64e54c15add24897137c90ba2..0b30d32e038ffb969019de5c2bb061fded74caeb 100644 (file)
@@ -74,9 +74,8 @@ public final class SCLRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2 + 2;
+    protected int getDataSize() {
+        return 2 + 2;
     }
 
     public short getSid()
index ca75af00d4c64afc28582670290db5c4bdb012bd..7c56d955ec87d99756cfbd460da82e5251b8cea9 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
 package org.apache.poi.hssf.record;
 
@@ -39,10 +37,8 @@ import java.util.Iterator;
  * @see org.apache.poi.hssf.record.LabelSSTRecord
  * @see org.apache.poi.hssf.record.ContinueRecord
  */
-
-public class SSTRecord
-        extends Record
-{
+public final class SSTRecord extends Record {
+    public static final short sid = 0x00FC;
 
       private static UnicodeString EMPTY_STRING = new UnicodeString("");
 
@@ -63,8 +59,6 @@ public class SSTRecord
     /** overhead for each string includes the string's character count (a short) and the flag describing its characteristics (a byte) */
     static final int STRING_MINIMAL_OVERHEAD = LittleEndianConsts.SHORT_SIZE + LittleEndianConsts.BYTE_SIZE;
 
-    public static final short sid = 0xfc;
-
     /** union of strings in the SST and EXTSST */
     private int field_1_num_strings;
 
@@ -375,11 +369,10 @@ public class SSTRecord
     }
 
 
-    public int getRecordSize()
-    {
+    protected int getDataSize() {
         SSTRecordSizeCalculator calculator = new SSTRecordSizeCalculator(field_3_strings);
         int recordSize = calculator.getRecordSize();
-        return recordSize;
+        return recordSize-4;
     }
 
     SSTDeserializer getDeserializer()
index 9cf008fe18cc55639c942459813981c9cad46847..769f6ac97e4b8b1b5bfcb2d63e5d3910fbc49e76 100644 (file)
@@ -85,9 +85,8 @@ public class SaveRecalcRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 037eed02067412361c21b20121013e754b731685..cf58666eb11307fd47669b369888c56cc5ffc5c6 100644 (file)
@@ -94,9 +94,8 @@ public class ScenarioProtectRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index ca2bf22fc14e734ec46a25401b2bed8539d1d555..2898c8d142aef8654c66bba309f7edce6ed3172d 100644 (file)
@@ -143,7 +143,7 @@ public final class SelectionRecord extends Record {
         buffer.append("[/SELECTION]\n");
         return buffer.toString();
     }
-    private int getDataSize() {
+    protected int getDataSize() {
         return 9 // 1 byte + 4 shorts 
             + CellRangeAddress8Bit.getEncodedSize(field_6_refs.length);
     }
@@ -164,10 +164,6 @@ public final class SelectionRecord extends Record {
         return 4 + dataSize;
     }
 
-    public int getRecordSize() {
-        return 4 + getDataSize();
-    }
-
     public short getSid() {
         return sid;
     }
index 0f5c193615b74722b7a8008b485d08a4fe2d83ee..0754aa506e1399c75ddb7dcf8e2c95046e89fb2f 100644 (file)
@@ -66,9 +66,8 @@ public final class SeriesChartGroupIndexRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 70565c66b1fa51bdb23f760485561fd8f0c1bfe0..af75ced7c2b95e2ce6510279ed65fa8bd47c3463 100644 (file)
@@ -66,9 +66,8 @@ public final class SeriesIndexRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 868358b0d28cbb225ece318999727b4a576785f1..60d971de82a1b5ed1165f62ad84c7e1386615742 100644 (file)
@@ -81,9 +81,8 @@ public final class SeriesLabelsRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 4753eae05f3dbd4232c9820fa8c4fbe7cba44e36..a6ebefd255b4ba4bba2cfa636657a4fb834975eb 100644 (file)
@@ -74,9 +74,8 @@ public final class SeriesListRecord extends Record {
         return 4 + dataSize;
     }
 
-    public int getRecordSize()
-    {
-        return 4  + field_1_seriesNumbers.length * 2 + 2;
+    protected int getDataSize() {
+        return field_1_seriesNumbers.length * 2 + 2;
     }
 
     public short getSid()
index b2ab88e8c2f154b9f8a66e65da41978e90313154..ec35521da9140fa1eee3dac94c01e3f3e4e1a639 100644 (file)
@@ -114,9 +114,8 @@ public final class SeriesRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2 + 2 + 2 + 2 + 2 + 2;
+    protected int getDataSize() {
+        return 2 + 2 + 2 + 2 + 2 + 2;
     }
 
     public short getSid()
index da0e854eaaddb82e725115276edf8a47352d91e1..d1ca886ff41a8f4ff541ca3960bbcb67f4f30aee 100644 (file)
@@ -88,9 +88,8 @@ public final class SeriesTextRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2 + 1 + 1 + (field_2_textLength *2);
+    protected int getDataSize() {
+        return 2 + 1 + 1 + (field_2_textLength *2);
     }
 
     public short getSid()
index 6b38c40a4a12b677cea737dee2f7be9364f1d701..648a5b1269a27222914613d50ead7b251e86af22 100644 (file)
@@ -68,9 +68,8 @@ public final class SeriesToChartGroupRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 3672b881a260f11b83d94a8c741d54aab622831a..f30c00959020492b9bc43705728124dd20f396fe 100644 (file)
@@ -67,8 +67,8 @@ public abstract class SharedValueRecordBase extends Record {
                return (short) _range.getLastColumn();
        }
 
-       public final int getRecordSize() {
-               return 4 + CellRangeAddress8Bit.ENCODED_SIZE + getExtraDataSize();
+       protected int getDataSize() {
+               return CellRangeAddress8Bit.ENCODED_SIZE + getExtraDataSize();
        }
 
        protected abstract int getExtraDataSize();
index 1f7a5e44e4fe2f553e8873d4f98971cb76fac438..ecfc6156c385ed53451143215099a21091fe3437 100644 (file)
@@ -90,9 +90,8 @@ public final class SheetPropertiesRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2 + 1;
+    protected int getDataSize() {
+        return 2 + 1;
     }
 
     public short getSid()
index d56e105f5f0442a8d95fb9e426e926c6c8fe5ba4..620a07e093d70b93396ac9a2dc04dd1d20036412 100644 (file)
@@ -68,9 +68,8 @@ public class StringRecord extends Record {
         return isUnCompressedUnicode() ? field_1_string_length * 2 : field_1_string_length;
     }
 
-    public int getRecordSize()
-    {
-        return 4 + 2 + 1 + getStringByteLength();
+    protected int getDataSize() {
+        return 2 + 1 + getStringByteLength();
     }
 
     /**
index ad740e9b2e43ac2840920c515506925ce7f75795..af60e692444dd510e8981b93b0fb184d3007913e 100644 (file)
@@ -158,7 +158,7 @@ public final class StyleRecord extends Record {
        }
 
        
-       private int getDataSize() {
+       protected int getDataSize() {
                if (isBuiltin()) {
                        return 4; // short, byte, byte
                }
@@ -188,10 +188,6 @@ public final class StyleRecord extends Record {
                return 4+dataSize;
        }
 
-       public int getRecordSize() {
-               return 4 + getDataSize();
-       }
-
        public short getSid()
        {
                return sid;
index 78d77c5cbf6ea84e85eccdcc89db661e4f59a929..a58c5c8c97beda7cfb3224a5cf810561fc5a0ae1 100644 (file)
@@ -138,7 +138,7 @@ public final class SupBookRecord extends Record {
         sb.append("]");
         return sb.toString();
     }
-    private int getDataSize() {
+    protected int getDataSize() {
         if(!isExternalReferences()) {
             return SMALL_RECORD_SIZE;
         }
@@ -198,10 +198,6 @@ public final class SupBookRecord extends Record {
         return field_1_number_of_sheets;
     }
 
-    public int getRecordSize() {
-        return getDataSize() + 4;
-    }
-
     public short getSid()
     {
         return sid;
index d5aca3e045315dc328549da6ca50365a9234658e..9478d008bf2957255e953c91e9bcab29320936a6 100644 (file)
@@ -98,9 +98,8 @@ public final class TabIdRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4 + (getTabIdArray().length * 2);
+    protected int getDataSize() {
+        return (getTabIdArray().length * 2);
     }
 
     public short getSid()
index 4bb065e91e23a2f6eeee58b9d074e060bed8dbf7..0a50e181b28938153f85bc8e054a6c111a3e2796 100644 (file)
@@ -167,7 +167,7 @@ public final class TextObjectRecord extends Record {
         * Only for the current record. does not include any subsequent Continue
         * records
         */
-       private int getDataSize() {
+       private int getCurrentRecordDataSize() {
                int result = 2 + 2 + 2 + 2 + 2 + 2 + 2 + 4;
                if (_linkRefPtg != null) {
                        result += 2 // formula size
@@ -181,7 +181,7 @@ public final class TextObjectRecord extends Record {
        }
 
        private int serializeTXORecord(int offset, byte[] data) {
-               int dataSize = getDataSize();
+               int dataSize = getCurrentRecordDataSize();
                int recSize = dataSize+4;
                LittleEndianOutput out = new LittleEndianByteArrayOutputStream(data, offset, recSize);
                
@@ -272,10 +272,10 @@ public final class TextObjectRecord extends Record {
 
        /**
         * Note - this total size includes all potential {@link ContinueRecord}s written
+        * but it is not the "ushort size" value to be written at the start of the first BIFF record 
         */
-       public int getRecordSize() {
-               int baseSize = 4 + getDataSize();
-               return baseSize + getTrailingRecordsSize();
+       protected int getDataSize() {
+               return getCurrentRecordDataSize() + getTrailingRecordsSize();
        }
 
        
index aeb9dc89c0a5e02e4f448dbc9df2e281f6985b4e..0820e6baf3f896a051a2e565183765b946212da2 100644 (file)
@@ -202,9 +202,8 @@ public final class TextRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 1 + 1 + 2 + 4 + 4 + 4 + 4 + 4 + 2 + 2 + 2 + 2;
+    protected int getDataSize() {
+        return 1 + 1 + 2 + 4 + 4 + 4 + 4 + 4 + 2 + 2 + 2 + 2;
     }
 
     public short getSid()
index f24f033eb1ce62cf20fbad81d2d2c6b91d7a86c3..3b662d18bb5651f6d77e8b1abaf1e6a5a5c233a8 100644 (file)
@@ -149,9 +149,8 @@ public final class TickRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 1 + 1 + 1 + 1 + 4 + 8 + 8 + 2 + 2 + 2;
+    protected int getDataSize() {
+        return 1 + 1 + 1 + 1 + 4 + 8 + 8 + 2 + 2 + 2;
     }
 
     public short getSid()
index 4d1a19a77b6a83b93302cb356b9c54fb450be280..e52326e5cfb590274f560f5e5238c523cd4c840a 100644 (file)
@@ -55,7 +55,9 @@ public final class TopMarginRecord extends Record implements Margin {
         return getRecordSize();
     }
 
-    public int getRecordSize()    {        return 4 + 8;    }
+    protected int getDataSize() {
+        return 8;
+    }
 
     public short getSid()    {        return sid;    }
 
@@ -76,4 +78,4 @@ public final class TopMarginRecord extends Record implements Margin {
         rec.field_1_margin = this.field_1_margin;
         return rec;
     }
-}  // END OF CLA
\ No newline at end of file
+}  // END OF C
\ No newline at end of file
index adc2cdeb907bf80067fcda358f125521726f7c90..01ae71f5af30b5b0ddaeedd021453574889e84cc 100644 (file)
@@ -27,14 +27,9 @@ import org.apache.poi.util.LittleEndian;
  * 
  * @author Olivier Leprince
  */
+public final class UncalcedRecord extends Record  {
+       public final static short sid = 0x005E;
 
-public class UncalcedRecord extends Record 
-{
-       public final static short sid = 0x5E;
-
-       /**
-        * Default constructor
-        */
        public UncalcedRecord() {
        }
 
@@ -60,8 +55,8 @@ public class UncalcedRecord extends Record
                return getRecordSize();
        }
 
-       public int getRecordSize() {
-               return UncalcedRecord.getStaticRecordSize();
+       protected int getDataSize() {
+               return 2;
        }
 
        public static int getStaticRecordSize() {
index e4464eb790bcb5d7587a2e711140db03c498e03f..f09b3cb2da08cba2e201f6e3a27afdbe227debf2 100644 (file)
@@ -67,9 +67,8 @@ public final class UnitsRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 2;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 77de66d9b32fdfaf434b36ba39842e867cfc588c..61630357a8f69de503324681d797d7f0d0f2b8f2 100644 (file)
@@ -87,8 +87,8 @@ public final class UnknownRecord extends Record {
                return 4 + dataSize;
        }
 
-       public final int getRecordSize() {
-               return 4 + _rawData.length;
+       protected int getDataSize() {
+               return _rawData.length;
        }
 
        /**
index 8e64ef3d4a6fe86af3372add461427b12a9ad022..e513cc8125f97519cf1a69373d5da2601ae41cf0 100644 (file)
@@ -93,9 +93,8 @@ public class UseSelFSRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 7326a3292903015e16d79f165142bac0a3ea647f..6e4c4d03c63f3804ff7c951b85d55e8792993803 100644 (file)
@@ -80,9 +80,8 @@ public final class VCenterRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 9caffa73b54d1ec41ec25e68184dda4a15547b11..fa13af68aef04d8f3cb3a0bd8adccbedd54dac16 100644 (file)
@@ -119,9 +119,8 @@ public final class ValueRangeRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4  + 8 + 8 + 8 + 8 + 8 + 2;
+    protected int getDataSize() {
+        return 8 + 8 + 8 + 8 + 8 + 2;
     }
 
     public short getSid()
index bdb1cb4847868bac8212b3b8eabb218b7042fc3c..d58e26d9d76d4efbf88fc9fc7fd25ff102f0fa02 100644 (file)
@@ -325,9 +325,8 @@ public final class WSBoolRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 7afc5fa1f893ab5ac66a793f999f0a01b57413eb..8fb0772132db2d598c0e1765e456c5d4a5b56fc3 100644 (file)
@@ -439,9 +439,8 @@ public final class WindowOneRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 22;
+    protected int getDataSize() {
+        return 18;
     }
 
     public short getSid()
index 13d54e9b5e3dc3e6816b59e19a9a97352182cb55..e61d8611fc14fbad5d911d4ed0bd1ad7afc07f63 100644 (file)
@@ -92,9 +92,8 @@ public class WindowProtectRecord
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 6;
+    protected int getDataSize() {
+        return 2;
     }
 
     public short getSid()
index 9023d2d6920534268fc834781f63291ce0a3f7c0..70cc29166fbbf81110788a08c908b8ef13c64c7a 100644 (file)
@@ -537,9 +537,8 @@ public final class WindowTwoRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 22;
+    protected int getDataSize() {
+        return 18;
     }
 
     public short getSid()
index 6b005c7f4403f8fb509ced1ce351c7445771297b..5870a9ace4f816b501845dbcc6b8708f0df94d79 100644 (file)
@@ -133,8 +133,8 @@ public final class WriteAccessRecord extends Record {
                return 4 + DATA_SIZE;
        }
 
-       public int getRecordSize() {
-               return 4 + DATA_SIZE;
+       protected int getDataSize() {
+               return DATA_SIZE;
        }
 
        public short getSid() {
index eb27e0ec129dc3ec245c3bc60009e1183d582be5..797f872430563aa84ec14411ce9eb120e3139590 100644 (file)
@@ -56,9 +56,8 @@ public final class WriteProtectRecord extends Record {
         return getRecordSize();
     }
 
-    public int getRecordSize()
-    {
-        return 4;
+    protected int getDataSize() {
+        return 0;
     }
 
     public short getSid()
index 819940e12e1988150a30042a5ad9bb19ff464e5d..c4d1565970275b9e830c6b5af4a4a0348f9d4757 100644 (file)
@@ -210,6 +210,15 @@ public final class PageSettingsBlock extends RecordAggregate {
                        rv.visitRecord(r);
                }
        }
+       private static void visitIfPresent(PageBreakRecord r, RecordVisitor rv) {
+               if (r != null) {
+                       if (r.isEmpty()) {
+                               // its OK to not serialize empty page break records
+                               return;
+                       }
+                       rv.visitRecord(r);
+               }
+       }
 
        /**
         * creates the Header Record and sets it to nothing/0 length
index 4357c57e3b2e028afc1effec77422265411521ac..4b4dd0af7aa667e72e415587592c5cdf3be7073f 100644 (file)
@@ -30,7 +30,6 @@ import org.apache.poi.hssf.model.Sheet;
 import org.apache.poi.hssf.record.NameRecord;
 import org.apache.poi.hssf.record.Record;
 import org.apache.poi.hssf.record.RecordFormatException;
-import org.apache.poi.hssf.record.RecordInputStream;
 import org.apache.poi.hssf.record.formula.Area3DPtg;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.TempFile;
@@ -504,8 +503,8 @@ public final class TestHSSFWorkbook extends TestCase {
         public int serialize(int offset, byte[] data) {
             return 4;
         }
-        public int getRecordSize() {
-            return 8;
+        protected int getDataSize() {
+               return 4;
         }
     }
     
index e158aafc5f9e206af30ea7fb39f048897bca2a6e..5b845775fe612e59656dfb03a25904917fc777e9 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
 package org.apache.poi.hssf.util;
 
+import junit.framework.AssertionFailedError;
 import junit.framework.TestCase;
 
 /**
- * Tests the RKUtil class.
+ * Tests the {@link RKUtil} class.
  */
-public class TestRKUtil
-        extends TestCase
-{
-    public TestRKUtil(String s)
-    {
-        super(s);
-    }
-
-    /**
-     * Check we can decode correctly.
-     */
-    public void testDecode()
-            throws Exception
-    {
-        assertEquals(3.0, RKUtil.decodeNumber(1074266112), 0.0000001);
-        assertEquals(3.3, RKUtil.decodeNumber(1081384961), 0.0000001);
-        assertEquals(3.33, RKUtil.decodeNumber(1081397249), 0.0000001);
-    }
+public final class TestRKUtil extends TestCase {
+
+       /**
+        * Check we can decode correctly.
+        */
+       public void testDecode() {
+
+               int[] values = { 1074266112, 1081384961, 1081397249, 
+                               0x3FF00000, 0x405EC001, 0x02F1853A, 0x02F1853B, 0xFCDD699A,
+               };
+               double[] rvalues = { 3.0, 3.3, 3.33,
+                               1, 1.23, 12345678, 123456.78, -13149594, 
+               };
+
+               for (int j = 0; j < values.length; j++) {
+
+                       int intBits = values[j];
+                       double expectedValue = rvalues[j];
+                       double actualValue = RKUtil.decodeNumber(intBits);
+                       if (expectedValue != actualValue) {
+                               throw new AssertionFailedError("0x" + Integer.toHexString(intBits)
+                                               + " should decode to " + expectedValue + " but got " + actualValue);
+                       }
+               }
+       }
 }