You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2020/11/28 14:14:32 UTC

svn commit: r1883898 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: cos/ pdmodel/ pdmodel/common/ pdmodel/fdf/ pdmodel/graphics/color/ pdmodel/interactive/action/ pdmodel/interactive/form/

Author: lehmi
Date: Sat Nov 28 14:14:32 2020
New Revision: 1883898

URL: http://svn.apache.org/viewvc?rev=1883898&view=rev
Log:
PDFBOX-4954: replace COSArrayList.converterToCOSArray call, adjust constructor of COSArray 

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocumentCatalog.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNumberTreeNode.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFDictionary.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFPage.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFTemplate.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAction.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTerminalField.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java Sat Nov 28 14:14:32 2020
@@ -47,15 +47,25 @@ public class COSArray extends COSBase im
     /**
      * Use the given list to initialize the COSArray.
      * 
-     * @param cosObjects the initial list of COSObjects
+     * @param cosObjectables the initial list of COSObjectables
      */
-    public COSArray(List<? extends COSBase> cosObjects)
+    public COSArray(List<? extends COSObjectable> cosObjectables)
     {
-        if (cosObjects == null)
+        if (cosObjectables == null)
         {
-            throw new IllegalArgumentException("List of COS objects cannot be null");
+            throw new IllegalArgumentException("List of COSObjectables cannot be null");
+        }
+        for (COSObjectable cosObjectable : cosObjectables)
+        {
+            if (cosObjectable != null)
+            {
+                objects.add(cosObjectable.getCOSObject());
+            }
+            else
+            {
+                objects.add(null);
+            }
         }
-        objects.addAll(cosObjects);
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocumentCatalog.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocumentCatalog.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocumentCatalog.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocumentCatalog.java Sat Nov 28 14:14:32 2020
@@ -233,7 +233,7 @@ public class PDDocumentCatalog implement
      */
     public void setThreads(List<PDThread> threads)
     {
-        root.setItem(COSName.THREADS, COSArrayList.converterToCOSArray(threads));
+        root.setItem(COSName.THREADS, new COSArray(threads));
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java Sat Nov 28 14:14:32 2020
@@ -584,7 +584,7 @@ public class PDPage implements COSObject
      */
     public void setThreadBeads(List<PDThreadBead> beads)
     {
-        page.setItem(COSName.B, COSArrayList.converterToCOSArray(beads));
+        page.setItem(COSName.B, new COSArray(beads));
     }
 
     /**
@@ -729,7 +729,7 @@ public class PDPage implements COSObject
      */
     public void setAnnotations(List<PDAnnotation> annotations)
     {
-        page.setItem(COSName.ANNOTS, COSArrayList.converterToCOSArray(annotations));
+        page.setItem(COSName.ANNOTS, new COSArray(annotations));
     }
 
     @Override

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSArrayList.java Sat Nov 28 14:14:32 2020
@@ -300,7 +300,7 @@ public class COSArrayList<E> implements
      * @throws IllegalArgumentException if an object type is not supported for conversion to a
      * COSBase object.
      */
-    public static COSArray converterToCOSArray( List<?> cosObjectableList )
+    public static COSArray converterToCOSArray(List<?> cosObjectableList)
     {
         COSArray array = null;
         if( cosObjectableList != null )

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java Sat Nov 28 14:14:32 2020
@@ -138,7 +138,7 @@ public abstract class PDNameTreeNode<T e
         if (kids != null && !kids.isEmpty())
         {
             kids.forEach(kidsNode -> kidsNode.setParent(this));
-            node.setItem( COSName.KIDS, COSArrayList.converterToCOSArray( kids ) );
+            node.setItem(COSName.KIDS, new COSArray(kids));
             // root nodes with kids don't have Names
             if (isRootNode())
             {

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNumberTreeNode.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNumberTreeNode.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNumberTreeNode.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNumberTreeNode.java Sat Nov 28 14:14:32 2020
@@ -114,16 +114,17 @@ public class PDNumberTreeNode implements
             PDNumberTreeNode firstKid = kids.get(0);
             PDNumberTreeNode lastKid = kids.get(kids.size() - 1);
             Integer lowerLimit = firstKid.getLowerLimit();
-            this.setLowerLimit(lowerLimit);
+            setLowerLimit(lowerLimit);
             Integer upperLimit = lastKid.getUpperLimit();
-            this.setUpperLimit(upperLimit);
+            setUpperLimit(upperLimit);
+            node.setItem(COSName.KIDS, new COSArray(kids));
         }
         else if ( node.getDictionaryObject( COSName.NUMS ) == null )
         {
             // Remove limits if there are no kids and no numbers set.
             node.setItem( COSName.LIMITS, null);
+            node.setItem(COSName.KIDS, null);
         }
-        node.setItem( COSName.KIDS, COSArrayList.converterToCOSArray( kids ) );
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFDictionary.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFDictionary.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFDictionary.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFDictionary.java Sat Nov 28 14:14:32 2020
@@ -338,7 +338,7 @@ public class FDFDictionary implements CO
      */
     public final void setFields(List<FDFField> fields)
     {
-        fdf.setItem(COSName.FIELDS, COSArrayList.converterToCOSArray(fields));
+        fdf.setItem(COSName.FIELDS, new COSArray(fields));
     }
 
     /**
@@ -390,7 +390,7 @@ public class FDFDictionary implements CO
      */
     public void setPages(List<FDFPage> pages)
     {
-        fdf.setItem(COSName.PAGES, COSArrayList.converterToCOSArray(pages));
+        fdf.setItem(COSName.PAGES, new COSArray(pages));
     }
 
     /**
@@ -451,7 +451,7 @@ public class FDFDictionary implements CO
      */
     public final void setAnnotations(List<FDFAnnotation> annots)
     {
-        fdf.setItem(COSName.ANNOTS, COSArrayList.converterToCOSArray(annots));
+        fdf.setItem(COSName.ANNOTS, new COSArray(annots));
     }
 
     /**
@@ -526,7 +526,7 @@ public class FDFDictionary implements CO
      */
     public void setEmbeddedFDFs(List<PDFileSpecification> embedded)
     {
-        fdf.setItem(COSName.EMBEDDED_FDFS, COSArrayList.converterToCOSArray(embedded));
+        fdf.setItem(COSName.EMBEDDED_FDFS, new COSArray(embedded));
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFField.java Sat Nov 28 14:14:32 2020
@@ -188,7 +188,7 @@ public class FDFField implements COSObje
      */
     public final void setKids(List<FDFField> kids)
     {
-        field.setItem(COSName.KIDS, COSArrayList.converterToCOSArray(kids));
+        field.setItem(COSName.KIDS, new COSArray(kids));
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFPage.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFPage.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFPage.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFPage.java Sat Nov 28 14:14:32 2020
@@ -91,7 +91,7 @@ public class FDFPage implements COSObjec
      */
     public void setTemplates(List<FDFTemplate> templates)
     {
-        page.setItem(COSName.TEMPLATES, COSArrayList.converterToCOSArray(templates));
+        page.setItem(COSName.TEMPLATES, new COSArray(templates));
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFTemplate.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFTemplate.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFTemplate.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFTemplate.java Sat Nov 28 14:14:32 2020
@@ -117,7 +117,7 @@ public class FDFTemplate implements COSO
      */
     public void setFields(List<FDFField> fields)
     {
-        template.setItem(COSName.FIELDS, COSArrayList.converterToCOSArray(fields));
+        template.setItem(COSName.FIELDS, new COSArray(fields));
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDICCBased.java Sat Nov 28 14:14:32 2020
@@ -41,7 +41,6 @@ import org.apache.pdfbox.cos.COSStream;
 import org.apache.pdfbox.cos.COSObject;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDResources;
-import org.apache.pdfbox.pdmodel.common.COSArrayList;
 import org.apache.pdfbox.pdmodel.common.PDRange;
 import org.apache.pdfbox.pdmodel.common.PDStream;
 
@@ -521,7 +520,7 @@ public final class PDICCBased extends PD
         COSArray altArray = null;
         if(list != null)
         {
-            altArray = COSArrayList.converterToCOSArray(list);
+            altArray = new COSArray(list);
         }
         stream.getCOSObject().setItem(COSName.ALTERNATE, altArray);
     }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAction.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAction.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAction.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/action/PDAction.java Sat Nov 28 14:14:32 2020
@@ -153,8 +153,8 @@ public abstract class PDAction implement
      *
      * @param next The Next action or sequence of actions.
      */
-    public void setNext( List<?> next )
+    public void setNext(List<PDAction> next)
     {
-        action.setItem(COSName.NEXT, COSArrayList.converterToCOSArray(next));
+        action.setItem(COSName.NEXT, new COSArray(next));
     }
 }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java Sat Nov 28 14:14:32 2020
@@ -391,7 +391,7 @@ public final class PDAcroForm implements
      */
     public void setFields(List<PDField> fields)
     {
-        dictionary.setItem(COSName.FIELDS, COSArrayList.converterToCOSArray(fields));
+        dictionary.setItem(COSName.FIELDS, new COSArray(fields));
     }
     
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDNonTerminalField.java Sat Nov 28 14:14:32 2020
@@ -27,7 +27,6 @@ import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSInteger;
 import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.pdmodel.common.COSArrayList;
 import org.apache.pdfbox.pdmodel.fdf.FDFField;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationWidget;
 
@@ -159,7 +158,7 @@ public class PDNonTerminalField extends
      */
     public void setChildren(List<PDField> children)
     {
-        COSArray kidsArray = COSArrayList.converterToCOSArray(children);
+        COSArray kidsArray = new COSArray(children);
         getCOSObject().setItem(COSName.KIDS, kidsArray);
     }
 

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTerminalField.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTerminalField.java?rev=1883898&r1=1883897&r2=1883898&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTerminalField.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDTerminalField.java Sat Nov 28 14:14:32 2020
@@ -24,7 +24,6 @@ import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSInteger;
 import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.pdmodel.common.COSArrayList;
 import org.apache.pdfbox.pdmodel.fdf.FDFField;
 import org.apache.pdfbox.pdmodel.interactive.action.PDFormFieldAdditionalActions;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationWidget;
@@ -193,7 +192,7 @@ public abstract class PDTerminalField ex
      */
     public void setWidgets(List<PDAnnotationWidget> children)
     {
-        COSArray kidsArray = COSArrayList.converterToCOSArray(children);
+        COSArray kidsArray = new COSArray(children);
         getCOSObject().setItem(COSName.KIDS, kidsArray);
         for (PDAnnotationWidget widget : children)
         {