]> source.dussan.org Git - poi.git/commitdiff
more usage of shared rebuildRows
authorPJ Fanning <fanningpj@apache.org>
Mon, 9 Jul 2018 20:49:21 +0000 (20:49 +0000)
committerPJ Fanning <fanningpj@apache.org>
Mon, 9 Jul 2018 20:49:21 +0000 (20:49 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1835494 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java

index b87b78beb42d9cb731749ddafb6fcbf638b47055..f6d00bac0052769ffe6b607d9986048dc9700ec5 100644 (file)
@@ -3171,17 +3171,9 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet  {
             entry.getKey().setRow(entry.getValue());
         }
 
-        //rebuild the _rows map
-        Map<Integer, XSSFRow> map = new HashMap<>();
-        for(XSSFRow r : _rows.values()) {
-            // Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
-            final Integer rownumI = Integer.valueOf(r.getRowNum()); // NOSONAR
-            map.put(rownumI, r);
-        }
-        _rows.clear();
-        _rows.putAll(map);
-
+        rebuildRows();
     }
+
     private int shiftedRowNum(int startRow, int endRow, int n, int rownum) {
         // no change if before any affected row
         if(rownum < startRow && (n > 0 || (startRow - rownum) > n)) {
@@ -3208,6 +3200,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet  {
         // row is part of the shifted block
         return rownum + n;
     }
+
     private void shiftCommentsForColumns(XSSFVMLDrawing vml, int startColumnIndex, int endColumnIndex, final int n){
         // then do the actual moving and also adjust comments/rowHeight
         // we need to sort it in a way so the shifting does not mess up the structures, 
@@ -3257,16 +3250,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet  {
             entry.getKey().setColumn(entry.getValue());
         }
 
-        //rebuild the _rows map
-        Map<Integer, XSSFRow> map = new HashMap<>();
-        for(XSSFRow r : _rows.values()) {
-            // Performance optimization: explicit boxing is slightly faster than auto-unboxing, though may use more memory
-            final Integer rownumI = Integer.valueOf(r.getRowNum()); // NOSONAR
-            map.put(rownumI, r);
-        }
-        _rows.clear();
-        _rows.putAll(map);
-
+        rebuildRows();
     }
 
     /**
@@ -3631,8 +3615,10 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet  {
             }*/
         }
 
-        int minCell=Integer.MAX_VALUE, maxCell=Integer.MIN_VALUE;
-        for(XSSFRow row : _rows.values()){
+        int minCell = Integer.MAX_VALUE, maxCell = Integer.MIN_VALUE;
+        for(Map.Entry<Integer, XSSFRow> entry : _rows.entrySet()) {
+            XSSFRow row = entry.getValue();
+
             // first perform the normal write actions for the row
             row.onDocumentWrite();