Store avatar image in Sone.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Wed, 7 Dec 2011 06:21:53 +0000 (07:21 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Wed, 7 Dec 2011 06:21:53 +0000 (07:21 +0100)
src/main/java/net/pterodactylus/sone/data/Sone.java

index 8b2ec2a..e36a306 100644 (file)
@@ -173,6 +173,9 @@ public class Sone implements Fingerprintable, Comparable<Sone> {
        /** Sone-specific options. */
        private final Options options = new Options();
 
+       /** The avatar of this Sone. */
+       private volatile String avatar;
+
        /**
         * Creates a new Sone.
         *
@@ -764,6 +767,34 @@ public class Sone implements Fingerprintable, Comparable<Sone> {
        }
 
        /**
+        * Returns the ID of the currently selected avatar image.
+        *
+        * @return The ID of the currently selected avatar image, or {@code null} if
+        *         no avatar is selected.
+        */
+       public String getAvatar() {
+               return avatar;
+       }
+
+       /**
+        * Sets the avatar image.
+        *
+        * @param avatar
+        *            The new avatar image, or {@code null} to not select an avatar
+        *            image.
+        * @return This Sone
+        */
+       public Sone setAvatar(Image avatar) {
+               if (avatar == null) {
+                       this.avatar = null;
+                       return this;
+               }
+               Validation.begin().isEqual("Image Owner", avatar.getSone(), this).check();
+               this.avatar = avatar.getId();
+               return this;
+       }
+
+       /**
         * Returns Sone-specific options.
         *
         * @return The options of this Sone
@@ -820,6 +851,8 @@ public class Sone implements Fingerprintable, Comparable<Sone> {
                }
                fingerprint.append(')');
 
+               fingerprint.append("Avatar(").append(avatar).append(')');
+
                return fingerprint.toString();
        }