You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2021/03/20 14:18:50 UTC

svn commit: r1887854 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive: annotation/layout/PlainText.java form/PlainText.java

Author: tilman
Date: Sat Mar 20 14:18:50 2021
New Revision: 1887854

URL: http://svn.apache.org/viewvc?rev=1887854&view=rev
Log:
PDFBOX-4892: improve performance, as suggested by valerybokov; use functional syntax

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/layout/PlainText.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PlainText.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/layout/PlainText.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/layout/PlainText.java?rev=1887854&r1=1887853&r2=1887854&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/layout/PlainText.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/layout/PlainText.java Sat Mar 20 14:18:50 2021
@@ -21,7 +21,6 @@ import java.text.AttributedString;
 import java.text.BreakIterator;
 import java.text.AttributedCharacterIterator.Attribute;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 
 import org.apache.pdfbox.pdmodel.font.PDFont;
@@ -51,15 +50,15 @@ public class PlainText
      */
     public PlainText(String textValue)
     {
-        List<String> parts = Arrays.asList(textValue.replaceAll("\t", " ").split("\\r\\n|\\n|\\r|\\u2028|\\u2029"));
-        paragraphs = new ArrayList<>();
+        String[] parts = textValue.replaceAll("\t", " ").split("\\r\\n|\\n|\\r|\\u2028|\\u2029");
+        paragraphs = new ArrayList<>(parts.length);
         for (String part : parts)
         {
-        	// Acrobat prints a space for an empty paragraph
-        	if (part.length() == 0)
-        	{
-        		part = " ";
-        	}
+            // Acrobat prints a space for an empty paragraph
+            if (part.length() == 0)
+            {
+                part = " ";
+            }
             paragraphs.add(new Paragraph(part));
         }
     }
@@ -74,11 +73,8 @@ public class PlainText
      */
     public PlainText(List<String> listValue)
     {
-        paragraphs = new ArrayList<>();
-        for (String part : listValue)
-        {
-            paragraphs.add(new Paragraph(part));
-        }
+        paragraphs = new ArrayList<>(listValue.size());
+        listValue.forEach(part -> paragraphs.add(new Paragraph(part)));
     }
     
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PlainText.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PlainText.java?rev=1887854&r1=1887853&r2=1887854&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PlainText.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PlainText.java Sat Mar 20 14:18:50 2021
@@ -51,13 +51,15 @@ class PlainText
      */
     PlainText(String textValue)
     {
-        paragraphs = new ArrayList<>();
-        if (textValue.isEmpty()) {
+        if (textValue.isEmpty())
+        {
+            paragraphs = new ArrayList<>(1);
             paragraphs.add(new Paragraph(""));
         }
         else
         {
-            List<String> parts = Arrays.asList(textValue.replaceAll("\t", " ").split("\\r\\n|\\n|\\r|\\u2028|\\u2029"));
+            String[] parts = textValue.replaceAll("\t", " ").split("\\r\\n|\\n|\\r|\\u2028|\\u2029");
+            paragraphs = new ArrayList<>(parts.length);
             for (String part : parts)
             {
                 // Acrobat prints a space for an empty paragraph
@@ -80,11 +82,8 @@ class PlainText
      */
     PlainText(List<String> listValue)
     {
-        paragraphs = new ArrayList<>();
-        for (String part : listValue)
-        {
-            paragraphs.add(new Paragraph(part));
-        }
+        paragraphs = new ArrayList<>(listValue.size());
+        listValue.forEach(part -> paragraphs.add(new Paragraph(part)));
     }
     
     /**