]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
equals implementation violated spec -> replaced with new contentEquals function
authorMaximilian Berger <maxberger@apache.org>
Tue, 15 Sep 2009 15:07:51 +0000 (15:07 +0000)
committerMaximilian Berger <maxberger@apache.org>
Tue, 15 Sep 2009 15:07:51 +0000 (15:07 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@815358 13f79535-47bb-0310-9956-ffa450edef68

12 files changed:
src/java/org/apache/fop/pdf/PDFColor.java
src/java/org/apache/fop/pdf/PDFDocument.java
src/java/org/apache/fop/pdf/PDFFileSpec.java
src/java/org/apache/fop/pdf/PDFFunction.java
src/java/org/apache/fop/pdf/PDFGState.java
src/java/org/apache/fop/pdf/PDFGoTo.java
src/java/org/apache/fop/pdf/PDFGoToRemote.java
src/java/org/apache/fop/pdf/PDFLaunch.java
src/java/org/apache/fop/pdf/PDFLink.java
src/java/org/apache/fop/pdf/PDFObject.java
src/java/org/apache/fop/pdf/PDFPattern.java
src/java/org/apache/fop/pdf/PDFShading.java

index 5bac9532c04123971aa8b5f21046c41e65d1fbdc..f2ae2da3386b69f1b83f60a7e0af9e045d3d7149 100644 (file)
@@ -541,13 +541,8 @@ public class PDFColor extends PDFPathPaint {
         return (new byte[0]);
     }
 
-    /**
-     * Check for equality of color with another object.
-     *
-     * @param obj the object to compare
-     * @return true if colors are equal
-     */
-    public boolean equals(Object obj) {
+    /** {@inheritDoc} */
+    protected boolean contentEquals(PDFObject obj) {
         if (!(obj instanceof PDFColor)) {
             return false;
         }
index 9bc4c0d2e57a7de294f234a493bc2ac59f7c4b1e..46effdfd6bd14f2268a7347ae80bee272082731a 100644 (file)
@@ -526,8 +526,8 @@ public class PDFDocument {
 
     private Object findPDFObject(List list, PDFObject compare) {
         for (Iterator iter = list.iterator(); iter.hasNext();) {
-            Object obj = iter.next();
-            if (compare.equals(obj)) {
+            PDFObject obj = (PDFObject) iter.next();
+            if (compare.contentEquals(obj)) {
                 return obj;
             }
         }
index a2bc6aefee1c41f7cf5a5f30653e486e81b9eb75..8de4164afcacd2bcebc77d51720c9895c951d7c0 100644 (file)
@@ -63,13 +63,8 @@ public class PDFFileSpec extends PDFObject {
      * endobj
      */
 
-    /**
-     * Check if this equals another object.
-     *
-     * @param obj the object to compare
-     * @return true if this equals other object
-     */
-    public boolean equals(Object obj) {
+    /** {@inheritDoc} */
+    protected boolean contentEquals(PDFObject obj) {
         if (this == obj) {
             return true;
         }
index 14cc318ba4bc9d363b5f2f1b255723afe4a46fa1..d57cabb505e5f312f0df0617525b334c6dfa6aba 100644 (file)
@@ -696,15 +696,8 @@ public class PDFFunction extends PDFObject {
 
     }
 
-    /**
-     * Check if this function is equal to another object.
-     * This is used to find if a particular function already exists
-     * in a document.
-     *
-     * @param obj the obj to compare
-     * @return true if the functions are equal
-     */
-    public boolean equals(Object obj) {
+    /** {@inheritDoc} */
+    protected boolean contentEquals(PDFObject obj) {
         if (obj == null) {
             return false;
         }
index 93151149baf0a43de2881052be4a5dc4b6d9fd44..4b997a145cb446a8206f77d963f3d27823cff153 100644 (file)
@@ -175,10 +175,8 @@ public class PDFGState extends PDFObject {
      * endobj
      */
 
-    /**
-     * {@inheritDoc}
-     */
-    public boolean equals(Object obj) {
+    /** {@inheritDoc} */
+    protected boolean contentEquals(PDFObject obj) {
         if (obj == this) {
             return true;
         }
index b3ff6bcdc9a8fdd4c5a8a407d939bf152dbb4517..ad04650c6c4c2fad83932a346580d794e0f6b2fb 100644 (file)
@@ -143,13 +143,8 @@ public class PDFGoTo extends PDFAction {
      * endobj
      */
 
-    /**
-     * Check if this equals another object.
-     *
-     * @param obj the object to compare
-     * @return true if this equals other object
-     */
-    public boolean equals(Object obj) {
+    /** {@inheritDoc} */
+    protected boolean contentEquals(PDFObject obj) {
         if (this == obj) {
             return true;
         }
index e04a1668f204249e2bdc038896a69b1bc94f1546..ee7660875a6465e31205509e430c8f03f81b5418 100644 (file)
@@ -127,13 +127,8 @@ public class PDFGoToRemote extends PDFAction {
      * endobj
      */
 
-    /**
-     * Check if this equals another object.
-     *
-     * @param obj the object to compare
-     * @return true if this equals other object
-     */
-    public boolean equals(Object obj) {
+    /** {@inheritDoc} */
+    protected boolean contentEquals(PDFObject obj) {
         if (this == obj) {
             return true;
         }
index d87fa2523a15afb292b98f531242f96d5f242203..386a7a9a362b4436a44501c17c7dc901d70aba25 100644 (file)
@@ -42,13 +42,8 @@ public class PDFLaunch extends PDFAction {
         return sb.toString();
     }
 
-    /**
-     * Check if this equals another object.
-     *
-     * @param obj the object to compare
-     * @return true if this equals other object
-     */
-    public boolean equals(Object obj) {
+    /** {@inheritDoc} */
+    protected boolean contentEquals(PDFObject obj) {
         if (this == obj) {
             return true;
         }
index a7c4c65489bd81a03fb057e74b363b77e919326d..6f5ffeb0de1bc6fd0f51a81e62a04eeea3fe74cc 100644 (file)
@@ -106,13 +106,8 @@ public class PDFLink extends PDFObject {
      * endobj
      */
 
-    /**
-     * Check if this equals another object.
-     *
-     * @param obj the object to compare
-     * @return true if this equals other object
-     */
-    public boolean equals(Object obj) {
+    /** {@inheritDoc} */
+    protected boolean contentEquals(PDFObject obj) {
         if (this == obj) {
             return true;
         }
index 97e9f4976689d8cc532da3cfcf87d34a9357569b..21ff823945141e748c4ef9bb34bec9f44789c1f3 100644 (file)
@@ -393,4 +393,20 @@ public abstract class PDFObject implements PDFWritable {
         return formatDateTime(time, TimeZone.getDefault());
     }
 
+    /**
+     * Check if the other PDFObject has the same content as the current object.
+     * <p>
+     * Note: This function has a contract which is less binding than
+     * {@link #equals(Object)}. Whereas equals would require all values to be
+     * identical, this method is not required to check everything. In the case
+     * of PDFObjects, this means that the overriding function does not have to
+     * check for {@link #getObjectID()}.
+     * 
+     * @param o
+     *            object to compare to.
+     * @return true if the other object has the same content.
+     */
+    protected boolean contentEquals(PDFObject o) {
+        return this.equals(o);
+    }
 }
index 4e862c3f2f674a87365a949b6dbd0f72e9a4e6be..89ae1efcd240f68e98434a3fef09eff9faa479cd 100644 (file)
@@ -336,13 +336,8 @@ public class PDFPattern extends PDFPathPaint {
      */
     public byte[] toPDF() { return null; }
 
-    /**
-     * Check if this pattern is equal to another.
-     *
-     * @param obj the object to compare against
-     * @return true if the patterns are equal
-     */
-    public boolean equals(Object obj) {
+    /** {@inheritDoc} */
+    protected boolean contentEquals(PDFObject obj) {
         if (obj == null) {
             return false;
         }
index 5ac7245c94c04d2f05b650928c4ce8bbe7b4c101..fa4d454eddf9d2d7557926ed233e5ac7377bb83b 100644 (file)
@@ -529,14 +529,8 @@ public class PDFShading extends PDFObject {
         return (p.toString());
     }
 
-    /**
-     * Check if this shading is equal to another shading.
-     * This is used to check if a shading already exists.
-     *
-     * @param obj the object to compare against
-     * @return true if the shadings are equal
-     */
-    public boolean equals(Object obj) {
+    /** {@inheritDoc} */
+    protected boolean contentEquals(PDFObject obj) {
         if (obj == null) {
             return false;
         }