aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAvik Sengupta <avik@apache.org>2003-03-20 20:01:17 +0000
committerAvik Sengupta <avik@apache.org>2003-03-20 20:01:17 +0000
commita9b31e37d04436621364743c2e9b1bfd3eeec2ed (patch)
tree69d19d00a08e8ce40ff7b78e06866939ae1cdbe4
parentabe9b7b72398e7904d8859d0a31e54fc9b3162e9 (diff)
downloadpoi-a9b31e37d04436621364743c2e9b1bfd3eeec2ed.tar.gz
poi-a9b31e37d04436621364743c2e9b1bfd3eeec2ed.zip
Add clone() to FormulaRecordAggregate
Original patch supplied by Henning Boeger Changed to make it deeper clone, added clone to StringRecord in the process Also added a test. git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353033 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/java/org/apache/poi/hssf/record/StringRecord.java9
-rw-r--r--src/java/org/apache/poi/hssf/record/aggregates/FormulaRecordAggregate.java8
-rw-r--r--src/testcases/org/apache/poi/hssf/record/aggregates/TestFormulaRecordAggregate.java34
3 files changed, 51 insertions, 0 deletions
diff --git a/src/java/org/apache/poi/hssf/record/StringRecord.java b/src/java/org/apache/poi/hssf/record/StringRecord.java
index c551997d72..6b6cdea241 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 dd96a51948..6e332254ce 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 0000000000..23a368934a
--- /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());
+
+
+ }
+
+}