Implement Fingerprintable interface in Profile.
[Sone.git] / src / main / java / net / pterodactylus / sone / data / Profile.java
index 7c29430..2d2f6d4 100644 (file)
@@ -23,7 +23,7 @@ package net.pterodactylus.sone.data;
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
-public class Profile {
+public class Profile implements Fingerprintable {
 
        /** Whether the profile was modified. */
        private volatile boolean modified;
@@ -219,4 +219,38 @@ public class Profile {
                return this;
        }
 
+       //
+       // INTERFACE Fingerprintable
+       //
+
+       /**
+        * {@inheritDoc}
+        */
+       @Override
+       public String getFingerprint() {
+               StringBuilder fingerprint = new StringBuilder();
+               fingerprint.append("Profile(");
+               if (firstName != null) {
+                       fingerprint.append("FirstName(").append(firstName).append(')');
+               }
+               if (middleName != null) {
+                       fingerprint.append("MiddleName(").append(middleName).append(')');
+               }
+               if (lastName != null) {
+                       fingerprint.append("LastName(").append(lastName).append(')');
+               }
+               if (birthDay != null) {
+                       fingerprint.append("BirthDay(").append(birthDay).append(')');
+               }
+               if (birthMonth != null) {
+                       fingerprint.append("BirthMonth(").append(birthMonth).append(')');
+               }
+               if (birthYear != null) {
+                       fingerprint.append("BirthYear(").append(birthYear).append(')');
+               }
+               fingerprint.append(")");
+
+               return fingerprint.toString();
+       }
+
 }