X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FSone.java;h=4d505277682097044b59356ec8f61fa2ab23f1cf;hb=554a8f521027da73bd6519f3480b1ed70b108903;hp=917f3892107af4679d1704145433ec6f0d6b73a0;hpb=4c9f52832ba47a54dfd466c07f2734fc52a25603;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/data/Sone.java b/src/main/java/net/pterodactylus/sone/data/Sone.java index 917f389..4d50527 100644 --- a/src/main/java/net/pterodactylus/sone/data/Sone.java +++ b/src/main/java/net/pterodactylus/sone/data/Sone.java @@ -24,7 +24,10 @@ import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import net.pterodactylus.util.logging.Logging; import freenet.keys.FreenetURI; /** @@ -37,11 +40,14 @@ import freenet.keys.FreenetURI; */ public class Sone { + /** The logger. */ + private static final Logger logger = Logging.getLogger(Sone.class); + /** A GUID for this Sone. */ private final UUID id; /** The name of this Sone. */ - private final String name; + private String name; /** The URI under which the Sone is stored in Freenet. */ private FreenetURI requestUri; @@ -70,32 +76,9 @@ public class Sone { * * @param id * The ID of this Sone - * @param name - * The name of the Sone - * @param requestUri - * The request URI of the Sone - */ - public Sone(UUID id, String name, FreenetURI requestUri) { - this(id, name, requestUri, null); - } - - /** - * Creates a new Sone. - * - * @param id - * The ID of this Sone - * @param name - * The name of the Sone - * @param requestUri - * The request URI of the Sone - * @param insertUri - * The insert URI of the Sone */ - public Sone(UUID id, String name, FreenetURI requestUri, FreenetURI insertUri) { - this.id = id; - this.name = name; - this.requestUri = requestUri; - this.insertUri = insertUri; + public Sone(String id) { + this.id = UUID.fromString(id); } // @@ -121,6 +104,18 @@ public class Sone { } /** + * Sets the name of this Sone. + * + * @param name + * The name of this Sone + * @return This sone (for method chaining) + */ + public Sone setName(String name) { + this.name = name; + return this; + } + + /** * Returns the request URI of this Sone. * * @return The request URI of this Sone @@ -130,6 +125,18 @@ public class Sone { } /** + * Sets the request URI of this Sone. + * + * @param requestUri + * The request URI of this Sone + * @return This Sone (for method chaining) + */ + public Sone setRequestUri(FreenetURI requestUri) { + this.requestUri = requestUri; + return this; + } + + /** * Returns the insert URI of this Sone. * * @return The insert URI of this Sone @@ -139,6 +146,18 @@ public class Sone { } /** + * Sets the insert URI of this Sone. + * + * @param insertUri + * The insert URI of this Sone + * @return This Sone (for method chaining) + */ + public Sone setInsertUri(FreenetURI insertUri) { + this.insertUri = insertUri; + return this; + } + + /** * Returns a copy of the profile. If you want to update values in the * profile of this Sone, update the values in the returned {@link Profile} * and use {@link #setProfile(Profile)} to change the profile in this Sone. @@ -167,7 +186,7 @@ public class Sone { * * @return The friend Sones of this Sone */ - public Set getFriendSones() { + public Set getFriends() { return Collections.unmodifiableSet(friendSones); } @@ -179,7 +198,7 @@ public class Sone { * @return {@code true} if this Sone has the given Sone as a friend, * {@code false} otherwise */ - public boolean hasFriendSone(Sone friendSone) { + public boolean hasFriend(Sone friendSone) { return friendSones.contains(friendSone); } @@ -190,8 +209,8 @@ public class Sone { * The friend Sone to add * @return This Sone (for method chaining) */ - public synchronized Sone addFriendSone(Sone friendSone) { - if (friendSones.add(friendSone)) { + public synchronized Sone addFriend(Sone friendSone) { + if (!friendSone.equals(this) && friendSones.add(friendSone)) { modificationCounter++; } return this; @@ -204,7 +223,7 @@ public class Sone { * The friend Sone to remove * @return This Sone (for method chaining) */ - public synchronized Sone removeFriendSone(Sone friendSone) { + public synchronized Sone removeFriend(Sone friendSone) { if (friendSones.remove(friendSone)) { modificationCounter++; } @@ -238,6 +257,7 @@ public class Sone { */ public synchronized void addPost(Post post) { if (post.getSone().equals(this) && posts.add(post)) { + logger.log(Level.FINEST, "Adding %s to “%s”.", new Object[] { post, getName() }); modificationCounter++; } } @@ -260,6 +280,7 @@ public class Sone { * @return All replies this Sone made */ public Set getReplies() { + logger.log(Level.FINEST, "Friends of %s: %s", new Object[] { this, friendSones }); return Collections.unmodifiableSet(replies); } @@ -317,7 +338,9 @@ public class Sone { /* TODO - check for the correct URI. */ long latestEdition = requestUri.getSuggestedEdition(); this.requestUri = this.requestUri.setSuggestedEdition(latestEdition); - this.insertUri = this.insertUri.setSuggestedEdition(latestEdition); + if (this.insertUri != null) { + this.insertUri = this.insertUri.setSuggestedEdition(latestEdition); + } } // @@ -348,7 +371,7 @@ public class Sone { */ @Override public String toString() { - return getName() + "[id=" + getId() + ",requestUri=" + getRequestUri() + ",insertUri=" + getInsertUri() + ",posts(" + posts.size() + "),replies(" + replies.size() + ")]"; + return getClass().getName() + "[id=" + id + ",name=" + name + ",requestUri=" + requestUri + ",insertUri=" + insertUri + ",friends(" + friendSones.size() + "),posts(" + posts.size() + "),replies(" + replies.size() + ")]"; } }