Replace utils’ filter with Guava’s predicate.
[Sone.git] / src / main / java / net / pterodactylus / sone / data / Album.java
index b15bc00..7c62e33 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Sone - Album.java - Copyright © 2011 David Roden
+ * Sone - Album.java - Copyright © 2011–2012 David Roden
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 package net.pterodactylus.sone.data;
 
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
-import net.pterodactylus.util.collection.Mapper;
-import net.pterodactylus.util.collection.Mappers;
 import net.pterodactylus.util.object.Default;
 import net.pterodactylus.util.validation.Validation;
 
+import com.google.common.base.Function;
+import com.google.common.base.Predicates;
+import com.google.common.collect.Collections2;
+
 /**
  * Container for images that can also contain nested {@link Album}s.
  *
@@ -35,6 +38,15 @@ import net.pterodactylus.util.validation.Validation;
  */
 public class Album implements Fingerprintable {
 
+       /** Compares two {@link Album}s by {@link #getTitle()}. */
+       public static final Comparator<Album> TITLE_COMPARATOR = new Comparator<Album>() {
+
+               @Override
+               public int compare(Album leftAlbum, Album rightAlbum) {
+                       return leftAlbum.getTitle().compareToIgnoreCase(rightAlbum.getTitle());
+               }
+       };
+
        /** The ID of this album. */
        private final String id;
 
@@ -197,15 +209,14 @@ public class Album implements Fingerprintable {
         * @return The images in this album
         */
        public List<Image> getImages() {
-               return Mappers.mappedList(imageIds, new Mapper<String, Image>() {
+               return new ArrayList<Image>(Collections2.filter(Collections2.transform(imageIds, new Function<String, Image>() {
 
                        @Override
                        @SuppressWarnings("synthetic-access")
-                       public Image map(String imageId) {
+                       public Image apply(String imageId) {
                                return images.get(imageId);
                        }
-
-               });
+               }), Predicates.notNull()));
        }
 
        /**