aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/java/org/apache/poi/ss/usermodel/CellCopyPolicy.java27
-rw-r--r--src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java2
2 files changed, 21 insertions, 8 deletions
diff --git a/src/java/org/apache/poi/ss/usermodel/CellCopyPolicy.java b/src/java/org/apache/poi/ss/usermodel/CellCopyPolicy.java
index 80043210a6..8a0377b9a8 100644
--- a/src/java/org/apache/poi/ss/usermodel/CellCopyPolicy.java
+++ b/src/java/org/apache/poi/ss/usermodel/CellCopyPolicy.java
@@ -20,7 +20,7 @@ package org.apache.poi.ss.usermodel;
import org.apache.poi.util.Beta;
@Beta
-public class CellCopyPolicy implements Cloneable {
+public class CellCopyPolicy {
// cell-level policies
public static final boolean DEFAULT_COPY_CELL_VALUE_POLICY = true;
public static final boolean DEFAULT_COPY_CELL_STYLE_POLICY = true;
@@ -55,6 +55,24 @@ public class CellCopyPolicy implements Cloneable {
*/
public CellCopyPolicy() { }
+ /**
+ * Copy constructor
+ *
+ * @param other policy to copy
+ */
+ public CellCopyPolicy(CellCopyPolicy other) {
+ copyCellValue = other.isCopyCellValue();
+ copyCellStyle = other.isCopyCellStyle();
+ copyCellFormula = other.isCopyCellFormula();
+ copyHyperlink = other.isCopyHyperlink();
+ mergeHyperlink = other.isMergeHyperlink();
+
+ copyRowHeight = other.isCopyRowHeight();
+ condenseRows = other.isCondenseRows();
+
+ copyMergedRegions = other.isCopyMergedRegions();
+ }
+
// should builder be replaced with CellCopyPolicy setters that return the object
// to allow setters to be chained together?
// policy.setCopyCellValue(true).setCopyCellStyle(true)
@@ -134,7 +152,7 @@ public class CellCopyPolicy implements Cloneable {
}
}
- private Builder createBuilder() {
+ public Builder createBuilder() {
final Builder builder = new Builder()
.cellValue(copyCellValue)
.cellStyle(copyCellStyle)
@@ -146,11 +164,6 @@ public class CellCopyPolicy implements Cloneable {
.mergedRegions(copyMergedRegions);
return builder;
}
-
- @Override
- public CellCopyPolicy clone() {
- return createBuilder().build();
- }
/*
* Cell-level policies
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
index 379a675bba..fd3674b3e0 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
@@ -2705,7 +2705,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
// FIXME: is special behavior needed if srcRows and destRows belong to the same sheets and the regions overlap?
- final CellCopyPolicy options = policy.clone();
+ final CellCopyPolicy options = new CellCopyPolicy(policy);
// avoid O(N^2) performance scanning through all regions for each row
// merged regions will be copied after all the rows have been copied
options.setCopyMergedRegions(false);