]> source.dussan.org Git - poi.git/commitdiff
bug 61474, github #81: pull up methods from RowShifter to BaseRowColShifter, since...
authorJaven O'Neal <onealj@apache.org>
Sat, 4 Nov 2017 09:07:32 +0000 (09:07 +0000)
committerJaven O'Neal <onealj@apache.org>
Sat, 4 Nov 2017 09:07:32 +0000 (09:07 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1814261 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/usermodel/helpers/HSSFColumnShifter.java
src/java/org/apache/poi/ss/usermodel/helpers/BaseRowColShifter.java
src/java/org/apache/poi/ss/usermodel/helpers/ColumnShifter.java
src/java/org/apache/poi/ss/usermodel/helpers/RowShifter.java
src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFColumnShifter.java
src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowColShifter.java
src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowShifter.java

index 051e24ad5db74c27ea882504b0d331c774f2d258..2e9af38f2d4f2314df5af35b42f5dbae35e7e485 100644 (file)
@@ -28,6 +28,8 @@ import org.apache.poi.util.POILogger;
 
 /**
  * Helper for shifting columns up or down
+ *
+ * @since POI 4.0.0
  */
 // non-Javadoc: When possible, code should be implemented in the ColumnShifter abstract class to avoid duplication with
 // {@link org.apache.poi.xssf.usermodel.helpers.XSSFColumnShifter}
index 306e515220fe0db99b544b8b13c4ab03326acbae..3b92cf26dd4d518fcad33a3744b7feccb9814597 100644 (file)
@@ -28,10 +28,34 @@ import org.apache.poi.util.Internal;
 /**
  * Class for code common to {@link RowShifter} and {@link ColumnShifter}
  * Helper for shifting rows up or down and columns left and right
+ *
+ * @since POI 4.0.0
  */
 @Internal
 public abstract class BaseRowColShifter {
 
+    /**
+     * Updated named ranges
+     */
+    protected abstract void updateNamedRanges(FormulaShifter formulaShifter);
+
+    /**
+     * Update formulas.
+     */
+    protected abstract void updateFormulas(FormulaShifter formulaShifter);
+
+
+    public abstract void updateConditionalFormatting(FormulaShifter formulaShifter);
+
+    /**
+     * Shift the Hyperlink anchors (not the hyperlink text, even if the hyperlink
+     * is of type LINK_DOCUMENT and refers to a cell that was shifted). Hyperlinks
+     * do not track the content they point to.
+     *
+     * @param formulaShifter the formula shifting policy
+     */
+    public abstract void updateHyperlinks(FormulaShifter formulaShifter);
+
     public static CellRangeAddress shiftRange(FormulaShifter formulaShifter, CellRangeAddress cra, int currentExternSheetIx) {
         // FormulaShifter works well in terms of Ptgs - so convert CellRangeAddress to AreaPtg (and back) here
         AreaPtg aptg = new AreaPtg(cra.getFirstRow(), cra.getLastRow(), cra.getFirstColumn(), cra.getLastColumn(), false, false, false, false);
index fdd064a3d7b498fb42bd2cad09b55266b67198ec..444039a41b4fd849457e0e2b49a354bb95027490 100644 (file)
@@ -29,6 +29,8 @@ import org.apache.poi.util.Beta;
 
 /**
  * Helper for shifting columns up or down
+ *
+ * @since POI 4.0.0
  */
 // non-Javadoc: This abstract class exists to consolidate duplicated code between XSSFColumnShifter and HSSFColumnShifter
 // (currently methods sprinkled throughout HSSFSheet)
index ad7520715bd12de86b4e087230c287f3119e72c3..d0ac13d7f2640d3ddae620878c16164ec23c7afd 100644 (file)
@@ -22,11 +22,8 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.poi.ss.formula.FormulaShifter;
-import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.util.CellRangeAddress;
-import org.apache.poi.util.Internal;
 
 /**
  * Helper for shifting rows up or down
@@ -118,35 +115,4 @@ public abstract class RowShifter extends BaseRowColShifter {
         // if the merged-region and the overwritten area intersect, we need to remove it
         return merged.intersects(overwrite);
     }
-
-    /**
-     * Updated named ranges
-     */
-    public abstract void updateNamedRanges(FormulaShifter formulaShifter);
-
-    /**
-     * Update formulas.
-     */
-    public abstract void updateFormulas(FormulaShifter formulaShifter);
-
-    /**
-     * Update the formulas in specified row using the formula shifting policy specified by shifter
-     *
-     * @param row the row to update the formulas on
-     * @param formulaShifter the formula shifting policy
-     */
-    //@Internal
-    //public abstract void updateRowFormulas(Row row, FormulaShifter formulaShifter);
-
-    public abstract void updateConditionalFormatting(FormulaShifter formulaShifter);
-
-    /**
-     * Shift the Hyperlink anchors (not the hyperlink text, even if the hyperlink
-     * is of type LINK_DOCUMENT and refers to a cell that was shifted). Hyperlinks
-     * do not track the content they point to.
-     *
-     * @param formulaShifter the formula shifting policy
-     */
-    public abstract void updateHyperlinks(FormulaShifter formulaShifter);
-
 }
index 12ca45b81aeb93abdb23523c80a5042035147843..8f8a712000a9c301d8596ce4d6bd4b05666d7b45 100644 (file)
@@ -26,6 +26,8 @@ import org.apache.poi.xssf.usermodel.XSSFSheet;
 
 /**
  * Helper for shifting columns up or down
+ *
+ * @since POI 4.0.0
  */
 // non-Javadoc: When possible, code should be implemented in the ColumnShifter abstract class to avoid duplication with
 // {@link org.apache.poi.hssf.usermodel.helpers.HSSFColumnShifter}
index 03907b6c70ccb01471d008b9e0f356fe0e5870ea..50ed79313fffe0b5e89ca49f0c10f739a299aaf7 100644 (file)
@@ -37,9 +37,11 @@ import java.util.List;
 
 /**
  * Class for code common to {@link XSSFRowShifter} and {@link XSSFColumnShifter}
+ *
+ * @since POI 4.0.0
  */
 @Internal
-/*private*/ final class XSSFRowColShifter extends BaseRowColShifter {
+/*private*/ final class XSSFRowColShifter {
     private static final POILogger logger = POILogFactory.getLogger(XSSFRowColShifter.class);
 
     private XSSFRowColShifter() { /*no instances for static classes*/}
@@ -189,7 +191,7 @@ import java.util.List;
             boolean changed = false;
             List<CellRangeAddress> temp = new ArrayList<>();
             for (CellRangeAddress craOld : cellRanges) {
-                CellRangeAddress craNew = shiftRange(formulaShifter, craOld, sheetIndex);
+                CellRangeAddress craNew = BaseRowColShifter.shiftRange(formulaShifter, craOld, sheetIndex);
                 if (craNew == null) {
                     changed = true;
                     continue;
@@ -234,7 +236,7 @@ import java.util.List;
             XSSFHyperlink xhyperlink = (XSSFHyperlink) hyperlink;
             String cellRef = xhyperlink.getCellRef();
             CellRangeAddress cra = CellRangeAddress.valueOf(cellRef);
-            CellRangeAddress shiftedRange = shiftRange(formulaShifter, cra, sheetIndex);
+            CellRangeAddress shiftedRange = BaseRowColShifter.shiftRange(formulaShifter, cra, sheetIndex);
             if (shiftedRange != null && shiftedRange != cra) {
                 // shiftedRange should not be null. If shiftedRange is null, that means
                 // that a hyperlink wasn't deleted at the beginning of shiftRows when
index 6b5d8256dd5d5b0e775d663bed50fd25f98c6f00..ebcb095d6fcbbc656acb248ec803a15ec305d28d 100644 (file)
@@ -47,6 +47,12 @@ public final class XSSFRowShifter extends RowShifter {
         XSSFRowColShifter.updateFormulas(sheet, formulaShifter);
     }
 
+    /**
+     * Update the formulas in specified row using the formula shifting policy specified by shifter
+     *
+     * @param row the row to update the formulas on
+     * @param formulaShifter the formula shifting policy
+     */
     @Internal(since="3.15 beta 2")
     public void updateRowFormulas(XSSFRow row, FormulaShifter formulaShifter) {
         XSSFRowColShifter.updateRowFormulas(row, formulaShifter);