X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FAlbum.java;h=710387196b904f9e916859de887a2f30844b4018;hb=e3a3dccdfcb0f7390f8bf30ec1af0f9d9fb69496;hp=94af8eced8b296ad61a27a73cc033b0be15dd04a;hpb=cce88f819ae0ef84b5a86c6a826f88ce0208107f;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/data/Album.java b/src/main/java/net/pterodactylus/sone/data/Album.java index 94af8ec..7103871 100644 --- a/src/main/java/net/pterodactylus/sone/data/Album.java +++ b/src/main/java/net/pterodactylus/sone/data/Album.java @@ -1,5 +1,5 @@ /* - * Sone - Album.java - Copyright © 2011–2012 David Roden + * Sone - Album.java - Copyright © 2011–2013 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 @@ -28,11 +28,12 @@ import java.util.List; import java.util.Map; import java.util.UUID; -import net.pterodactylus.util.object.Default; - import com.google.common.base.Function; +import com.google.common.base.Optional; import com.google.common.base.Predicates; import com.google.common.collect.Collections2; +import com.google.common.hash.Hasher; +import com.google.common.hash.Hashing; /** * Container for images that can also contain nested {@link Album}s. @@ -330,7 +331,7 @@ public class Album implements Fingerprintable { if (albumImage == null) { return null; } - return Default.forNull(images.get(albumImage), images.values().iterator().next()); + return Optional.fromNullable(images.get(albumImage)).or(images.values().iterator().next()); } /** @@ -437,33 +438,33 @@ public class Album implements Fingerprintable { */ @Override public String getFingerprint() { - StringBuilder fingerprint = new StringBuilder(); - fingerprint.append("Album("); - fingerprint.append("ID(").append(id).append(')'); - fingerprint.append("Title(").append(title).append(')'); - fingerprint.append("Description(").append(description).append(')'); + Hasher hash = Hashing.sha256().newHasher(); + hash.putString("Album("); + hash.putString("ID(").putString(id).putString(")"); + hash.putString("Title(").putString(title).putString(")"); + hash.putString("Description(").putString(description).putString(")"); if (albumImage != null) { - fingerprint.append("AlbumImage(").append(albumImage).append(')'); + hash.putString("AlbumImage(").putString(albumImage).putString(")"); } /* add nested albums. */ - fingerprint.append("Albums("); + hash.putString("Albums("); for (Album album : albums) { - fingerprint.append(album.getFingerprint()); + hash.putString(album.getFingerprint()); } - fingerprint.append(')'); + hash.putString(")"); /* add images. */ - fingerprint.append("Images("); + hash.putString("Images("); for (Image image : getImages()) { if (image.isInserted()) { - fingerprint.append(image.getFingerprint()); + hash.putString(image.getFingerprint()); } } - fingerprint.append(')'); + hash.putString(")"); - fingerprint.append(')'); - return fingerprint.toString(); + hash.putString(")"); + return hash.hash().toString(); } //