/*
- * 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.
*
*/
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;
* @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()));
}
/**
}
/**
- * Move the given image down in this album’s images. If the image is already
- * the last image, nothing happens.
+ * Moves the given image down in this album’s images. If the image is
+ * already the last image, nothing happens.
*
* @param image
* The image to move down