Add equals() method that ignores the comment of the content metadata.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Wed, 5 Jun 2013 04:26:58 +0000 (06:26 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Wed, 5 Jun 2013 04:26:58 +0000 (06:26 +0200)
src/main/java/net/pterodactylus/sonitus/data/ContentMetadata.java
src/main/java/net/pterodactylus/sonitus/data/Metadata.java

index 36194e4..9263aee 100644 (file)
@@ -193,6 +193,23 @@ public class ContentMetadata {
                return new ContentMetadata(artist().orNull(), name().orNull(), title(), comment);
        }
 
                return new ContentMetadata(artist().orNull(), name().orNull(), title(), comment);
        }
 
+       /**
+        * Returns whether this content metadata object equals the given object if the
+        * comments of this and the given object are ignored.
+        *
+        * @param object
+        *              The object to compare to this one
+        * @return {@code true} if the given object and this object are equal if the
+        *         comments are ignored, {@code false} otherwise
+        */
+       public boolean equalsIgnoreComment(Object object) {
+               if (!(object instanceof ContentMetadata)) {
+                       return false;
+               }
+               ContentMetadata contentMetadata = (ContentMetadata) object;
+               return artist().equals(contentMetadata.artist()) && name().equals(contentMetadata.name()) && title().equals(contentMetadata.title());
+       }
+
        //
        // OBJECT METHODS
        //
        //
        // OBJECT METHODS
        //
index 61c0100..da0aadc 100644 (file)
@@ -236,6 +236,23 @@ public class Metadata {
                return String.format("%s%s", title(), comment().isPresent() ? String.format(" (%s)", comment().get()) : "");
        }
 
                return String.format("%s%s", title(), comment().isPresent() ? String.format(" (%s)", comment().get()) : "");
        }
 
+       /**
+        * Returns whether this metadata object equals the given object if the comments
+        * of this and the given object are ignored.
+        *
+        * @param object
+        *              The object to compare to this one
+        * @return {@code true} if the given object and this object are equal if the
+        *         comments are ignored, {@code false} otherwise
+        */
+       public boolean equalsIgnoreComment(Object object) {
+               if (!(object instanceof Metadata)) {
+                       return false;
+               }
+               Metadata metadata = (Metadata) object;
+               return formatMetadata.equals(metadata.formatMetadata) && contentMetadata.equalsIgnoreComment(metadata.contentMetadata);
+       }
+
        //
        // OBJECT METHODS
        //
        //
        // OBJECT METHODS
        //