diff --git a/src/java/org/apache/poi/hssf/record/StringRecord.java b/src/java/org/apache/poi/hssf/record/StringRecord.java index c551997d7..6b6cdea24 100644 --- a/src/java/org/apache/poi/hssf/record/StringRecord.java +++ b/src/java/org/apache/poi/hssf/record/StringRecord.java @@ -237,5 +237,14 @@ public class StringRecord buffer.append("[/STRING]\n"); return buffer.toString(); } + + public Object clone() { + StringRecord rec = new StringRecord(); + rec.field_1_string_length = this.field_1_string_length; + rec.field_2_unicode_flag= this.field_2_unicode_flag; + rec.field_3_string = this.field_3_string; + return rec; + + } } diff --git a/src/java/org/apache/poi/hssf/record/aggregates/FormulaRecordAggregate.java b/src/java/org/apache/poi/hssf/record/aggregates/FormulaRecordAggregate.java index dd96a5194..6e332254c 100644 --- a/src/java/org/apache/poi/hssf/record/aggregates/FormulaRecordAggregate.java +++ b/src/java/org/apache/poi/hssf/record/aggregates/FormulaRecordAggregate.java @@ -205,6 +205,14 @@ public class FormulaRecordAggregate { return formulaRecord.toString(); } + + /** + * @see java.lang.Object#clone() + */ + public Object clone() { + return new FormulaRecordAggregate((FormulaRecord) this.formulaRecord.clone(), (StringRecord) this.stringRecord.clone()); + } + } diff --git a/src/testcases/org/apache/poi/hssf/record/aggregates/TestFormulaRecordAggregate.java b/src/testcases/org/apache/poi/hssf/record/aggregates/TestFormulaRecordAggregate.java new file mode 100644 index 000000000..23a368934 --- /dev/null +++ b/src/testcases/org/apache/poi/hssf/record/aggregates/TestFormulaRecordAggregate.java @@ -0,0 +1,34 @@ +/* + * TestFormulaRecordAggregate.java + * + * Created on March 21, 2003, 12:32 AM + */ + +package org.apache.poi.hssf.record.aggregates; +import org.apache.poi.hssf.record.FormulaRecord; +import org.apache.poi.hssf.record.StringRecord; + +/** + * + * @author avik + */ +public class TestFormulaRecordAggregate extends junit.framework.TestCase { + + /** Creates a new instance of TestFormulaRecordAggregate */ + public TestFormulaRecordAggregate(String arg) { + super(arg); + } + + public void testClone() { + FormulaRecord f = new FormulaRecord(); + StringRecord s = new StringRecord(); + FormulaRecordAggregate fagg = new FormulaRecordAggregate(f,s); + FormulaRecordAggregate newFagg = (FormulaRecordAggregate) fagg.clone(); + assertTrue("objects are different", fagg!=newFagg); + assertTrue("deep clone", fagg.getFormulaRecord() != newFagg.getFormulaRecord()); + assertTrue("deep clone", fagg.getStringRecord() != newFagg.getStringRecord()); + + + } + +}