Author: tilman
Date: Sun Sep 14 15:34:25 2025
New Revision: 1928470

Log:
PDFBOX-5660: refactor

Modified:
   
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElement.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElement.java
==============================================================================
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElement.java
     Sun Sep 14 15:34:21 2025        (r1928469)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/documentinterchange/logicalstructure/PDStructureElement.java
     Sun Sep 14 15:34:25 2025        (r1928470)
@@ -16,7 +16,6 @@
  */
 package org.apache.pdfbox.pdmodel.documentinterchange.logicalstructure;
 
-import java.util.Iterator;
 import java.util.Map;
 
 import org.apache.pdfbox.cos.COSArray;
@@ -170,16 +169,11 @@ public class PDStructureElement extends
         COSBase a = this.getCOSObject().getDictionaryObject(COSName.A);
         if (a instanceof COSArray)
         {
-            COSArray aa = (COSArray) a;
-            Iterator<COSBase> it = aa.iterator();
+            COSArray array = (COSArray) a;
             PDAttributeObject ao = null;
-            while (it.hasNext())
+            for (int i = 0; i < array.size(); ++i)
             {
-                COSBase item = it.next();
-                if (item instanceof COSObject)
-                {
-                    item = ((COSObject) item).getObject();
-                }
+                COSBase item = array.getObject(i);
                 if (item instanceof COSDictionary)
                 {
                     ao = PDAttributeObject.create((COSDictionary) item);
@@ -188,6 +182,8 @@ public class PDStructureElement extends
                 }
                 else if (item instanceof COSInteger)
                 {
+                    // Read "14.7.5.3 Attribute Revision Numbers"
+                    // This is additional to the /R entry
                     attributes.setRevisionNumber(ao, ((COSNumber) 
item).intValue());
                 }
             }
@@ -345,15 +341,10 @@ public class PDStructureElement extends
         if (c instanceof COSArray)
         {
             COSArray array = (COSArray) c;
-            Iterator<COSBase> it = array.iterator();
             String className = null;
-            while (it.hasNext())
+            for (int i = 0; i < array.size(); ++i)
             {
-                COSBase item = it.next();
-                if (item instanceof COSObject)
-                {
-                    item = ((COSObject) item).getObject();
-                }
+                COSBase item = array.getObject(i);
                 if (item instanceof COSName)
                 {
                     className = ((COSName) item).getName();
@@ -361,7 +352,9 @@ public class PDStructureElement extends
                 }
                 else if (item instanceof COSInteger)
                 {
-                    classNames.setRevisionNumber(className, ((COSInteger) 
item).intValue());
+                    // Read "14.7.5.3 Attribute Revision Numbers"
+                    // This is additional to the /R entry
+                    classNames.setRevisionNumber(className, ((COSNumber) 
item).intValue());
                 }
             }
         }

Reply via email to