]> source.dussan.org Git - poi.git/commitdiff
Sonar fixes - add cloneable interface to classes with clone()
authorAndreas Beeker <kiwiwings@apache.org>
Mon, 28 Sep 2015 23:16:58 +0000 (23:16 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Mon, 28 Sep 2015 23:16:58 +0000 (23:16 +0000)
Sonar fixes - remove pubic/static/final modifier from interfaces

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

111 files changed:
src/integrationtest/org/apache/poi/hssf/usermodel/RecordsStresser.java
src/java/org/apache/poi/ddf/EscherRecord.java
src/java/org/apache/poi/ddf/EscherTextboxRecord.java
src/java/org/apache/poi/ddf/UnknownEscherRecord.java
src/java/org/apache/poi/hssf/dev/BiffViewer.java
src/java/org/apache/poi/hssf/model/InternalSheet.java
src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java
src/java/org/apache/poi/hssf/record/ArrayRecord.java
src/java/org/apache/poi/hssf/record/AutoFilterInfoRecord.java
src/java/org/apache/poi/hssf/record/BOFRecord.java
src/java/org/apache/poi/hssf/record/BlankRecord.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/CFHeader12Record.java
src/java/org/apache/poi/hssf/record/CFHeaderBase.java
src/java/org/apache/poi/hssf/record/CFHeaderRecord.java
src/java/org/apache/poi/hssf/record/CFRule12Record.java
src/java/org/apache/poi/hssf/record/CFRuleBase.java
src/java/org/apache/poi/hssf/record/CFRuleRecord.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/ColumnInfoRecord.java
src/java/org/apache/poi/hssf/record/CommonObjectDataSubRecord.java
src/java/org/apache/poi/hssf/record/ContinueRecord.java
src/java/org/apache/poi/hssf/record/DBCellRecord.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/DefaultColWidthRecord.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/DrawingRecord.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/EmbeddedObjectRefSubRecord.java
src/java/org/apache/poi/hssf/record/EndSubRecord.java
src/java/org/apache/poi/hssf/record/FeatHdrRecord.java
src/java/org/apache/poi/hssf/record/FeatRecord.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/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/FtCblsSubRecord.java
src/java/org/apache/poi/hssf/record/FtCfSubRecord.java
src/java/org/apache/poi/hssf/record/FtPioGrbitSubRecord.java
src/java/org/apache/poi/hssf/record/GridsetRecord.java
src/java/org/apache/poi/hssf/record/GroupMarkerSubRecord.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/HeaderFooterRecord.java
src/java/org/apache/poi/hssf/record/HeaderRecord.java
src/java/org/apache/poi/hssf/record/HorizontalPageBreakRecord.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/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/LbsDataSubRecord.java
src/java/org/apache/poi/hssf/record/LeftMarginRecord.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/NoteRecord.java
src/java/org/apache/poi/hssf/record/NoteStructureSubRecord.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/ObjectProtectRecord.java
src/java/org/apache/poi/hssf/record/Record.java
src/java/org/apache/poi/hssf/record/aggregates/ColumnInfoRecordsAggregate.java
src/java/org/apache/poi/hssf/record/cf/BorderFormatting.java
src/java/org/apache/poi/hssf/record/cf/ColorGradientThreshold.java
src/java/org/apache/poi/hssf/record/cf/DataBarThreshold.java
src/java/org/apache/poi/hssf/record/cf/FontFormatting.java
src/java/org/apache/poi/hssf/record/cf/IconMultiStateThreshold.java
src/java/org/apache/poi/hssf/record/chart/AreaFormatRecord.java
src/java/org/apache/poi/hssf/record/chart/AreaRecord.java
src/java/org/apache/poi/hssf/record/chart/AxisLineFormatRecord.java
src/java/org/apache/poi/hssf/record/chart/AxisOptionsRecord.java
src/java/org/apache/poi/hssf/record/chart/AxisParentRecord.java
src/java/org/apache/poi/hssf/record/chart/AxisRecord.java
src/java/org/apache/poi/hssf/record/chart/AxisUsedRecord.java
src/java/org/apache/poi/hssf/record/chart/BarRecord.java
src/java/org/apache/poi/hssf/record/chart/BeginRecord.java
src/java/org/apache/poi/hssf/record/chart/CategorySeriesAxisRecord.java
src/java/org/apache/poi/hssf/record/chart/ChartEndBlockRecord.java
src/java/org/apache/poi/hssf/record/chart/ChartRecord.java
src/java/org/apache/poi/hssf/record/chart/ChartStartBlockRecord.java
src/java/org/apache/poi/hssf/record/chart/DatRecord.java
src/java/org/apache/poi/hssf/record/chart/DataFormatRecord.java
src/java/org/apache/poi/hssf/record/chart/DefaultDataLabelTextPropertiesRecord.java
src/java/org/apache/poi/hssf/record/chart/EndRecord.java
src/java/org/apache/poi/hssf/record/chart/FontBasisRecord.java
src/java/org/apache/poi/hssf/record/chart/FontIndexRecord.java
src/java/org/apache/poi/hssf/record/chart/FrameRecord.java
src/java/org/apache/poi/hssf/record/chart/LegendRecord.java
src/java/org/apache/poi/hssf/record/chart/LineFormatRecord.java
src/java/org/apache/poi/hssf/record/chart/LinkedDataRecord.java
src/java/org/apache/poi/hssf/record/chart/NumberFormatIndexRecord.java
src/java/org/apache/poi/hssf/record/chart/ObjectLinkRecord.java
src/java/org/apache/poi/hssf/record/common/ExtendedColor.java
src/java/org/apache/poi/hssf/record/common/FtrHeader.java
src/java/org/apache/poi/poifs/filesystem/BATManaged.java
src/java/org/apache/poi/poifs/storage/BlockList.java
src/java/org/apache/poi/poifs/storage/BlockWritable.java
src/java/org/apache/poi/sl/usermodel/Insets2D.java
src/java/org/apache/poi/ss/formula/ptg/AreaI.java
src/java/org/apache/poi/ss/usermodel/BorderFormatting.java
src/java/org/apache/poi/ss/usermodel/Cell.java
src/java/org/apache/poi/ss/usermodel/CellStyle.java
src/java/org/apache/poi/wp/usermodel/CharacterRun.java
src/scratchpad/src/org/apache/poi/hwpf/model/CharIndexTranslator.java

index acc8b97cd23af5928538e612ccc5cb7a440803e7..1b712f788eeda60bc299af66e81caa9dae9a5937 100644 (file)
@@ -56,6 +56,8 @@ public class RecordsStresser {
                 
                 assertArrayEquals("Record of type " + record.getClass() + " should return the same byte array via the clone() method, but did return a different array", 
                         origBytes, newBytes);
+            } catch (CloneNotSupportedException e) {
+                throw new RuntimeException(e);
             } catch (RuntimeException e) {
                 // some Records do not implement clone, ignore those for now
                 assertTrue(e.getMessage().contains("needs to define a clone method"));
@@ -70,6 +72,7 @@ public class RecordsStresser {
         try {
             HSSFWorkbook wb = new HSSFWorkbook(stream);
             handleWorkbook(wb);
+            wb.close();
         } finally {
             stream.close();
         }
index 2fa56d5b570b66db13de75fe72a2ed77636e1886..f09d925f3eba47340dd67e550f60be6864c748e1 100644 (file)
@@ -22,7 +22,11 @@ import java.io.PrintWriter;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.poi.util.*;
+import org.apache.poi.util.BitField;
+import org.apache.poi.util.BitFieldFactory;
+import org.apache.poi.util.HexDump;
+import org.apache.poi.util.Internal;
+import org.apache.poi.util.LittleEndian;
 
 /**
  * The base abstract record from which all escher records are defined.  Subclasses will need
@@ -223,9 +227,9 @@ public abstract class EscherRecord {
     /**
      * Escher records may need to be clonable in the future.
      */
-    public Object clone()
-    {
-        throw new RuntimeException( "The class " + getClass().getName() + " needs to define a clone method" );
+    @Override
+    public EscherRecord clone() throws CloneNotSupportedException {
+        throw new CloneNotSupportedException( "The class " + getClass().getName() + " needs to define a clone method" );
     }
 
     /**
index c21c22796801b5329c65acd31b2b7df4cb2fd8b0..75d5b2528ada924b740cb3d0c85f09a528b8ff18 100644 (file)
@@ -26,12 +26,8 @@ import org.apache.poi.util.RecordFormatException;
  *  text in the format of the parent application, rather than in
  *  Escher format. We don't attempt to understand the contents, since
  *  they will be in the parent's format, not Escher format.
- *
- * @author Glen Stampoultzis (glens at apache.org)
- * @author Nick Burch  (nick at torchbox dot com)
  */
-public class EscherTextboxRecord extends EscherRecord
-{
+public class EscherTextboxRecord extends EscherRecord implements Cloneable {
     public static final short RECORD_ID = (short)0xF00D;
     public static final String RECORD_DESCRIPTION = "msofbtClientTextbox";
 
@@ -102,10 +98,13 @@ public class EscherTextboxRecord extends EscherRecord
         return 8 + thedata.length;
     }
 
-    public Object clone()
-    {
-        // shallow clone
-        return super.clone();
+    @Override
+    public EscherTextboxRecord clone() {
+        EscherTextboxRecord etr = new EscherTextboxRecord();
+        etr.setOptions(this.getOptions());
+        etr.setRecordId(this.getRecordId());
+        etr.thedata = this.thedata.clone();
+        return etr;
     }
 
     public String getRecordName() {
index e60703ae3af8156833eb4f46c8e9e83f861145fc..11a5edb02ef2ad45d1466989910519fc98e45f88 100644 (file)
@@ -31,7 +31,7 @@ import org.apache.poi.util.LittleEndian;
  * @author Glen Stampoultzis (glens at apache.org)
  * @author Zhang Zhang (zhangzzh at gmail.com)
  */
-public final class UnknownEscherRecord extends EscherRecord {
+public final class UnknownEscherRecord extends EscherRecord implements Cloneable {
     private static final byte[] NO_BYTES = new byte[0];
 
     /** The data for this record not including the the 8 byte header */
@@ -113,9 +113,13 @@ public final class UnknownEscherRecord extends EscherRecord {
         _childRecords = childRecords;
     }
 
-    public Object clone() {
-        // shallow clone
-        return super.clone();
+    @Override
+    public UnknownEscherRecord clone() {
+        UnknownEscherRecord uer = new UnknownEscherRecord();
+        uer.thedata = this.thedata.clone();
+        uer.setOptions(this.getOptions());
+        uer.setRecordId(this.getRecordId());
+        return uer;
     }
 
     public String getRecordName() {
index 2f08b6bcc69a395b502b8175139e8779d4f24b31..2752169344193728f958bb1e67bed67695f87d5f 100644 (file)
@@ -487,7 +487,7 @@ public final class BiffViewer {
                }
        }
 
-       private static interface IBiffRecordListener {
+       private interface IBiffRecordListener {
 
                void processRecord(int globalOffset, int recordCounter, int sid, int dataSize, byte[] data);
 
index 7eb76c43b3f5c8be68f8ec91cf09c3541ef7206e..c6d0ae51c933c62e67a64e78a1bc86c7ad24375e 100644 (file)
@@ -390,7 +390,11 @@ public final class InternalSheet {
             _destList = destList;
         }
         public void visitRecord(Record r) {
-            _destList.add((Record)r.clone());
+            try {
+                _destList.add((Record)r.clone());
+            } catch (CloneNotSupportedException e) {
+                throw new RuntimeException(e);
+            }
         }
     }
 
@@ -415,8 +419,12 @@ public final class InternalSheet {
                  */
                 rb = new DrawingRecord();
             }
-            Record rec = (Record) ((Record) rb).clone();
-            clonedRecords.add(rec);
+            try {
+                Record rec = (Record) ((Record) rb).clone();
+                clonedRecords.add(rec);
+            } catch (CloneNotSupportedException e) {
+                throw new RuntimeException(e);
+            }
         }
         return createSheet(new RecordStream(clonedRecords, 0));
     }
index d3263834c7a79759d56bc290c61fa18bd80eefd1..e55d04188325cd11137b33512b5fb1ca3029cf73 100644 (file)
@@ -36,7 +36,7 @@ import org.apache.poi.hssf.util.LazilyConcatenatedByteArray;
  * @author Glen Stampoultzis (glens at apache.org)
  * @author Michael Zalewski (zalewski at optonline.net)
  */
-public abstract class AbstractEscherHolderRecord extends Record {
+public abstract class AbstractEscherHolderRecord extends Record implements Cloneable {
     private static boolean DESERIALISE;
     static {
     try {
@@ -148,9 +148,9 @@ public abstract class AbstractEscherHolderRecord extends Record {
 
     public abstract short getSid();
 
-    public Object clone()
-    {
-       return cloneViaReserialise();
+    @Override
+    public AbstractEscherHolderRecord clone() {
+       return (AbstractEscherHolderRecord)cloneViaReserialise();
     }
 
     public void addEscherRecord(int index, EscherRecord element)
index 919822858a72eae7a34c6df88b319877c824036a..abc183971e70848c1b0c8b87f1aa8e82ab7f1ad8 100644 (file)
@@ -30,7 +30,7 @@ import org.apache.poi.util.LittleEndianOutput;
  *
  * @author Josh Micich
  */
-public final class ArrayRecord extends SharedValueRecordBase {
+public final class ArrayRecord extends SharedValueRecordBase implements Cloneable {
 
        public final static short sid = 0x0221;
        private static final int OPT_ALWAYS_RECALCULATE = 0x0001;
@@ -96,7 +96,8 @@ public final class ArrayRecord extends SharedValueRecordBase {
                return sb.toString();
        }       
     
-    public Object clone() {
+       @Override
+    public ArrayRecord clone() {
         ArrayRecord rec = new ArrayRecord(_formula.copy(), getRange());
 
         // they both seem unused, but clone them nevertheless to have an exact copy
index 881cf3b01abe8ddef0db39fb5bbf3dcdc648ecab..e514dc21bec6dcad3d5c26df607cb4728f1715a8 100644 (file)
@@ -28,9 +28,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Yegor Kozlov
  */
 
-public final class AutoFilterInfoRecord
-    extends StandardRecord
-{
+public final class AutoFilterInfoRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x9D;
     /**
      * Number of AutoFilter drop-down arrows on the sheet
@@ -93,9 +91,9 @@ public final class AutoFilterInfoRecord
     }
 
     @Override
-    public Object clone()
+    public AutoFilterInfoRecord clone()
     {
-       return cloneViaReserialise();
+       return (AutoFilterInfoRecord)cloneViaReserialise();
     }
     
 }
\ No newline at end of file
index f6a36bf7f24b38cddeffa0f4774a97e654d11efd..aca680cf5e05c9941a1fe004d6bb9c2ff66e78d1 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Andrew C. Oliver
  * @author Jason Height (jheight at chariot dot net dot au)
  */
-public final class BOFRecord extends StandardRecord {
+public final class BOFRecord extends StandardRecord implements Cloneable {
     /**
      * for BIFF8 files the BOF is 0x809. For earlier versions see
      *  {@link #biff2_sid} {@link #biff3_sid} {@link #biff4_sid} 
@@ -268,7 +268,8 @@ public final class BOFRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public BOFRecord clone() {
       BOFRecord rec = new BOFRecord();
       rec.field_1_version = field_1_version;
       rec.field_2_type = field_2_type;
index 8c8a28d97a32a4e0e199027f3581c1e7ec0f7509..d465ad3b4096802d782784081ffd772c6b6cd5b5 100644 (file)
@@ -28,7 +28,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Jason Height (jheight at chariot dot net dot au)
  * @version 2.0-pre
  */
-public final class BlankRecord extends StandardRecord implements CellValueRecordInterface {
+public final class BlankRecord extends StandardRecord implements CellValueRecordInterface, Cloneable {
     public final static short sid = 0x0201;
     private int             field_1_row;
     private short             field_2_col;
@@ -137,7 +137,8 @@ public final class BlankRecord extends StandardRecord implements CellValueRecord
         return 6;
     }
 
-    public Object clone() {
+    @Override
+    public BlankRecord clone() {
       BlankRecord rec = new BlankRecord();
       rec.field_1_row = field_1_row;
       rec.field_2_col = field_2_col;
index 580dc782e434141f77b389f488c00de993b0ed6c..c3bc804ddf3d369c6fc3eca2e57697fb57d3fac5 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Michael P. Harhen
  * @author Jason Height (jheight at chariot dot net dot au)
  */
-public final class BoolErrRecord extends CellRecord {
+public final class BoolErrRecord extends CellRecord implements Cloneable {
        public final static short sid = 0x0205;
        private int _value;
        /**
@@ -169,7 +169,8 @@ public final class BoolErrRecord extends CellRecord {
                return sid;
        }
 
-       public Object clone() {
+       @Override
+       public BoolErrRecord clone() {
          BoolErrRecord rec = new BoolErrRecord();
          copyBaseFields(rec);
          rec._value = _value;
index 406c45a4643287bee9329fce2b13a0fbc2fb6b4b..a21f1ede0a275abe7b7454ef5bd6f8ee973e5ae3 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.*;
  * 
  * @author Shawn Laubach (slaubach at apache dot org)
  */
-public final class BottomMarginRecord extends StandardRecord implements Margin {
+public final class BottomMarginRecord extends StandardRecord implements Margin, Cloneable {
     public final static short sid = 0x29;
     private double field_1_margin;
 
@@ -80,8 +80,8 @@ public final class BottomMarginRecord extends StandardRecord implements Margin {
         this.field_1_margin = field_1_margin;
     }
 
-    public Object clone()
-    {
+    @Override
+    public BottomMarginRecord clone() {
         BottomMarginRecord rec = new BottomMarginRecord();
         rec.field_1_margin = this.field_1_margin;
         return rec;
index 89c4421de56a111223f7799cde92432fdc0cde38..241faf13951731683563787c73cea229c89ae0b5 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * Conditional Formatting Header v12 record CFHEADER12 (0x0879),
  *  for conditional formattings introduced in Excel 2007 and newer.
  */
-public final class CFHeader12Record extends CFHeaderBase implements FutureRecord {
+public final class CFHeader12Record extends CFHeaderBase implements FutureRecord, Cloneable {
     public static final short sid = 0x0879;
 
     private FtrHeader futureHeader;
@@ -79,7 +79,8 @@ public final class CFHeader12Record extends CFHeaderBase implements FutureRecord
         return futureHeader.getAssociatedRange();
     }
     
-    public Object clone() {
+    @Override
+    public CFHeader12Record clone() {
         CFHeader12Record result = new CFHeader12Record();
         result.futureHeader = (FtrHeader)futureHeader.clone();
         super.copyTo(result);
index 4e40a346131ee19fb4a637a180a9e74b7e4e2df4..0b8182d5568a40a0ea22795aa302d89fd9642e08 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * Parent of Conditional Formatting Header records,
  *  {@link CFHeaderRecord} and {@link CFHeader12Record}.
  */
-public abstract class CFHeaderBase extends StandardRecord {
+public abstract class CFHeaderBase extends StandardRecord implements Cloneable {
     private int field_1_numcf;
     private int field_2_need_recalculation_and_id;
     private CellRangeAddress field_3_enclosing_cell_range;
@@ -150,4 +150,7 @@ public abstract class CFHeaderBase extends StandardRecord {
         result.field_3_enclosing_cell_range = field_3_enclosing_cell_range.copy();
         result.field_4_cell_ranges = field_4_cell_ranges.copy();
     }
+
+    @Override
+    public abstract CFHeaderBase clone();
 }
index a456224a7091f682bf7c229cf743faba233689ea..c3c6851fe69402dcb3905145f3812799b1271f68 100644 (file)
@@ -24,7 +24,7 @@ import org.apache.poi.ss.util.CellRangeAddress;
  * Used to describe a {@link CFRuleRecord}.
  * @see CFHeader12Record
  */
-public final class CFHeaderRecord extends CFHeaderBase {
+public final class CFHeaderRecord extends CFHeaderBase implements Cloneable {
     public static final short sid = 0x01B0;
 
     /** Creates new CFHeaderRecord */
@@ -47,7 +47,8 @@ public final class CFHeaderRecord extends CFHeaderBase {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public CFHeaderRecord clone() {
         CFHeaderRecord result = new CFHeaderRecord();
         super.copyTo(result);
         return result;
index 0f29305c5c28f69aae6fa1b62fbfc6f54d27f413..2aa5bd1a93ca2148e005e5a5e33830925d677609 100644 (file)
@@ -49,7 +49,7 @@ import org.apache.poi.util.POILogger;
  *  {@link #CONDITION_TYPE_CELL_VALUE_IS} or {@link #CONDITION_TYPE_FORMULA},
  *  this is only used for the other types
  */
-public final class CFRule12Record extends CFRuleBase implements FutureRecord {
+public final class CFRule12Record extends CFRuleBase implements FutureRecord, Cloneable {
     public static final short sid = 0x087A;
 
     private FtrHeader futureHeader;
@@ -409,7 +409,8 @@ public final class CFRule12Record extends CFRuleBase implements FutureRecord {
         return buffer.toString();
     }
 
-    public Object clone() {
+    @Override
+    public CFRule12Record clone() {
         CFRule12Record rec = new CFRule12Record(getConditionType(), getComparisonOperation());
         rec.futureHeader.setAssociatedRange(futureHeader.getAssociatedRange().copy());
         
index 7dfcc376fd12004401d654197da82e53157dd8bf..a7bfb825c5997e74a523b93c4ccbbbcb93ed3d44 100644 (file)
@@ -39,7 +39,7 @@ import org.apache.poi.util.POILogger;
  *  new-style (Excel 2007+) also make use of {@link CFRule12Record}
  *  and {@link CFExRuleRecord} for their rules.
  */
-public abstract class CFRuleBase extends StandardRecord {
+public abstract class CFRuleBase extends StandardRecord implements Cloneable {
     public static final class ComparisonOperator {
         public static final byte NO_COMPARISON = 0;
         public static final byte BETWEEN       = 1;
@@ -452,4 +452,7 @@ public abstract class CFRuleBase extends StandardRecord {
         rec.setFormula1(getFormula1().copy());
         rec.setFormula2(getFormula2().copy());
     }
+    
+    @Override
+    public abstract CFRuleBase clone();
 }
index 52678c0fda930e6cd8ca41aec936bb4539e77eef..697030b9764e1bd1f203d3d85ba945b5a9ec3174 100644 (file)
@@ -31,7 +31,7 @@ import org.apache.poi.util.LittleEndianOutput;
  *  new-style (Excel 2007+) also make use of {@link CFRule12Record}
  *  and {@link CFExRuleRecord} for their rules.
  */
-public final class CFRuleRecord extends CFRuleBase {
+public final class CFRuleRecord extends CFRuleBase implements Cloneable {
     public static final short sid = 0x01B1;
 
     /** Creates new CFRuleRecord */
@@ -139,7 +139,8 @@ public final class CFRuleRecord extends CFRuleBase {
         return buffer.toString();
     }
 
-    public Object clone() {
+    @Override
+    public CFRuleRecord clone() {
         CFRuleRecord rec = new CFRuleRecord(getConditionType(), getComparisonOperation());
         super.copyTo(rec);
         return rec;
index f8b4534bc0933c5ce81333c509ba696a769bcaac..f416def2f869901b6e11e17c5ef450b9351d9725 100644 (file)
@@ -33,9 +33,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @see org.apache.poi.hssf.record.CalcModeRecord
  */
 
-public final class CalcCountRecord
-    extends StandardRecord
-{
+public final class CalcCountRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0xC;
     private short             field_1_iterations;
 
@@ -92,7 +90,8 @@ public final class CalcCountRecord
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public CalcCountRecord clone() {
       CalcCountRecord rec = new CalcCountRecord();
       rec.field_1_iterations = field_1_iterations;
       return rec;
index 538856d57c9e99a16d314797e4e15512fcdb1309..9f74ecf714e3dd7adf4506796e06af4f4cef3e7c 100644 (file)
@@ -33,9 +33,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @see org.apache.poi.hssf.record.CalcCountRecord
  */
 
-public final class CalcModeRecord
-    extends StandardRecord
-{
+public final class CalcModeRecord extends StandardRecord implements Cloneable {
     public final static short sid                     = 0xD;
 
     /**
@@ -120,7 +118,8 @@ public final class CalcModeRecord
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public CalcModeRecord clone() {
       CalcModeRecord rec = new CalcModeRecord();
       rec.field_1_calcmode = field_1_calcmode;
       return rec;
index 4982ef92b3c64264b07bb2b60b317f88c79c6e17..bf27b37a2139efec79e37247491cd1c37f99007f 100644 (file)
@@ -28,7 +28,7 @@ import org.apache.poi.util.BitFieldFactory;
  * REFERENCE:  PG 293 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<p/>
  * @author Andrew C. Oliver (acoliver at apache dot org)
  */
-public final class ColumnInfoRecord extends StandardRecord {
+public final class ColumnInfoRecord extends StandardRecord implements Cloneable {
     public static final short sid = 0x007D;
 
     private int _firstCol;
@@ -244,7 +244,8 @@ public final class ColumnInfoRecord extends StandardRecord {
         return sb.toString();
     }
 
-    public Object clone() {
+    @Override
+    public ColumnInfoRecord clone() {
         ColumnInfoRecord rec = new ColumnInfoRecord();
         rec._firstCol = _firstCol;
         rec._lastCol = _lastCol;
index 3cd2f282c14a82c9b8b927cad5e8e10ab7997732..30509f3a301a770ff2c2e7af9b6f920b6759957f 100644 (file)
@@ -28,7 +28,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class CommonObjectDataSubRecord extends SubRecord {
+public final class CommonObjectDataSubRecord extends SubRecord implements Cloneable {
     public final static short sid = 0x0015;
 
     private static final BitField locked    = BitFieldFactory.getInstance(0x0001);
@@ -153,7 +153,8 @@ public final class CommonObjectDataSubRecord extends SubRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public CommonObjectDataSubRecord clone() {
         CommonObjectDataSubRecord rec = new CommonObjectDataSubRecord();
     
         rec.field_1_objectType = field_1_objectType;
index d43df86c64a1d251a66107cb01b5e2556883147b..17a0c5165363c7eaa7f10f985dd7998c26084ecf 100644 (file)
@@ -28,7 +28,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Csaba Nagy (ncsaba at yahoo dot com)
  */
-public final class ContinueRecord extends StandardRecord {
+public final class ContinueRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x003C;
     private byte[] _data;
 
@@ -69,7 +69,8 @@ public final class ContinueRecord extends StandardRecord {
         _data = in.readRemainder();
     }
 
-    public Object clone() {
+    @Override
+    public ContinueRecord clone() {
         return new ContinueRecord(_data);
     }
 }
index b9b9d44c894f95d8a3c905ae0290cb57551af403..e91c30a0e1772b6dd7177de5c38a2b80d6ac7c20 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Jason Height
  */
-public final class DBCellRecord extends StandardRecord {
+public final class DBCellRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x00D7;
     public final static int BLOCK_SIZE = 32;
     
@@ -116,7 +116,8 @@ public final class DBCellRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public DBCellRecord clone() {
         // safe because immutable
         return this;
     }
index a9559fa6a1b1f83f3f8dd9a83c38035d6ad14efc..be8baa651e5aa4513bc03aad5761ae6020c0ae2f 100644 (file)
@@ -25,7 +25,7 @@ import org.apache.poi.util.LittleEndianOutput;
  *               This record is the list header of all data validation records (0x01BE) in the current sheet.
  * @author Dragos Buleandra (dragos.buleandra@trade2b.ro)
  */
-public final class DVALRecord extends StandardRecord {
+public final class DVALRecord extends StandardRecord implements Cloneable {
        public final static short sid = 0x01B2;
 
        /** Options of the DVAL */
@@ -159,7 +159,8 @@ public final class DVALRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public DVALRecord clone() {
       DVALRecord rec = new DVALRecord();
       rec.field_1_options = field_1_options;
       rec.field_2_horiz_pos = field_2_horiz_pos;
index 980e4eeb7f82848de8fbf38fb8af30e8253d8ef5..8f6408d1fd67e73732f1e8bb4e2b472a60c7b720 100644 (file)
@@ -36,7 +36,7 @@ import org.apache.poi.util.StringUtil;
  * @author Dragos Buleandra (dragos.buleandra@trade2b.ro)
  * @author Josh Micich
  */
-public final class DVRecord extends StandardRecord {
+public final class DVRecord extends StandardRecord implements Cloneable {
        public final static short sid = 0x01BE;
        
        /** the unicode string used for error/prompt title/text when not present */
@@ -345,7 +345,8 @@ public final class DVRecord extends StandardRecord {
         * Clones the object. Uses serialisation, as the
         *  contents are somewhat complex
         */
-       public Object clone() {
-               return cloneViaReserialise();
+       @Override
+       public DVRecord clone() {
+               return (DVRecord)cloneViaReserialise();
        }
 }
index 6e3160ff6205d848ec09d9afe286b873ce8568e1..c2f37b8c4d09c99717ea839a0e9b65a78cba9014 100644 (file)
@@ -28,7 +28,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Jason Height (jheight at chariot dot net dot au)
  * @version 2.0-pre
  */
-public final class DefaultColWidthRecord extends StandardRecord {
+public final class DefaultColWidthRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x0055;
     private int             field_1_col_width;
 
@@ -91,7 +91,8 @@ public final class DefaultColWidthRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public DefaultColWidthRecord clone() {
       DefaultColWidthRecord rec = new DefaultColWidthRecord();
       rec.field_1_col_width = field_1_col_width;
       return rec;
index 0d015e09ab60ba551f3bbbf842f03cfeb8264df2..850e895c96677bf4954b23126ff659e4bb2a3359 100644 (file)
@@ -31,9 +31,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @version 2.0-pre
  */
 
-public final class DefaultRowHeightRecord
-    extends StandardRecord
-{
+public final class DefaultRowHeightRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x225;
     private short             field_1_option_flags;
     private short             field_2_row_height;
@@ -122,7 +120,8 @@ public final class DefaultRowHeightRecord
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public DefaultRowHeightRecord clone() {
       DefaultRowHeightRecord rec = new DefaultRowHeightRecord();
       rec.field_1_option_flags = field_1_option_flags;
       rec.field_2_row_height = field_2_row_height;
index c6d4577cf14b9c8cfab8c69c89e7275ed911c645..03058c14abf4d1a5cf6c6b112eca42b606bcd609 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Jason Height (jheight at chariot dot net dot au)
  */
-public final class DeltaRecord extends StandardRecord {
+public final class DeltaRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x0010;
     public final static double DEFAULT_VALUE = 0.0010;   // should be .001
 
@@ -71,7 +71,8 @@ public final class DeltaRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public DeltaRecord clone() {
         // immutable
         return this;
     }
index fb4f51d17817ea4a7ed4ecd93691923b78861866..e326b5cb6f71fc26261cf7e4ad6f3346fefb1e8b 100644 (file)
@@ -31,9 +31,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @version 2.0-pre
  */
 
-public final class DimensionsRecord
-    extends StandardRecord
-{
+public final class DimensionsRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x200;
     private int               field_1_first_row;
     private int               field_2_last_row;   // plus 1
@@ -170,7 +168,8 @@ public final class DimensionsRecord
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public DimensionsRecord clone() {
       DimensionsRecord rec = new DimensionsRecord();
       rec.field_1_first_row = field_1_first_row;
       rec.field_2_last_row = field_2_last_row;
index fac9e715bbc6b063fdb7c3d272531fb6ea96b0d3..3a64e23a352ce6fc7ab76edb7d9718ce26b4562c 100644 (file)
@@ -21,7 +21,7 @@ import org.apache.poi.util.LittleEndianOutput;
 /**
  * DrawingRecord (0x00EC)<p/>
  */
-public final class DrawingRecord extends StandardRecord {
+public final class DrawingRecord extends StandardRecord implements Cloneable {
     public static final short sid = 0x00EC;
 
     private static final byte[] EMPTY_BYTE_ARRAY = {};
@@ -75,7 +75,8 @@ public final class DrawingRecord extends StandardRecord {
      * Cloning of drawing records must be executed through HSSFPatriarch, because all id's must be changed
      * @return cloned drawing records
      */
-    public Object clone() {
+    @Override
+    public DrawingRecord clone() {
         DrawingRecord rec = new DrawingRecord();
         rec.recordData = recordData.clone();
         if (contd != null) {
index 4c57395dcdf40111234fc620e360d75b193416b8..1a1f028abb152644e68abab33d44713594f4ccee 100644 (file)
@@ -28,7 +28,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Josh Micich
  */
-public final class DrawingSelectionRecord extends StandardRecord {
+public final class DrawingSelectionRecord extends StandardRecord implements Cloneable {
        public static final short sid = 0x00ED;
 
        /**
@@ -110,7 +110,8 @@ public final class DrawingSelectionRecord extends StandardRecord {
                }
        }
 
-       public Object clone() {
+       @Override
+       public DrawingSelectionRecord clone() {
                // currently immutable
                return this;
        }
index 627f74387e40c92b8cf7bc091de7ad66e78470f0..02d734a99fec3d10de1e62f575f8d23710d6e4d7 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Jason Height (jheight at chariot dot net dot au)
  * @version 2.0-pre
  */
-public final class EOFRecord extends StandardRecord {
+public final class EOFRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x0A;
        public static final int ENCODED_SIZE = 4;
 
@@ -67,7 +67,8 @@ public final class EOFRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public EOFRecord clone() {
       return instance;
     }
 }
index 88fb10005cd39b8e9999e951418eb75458e99d54..14eee1c43922a3bda057fa83ed3e722070ff5098 100644 (file)
@@ -40,7 +40,7 @@ import org.apache.poi.util.StringUtil;
  *
  * @author Daniel Noll
  */
-public final class EmbeddedObjectRefSubRecord extends SubRecord {
+public final class EmbeddedObjectRefSubRecord extends SubRecord implements Cloneable {
        private static POILogger logger = POILogFactory.getLogger(EmbeddedObjectRefSubRecord.class);
        public static final short sid = 0x0009;
 
@@ -305,7 +305,8 @@ public final class EmbeddedObjectRefSubRecord extends SubRecord {
                return field_6_unknown;
        }
 
-       public Object clone() {
+       @Override
+       public EmbeddedObjectRefSubRecord clone() {
                return this; // TODO proper clone
        }
 
index e31692b021a21ec737ead7464a560b19c4164532..482a9825e2c67e8cc3b5bf5909fd0348b70327ed 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class EndSubRecord extends SubRecord {
+public final class EndSubRecord extends SubRecord implements Cloneable {
     public final static short sid = 0x0000; // Note - zero sid is somewhat unusual (compared to plain Records)
     private static final int ENCODED_SIZE = 0;
 
@@ -75,7 +75,8 @@ public final class EndSubRecord extends SubRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public EndSubRecord clone() {
         EndSubRecord rec = new EndSubRecord();
     
         return rec;
index 5382bef34b277dbfb5a2ef6f4701e25655c552a1..d12bc8b129a561195288a34b70193efb99f8b596 100644 (file)
@@ -28,7 +28,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * The collection of data (Globals Substream ABNF, macro sheet substream 
  *  ABNF or worksheet substream ABNF) specifies Shared Feature data.
  */
-public final class FeatHdrRecord extends StandardRecord  {
+public final class FeatHdrRecord extends StandardRecord implements Cloneable  {
        /**
         * Specifies the enhanced protection type. Used to protect a 
         * shared workbook by restricting access to some areas of it 
@@ -106,9 +106,10 @@ public final class FeatHdrRecord extends StandardRecord  {
                return 12 + 2+1+4+rgbHdrData.length;
        }
     
-    //HACK: do a "cheat" clone, see Record.java for more information
-    public Object clone() {
-        return cloneViaReserialise();
+       @Override
+    public FeatHdrRecord clone() {
+           //HACK: do a "cheat" clone, see Record.java for more information
+        return (FeatHdrRecord)cloneViaReserialise();
     }
 
     
index fd583a3d780b0f07ae8fdd6ce002d35cd935e521..404fc24c5539269a6ab5ee7e05dc6e6b300bbc66 100644 (file)
@@ -33,7 +33,7 @@ import org.apache.poi.util.POILogger;
  * This record specifies Shared Features data. It is normally paired
  *  up with a {@link FeatHdrRecord}.
  */
-public final class FeatRecord extends StandardRecord  {
+public final class FeatRecord extends StandardRecord implements Cloneable  {
     private static POILogger logger = POILogFactory.getLogger(FeatRecord.class);
     public final static short sid = 0x0868;
     // SIDs from newer versions
@@ -175,9 +175,10 @@ public final class FeatRecord extends StandardRecord  {
        }
 
     
-    //HACK: do a "cheat" clone, see Record.java for more information
-    public Object clone() {
-        return cloneViaReserialise();
+       @Override
+       public FeatRecord clone() {
+        //HACK: do a "cheat" clone, see Record.java for more information
+        return (FeatRecord)cloneViaReserialise();
     }
 
     
index 59d144f8cea9659b46b6f9aeba565f68ed2950d3..4793f13055bcdef253b320b2f6f15f0e99e8fb15 100644 (file)
@@ -28,17 +28,20 @@ import org.apache.poi.util.LittleEndianOutput;
  *
  * @author Jason Height (jheight at chariot dot net dot au)
  */
-public final class FilePassRecord extends StandardRecord {
-       public final static short sid = 0x002F;
+public final class FilePassRecord extends StandardRecord implements Cloneable {
+       public static final short sid = 0x002F;
+    private static final int ENCRYPTION_XOR = 0;
+    private static final int ENCRYPTION_OTHER = 1;
        
        private int _encryptionType;
        private KeyData _keyData;
 
-       private static interface KeyData {
+       private static interface KeyData extends Cloneable {
            void read(RecordInputStream in);
            void serialize(LittleEndianOutput out);
            int getDataSize();
            void appendToString(StringBuffer buffer);
+           KeyData clone();
        } 
        
        public static class Rc4KeyData implements KeyData {
@@ -119,6 +122,17 @@ public final class FilePassRecord extends StandardRecord {
             buffer.append("    .rc4.verifier = ").append(HexDump.toHex(_encryptedVerifier)).append("\n");
             buffer.append("    .rc4.verifierHash = ").append(HexDump.toHex(_encryptedVerifierHash)).append("\n");
         }
+        
+        @Override
+        public Rc4KeyData clone() {
+            Rc4KeyData other = new Rc4KeyData();
+            other._salt = this._salt.clone();
+            other._encryptedVerifier = this._encryptedVerifier.clone();
+            other._encryptedVerifierHash = this._encryptedVerifierHash.clone();
+            other._encryptionInfo = this._encryptionInfo;
+            other._minorVersionNo = this._minorVersionNo;
+            return other;
+        }
        }
 
        public static class XorKeyData implements KeyData {
@@ -170,12 +184,22 @@ public final class FilePassRecord extends StandardRecord {
             buffer.append("    .xor.key = ").append(HexDump.intToHex(_key)).append("\n");
             buffer.append("    .xor.verifier  = ").append(HexDump.intToHex(_verifier)).append("\n");
         }
+        
+        @Override
+        public XorKeyData clone() {
+            XorKeyData other = new XorKeyData();
+            other._key = this._key;
+            other._verifier = this._verifier;
+            return other;
+        }
        }
        
        
-       private static final int ENCRYPTION_XOR = 0;
-       private static final int ENCRYPTION_OTHER = 1;
-
+       private FilePassRecord(FilePassRecord other) {
+           _encryptionType = other._encryptionType;
+           _keyData = other._keyData.clone();
+       }
+       
        public FilePassRecord(RecordInputStream in) {
                _encryptionType = in.readUShort();
 
@@ -282,9 +306,9 @@ public final class FilePassRecord extends StandardRecord {
                return sid;
        }
        
-    public Object clone() {
-               // currently immutable
-               return this;
+       @Override
+       public FilePassRecord clone() {
+               return new FilePassRecord(this);
        }
 
        public String toString() {
index a82b4b65bfd55f904b83854b62f84f87aee629cb..1834e0c83d72e1dad3345463e7fe6246ca4f5c68 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.StringUtil;
  * REFERENCE:  PG 314 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<p/>
  * @author Andrew C. Oliver (acoliver at apache dot org)
  */
-public final class FileSharingRecord extends StandardRecord {
+public final class FileSharingRecord extends StandardRecord implements Cloneable {
 
     public final static short sid = 0x005B;
     private short             field_1_readonly;
@@ -137,10 +137,8 @@ public final class FileSharingRecord extends StandardRecord {
         return sid;
     }
 
-    /**
-     * Clone this record.
-     */
-    public Object clone() {
+    @Override
+    public FileSharingRecord clone() {
       FileSharingRecord clone = new FileSharingRecord();
       clone.setReadOnly(field_1_readonly);
       clone.setPassword(field_2_password);
index 823372fc68058fcd4b312c8b3fee5cc8de2666bc..5031f54cb1cf6cff2114b7485809e275de72a00a 100644 (file)
@@ -26,7 +26,7 @@ package org.apache.poi.hssf.record;
  * @author Jason Height (jheight at chariot dot net dot au)
  *
  */
-public final class FooterRecord extends HeaderFooterBase {
+public final class FooterRecord extends HeaderFooterBase implements Cloneable {
        public final static short sid = 0x0015;
 
        public FooterRecord(String text) {
@@ -50,7 +50,8 @@ public final class FooterRecord extends HeaderFooterBase {
                return sid;
        }
 
-       public Object clone() {
+       @Override
+       public FooterRecord clone() {
                return new FooterRecord(getText());
        }
 }
index f587d57c91cfb10338aa0c3f8767f9800ad6a44f..1508bb6fc0c627cadae0f23d235ec3e238cc8b1b 100644 (file)
@@ -29,13 +29,19 @@ import org.apache.poi.util.StringUtil;
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Shawn M. Laubach (slaubach at apache dot org)
  */
-public final class FormatRecord extends StandardRecord {
+public final class FormatRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x041E;
 
     private final int field_1_index_code;
     private final boolean field_3_hasMultibyte;
     private final String field_4_formatstring;
 
+    private FormatRecord(FormatRecord other) {
+        field_1_index_code = other.field_1_index_code;
+        field_3_hasMultibyte = other.field_3_hasMultibyte;
+        field_4_formatstring = other.field_4_formatstring;
+    }
+    
     public FormatRecord(int indexCode, String fs) {
         field_1_index_code = indexCode;
         field_4_formatstring = fs;
@@ -104,9 +110,9 @@ public final class FormatRecord extends StandardRecord {
     public short getSid() {
         return sid;
     }
+    
     @Override
-    public Object clone() {
-        // immutable
-        return this;
+    public FormatRecord clone() {
+        return new FormatRecord(this);
     }
 }
index f6c2740cca4ff142f24b1ae044349ae0394b4e70..91605873ec42d2349dbe62947b2229ab1fcf61f2 100644 (file)
@@ -33,7 +33,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Jason Height (jheight at chariot dot net dot au)
  */
-public final class FormulaRecord extends CellRecord {
+public final class FormulaRecord extends CellRecord implements Cloneable {
 
        public static final short sid = 0x0006;   // docs say 406...because of a bug Microsoft support site article #Q184647)
        private static int FIXED_SIZE = 14; // double + short + int
@@ -375,7 +375,7 @@ public final class FormulaRecord extends CellRecord {
        }
 
        @Override
-    public Object clone() {
+    public FormulaRecord clone() {
                FormulaRecord rec = new FormulaRecord();
                copyBaseFields(rec);
                rec.field_4_value = field_4_value;
index 517add94b5b0f423dd394b30166f5565a76a0391..14c0ddd157b7d50ccda874bc9bfed11c1e40fdb7 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  *
  * @author Yegor Kozlov
  */
-public final class FtCblsSubRecord extends SubRecord {
+public final class FtCblsSubRecord extends SubRecord implements Cloneable {
     public final static short sid = 0x0C;
     private static final int ENCODED_SIZE = 20;
 
@@ -90,7 +90,8 @@ public final class FtCblsSubRecord extends SubRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public FtCblsSubRecord clone() {
         FtCblsSubRecord rec = new FtCblsSubRecord();
         byte[] recdata = new byte[reserved.length];
         System.arraycopy(reserved, 0, recdata, 0, recdata.length);
index 1c85e9550fe019e3790e06bd140c67fb87cdcacb..08a6612835d34420c6766b5849ec8fd825a7cce6 100644 (file)
@@ -25,7 +25,7 @@ import org.apache.poi.util.LittleEndianOutput;
 /**
  * The FtCf structure specifies the clipboard format of the picture-type Obj record containing this FtCf.
  */
-public final class FtCfSubRecord extends SubRecord {
+public final class FtCfSubRecord extends SubRecord implements Cloneable {
     public final static short sid = 0x07;
     public final static short length = 0x02;
     
@@ -97,7 +97,8 @@ public final class FtCfSubRecord extends SubRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public FtCfSubRecord clone() {
         FtCfSubRecord rec = new FtCfSubRecord();
         rec.flags = this.flags;
         return rec;
index 068d17a24adbfa572b09dd97fa99226a4eeed1a7..bd5db8ebef32cd4113ad4d2f37d2966d88bff1d6 100644 (file)
@@ -25,7 +25,7 @@ import org.apache.poi.util.LittleEndianOutput;
 /**
  * This structure appears as part of an Obj record that represents image display properties.
  */
-public final class FtPioGrbitSubRecord extends SubRecord {
+public final class FtPioGrbitSubRecord extends SubRecord implements Cloneable {
     public final static short sid = 0x08;
     public final static short length = 0x02;
     
@@ -151,7 +151,8 @@ public final class FtPioGrbitSubRecord extends SubRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public FtPioGrbitSubRecord clone() {
         FtPioGrbitSubRecord rec = new FtPioGrbitSubRecord();
         rec.flags = this.flags;
         return rec;
index ae2a71ccd5218a74959b5d11775762971aa5a015..14f04ab2ab66cf81579698314c7e19a4576694cc 100644 (file)
@@ -34,9 +34,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @version 2.0-pre
  */
 
-public final class GridsetRecord
-    extends StandardRecord
-{
+public final class GridsetRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x82;
     public short              field_1_gridset_flag;
 
@@ -102,7 +100,8 @@ public final class GridsetRecord
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public GridsetRecord clone() {
       GridsetRecord rec = new GridsetRecord();
       rec.field_1_gridset_flag = field_1_gridset_flag;
       return rec;
index 07bc89b3cccf6da85f21357947cb2e90fc083364..b59f9d1d85c18276b9a7390195950e3a5e8a9ef8 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class GroupMarkerSubRecord extends SubRecord {
+public final class GroupMarkerSubRecord extends SubRecord implements Cloneable {
     public final static short sid = 0x0006;
 
     private static final byte[] EMPTY_BYTE_ARRAY = { };
@@ -70,7 +70,8 @@ public final class GroupMarkerSubRecord extends SubRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public GroupMarkerSubRecord clone() {
         GroupMarkerSubRecord rec = new GroupMarkerSubRecord();
         rec.reserved = new byte[reserved.length];
         for ( int i = 0; i < reserved.length; i++ )
index 2a41902da60b61489046d60e31a89fe577124d60..97cc0f7c7ac66350171ec311300dd6ccebd0459e 100644 (file)
@@ -30,9 +30,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @version 2.0-pre
  */
 
-public final class GutsRecord
-    extends StandardRecord
-{
+public final class GutsRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x80;
     private short             field_1_left_row_gutter;   // size of the row gutter to the left of the rows
     private short             field_2_top_col_gutter;    // size of the column gutter above the columns
@@ -172,7 +170,8 @@ public final class GutsRecord
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public GutsRecord clone() {
       GutsRecord rec = new GutsRecord();
       rec.field_1_left_row_gutter = field_1_left_row_gutter;
       rec.field_2_top_col_gutter = field_2_top_col_gutter;
index 1c1a4201f2005fb019f26fa4d712805aff0bf96d..604ddeae28a390ff0021aad1d3af7c59f57655c9 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Jason Height (jheight at chariot dot net dot au)
  * @version 2.0-pre
  */
-public final class HCenterRecord extends StandardRecord {
+public final class HCenterRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x0083;
     private short             field_1_hcenter;
 
@@ -91,7 +91,8 @@ public final class HCenterRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public HCenterRecord clone() {
       HCenterRecord rec = new HCenterRecord();
       rec.field_1_hcenter = field_1_hcenter;
       return rec;
index c61725c5fdff832c4011049dc2271189232be3be..af4a385987391330616bdb49c001932b4679be7f 100644 (file)
@@ -28,7 +28,7 @@ import java.util.Locale;
  *
  * @author Yegor Kozlov
  */
-public final class HeaderFooterRecord extends StandardRecord {
+public final class HeaderFooterRecord extends StandardRecord implements Cloneable {
 
     private static final byte[] BLANK_GUID = new byte[16];
 
@@ -95,9 +95,10 @@ public final class HeaderFooterRecord extends StandardRecord {
         return sb.toString();
     }
 
-    //HACK: do a "cheat" clone, see Record.java for more information
-    public Object clone() {
-                return cloneViaReserialise();
+    @Override
+    public HeaderFooterRecord clone() {
+        //HACK: do a "cheat" clone, see Record.java for more information
+        return (HeaderFooterRecord)cloneViaReserialise();
     }
     
  
index 23adedc5a8e859c0cc3121b9dca8fb57bc0fbf3e..ec6733c235ed61c9e7240dd54404b9dbc1586aae 100644 (file)
@@ -25,7 +25,7 @@ package org.apache.poi.hssf.record;
  * @author Shawn Laubach (slaubach at apache dot org) Modified 3/14/02
  * @author Jason Height (jheight at chariot dot net dot au)
  */
-public final class HeaderRecord extends HeaderFooterBase {
+public final class HeaderRecord extends HeaderFooterBase implements Cloneable {
        public final static short sid = 0x0014;
 
        public HeaderRecord(String text) {
@@ -49,7 +49,8 @@ public final class HeaderRecord extends HeaderFooterBase {
                return sid;
        }
 
-       public Object clone() {
+       @Override
+       public HeaderRecord clone() {
                return new HeaderRecord(getText());
        }
 }
index 8077efe922d2cbbbf48ed970a991aa61601448e6..7e18f465001490b166cb45bfd365e7737fef6580 100644 (file)
@@ -25,7 +25,7 @@ import java.util.Iterator;
  * @see PageBreakRecord
  * @author Danny Mui (dmui at apache dot org)
  */
-public final class HorizontalPageBreakRecord extends PageBreakRecord {
+public final class HorizontalPageBreakRecord extends PageBreakRecord implements Cloneable {
 
        public static final short sid = 0x001B;
 
@@ -48,7 +48,8 @@ public final class HorizontalPageBreakRecord extends PageBreakRecord {
                return sid;
        }
 
-       public Object clone() {
+       @Override
+       public PageBreakRecord clone() {
                PageBreakRecord result = new HorizontalPageBreakRecord();
                Iterator<Break> iterator = getBreaksIterator();
                while (iterator.hasNext()) {
index 471c1752a7f370aab2bc0f9f40d22106c0693657..1d7eb20826cf4c3e9ecd68332b68b69c3e640624 100644 (file)
@@ -36,7 +36,7 @@ import org.apache.poi.util.StringUtil;
  *  from the Excel-97 format.
  * Supports only external links for now (eg http://)
  */
-public final class HyperlinkRecord extends StandardRecord {
+public final class HyperlinkRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x01B8;
     private static POILogger logger = POILogFactory.getLogger(HyperlinkRecord.class);
 
@@ -743,7 +743,8 @@ public final class HyperlinkRecord extends StandardRecord {
         setTextMark("");
     }
 
-    public Object clone() {
+    @Override
+    public HyperlinkRecord clone() {
         HyperlinkRecord rec = new HyperlinkRecord();
         rec._range = _range.copy();
         rec._guid = _guid;
index 63727bb946a7a6d438c1a25a9b110d427a7d2198..6e9558db2dac22ed4f1e6a61de31f558fef8245d 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Jason Height (jheight at chariot dot net dot au)
  */
-public class IndexRecord extends StandardRecord {
+public class IndexRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x020B;
     private int                field_2_first_row;       // first row on the sheet
     private int                field_3_last_row_add1;   // last row
@@ -149,7 +149,8 @@ public class IndexRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public IndexRecord clone() {
       IndexRecord rec = new IndexRecord();
       rec.field_2_first_row = field_2_first_row;
       rec.field_3_last_row_add1 = field_3_last_row_add1;
index 03e77c89e32f3910701f7b1adf8dc5720f2052bf..4d7f4546dd75da32e0726e333a6e4afb5767cfda 100644 (file)
@@ -32,7 +32,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Jason Height (jheight at chariot dot net dot au)
  */
-public final class IterationRecord extends StandardRecord {
+public final class IterationRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x0011;
 
     private static final BitField iterationOn = BitFieldFactory.getInstance(0x0001);
@@ -86,7 +86,8 @@ public final class IterationRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public IterationRecord clone() {
         return new IterationRecord(getIteration());
     }
 }
index c7a585672d5e6e947bc4d9a8a871a2b0f07f5ee0..68c42f8f2715f8ae96e080605cdb0e677a847a96 100644 (file)
@@ -28,7 +28,7 @@ import org.apache.poi.util.POILogger;
  * 
  * @see org.apache.poi.hssf.record.LabelSSTRecord
  */
-public final class LabelRecord extends Record implements CellValueRecordInterface {
+public final class LabelRecord extends Record implements CellValueRecordInterface, Cloneable {
     private final static POILogger logger = POILogFactory.getLogger(LabelRecord.class);
 
     public final static short sid = 0x0204;
@@ -170,7 +170,8 @@ public final class LabelRecord extends Record implements CellValueRecordInterfac
     {
     }
 
-    public Object clone() {
+    @Override
+    public LabelRecord clone() {
       LabelRecord rec = new LabelRecord();
       rec.field_1_row = field_1_row;
       rec.field_2_column = field_2_column;
index e1b4bd20c4d80eac8e287cc0ba64c190851bc419..ff7277d5ae85405f23f78c21d93b04b1b2c0acd9 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.poi.util.LittleEndianOutput;
  *               value.  <P>
  * REFERENCE:  PG 325 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<P>
  */
-public final class LabelSSTRecord extends CellRecord {
+public final class LabelSSTRecord extends CellRecord implements Cloneable {
     public final static short sid = 0xfd;
     private int field_4_sst_index;
 
@@ -84,7 +84,8 @@ public final class LabelSSTRecord extends CellRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public LabelSSTRecord clone() {
       LabelSSTRecord rec = new LabelSSTRecord();
       copyBaseFields(rec);
       rec.field_4_sst_index = field_4_sst_index;
index 93a0430eb5b184c3c5c017ce9b917cdb9c5658b9..91b9fb7524e6dfcbc46b599f9c6dd433f6b7cf42 100644 (file)
@@ -258,7 +258,8 @@ public class LbsDataSubRecord extends SubRecord {
     }\r
 \r
     @Override\r
-    public Object clone() {\r
+    public LbsDataSubRecord clone() {\r
+        // TODO: is immutable ???\r
         return this;\r
     }\r
 \r
index e9eea8d589f46310101097f02c781915fc93de33..5b570487de9f66590ba89c58f9eb2d0c0ff8a16f 100644 (file)
@@ -24,8 +24,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Shawn Laubach (slaubach at apache dot org)
  */
-public final class LeftMarginRecord extends StandardRecord implements Margin
-{
+public final class LeftMarginRecord extends StandardRecord implements Margin, Cloneable {
     public final static short sid = 0x0026;
     private double field_1_margin;
 
@@ -72,10 +71,10 @@ public final class LeftMarginRecord extends StandardRecord implements Margin
         this.field_1_margin = field_1_margin;
     }
 
-    public Object clone()
-    {
+    @Override
+    public LeftMarginRecord clone() {
         LeftMarginRecord rec = new LeftMarginRecord();
         rec.field_1_margin = this.field_1_margin;
         return rec;
     }
-}  // END OF 
\ No newline at end of file
+} 
\ No newline at end of file
index c8a1379dcd1be9a053945e7cffb70645b211513b..9fbc676a165b9a68c16b0e5274a9b1c88e2abc40 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * Description:  Optional record defining a square area of cells to "merged" into one cell. <br>
  * @author Andrew C. Oliver (acoliver at apache dot org)
  */
-public final class MergeCellsRecord extends StandardRecord {
+public final class MergeCellsRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x00E5;
     /** sometimes the regions array is shared with other MergedCellsRecords */ 
     private CellRangeAddress[] _regions;
@@ -102,7 +102,8 @@ public final class MergeCellsRecord extends StandardRecord {
         return retval.toString();
     }
 
-    public Object clone() {
+    @Override
+    public MergeCellsRecord clone() {
        int nRegions = _numberOfRegions;
        CellRangeAddress[] clonedRegions = new CellRangeAddress[nRegions];
                for (int i = 0; i < clonedRegions.length; i++) {
index 695c55c877c148876d7bf939ba85a3b7ce6177e5..f48ba50306c469fcefe9f7ec8a1e03f7aafa8a54 100644 (file)
@@ -135,7 +135,7 @@ public final class MulBlankRecord extends StandardRecord {
        }
 
        @Override
-       public Object clone() {
+       public MulBlankRecord clone() {
                // immutable - so OK to return this
                return this;
        }
index 86c239c6e5a644d14464fd38233e13fec582d20e..261a523c006aa3adf82b7ee6fb472978804c41dc 100644 (file)
@@ -25,7 +25,7 @@ import org.apache.poi.util.StringUtil;
  *
  * @author Yegor Kozlov
  */
-public final class NoteRecord extends StandardRecord {
+public final class NoteRecord extends StandardRecord implements Cloneable {
        public final static short sid = 0x001C;
 
        public static final NoteRecord[] EMPTY_ARRAY = { };
@@ -235,7 +235,8 @@ public final class NoteRecord extends StandardRecord {
       field_5_hasMultibyte = StringUtil.hasMultibyte(author);
        }
 
-       public Object clone() {
+       @Override
+       public NoteRecord clone() {
                NoteRecord rec = new NoteRecord();
                rec.field_1_row = field_1_row;
                rec.field_2_col = field_2_col;
index fff3f39f3f59ea06aeb789a84c56fac898aa2ac1..50e79173ac501463bdaba0ed064cf41813b1cc98 100644 (file)
@@ -31,7 +31,7 @@ import org.apache.poi.util.LittleEndianOutput;
  *
  * @author Yegor Kozlov
  */
-public final class NoteStructureSubRecord extends SubRecord {
+public final class NoteStructureSubRecord extends SubRecord implements Cloneable {
     public final static short sid = 0x0D;
     private static final int ENCODED_SIZE = 22;
 
@@ -98,7 +98,8 @@ public final class NoteStructureSubRecord extends SubRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public NoteStructureSubRecord clone() {
         NoteStructureSubRecord rec = new NoteStructureSubRecord();
         byte[] recdata = new byte[reserved.length];
         System.arraycopy(reserved, 0, recdata, 0, recdata.length);
index a156863aa8d6dacda7bb7d77c36c694999a254ba..ebc6d9e3fbfebc8cee79706e5bf03608c741cca6 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Andrew C. Oliver (acoliver at apache dot org)
  * @author Jason Height (jheight at chariot dot net dot au)
  */
-public final class NumberRecord extends CellRecord {
+public final class NumberRecord extends CellRecord implements Cloneable {
     public static final short sid = 0x0203;
     private double field_4_value;
 
@@ -87,7 +87,7 @@ public final class NumberRecord extends CellRecord {
     }
 
     @Override
-    public Object clone() {
+    public NumberRecord clone() {
       NumberRecord rec = new NumberRecord();
       copyBaseFields(rec);
       rec.field_4_value = field_4_value;
index fcc9d9f727e4218609fd8f058d6a38bf9c99c312..cce80f6be51f493be8b663ccc6c1191e5413736a 100644 (file)
@@ -33,7 +33,7 @@ import org.apache.poi.util.LittleEndianInputStream;
  *
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class ObjRecord extends Record {
+public final class ObjRecord extends Record implements Cloneable {
        public final static short sid = 0x005D;
 
        private static final int NORMAL_PAD_ALIGNMENT = 2;
@@ -222,7 +222,7 @@ public final class ObjRecord extends Record {
        }
 
        @Override
-       public Object clone() {
+       public ObjRecord clone() {
                ObjRecord rec = new ObjRecord();
 
                for (int i = 0; i < subrecords.size(); i++) {
index 0192d81650079d913165c5a61d6576137d73a155..06aab44853b5def0320413b887049567a9122dac 100644 (file)
@@ -31,9 +31,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Andrew C. Oliver (acoliver at apache dot org)
  */
 
-public final class ObjectProtectRecord
-    extends StandardRecord
-{
+public final class ObjectProtectRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x63;
     private short             field_1_protect;
 
@@ -97,7 +95,8 @@ public final class ObjectProtectRecord
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public ObjectProtectRecord clone() {
         ObjectProtectRecord rec = new ObjectProtectRecord();
         rec.field_1_protect = field_1_protect;
         return rec;
index e1d54a01cb5bd19b6c9e9884e151e6407fc0322c..372cc94a72954d5c1bc2d18fec91d9d24fbb9f92 100644 (file)
@@ -61,16 +61,8 @@ public abstract class Record extends RecordBase {
     public abstract short getSid();
 
     @Override
-    public Object clone() {
-//        if (false) {
-//            // TODO - implement clone in a more standardised way
-//            try {
-//                return super.clone();
-//            } catch (CloneNotSupportedException e) {
-//                throw new RuntimeException(e);
-//            }
-//        }
-        throw new RuntimeException("The class "+getClass().getName()+" needs to define a clone method");
+    public Object clone() throws CloneNotSupportedException {
+        throw new CloneNotSupportedException("The class "+getClass().getName()+" needs to define a clone method");
     }
 
     /**
index a66c0005ede318f9c78be48ea868e9fc23665d73..7c02b8bb10192c5fd57423d628ac97f356cfe393 100644 (file)
@@ -28,7 +28,7 @@ import org.apache.poi.hssf.record.ColumnInfoRecord;
 /**
  * @author Glen Stampoultzis
  */
-public final class ColumnInfoRecordsAggregate extends RecordAggregate {
+public final class ColumnInfoRecordsAggregate extends RecordAggregate implements Cloneable {
        /**
         * List of {@link ColumnInfoRecord}s assumed to be in order
         */
@@ -75,14 +75,11 @@ public final class ColumnInfoRecordsAggregate extends RecordAggregate {
                }
        }
 
-       /**
-        * Performs a deep clone of the record
-        */
-       public Object clone() {
+       @Override
+       public ColumnInfoRecordsAggregate clone() {
                ColumnInfoRecordsAggregate rec = new ColumnInfoRecordsAggregate();
-               for (int k = 0; k < records.size(); k++) {
-                       ColumnInfoRecord ci = records.get(k);
-                       rec.records.add((ColumnInfoRecord) ci.clone());
+               for (ColumnInfoRecord ci : records) {
+                       rec.records.add(ci.clone());
                }
                return rec;
        }
@@ -295,7 +292,7 @@ public final class ColumnInfoRecordsAggregate extends RecordAggregate {
        }
 
        private static ColumnInfoRecord copyColInfo(ColumnInfoRecord ci) {
-               return (ColumnInfoRecord) ci.clone();
+               return ci.clone();
        }
 
 
index ef003d536642994417a69451117a424d667dd117..41f465357f4622c2863051d64d22d0e8c3e4752b 100644 (file)
@@ -26,7 +26,7 @@ import org.apache.poi.util.LittleEndianOutput;
 /**
  * Border Formatting Block of the Conditional Formatting Rule Record.
  */
-public final class BorderFormatting {
+public final class BorderFormatting implements Cloneable {
     /** No border */
     public final static short    BORDER_NONE                = 0x0;
     /** Thin border */
@@ -446,7 +446,8 @@ public final class BorderFormatting {
         return buffer.toString();
     }
 
-    public Object clone() {
+    @Override
+    public BorderFormatting clone() {
       BorderFormatting rec = new BorderFormatting();
       rec.field_13_border_styles1 = field_13_border_styles1;
       rec.field_14_border_styles2 = field_14_border_styles2;
index 32eba56e4c713ddbc1a494547a297f9640ca4925..e7bea75a5a9de11668356e9d484308c8ce80aa2e 100644 (file)
@@ -24,7 +24,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * Color Gradient / Color Scale specific Threshold / value (CFVO),
  *  for changes in Conditional Formatting
  */
-public final class ColorGradientThreshold extends Threshold {
+public final class ColorGradientThreshold extends Threshold implements Cloneable {
     private double position;
 
     public ColorGradientThreshold() {
@@ -49,7 +49,8 @@ public final class ColorGradientThreshold extends Threshold {
         return super.getDataLength() + 8;
     }
 
-    public Object clone() {
+    @Override
+    public ColorGradientThreshold clone() {
       ColorGradientThreshold rec = new ColorGradientThreshold();
       super.copyTo(rec);
       rec.position = position;
index 9164aaddef9ed563b75549ec7d4e258cc01fdcdf..63c7f6b36350ed28033002b3ebacfd2e50bc4135 100644 (file)
@@ -23,7 +23,7 @@ import org.apache.poi.util.LittleEndianInput;
  * Data Bar specific Threshold / value (CFVO),
  *  for changes in Conditional Formatting
  */
-public final class DataBarThreshold extends Threshold {
+public final class DataBarThreshold extends Threshold implements Cloneable {
     public DataBarThreshold() {
         super();
     }
@@ -33,7 +33,8 @@ public final class DataBarThreshold extends Threshold {
         super(in);
     }
 
-    public Object clone() {
+    @Override
+    public DataBarThreshold clone() {
       DataBarThreshold rec = new DataBarThreshold();
       super.copyTo(rec);
       return rec;
index 79bdabeda369163e5f59d17baf3672d3c3ac0fb9..08f8bf11415917450be06c260085d0f3ba1771ec 100644 (file)
@@ -28,7 +28,7 @@ import org.apache.poi.util.LittleEndian;
 /**
  * Font Formatting Block of the Conditional Formatting Rule Record.
  */
-public final class FontFormatting {
+public final class FontFormatting implements Cloneable {
     private byte[] _rawData;
 
     private static final int OFFSET_FONT_NAME = 0;
@@ -541,7 +541,8 @@ public final class FontFormatting {
         return buffer.toString();
     }
 
-    public Object clone()
+    @Override
+    public FontFormatting clone()
     {
         byte[] rawData = _rawData.clone();
         return new FontFormatting(rawData);
index 72f6ea370dd0e584dd69bbb56b2e160af1efe96d..03d95caf3394532030e70482254969dd3a115f96 100644 (file)
@@ -24,7 +24,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * Icon / Multi-State specific Threshold / value (CFVO),
  *  for changes in Conditional Formatting
  */
-public final class IconMultiStateThreshold extends Threshold {
+public final class IconMultiStateThreshold extends Threshold implements Cloneable {
     /**
      * Cell values that are equal to the threshold value do not pass the threshold
      */
@@ -60,7 +60,8 @@ public final class IconMultiStateThreshold extends Threshold {
         return super.getDataLength() + 5;
     }
 
-    public Object clone() {
+    @Override
+    public IconMultiStateThreshold clone() {
       IconMultiStateThreshold rec = new IconMultiStateThreshold();
       super.copyTo(rec);
       rec.equals = equals;
index 661d2dc27478ad4f8bcb470f07b57a7f85f377be..229743ebd42ec25729087437060561f9c7fa2cc6 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class AreaFormatRecord extends StandardRecord {
+public final class AreaFormatRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x100A;
     
     private static final BitField automatic = BitFieldFactory.getInstance(0x1);
@@ -113,7 +113,8 @@ public final class AreaFormatRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public AreaFormatRecord clone() {
         AreaFormatRecord rec = new AreaFormatRecord();
     
         rec.field_1_foregroundColor = field_1_foregroundColor;
index 7d763fa8ec1d63536017461efa2891a3e6ecb94f..0bc901d0c4e2873741cfc4b7ea4a1227e034a082 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class AreaRecord extends StandardRecord {
+public final class AreaRecord extends StandardRecord implements Cloneable {
     public final static short      sid                             = 0x101A;
     private  short      field_1_formatFlags;
     private static final BitField stacked             = BitFieldFactory.getInstance(0x1);
@@ -78,7 +78,8 @@ public final class AreaRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public AreaRecord clone() {
         AreaRecord rec = new AreaRecord();
     
         rec.field_1_formatFlags = field_1_formatFlags;
index 737b474e67d991ba261bb03f2b7f6a1e6413dc76..92b0b6af2df4ebf554410e0fd92dff78fa0bbd35 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class AxisLineFormatRecord extends StandardRecord {
+public final class AxisLineFormatRecord extends StandardRecord implements Cloneable {
     public final static short      sid                             = 0x1021;
     private  short      field_1_axisType;
     public final static short       AXIS_TYPE_AXIS_LINE            = 0;
@@ -73,7 +73,8 @@ public final class AxisLineFormatRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public AxisLineFormatRecord clone() {
         AxisLineFormatRecord rec = new AxisLineFormatRecord();
     
         rec.field_1_axisType = field_1_axisType;
index 0b4f9dd4b768747d2c1204133c2f7e7323c8f0ed..e6c4768c892bf0ce4ffc8ba77b3aec6da2232dcf 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Andrew C. Oliver(acoliver at apache.org)
  */
-public final class AxisOptionsRecord extends StandardRecord {
+public final class AxisOptionsRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x1062;
 
     private static final BitField defaultMinimum      = BitFieldFactory.getInstance(0x01);
@@ -145,7 +145,8 @@ public final class AxisOptionsRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public AxisOptionsRecord clone() {
         AxisOptionsRecord rec = new AxisOptionsRecord();
     
         rec.field_1_minimumCategory = field_1_minimumCategory;
index e0d6d5b585817ba00fc211960439d0f3b2701686..8cf8fdb09bdf9e501f8796ebe1ac1e33ee45b73c 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class AxisParentRecord extends StandardRecord {
+public final class AxisParentRecord extends StandardRecord implements Cloneable {
     public final static short      sid                             = 0x1041;
     private  short      field_1_axisType;
     public final static short       AXIS_TYPE_MAIN                 = 0;
@@ -99,7 +99,8 @@ public final class AxisParentRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public AxisParentRecord clone() {
         AxisParentRecord rec = new AxisParentRecord();
     
         rec.field_1_axisType = field_1_axisType;
index 4eb92dc51d411d2dc963eaba2067073320bef5c7..42aefb4a838bb4989fd8aac1cf0d21ed3a5ee5c6 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class AxisRecord extends StandardRecord {
+public final class AxisRecord extends StandardRecord implements Cloneable {
     public final static short      sid                             = 0x101d;
     private  short      field_1_axisType;
     public final static short       AXIS_TYPE_CATEGORY_OR_X_AXIS   = 0;
@@ -100,7 +100,8 @@ public final class AxisRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public AxisRecord clone() {
         AxisRecord rec = new AxisRecord();
     
         rec.field_1_axisType = field_1_axisType;
index b05cf1b9bb71d147e73bf20d0e8ed3a03eeaf5a0..baca15b57588b5c25cdca7f9ee38a090f89a14f3 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class AxisUsedRecord extends StandardRecord {
+public final class AxisUsedRecord extends StandardRecord implements Cloneable {
     public final static short      sid                             = 0x1046;
     private  short      field_1_numAxis;
 
@@ -69,7 +69,8 @@ public final class AxisUsedRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public AxisUsedRecord clone() {
         AxisUsedRecord rec = new AxisUsedRecord();
     
         rec.field_1_numAxis = field_1_numAxis;
index 297a27f1278fdd30c3bff801c795b761e0fcbd92..72d418cb747551b2c77ade8073a42636094619a3 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class BarRecord extends StandardRecord {
+public final class BarRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x1017;
 
     private static final BitField   horizontal          = BitFieldFactory.getInstance(0x1);
@@ -95,7 +95,8 @@ public final class BarRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public BarRecord clone() {
         BarRecord rec = new BarRecord();
     
         rec.field_1_barSpace = field_1_barSpace;
index 2a7baf149729027694616dcf129a10d959810d3d..88a7efcf28be47c6f995544278aa6d29ff289029 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
  *
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class BeginRecord extends StandardRecord {
+public final class BeginRecord extends StandardRecord implements Cloneable {
     public static final short sid = 0x1033;
 
     public BeginRecord()
@@ -64,7 +64,8 @@ public final class BeginRecord extends StandardRecord {
         return sid;
     }
     
-    public Object clone() {
+    @Override
+    public BeginRecord clone() {
        BeginRecord br = new BeginRecord();
        // No data so nothing to copy
        return br;
index 0278d5f3dc71a67ce0234f13f14c1d9ddd5e6b38..6e8216a139a5e9823d7f899b3901d660117d4e0a 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class CategorySeriesAxisRecord extends StandardRecord {
+public final class CategorySeriesAxisRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x1020;
 
     private static final BitField valueAxisCrossing = BitFieldFactory.getInstance(0x1);
@@ -100,7 +100,8 @@ public final class CategorySeriesAxisRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public CategorySeriesAxisRecord clone() {
         CategorySeriesAxisRecord rec = new CategorySeriesAxisRecord();
     
         rec.field_1_crossingPoint = field_1_crossingPoint;
index dcb722b826b6708a768dd2618ada684a495a394b..4354b01c5f8d94a0328693f170374c62e91edf5a 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Patrick Cheng
  */
-public final class ChartEndBlockRecord extends StandardRecord {
+public final class ChartEndBlockRecord extends StandardRecord implements Cloneable {
        public static final short sid = 0x0853;
 
        private short rt;
index 4299e887d3f49119659d46c2d3494d96ae2fa7ae..3909a0c415d9dbd8194f26b6496c32f2c0ff52d4 100644 (file)
@@ -40,7 +40,7 @@ import org.apache.poi.util.LittleEndianOutput;
  *  
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class ChartRecord extends StandardRecord {
+public final class ChartRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x1002;
     private int field_1_x;
     private int field_2_y;
@@ -87,7 +87,8 @@ public final class ChartRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public ChartRecord clone() {
         ChartRecord rec = new ChartRecord();
     
         rec.field_1_x = field_1_x;
index 1bb41ddc7bc86470b2fb7596e67139c62eb9b47f..b35a9ee254f109867fc4786329d14c786e65f8e6 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Patrick Cheng
  */
-public final class ChartStartBlockRecord extends StandardRecord {
+public final class ChartStartBlockRecord extends StandardRecord implements Cloneable {
        public static final short sid = 0x0852;
 
        private short rt;
index 485fea15d5ac3e0a9cd0f3649de0e2cb08ab5f8f..68a0ed60c9d33bba4a206645afca6e0851b1ae82 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class DatRecord extends StandardRecord {
+public final class DatRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x1063;
 
     private static final BitField horizontalBorder = BitFieldFactory.getInstance(0x1);
@@ -81,9 +81,9 @@ public final class DatRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public DatRecord clone() {
         DatRecord rec = new DatRecord();
-    
         rec.field_1_options = field_1_options;
         return rec;
     }
index bb9d6ad0015022fee6a86cb7f8d263d94ad76f19..b2328943b204fdf209e85589ba3cb8b7ecd27caf 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class DataFormatRecord extends StandardRecord {
+public final class DataFormatRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x1006;
 
     private static final BitField useExcel4Colors = BitFieldFactory.getInstance(0x1);
@@ -96,7 +96,8 @@ public final class DataFormatRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public DataFormatRecord clone() {
         DataFormatRecord rec = new DataFormatRecord();
     
         rec.field_1_pointNumber = field_1_pointNumber;
index 4967bd35b0b8181f9ff98864d96812162c0b878e..06100b77e266728de93dd04be9d7870e491f9261 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class DefaultDataLabelTextPropertiesRecord extends StandardRecord {
+public final class DefaultDataLabelTextPropertiesRecord extends StandardRecord implements Cloneable {
     public final static short      sid                             = 0x1024;
     private  short      field_1_categoryDataType;
     public final static short       CATEGORY_DATA_TYPE_SHOW_LABELS_CHARACTERISTIC = 0;
@@ -72,7 +72,8 @@ public final class DefaultDataLabelTextPropertiesRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public DefaultDataLabelTextPropertiesRecord clone() {
         DefaultDataLabelTextPropertiesRecord rec = new DefaultDataLabelTextPropertiesRecord();
     
         rec.field_1_categoryDataType = field_1_categoryDataType;
index 4879761192b001b722d27a5b35748c6cad2a37e2..23d09d16385838a0209343f3b82fb54b49e82729 100644 (file)
@@ -30,7 +30,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * @author Glen Stampoultzis (glens at apache.org)
  */
 
-public final class EndRecord extends StandardRecord {
+public final class EndRecord extends StandardRecord implements Cloneable {
     public static final short sid = 0x1034;
 
     public EndRecord()
@@ -65,7 +65,8 @@ public final class EndRecord extends StandardRecord {
         return sid;
     }
     
-    public Object clone() {
+    @Override
+    public EndRecord clone() {
        EndRecord er = new EndRecord();
        // No data so nothing to copy
        return er;
index 826a5053764f2cbc3369dfded5d3e9522b2c9ddc..dde683eb5f91283bfd323bf23355c16bc59358af 100644 (file)
@@ -27,8 +27,8 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class FontBasisRecord extends StandardRecord {
-    public final static short      sid                             = 0x1060;
+public final class FontBasisRecord extends StandardRecord implements Cloneable {
+    public final static short sid = 0x1060;
     private  short      field_1_xBasis;
     private  short      field_2_yBasis;
     private  short      field_3_heightBasis;
@@ -97,7 +97,8 @@ public final class FontBasisRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public FontBasisRecord clone() {
         FontBasisRecord rec = new FontBasisRecord();
     
         rec.field_1_xBasis = field_1_xBasis;
index b0047b1f3727721faab6cf08b01d2dfd4b407601..4faacab13b81207b55e41b19fd79278fb4205cc6 100644 (file)
@@ -27,8 +27,8 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class FontIndexRecord extends StandardRecord {
-    public final static short      sid                             = 0x1026;
+public final class FontIndexRecord extends StandardRecord implements Cloneable {
+    public final static short sid = 0x1026;
     private  short      field_1_fontIndex;
 
 
@@ -69,7 +69,8 @@ public final class FontIndexRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public FontIndexRecord clone() {
         FontIndexRecord rec = new FontIndexRecord();
     
         rec.field_1_fontIndex = field_1_fontIndex;
index 525741422e2cc3bd0af847ad49bcc9c2377af40a..473265d75a58b3adb441d1ef50514f966756ad03 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class FrameRecord extends StandardRecord {
+public final class FrameRecord extends StandardRecord implements Cloneable {
     public final static short sid  = 0x1032;
 
     private static final BitField autoSize     = BitFieldFactory.getInstance(0x1);
@@ -86,7 +86,8 @@ public final class FrameRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public FrameRecord clone() {
         FrameRecord rec = new FrameRecord();
     
         rec.field_1_borderType = field_1_borderType;
index 1fd99be974ae02e35e3087f04bf52324ec3f503a..9a94e0a73bec6043fc437eb1ec9261c52c293e48 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Andrew C. Oliver (acoliver at apache.org)
  */
-public final class LegendRecord extends StandardRecord {
+public final class LegendRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x1015;
 
     private static final BitField autoPosition     = BitFieldFactory.getInstance(0x01);
@@ -136,7 +136,8 @@ public final class LegendRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public LegendRecord clone() {
         LegendRecord rec = new LegendRecord();
     
         rec.field_1_xAxisUpperLeft = field_1_xAxisUpperLeft;
index ed47dabed9c5dc6904f03d0b4b1ab0db9f7abfb7..0daabce1eed01ea046c4a1bce96b875e11d5129f 100644 (file)
@@ -29,7 +29,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class LineFormatRecord extends StandardRecord {
+public final class LineFormatRecord extends StandardRecord implements Cloneable {
     public final static short sid = 0x1007;
 
     private static final BitField auto      = BitFieldFactory.getInstance(0x1);
@@ -121,7 +121,8 @@ public final class LineFormatRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public LineFormatRecord clone() {
         LineFormatRecord rec = new LineFormatRecord();
     
         rec.field_1_lineColor = field_1_lineColor;
index 7e92478de1309d799f837550994175ad9e2dd61e..58c758e4c42b814ac5877a8794042ceaf1a79e0c 100644 (file)
@@ -31,7 +31,7 @@ import org.apache.poi.util.LittleEndianOutput;
  *
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class LinkedDataRecord extends StandardRecord {
+public final class LinkedDataRecord extends StandardRecord implements Cloneable {
     public final static short sid  = 0x1051;
 
     private static final BitField customNumberFormat= BitFieldFactory.getInstance(0x1);
@@ -102,7 +102,8 @@ public final class LinkedDataRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public LinkedDataRecord clone() {
         LinkedDataRecord rec = new LinkedDataRecord();
 
         rec.field_1_linkType = field_1_linkType;
index fc9f0d7776d45cd1005dc484dbe5382b857aa15b..7fc944c0cadf6e2de4e9c5f924d33f767ecd815c 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public final class NumberFormatIndexRecord extends StandardRecord {
+public final class NumberFormatIndexRecord extends StandardRecord implements Cloneable {
     public final static short      sid                             = 0x104E;
     private  short      field_1_formatIndex;
 
@@ -69,7 +69,8 @@ public final class NumberFormatIndexRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public NumberFormatIndexRecord clone() {
         NumberFormatIndexRecord rec = new NumberFormatIndexRecord();
     
         rec.field_1_formatIndex = field_1_formatIndex;
index a949218867f5d9fdfbb613a6055d5985092625dc..27ba9a068f0aaab0a0660bf18e0905eb5330068d 100644 (file)
@@ -27,7 +27,7 @@ import org.apache.poi.util.LittleEndianOutput;
  * 
  * @author Andrew C. Oliver (acoliver at apache.org)
  */
-public final class ObjectLinkRecord extends StandardRecord {
+public final class ObjectLinkRecord extends StandardRecord implements Cloneable {
     public final static short      sid                             = 0x1027;
     private  short      field_1_anchorId;
     public final static short       ANCHOR_ID_CHART_TITLE          = 1;
@@ -89,7 +89,8 @@ public final class ObjectLinkRecord extends StandardRecord {
         return sid;
     }
 
-    public Object clone() {
+    @Override
+    public ObjectLinkRecord clone() {
         ObjectLinkRecord rec = new ObjectLinkRecord();
     
         rec.field_1_anchorId = field_1_anchorId;
index b0719e19a8aea159caebf840d078476b0d7006c6..97136da9e59a9ee5f8d366e994d19351debd3368 100644 (file)
@@ -30,7 +30,7 @@ import org.apache.poi.util.LittleEndianOutput;
  *  Formatting, Sheet Extensions), this XSSF-style color record 
  *  can be used.
  */
-public final class ExtendedColor {
+public final class ExtendedColor implements Cloneable {
     public static final int TYPE_AUTO = 0;
     public static final int TYPE_INDEXED = 1;
     public static final int TYPE_RGB = 2;
@@ -147,7 +147,8 @@ public final class ExtendedColor {
         return buffer.toString();
     }
     
-    public Object clone()  {
+    @Override
+    public ExtendedColor clone()  {
         ExtendedColor exc = new ExtendedColor();
         exc.type = type;
         exc.tint = tint;
index dba24f084a542e43b529a505288e1fdf2628c103..eecc541caf75a6e3888bc9326bd223590aa165dc 100644 (file)
@@ -28,7 +28,7 @@ import org.apache.poi.util.LittleEndianOutput;
  *  style record, which includes extra attributes above and
  *  beyond those of a traditional record. 
  */
-public final class FtrHeader {
+public final class FtrHeader implements Cloneable {
     /** This MUST match the type on the containing record */
     private short recordType;
     /** This is a FrtFlags */
index d3fb9e18ee3f8cb463265d1f941dc5d8e75a6e1f..fcd3bde649b2ea4cec3da8771656c7b0e92ae05c 100644 (file)
@@ -35,7 +35,7 @@ public interface BATManaged
      * @return count of BigBlock instances
      */
 
-    public int countBlocks();
+    int countBlocks();
 
     /**
      * Set the start block for this instance
@@ -44,6 +44,6 @@ public interface BATManaged
      *              up the the filesystem
      */
 
-    public void setStartBlock(final int index);
+    void setStartBlock(final int index);
 }   // end public interface BATManaged
 
index d7e23cfb9cf7f2f2c4da2d08cb90e47ba78eaa7b..dfbd69c2a31eb280d694fc24196ef3df28fd8548 100644 (file)
@@ -38,7 +38,7 @@ public interface BlockList
      *              out of range, that's ok
      */
 
-    public void zap(final int index);
+    void zap(final int index);
 
     /**
      * remove and return the specified block from the list
@@ -51,8 +51,7 @@ public interface BlockList
      *            already been removed
      */
 
-    public ListManagedBlock remove(final int index)
-        throws IOException;
+     ListManagedBlock remove(final int index) throws IOException;
 
     /**
      * get the blocks making up a particular stream in the list. The
@@ -66,7 +65,7 @@ public interface BlockList
      * @exception IOException if blocks are missing
      */
 
-    public ListManagedBlock [] fetchBlocks(final int startBlock, final int headerPropertiesStartBlock)
+     ListManagedBlock [] fetchBlocks(final int startBlock, final int headerPropertiesStartBlock)
         throws IOException;
 
     /**
@@ -77,9 +76,8 @@ public interface BlockList
      * @exception IOException
      */
 
-    public void setBAT(final BlockAllocationTableReader bat)
-        throws IOException;
+    void setBAT(final BlockAllocationTableReader bat) throws IOException;
     
-    public int blockCount();
+    int blockCount();
 }   // end public interface BlockList
 
index b6fe0ca3c8ad51d7d6e9439d89b00d6a6faf7fd2..3bf833ec10f71d4b88c1ddc4510b41b9f46dd158 100644 (file)
@@ -41,7 +41,6 @@ public interface BlockWritable
      *            stream
      */
 
-    public void writeBlocks(final OutputStream stream)
-        throws IOException;
+    void writeBlocks(final OutputStream stream) throws IOException;
 }   // end public interface BlockWritable
 
index 89f44502be5a7eff119ba6fdb6bb1b68f528c89d..fedfbff7ee18ba77fe91100acce963f36b6e62e3 100644 (file)
@@ -21,7 +21,7 @@ package org.apache.poi.sl.usermodel;
  * This is a replacement for {@link java.awt.Insets} which works on doubles\r
  * instead of ints\r
  */\r
-public class Insets2D {\r
+public class Insets2D implements Cloneable {\r
 \r
     /**\r
      * The inset from the top.\r
@@ -131,13 +131,9 @@ public class Insets2D {
      * Create a copy of this object.\r
      * @return     a copy of this <code>Insets2D</code> object.\r
      */\r
-    public Object clone() { \r
-        try { \r
-            return super.clone();\r
-        } catch (CloneNotSupportedException e) { \r
-            // this shouldn't happen, since we are Cloneable\r
-            throw new InternalError();\r
-        }\r
+    @Override\r
+    public Insets2D clone() {\r
+        return new Insets2D(top, left, bottom, right);\r
     }\r
     \r
 \r
index 96ffe7005340c511cdf66356f66d4d2fe397aaa0..3610126628385ff7a4f5030f5dd57194b1913ff8 100644 (file)
@@ -24,22 +24,22 @@ public interface AreaI {
        /**
         * @return the first row in the area
         */
-       public int getFirstRow();
+       int getFirstRow();
 
        /**
         * @return last row in the range (x2 in x1,y1-x2,y2)
         */
-       public int getLastRow();
+       int getLastRow();
 
        /**
         * @return the first column number in the area.
         */
-       public int getFirstColumn();
+       int getFirstColumn();
 
        /**
         * @return lastcolumn in the area
         */
-       public int getLastColumn();
+       int getLastColumn();
 
        class OffsetArea implements AreaI {
 
index 165cf054210650a3437d62ead4a0752f5897bf26..91a6f4179787eab379afd61fe0d6f045a600eb83 100644 (file)
@@ -25,33 +25,33 @@ package org.apache.poi.ss.usermodel;
  */\r
 public interface BorderFormatting {\r
     /** No border */\r
-    final static short    BORDER_NONE                = 0x0;\r
+    short BORDER_NONE                = 0x0;\r
     /** Thin border */\r
-    final static short    BORDER_THIN                = 0x1;\r
+    short BORDER_THIN                = 0x1;\r
     /** Medium border */\r
-    final static short    BORDER_MEDIUM              = 0x2;\r
+    short BORDER_MEDIUM              = 0x2;\r
     /** dash border */\r
-    final static short    BORDER_DASHED              = 0x3;\r
+    short BORDER_DASHED              = 0x3;\r
     /** dot border */\r
-    final static short    BORDER_HAIR                = 0x4;\r
+    short BORDER_HAIR                = 0x4;\r
     /** Thick border */\r
-    final static short    BORDER_THICK               = 0x5;\r
+    short BORDER_THICK               = 0x5;\r
     /** double-line border */\r
-    final static short    BORDER_DOUBLE              = 0x6;\r
+    short BORDER_DOUBLE              = 0x6;\r
     /** hair-line border */\r
-    final static short    BORDER_DOTTED              = 0x7;\r
+    short BORDER_DOTTED              = 0x7;\r
     /** Medium dashed border */\r
-    final static short    BORDER_MEDIUM_DASHED       = 0x8;\r
+    short BORDER_MEDIUM_DASHED       = 0x8;\r
     /** dash-dot border */\r
-    final static short    BORDER_DASH_DOT            = 0x9;\r
+    short BORDER_DASH_DOT            = 0x9;\r
     /** medium dash-dot border */\r
-    final static short    BORDER_MEDIUM_DASH_DOT     = 0xA;\r
+    short BORDER_MEDIUM_DASH_DOT     = 0xA;\r
     /** dash-dot-dot border */\r
-    final static short    BORDER_DASH_DOT_DOT        = 0xB;\r
+    short BORDER_DASH_DOT_DOT        = 0xB;\r
     /** medium dash-dot-dot border */\r
-    final static short    BORDER_MEDIUM_DASH_DOT_DOT = 0xC;\r
+    short BORDER_MEDIUM_DASH_DOT_DOT = 0xC;\r
     /** slanted dash-dot border */\r
-    final static short    BORDER_SLANTED_DASH_DOT    = 0xD;\r
+    short BORDER_SLANTED_DASH_DOT    = 0xD;\r
 \r
     short getBorderBottom();\r
 \r
index daf289f485439ef806914ec5c4ed29b1f6aff726..e3dcae0bb17c5d5dc7f40a699309909272ba20ad 100644 (file)
@@ -43,42 +43,42 @@ public interface Cell {
      * @see #setCellType(int)
      * @see #getCellType()
      */
-    public final static int CELL_TYPE_NUMERIC = 0;
+    int CELL_TYPE_NUMERIC = 0;
 
     /**
      * String Cell type (1)
      * @see #setCellType(int)
      * @see #getCellType()
      */
-    public final static int CELL_TYPE_STRING = 1;
+    int CELL_TYPE_STRING = 1;
 
     /**
      * Formula Cell type (2)
      * @see #setCellType(int)
      * @see #getCellType()
      */
-    public final static int CELL_TYPE_FORMULA = 2;
+    int CELL_TYPE_FORMULA = 2;
 
     /**
      * Blank Cell type (3)
      * @see #setCellType(int)
      * @see #getCellType()
      */
-    public final static int CELL_TYPE_BLANK = 3;
+    int CELL_TYPE_BLANK = 3;
 
     /**
      * Boolean Cell type (4)
      * @see #setCellType(int)
      * @see #getCellType()
      */
-    public final static int CELL_TYPE_BOOLEAN = 4;
+    int CELL_TYPE_BOOLEAN = 4;
 
     /**
      * Error Cell type (5)
      * @see #setCellType(int)
      * @see #getCellType()
      */
-    public final static int CELL_TYPE_ERROR = 5;
+    int CELL_TYPE_ERROR = 5;
 
     /**
      * Returns column index of this cell
index 0cae6536275688e2d709c545156b8abac6a74430..be5a43e93a39dbd5a526b7a0b3f615d07e3da440 100644 (file)
@@ -23,208 +23,208 @@ public interface CellStyle {
      * general (normal) horizontal alignment
      */
 
-    public final static short ALIGN_GENERAL = 0x0;
+    short ALIGN_GENERAL = 0x0;
 
     /**
      * left-justified horizontal alignment
      */
 
-    public final static short ALIGN_LEFT = 0x1;
+    short ALIGN_LEFT = 0x1;
 
     /**
      * center horizontal alignment
      */
 
-    public final static short ALIGN_CENTER = 0x2;
+    short ALIGN_CENTER = 0x2;
 
     /**
      * right-justified horizontal alignment
      */
 
-    public final static short ALIGN_RIGHT = 0x3;
+    short ALIGN_RIGHT = 0x3;
 
     /**
      * fill? horizontal alignment
      */
 
-    public final static short ALIGN_FILL = 0x4;
+    short ALIGN_FILL = 0x4;
 
     /**
      * justified horizontal alignment
      */
 
-    public final static short ALIGN_JUSTIFY = 0x5;
+    short ALIGN_JUSTIFY = 0x5;
 
     /**
      * center-selection? horizontal alignment
      */
 
-    public final static short ALIGN_CENTER_SELECTION = 0x6;
+    short ALIGN_CENTER_SELECTION = 0x6;
 
     /**
      * top-aligned vertical alignment
      */
 
-    public final static short VERTICAL_TOP = 0x0;
+    short VERTICAL_TOP = 0x0;
 
     /**
      * center-aligned vertical alignment
      */
 
-    public final static short VERTICAL_CENTER = 0x1;
+    short VERTICAL_CENTER = 0x1;
 
     /**
      * bottom-aligned vertical alignment
      */
 
-    public final static short VERTICAL_BOTTOM = 0x2;
+    short VERTICAL_BOTTOM = 0x2;
 
     /**
      * vertically justified vertical alignment
      */
 
-    public final static short VERTICAL_JUSTIFY = 0x3;
+    short VERTICAL_JUSTIFY = 0x3;
 
     /**
      * No border
      */
 
-    public final static short BORDER_NONE = 0x0;
+    short BORDER_NONE = 0x0;
 
     /**
      * Thin border
      */
 
-    public final static short BORDER_THIN = 0x1;
+    short BORDER_THIN = 0x1;
 
     /**
      * Medium border
      */
 
-    public final static short BORDER_MEDIUM = 0x2;
+    short BORDER_MEDIUM = 0x2;
 
     /**
      * dash border
      */
 
-    public final static short BORDER_DASHED = 0x3;
+    short BORDER_DASHED = 0x3;
 
     /**
      * dot border
      */
 
-    public final static short BORDER_HAIR = 0x7;
+    short BORDER_HAIR = 0x7;
 
     /**
      * Thick border
      */
 
-    public final static short BORDER_THICK = 0x5;
+    short BORDER_THICK = 0x5;
 
     /**
      * double-line border
      */
 
-    public final static short BORDER_DOUBLE = 0x6;
+    short BORDER_DOUBLE = 0x6;
 
     /**
      * hair-line border
      */
 
-    public final static short BORDER_DOTTED = 0x4;
+    short BORDER_DOTTED = 0x4;
 
     /**
      * Medium dashed border
      */
 
-    public final static short BORDER_MEDIUM_DASHED = 0x8;
+    short BORDER_MEDIUM_DASHED = 0x8;
 
     /**
      * dash-dot border
      */
 
-    public final static short BORDER_DASH_DOT = 0x9;
+    short BORDER_DASH_DOT = 0x9;
 
     /**
      * medium dash-dot border
      */
 
-    public final static short BORDER_MEDIUM_DASH_DOT = 0xA;
+    short BORDER_MEDIUM_DASH_DOT = 0xA;
 
     /**
      * dash-dot-dot border
      */
 
-    public final static short BORDER_DASH_DOT_DOT = 0xB;
+    short BORDER_DASH_DOT_DOT = 0xB;
 
     /**
      * medium dash-dot-dot border
      */
 
-    public final static short BORDER_MEDIUM_DASH_DOT_DOT = 0xC;
+    short BORDER_MEDIUM_DASH_DOT_DOT = 0xC;
 
     /**
      * slanted dash-dot border
      */
 
-    public final static short BORDER_SLANTED_DASH_DOT = 0xD;
+    short BORDER_SLANTED_DASH_DOT = 0xD;
 
     /**  No background */
-    public final static short NO_FILL = 0;
+    short NO_FILL = 0;
 
     /**  Solidly filled */
-    public final static short SOLID_FOREGROUND = 1;
+    short SOLID_FOREGROUND = 1;
 
     /**  Small fine dots */
-    public final static short FINE_DOTS = 2;
+    short FINE_DOTS = 2;
 
     /**  Wide dots */
-    public final static short ALT_BARS = 3;
+    short ALT_BARS = 3;
 
     /**  Sparse dots */
-    public final static short SPARSE_DOTS = 4;
+    short SPARSE_DOTS = 4;
 
     /**  Thick horizontal bands */
-    public final static short THICK_HORZ_BANDS = 5;
+    short THICK_HORZ_BANDS = 5;
 
     /**  Thick vertical bands */
-    public final static short THICK_VERT_BANDS = 6;
+    short THICK_VERT_BANDS = 6;
 
     /**  Thick backward facing diagonals */
-    public final static short THICK_BACKWARD_DIAG = 7;
+    short THICK_BACKWARD_DIAG = 7;
 
     /**  Thick forward facing diagonals */
-    public final static short THICK_FORWARD_DIAG = 8;
+    short THICK_FORWARD_DIAG = 8;
 
     /**  Large spots */
-    public final static short BIG_SPOTS = 9;
+    short BIG_SPOTS = 9;
 
     /**  Brick-like layout */
-    public final static short BRICKS = 10;
+    short BRICKS = 10;
 
     /**  Thin horizontal bands */
-    public final static short THIN_HORZ_BANDS = 11;
+    short THIN_HORZ_BANDS = 11;
 
     /**  Thin vertical bands */
-    public final static short THIN_VERT_BANDS = 12;
+    short THIN_VERT_BANDS = 12;
 
     /**  Thin backward diagonal */
-    public final static short THIN_BACKWARD_DIAG = 13;
+    short THIN_BACKWARD_DIAG = 13;
 
     /**  Thin forward diagonal */
-    public final static short THIN_FORWARD_DIAG = 14;
+    short THIN_FORWARD_DIAG = 14;
 
     /**  Squares */
-    public final static short SQUARES = 15;
+    short SQUARES = 15;
 
     /**  Diamonds */
-    public final static short DIAMONDS = 16;
+    short DIAMONDS = 16;
 
     /**  Less Dots */
-    public final static short LESS_DOTS = 17;
+    short LESS_DOTS = 17;
 
     /**  Least Dots */
-    public final static short LEAST_DOTS = 18;
+    short LEAST_DOTS = 18;
 
     /**
      * get the index within the Workbook (sequence within the collection of ExtnededFormat objects)
index 34165463aad28a62ad47974ea8123e9abd146275..da2a3630b8c882cb21a498639d6d7460d50599a2 100644 (file)
@@ -21,79 +21,79 @@ package org.apache.poi.wp.usermodel;
  * This class represents a run of text that share common properties.
  */
 public interface CharacterRun {
-    public boolean isBold();
-    public void setBold(boolean bold);
+    boolean isBold();
+    void setBold(boolean bold);
 
-    public boolean isItalic();
-    public void setItalic(boolean italic);
+    boolean isItalic();
+    void setItalic(boolean italic);
 
-    public boolean isSmallCaps();
-    public void setSmallCaps(boolean smallCaps);
+    boolean isSmallCaps();
+    void setSmallCaps(boolean smallCaps);
 
-    public boolean isCapitalized();
-    public void setCapitalized(boolean caps);
+    boolean isCapitalized();
+    void setCapitalized(boolean caps);
 
-    public boolean isStrikeThrough();
-    public void setStrikeThrough(boolean strike);
-    public boolean isDoubleStrikeThrough();
-    public void setDoubleStrikethrough(boolean dstrike);
+    boolean isStrikeThrough();
+    void setStrikeThrough(boolean strike);
+    boolean isDoubleStrikeThrough();
+    void setDoubleStrikethrough(boolean dstrike);
 
-    public boolean isShadowed();
-    public void setShadow(boolean shadow);
+    boolean isShadowed();
+    void setShadow(boolean shadow);
 
-    public boolean isEmbossed();
-    public void setEmbossed(boolean emboss);
+    boolean isEmbossed();
+    void setEmbossed(boolean emboss);
 
-    public boolean isImprinted();
-    public void setImprinted(boolean imprint);
+    boolean isImprinted();
+    void setImprinted(boolean imprint);
 
-    public int getFontSize();
-    public void setFontSize(int halfPoints);
+    int getFontSize();
+    void setFontSize(int halfPoints);
 
-    public int getCharacterSpacing();
-    public void setCharacterSpacing(int twips);
+    int getCharacterSpacing();
+    void setCharacterSpacing(int twips);
 
-    public int getKerning();
-    public void setKerning(int kern);
+    int getKerning();
+    void setKerning(int kern);
 
-    public String getFontName();
+    String getFontName();
     
     /**
      * @return The text of the run, including any tabs/spaces/etc
      */
-    public String text();
+    String text();
 
     // HWPF uses indexes, XWPF special
-//    public int getUnderlineCode();
-//    public void setUnderlineCode(int kul);
+//    int getUnderlineCode();
+//    void setUnderlineCode(int kul);
 
     // HWPF uses indexes, XWPF special vertical alignments
-//    public short getSubSuperScriptIndex();
-//    public void setSubSuperScriptIndex(short iss);
+//    short getSubSuperScriptIndex();
+//    void setSubSuperScriptIndex(short iss);
 
     // HWPF uses indexes, XWPF special vertical alignments
-//    public int getVerticalOffset();
-//    public void setVerticalOffset(int hpsPos);
+//    int getVerticalOffset();
+//    void setVerticalOffset(int hpsPos);
 
     // HWPF has colour indexes, XWPF colour names
-//    public int getColor();
-//    public void setColor(int color);
+//    int getColor();
+//    void setColor(int color);
 
     // TODO Review these, and add to XWPFRun if possible
 /*
-    public boolean isFldVanished();
-    public void setFldVanish(boolean fldVanish);
+    boolean isFldVanished();
+    void setFldVanish(boolean fldVanish);
     
-    public boolean isOutlined();
-    public void setOutline(boolean outlined);
+    boolean isOutlined();
+    void setOutline(boolean outlined);
     
-    public boolean isVanished();
-    public void setVanished(boolean vanish);
+    boolean isVanished();
+    void setVanished(boolean vanish);
 
-    public boolean isMarkedDeleted();
-    public void markDeleted(boolean mark);
+    boolean isMarkedDeleted();
+    void markDeleted(boolean mark);
 
-    public boolean isMarkedInserted();
-    public void markInserted(boolean mark);
+    boolean isMarkedInserted();
+    void markInserted(boolean mark);
 */
 }
index b6e48e21d5f4399920bfbd0480269c675b03ee73..29cd5d62316f9c554f18e6186c5666bc1a48295a 100644 (file)
@@ -81,7 +81,7 @@ public interface CharIndexTranslator {
      * @param bytePos\r
      * @return  first index greater or equal to bytePos that is in table\r
      */\r
-    public int lookIndexForward(int bytePos);\r
+    int lookIndexForward(int bytePos);\r
 \r
     /**\r
      * Return last index <= bytePos that is in table\r
@@ -89,6 +89,6 @@ public interface CharIndexTranslator {
      * @param bytePos\r
      * @return last index less of equal to bytePos that is in table\r
      */\r
-    public int lookIndexBackward(int bytePos);\r
+    int lookIndexBackward(int bytePos);\r
 \r
 }\r