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 2021/03/14 16:57:24 UTC

svn commit: r1887639 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics: ./ color/ form/ image/ optionalcontent/

Author: lehmi
Date: Sun Mar 14 16:57:24 2021
New Revision: 1887639

URL: http://svn.apache.org/viewvc?rev=1887639&view=rev
Log:
PDFBOX-4892: use convenience methods to simplify code

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDXObject.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.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/graphics/color/PDLab.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDOutputIntent.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/form/PDFormXObject.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/optionalcontent/PDOptionalContentProperties.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDXObject.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDXObject.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDXObject.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/PDXObject.java Sun Mar 14 16:57:24 2021
@@ -72,7 +72,7 @@ public class PDXObject implements COSObj
         else if (COSName.FORM.getName().equals(subtype))
         {
             ResourceCache cache = resources != null ? resources.getResourceCache() : null;
-            COSDictionary group = (COSDictionary)stream.getDictionaryObject(COSName.GROUP);
+            COSDictionary group = stream.getCOSDictionary(COSName.GROUP);
             if (group != null && COSName.TRANSPARENCY.equals(group.getCOSName(COSName.S)))
             {
                 return new PDTransparencyGroup(stream, cache);

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCIEDictionaryBasedColorSpace.java Sun Mar 14 16:57:24 2021
@@ -115,7 +115,7 @@ public abstract class PDCIEDictionaryBas
      */
     public final PDTristimulus getWhitepoint()
     {
-        COSArray wp = (COSArray) dictionary.getDictionaryObject(COSName.WHITE_POINT);
+        COSArray wp = dictionary.getCOSArray(COSName.WHITE_POINT);
         if (wp == null)
         {
             wp = new COSArray();
@@ -135,7 +135,7 @@ public abstract class PDCIEDictionaryBas
      */
     public final PDTristimulus getBlackPoint()
     {
-        COSArray bp = (COSArray) dictionary.getDictionaryObject(COSName.BLACK_POINT);
+        COSArray bp = dictionary.getCOSArray(COSName.BLACK_POINT);
         if (bp == null)
         {
             bp = new COSArray();

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalGray.java Sun Mar 14 16:57:24 2021
@@ -113,13 +113,7 @@ public final class PDCalGray extends PDC
      */
     public float getGamma()
     {
-        float retval = 1.0f;
-        COSNumber gamma = (COSNumber) dictionary.getDictionaryObject(COSName.GAMMA);
-        if (gamma != null)
-        {
-            retval = gamma.floatValue();
-        }
-        return retval;
+        return dictionary.getFloat(COSName.GAMMA, 1.0f);
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDCalRGB.java Sun Mar 14 16:57:24 2021
@@ -120,7 +120,7 @@ public class PDCalRGB extends PDCIEDicti
      */
     public final PDGamma getGamma()
     {
-        COSArray gammaArray = (COSArray) dictionary.getDictionaryObject(COSName.GAMMA);
+        COSArray gammaArray = dictionary.getCOSArray(COSName.GAMMA);
         if (gammaArray == null)
         {
             gammaArray = new COSArray();
@@ -139,7 +139,7 @@ public class PDCalRGB extends PDCIEDicti
      */
     public final float[] getMatrix()
     {
-        COSArray matrix = (COSArray)dictionary.getDictionaryObject(COSName.MATRIX);
+        COSArray matrix = dictionary.getCOSArray(COSName.MATRIX);
         if (matrix == null)
         {
             return new float[] {  1, 0, 0, 0, 1, 0, 0, 0, 1 };

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=1887639&r1=1887638&r2=1887639&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 Sun Mar 14 16:57:24 2021
@@ -462,7 +462,7 @@ public final class PDICCBased extends PD
      */
     public PDRange getRangeForComponent(int n)
     {
-        COSArray rangeArray = (COSArray) stream.getCOSObject().getDictionaryObject(COSName.RANGE);
+        COSArray rangeArray = stream.getCOSObject().getCOSArray(COSName.RANGE);
         if (rangeArray == null || rangeArray.size() < getNumberOfComponents() * 2)
         {
             return new PDRange(); // 0..1
@@ -476,7 +476,7 @@ public final class PDICCBased extends PD
      */
     public COSStream getMetadata()
     {
-        return (COSStream)stream.getCOSObject().getDictionaryObject(COSName.METADATA);
+        return stream.getCOSObject().getCOSStream(COSName.METADATA);
     }
 
     /**
@@ -532,7 +532,7 @@ public final class PDICCBased extends PD
      */
     public void setRangeForComponent(PDRange range, int n)
     {
-        COSArray rangeArray = (COSArray) stream.getCOSObject().getDictionaryObject(COSName.RANGE);
+        COSArray rangeArray = stream.getCOSObject().getCOSArray(COSName.RANGE);
         if (rangeArray == null)
         {
             rangeArray = new COSArray();

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDLab.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDLab.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDLab.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDLab.java Sun Mar 14 16:57:24 2021
@@ -194,7 +194,7 @@ public final class PDLab extends PDCIEDi
      */
     public PDRange getARange()
     {
-        COSArray rangeArray = (COSArray) dictionary.getDictionaryObject(COSName.RANGE);
+        COSArray rangeArray = dictionary.getCOSArray(COSName.RANGE);
         if (rangeArray == null)
         {
             rangeArray = getDefaultRangeArray();
@@ -209,7 +209,7 @@ public final class PDLab extends PDCIEDi
      */
     public PDRange getBRange()
     {
-        COSArray rangeArray = (COSArray) dictionary.getDictionaryObject(COSName.RANGE);
+        COSArray rangeArray = dictionary.getCOSArray(COSName.RANGE);
         if (rangeArray == null)
         {
             rangeArray = getDefaultRangeArray();
@@ -239,7 +239,7 @@ public final class PDLab extends PDCIEDi
 
     private void setComponentRangeArray(PDRange range, int index)
     {
-        COSArray rangeArray = (COSArray) dictionary.getDictionaryObject(COSName.RANGE);
+        COSArray rangeArray = dictionary.getCOSArray(COSName.RANGE);
         if (rangeArray == null)
         {
             rangeArray = getDefaultRangeArray();

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDOutputIntent.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDOutputIntent.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDOutputIntent.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDOutputIntent.java Sun Mar 14 16:57:24 2021
@@ -63,7 +63,7 @@ public final class PDOutputIntent implem
 
     public COSStream getDestOutputIntent()
     {
-        return (COSStream) dictionary.getDictionaryObject(COSName.DEST_OUTPUT_PROFILE);
+        return dictionary.getCOSStream(COSName.DEST_OUTPUT_PROFILE);
     }
 
     public String getInfo()

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/form/PDFormXObject.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/form/PDFormXObject.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/form/PDFormXObject.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/form/PDFormXObject.java Sun Mar 14 16:57:24 2021
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import org.apache.pdfbox.contentstream.PDContentStream;
 import org.apache.pdfbox.cos.COSArray;
-import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSFloat;
 import org.apache.pdfbox.cos.COSName;
@@ -127,7 +126,7 @@ public class PDFormXObject extends PDXOb
     {
         if( group == null ) 
         {
-            COSDictionary dic = (COSDictionary) getCOSObject().getDictionaryObject(COSName.GROUP);
+            COSDictionary dic = getCOSObject().getCOSDictionary(COSName.GROUP);
             if( dic != null ) 
             {
                 group = new PDTransparencyGroupAttributes(dic);
@@ -195,13 +194,8 @@ public class PDFormXObject extends PDXOb
     @Override
     public PDRectangle getBBox()
     {
-        PDRectangle retval = null;
-        COSArray array = (COSArray) getCOSObject().getDictionaryObject(COSName.BBOX);
-        if (array != null)
-        {
-            retval = new PDRectangle(array);
-        }
-        return retval;
+        COSArray array = getCOSObject().getCOSArray(COSName.BBOX);
+        return array != null ? new PDRectangle(array) : null;
     }
 
     /**
@@ -275,12 +269,8 @@ public class PDFormXObject extends PDXOb
      */
     public PDPropertyList getOptionalContent()
     {
-        COSBase base = getCOSObject().getDictionaryObject(COSName.OC);
-        if (base instanceof COSDictionary)
-        {
-            return PDPropertyList.create((COSDictionary) base);
-        }
-        return null;
+        COSDictionary optionalContent = getCOSObject().getCOSDictionary(COSName.OC);
+        return optionalContent != null ? PDPropertyList.create(optionalContent) : null;
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDImageXObject.java Sun Mar 14 16:57:24 2021
@@ -634,8 +634,8 @@ public final class PDImageXObject extend
      */
     public PDImageXObject getMask() throws IOException
     {
-        COSBase mask = getCOSObject().getDictionaryObject(COSName.MASK);
-        if (mask instanceof COSArray)
+        COSArray mask = getCOSObject().getCOSArray(COSName.MASK);
+        if (mask != null)
         {
             // color key mask, no explicit mask to return
             return null;
@@ -658,12 +658,7 @@ public final class PDImageXObject extend
      */
     public COSArray getColorKeyMask()
     {
-        COSBase mask = getCOSObject().getDictionaryObject(COSName.MASK);
-        if (mask instanceof COSArray)
-        {
-            return (COSArray)mask;
-        }
-        return null;
+        return getCOSObject().getCOSArray(COSName.MASK);
     }
 
     /**
@@ -819,12 +814,7 @@ public final class PDImageXObject extend
     @Override
     public COSArray getDecode()
     {
-        COSBase decode = getCOSObject().getDictionaryObject(COSName.DECODE);
-        if (decode instanceof COSArray)
-        {
-            return (COSArray) decode;
-        }
-        return null;
+        return getCOSObject().getCOSArray(COSName.DECODE);
     }
 
     @Override
@@ -889,12 +879,8 @@ public final class PDImageXObject extend
      */
     public PDPropertyList getOptionalContent()
     {
-        COSBase base = getCOSObject().getDictionaryObject(COSName.OC);
-        if (base instanceof COSDictionary)
-        {
-            return PDPropertyList.create((COSDictionary) base);
-        }
-        return null;
+        COSDictionary optionalContent = getCOSObject().getCOSDictionary(COSName.OC);
+        return optionalContent != null ? PDPropertyList.create(optionalContent) : null;
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/optionalcontent/PDOptionalContentProperties.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/optionalcontent/PDOptionalContentProperties.java?rev=1887639&r1=1887638&r2=1887639&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/optionalcontent/PDOptionalContentProperties.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/optionalcontent/PDOptionalContentProperties.java Sun Mar 14 16:57:24 2021
@@ -125,20 +125,15 @@ public class PDOptionalContentProperties
 
     private COSDictionary getD()
     {
-        COSBase base = this.dict.getDictionaryObject(COSName.D);
-        if (base instanceof COSDictionary)
+        COSDictionary d = dict.getCOSDictionary(COSName.D);
+        if (d == null)
         {
-            return (COSDictionary) base;
+            d = new COSDictionary();
+            // Name optional but required for PDF/A-3
+            d.setString(COSName.NAME, "Top");
+            // D is required
+            dict.setItem(COSName.D, d);
         }
-
-        COSDictionary d = new COSDictionary();
-
-        // Name optional but required for PDF/A-3
-        d.setString(COSName.NAME, "Top");
-
-        // D is required
-        this.dict.setItem(COSName.D, d);        
-
         return d;
     }
 
@@ -173,7 +168,7 @@ public class PDOptionalContentProperties
         ocgs.add(ocg.getCOSObject());
 
         //By default, add new group to the "Order" entry so it appears in the user interface
-        COSArray order = (COSArray)getD().getDictionaryObject(COSName.ORDER);
+        COSArray order = getD().getCOSArray(COSName.ORDER);
         if (order == null)
         {
             order = new COSArray();
@@ -302,10 +297,10 @@ public class PDOptionalContentProperties
         }
 
         COSDictionary d = getD();
-        COSBase base = d.getDictionaryObject(COSName.ON);
-        if (base instanceof COSArray)
+        COSArray on = d.getCOSArray(COSName.ON);
+        if (on != null)
         {
-            for (COSBase o : (COSArray) base)
+            for (COSBase o : on)
             {
                 COSDictionary dictionary = toDictionary(o);
                 if (dictionary == group.getCOSObject())
@@ -315,10 +310,10 @@ public class PDOptionalContentProperties
             }
         }
 
-        base = d.getDictionaryObject(COSName.OFF);
-        if (base instanceof COSArray)
+        COSArray off = d.getCOSArray(COSName.OFF);
+        if (off != null)
         {
-            for (COSBase o : (COSArray) base)
+            for (COSBase o : off)
             {
                 COSDictionary dictionary = toDictionary(o);
                 if (dictionary == group.getCOSObject())
@@ -375,30 +370,20 @@ public class PDOptionalContentProperties
      */
     public boolean setGroupEnabled(PDOptionalContentGroup group, boolean enable)
     {
-        COSArray on;
-        COSArray off;
-
         COSDictionary d = getD();
-        COSBase base = d.getDictionaryObject(COSName.ON);
-        if (!(base instanceof COSArray))
+        COSArray on = d.getCOSArray(COSName.ON);
+        if (on == null)
         {
             on = new COSArray();
             d.setItem(COSName.ON, on);
         }
-        else
-        {
-            on = (COSArray) base;
-        }
-        base = d.getDictionaryObject(COSName.OFF);
-        if (!(base instanceof COSArray))
+
+        COSArray off = d.getCOSArray(COSName.OFF);
+        if (off == null)
         {
             off = new COSArray();
             d.setItem(COSName.OFF, off);
         }
-        else
-        {
-            off = (COSArray) base;
-        }
 
         boolean found = false;
         if (enable)