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 2020/03/31 19:44:34 UTC

svn commit: r1875965 - /pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/schema/XMPSchema.java

Author: tilman
Date: Tue Mar 31 19:44:33 2020
New Revision: 1875965

URL: http://svn.apache.org/viewvc?rev=1875965&view=rev
Log:
PDFBOX-4071: simplify code, use functional syntax, avoid ClassCastException

Modified:
    pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/schema/XMPSchema.java

Modified: pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/schema/XMPSchema.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/schema/XMPSchema.java?rev=1875965&r1=1875964&r2=1875965&view=diff
==============================================================================
--- pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/schema/XMPSchema.java (original)
+++ pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/schema/XMPSchema.java Tue Mar 31 19:44:33 2020
@@ -624,23 +624,24 @@ public class XMPSchema extends AbstractS
      */
     private void removeUnqualifiedArrayValue(String arrayName, String fieldValue)
     {
-        ArrayProperty array = (ArrayProperty) getAbstractProperty(arrayName);
-        if (array != null)
+        AbstractField abstractProperty = getAbstractProperty(arrayName);
+        if (!(abstractProperty instanceof ArrayProperty))
         {
-            List<AbstractField> toDelete = new ArrayList<>();
-            for (AbstractField abstractField : array.getContainer().getAllProperties())
-            {
-                AbstractSimpleProperty tmp = (AbstractSimpleProperty) abstractField;
-                if (tmp.getStringValue().equals(fieldValue))
-                {
-                    toDelete.add(tmp);
-                }
-            }
-            for (AbstractField aToDelete : toDelete)
+            return;
+        }
+
+        ArrayProperty array = (ArrayProperty) abstractProperty;
+
+        List<AbstractField> toDelete = new ArrayList<>();
+        for (AbstractField abstractField : array.getContainer().getAllProperties())
+        {
+            AbstractSimpleProperty tmp = (AbstractSimpleProperty) abstractField;
+            if (tmp.getStringValue().equals(fieldValue))
             {
-                array.getContainer().removeProperty(aToDelete);
+                toDelete.add(tmp);
             }
         }
+        toDelete.forEach(aToDelete -> array.getContainer().removeProperty(aToDelete));
     }
 
     /**
@@ -706,15 +707,12 @@ public class XMPSchema extends AbstractS
      */
     public List<String> getUnqualifiedBagValueList(String bagName)
     {
-        ArrayProperty array = (ArrayProperty) getAbstractProperty(bagName);
-        if (array != null)
-        {
-            return array.getElementsAsString();
-        }
-        else
+        AbstractField abstractProperty = getAbstractProperty(bagName);
+        if (abstractProperty instanceof ArrayProperty)
         {
-            return null;
+            return ((ArrayProperty) getAbstractProperty(bagName)).getElementsAsString();
         }
+        return null;
     }
 
     /**
@@ -740,23 +738,24 @@ public class XMPSchema extends AbstractS
      */
     public void removeUnqualifiedArrayValue(String arrayName, AbstractField fieldValue)
     {
-        ArrayProperty array = (ArrayProperty) getAbstractProperty(arrayName);
-        if (array != null)
+        AbstractField abstractProperty = getAbstractProperty(arrayName);
+        if (!(abstractProperty instanceof ArrayProperty))
         {
-            List<AbstractField> toDelete = new ArrayList<>();
-            for (AbstractField abstractField : array.getContainer().getAllProperties())
-            {
-                AbstractSimpleProperty tmp = (AbstractSimpleProperty) abstractField;
-                if (tmp.equals(fieldValue))
-                {
-                    toDelete.add(tmp);
-                }
-            }
-            for (AbstractField aToDelete : toDelete)
+            return;
+        }
+
+        ArrayProperty array = (ArrayProperty) abstractProperty;
+
+        List<AbstractField> toDelete = new ArrayList<>();
+        for (AbstractField abstractField : array.getContainer().getAllProperties())
+        {
+            AbstractSimpleProperty tmp = (AbstractSimpleProperty) abstractField;
+            if (tmp.equals(fieldValue))
             {
-                array.getContainer().removeProperty(aToDelete);
+                toDelete.add(tmp);
             }
         }
+        toDelete.forEach((aToDelete) -> array.getContainer().removeProperty(aToDelete));
     }
 
     /**
@@ -852,15 +851,12 @@ public class XMPSchema extends AbstractS
      */
     public List<String> getUnqualifiedSequenceValueList(String seqName)
     {
-        ArrayProperty array = (ArrayProperty) getAbstractProperty(seqName);
-        if (array != null)
+        AbstractField abstractProperty = getAbstractProperty(seqName);
+        if (abstractProperty instanceof ArrayProperty)
         {
-            return array.getElementsAsString();
-        }
-        else
-        {
-            return null;
+            return ((ArrayProperty) abstractProperty).getElementsAsString();
         }
+        return null;
     }
 
     /**
@@ -873,22 +869,23 @@ public class XMPSchema extends AbstractS
      */
     public void removeUnqualifiedSequenceDateValue(String seqName, Calendar date)
     {
-        ArrayProperty seq = (ArrayProperty) getAbstractProperty(seqName);
-        if (seq != null)
+        AbstractField abstractProperty = getAbstractProperty(seqName);
+        if (!(abstractProperty instanceof ArrayProperty))
         {
-            List<AbstractField> toDelete = new ArrayList<>();
-            for (AbstractField tmp : seq.getContainer().getAllProperties())
-            {
-                if (tmp instanceof DateType && ((DateType) tmp).getValue().equals(date))
-                {
-                    toDelete.add(tmp);
-                }
-            }
-            for (AbstractField aToDelete : toDelete)
+            return;
+        }
+
+        ArrayProperty seq = (ArrayProperty) abstractProperty;
+
+        List<AbstractField> toDelete = new ArrayList<>();
+        for (AbstractField tmp : seq.getContainer().getAllProperties())
+        {
+            if (tmp instanceof DateType && ((DateType) tmp).getValue().equals(date))
             {
-                seq.getContainer().removeProperty(aToDelete);
+                toDelete.add(tmp);
             }
         }
+        toDelete.forEach((aToDelete) -> seq.getContainer().removeProperty(aToDelete));
     }
 
     /**
@@ -931,17 +928,18 @@ public class XMPSchema extends AbstractS
      */
     public List<Calendar> getUnqualifiedSequenceDateValueList(String seqName)
     {
-        List<Calendar> retval = null;
-        ArrayProperty seq = (ArrayProperty) getAbstractProperty(seqName);
-        if (seq != null)
+        AbstractField abstractProperty = getAbstractProperty(seqName);
+        if (!(abstractProperty instanceof ArrayProperty))
         {
-            retval = new ArrayList<>();
-            for (AbstractField child : seq.getContainer().getAllProperties())
+            return null;
+        }
+        ArrayProperty seq = (ArrayProperty) abstractProperty;
+        List<Calendar> retval = new ArrayList<>();
+        for (AbstractField child : seq.getContainer().getAllProperties())
+        {
+            if (child instanceof DateType)
             {
-                if (child instanceof DateType)
-                {
-                    retval.add(((DateType) child).getValue());
-                }
+                retval.add(((DateType) child).getValue());
             }
         }
         return retval;
@@ -985,10 +983,7 @@ public class XMPSchema extends AbstractS
                 reordered.add(tmp);
                 toDelete.add(tmp);
             }
-            for (AbstractField aToDelete : toDelete)
-            {
-                alt.removeProperty(aToDelete);
-            }
+            toDelete.forEach(aToDelete -> alt.removeProperty(aToDelete));
             it = reordered.iterator();
             while (it.hasNext())
             {