X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FProfile.java;h=242c96e4bde26b5371cf1b2a535bc15c14b8a559;hb=554a8f521027da73bd6519f3480b1ed70b108903;hp=eeb04a41b31ccce6fcc76b43ee2d2ae2b8662fd0;hpb=549b1013740e7a95b5ab8ccb0f97f419a0dedb19;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/data/Profile.java b/src/main/java/net/pterodactylus/sone/data/Profile.java index eeb04a4..242c96e 100644 --- a/src/main/java/net/pterodactylus/sone/data/Profile.java +++ b/src/main/java/net/pterodactylus/sone/data/Profile.java @@ -18,13 +18,16 @@ package net.pterodactylus.sone.data; /** - * A profile stores personal information about a {@link User}. All information + * A profile stores personal information about a {@link Sone}. All information * is optional and can be {@code null}. * * @author David ‘Bombe’ Roden */ public class Profile { + /** Whether the profile was modified. */ + private boolean modified; + /** The first name. */ private String firstName; @@ -58,6 +61,18 @@ public class Profile { // /** + * Returns whether this profile was modified after creation. To clear the + * “is modified” flag you need to create a new profile from this one using + * the {@link #Profile(Profile)} constructor. + * + * @return {@code true} if this profile was modified after creation, + * {@code false} otherwise + */ + public boolean isModified() { + return modified; + } + + /** * Returns the first name. * * @return The first name @@ -71,9 +86,12 @@ public class Profile { * * @param firstName * The first name to set + * @return This profile (for method chaining) */ - public void setFirstName(String firstName) { + public Profile setFirstName(String firstName) { + modified |= ((firstName != null) && (!firstName.equals(this.firstName))) || (this.firstName != null); this.firstName = firstName; + return this; } /** @@ -90,9 +108,12 @@ public class Profile { * * @param middleName * The middle name to set + * @return This profile (for method chaining) */ - public void setMiddleName(String middleName) { + public Profile setMiddleName(String middleName) { + modified |= ((middleName != null) && (!middleName.equals(this.middleName))) || (this.middleName != null); this.middleName = middleName; + return this; } /** @@ -109,9 +130,12 @@ public class Profile { * * @param lastName * The last name to set + * @return This profile (for method chaining) */ - public void setLastName(String lastName) { + public Profile setLastName(String lastName) { + modified |= ((lastName != null) && (!lastName.equals(this.lastName))) || (this.lastName != null); this.lastName = lastName; + return this; } }