X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FSone.java;h=da1967c1822d8a184bffd109abf96b4fd0d2394f;hp=129293cee88ad1434e746825b8ae29c595d6f732;hb=bfce6c4612f11230270eb1af6effda39bf0fd05d;hpb=df1e2e70c2f7031cd5b175d58b8f0b70c672176b diff --git a/src/main/java/net/pterodactylus/sone/data/Sone.java b/src/main/java/net/pterodactylus/sone/data/Sone.java index 129293c..da1967c 100644 --- a/src/main/java/net/pterodactylus/sone/data/Sone.java +++ b/src/main/java/net/pterodactylus/sone/data/Sone.java @@ -24,10 +24,10 @@ import java.util.Comparator; 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.sone.freenet.wot.Identity; import net.pterodactylus.sone.template.SoneAccessor; import net.pterodactylus.util.logging.Logging; import freenet.keys.FreenetURI; @@ -42,14 +42,25 @@ import freenet.keys.FreenetURI; */ public class Sone { + /** comparator that sorts Sones by their nice name. */ + public static final Comparator NICE_NAME_COMPARATOR = new Comparator() { + + @Override + public int compare(Sone leftSone, Sone rightSone) { + int diff = SoneAccessor.getNiceName(leftSone).compareToIgnoreCase(SoneAccessor.getNiceName(rightSone)); + if (diff != 0) { + return diff; + } + return leftSone.getId().compareToIgnoreCase(rightSone.getId()); + } + + }; + /** 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 volatile String name; + /** The identity of this Sone. */ + private final Identity identity; /** The URI under which the Sone is stored in Freenet. */ private volatile FreenetURI requestUri; @@ -73,9 +84,6 @@ public class Sone { /** All replies. */ private final Set replies = Collections.synchronizedSet(new HashSet()); - /** The IDs of all blocked Sones. */ - private final Set blockedSoneIds = Collections.synchronizedSet(new HashSet()); - /** The IDs of all liked posts. */ private final Set likedPostIds = Collections.synchronizedSet(new HashSet()); @@ -88,11 +96,11 @@ public class Sone { /** * Creates a new Sone. * - * @param id - * The ID of this Sone + * @param identity + * The identity of the Sone */ - public Sone(String id) { - this.id = UUID.fromString(id); + public Sone(Identity identity) { + this.identity = identity; } // @@ -100,33 +108,30 @@ public class Sone { // /** - * Returns the ID of this Sone. + * Returns the identity of this Sone. * - * @return The ID of this Sone + * @return The identity of this Sone */ public String getId() { - return id.toString(); + return identity.getId(); } /** - * Returns the name of this Sone. + * Returns the identity of this Sone. * - * @return The name of this Sone + * @return The identity of this Sone */ - public String getName() { - return name; + public Identity getIdentity() { + return identity; } /** - * Sets the name of this Sone. + * Returns the name of this Sone. * - * @param name - * The name of this Sone - * @return This sone (for method chaining) + * @return The name of this Sone */ - public Sone setName(String name) { - this.name = name; - return this; + public String getName() { + return identity.getNickname(); } /** @@ -420,52 +425,6 @@ public class Sone { } /** - * Returns the IDs of all blocked Sones. These Sones will not propagated - * using the “known Sones” mechanism. - * - * @return The IDs of all blocked Sones - */ - public Set getBlockedSoneIds() { - return Collections.unmodifiableSet(blockedSoneIds); - } - - /** - * Returns whether the given Sone ID is blocked. - * - * @param soneId - * The Sone ID to check - * @return {@code true} if the given Sone ID is blocked, {@code false} - * otherwise - */ - public boolean isSoneBlocked(String soneId) { - return blockedSoneIds.contains(soneId); - } - - /** - * Adds the given ID to the list of blocked IDs. - * - * @param soneId - * The Sone ID to block - */ - public synchronized void addBlockedSoneId(String soneId) { - if (blockedSoneIds.add(soneId)) { - modificationCounter++; - } - } - - /** - * Removes the given ID from the list of blocked IDs. - * - * @param soneId - * The Sone ID to unblock - */ - public synchronized void removeBlockedSoneId(String soneId) { - if (blockedSoneIds.remove(soneId)) { - modificationCounter++; - } - } - - /** * Returns the IDs of all liked posts. * * @return All liked posts’ IDs @@ -654,7 +613,7 @@ public class Sone { */ @Override public int hashCode() { - return id.hashCode(); + return identity.getId().hashCode(); } /** @@ -665,7 +624,7 @@ public class Sone { if (!(object instanceof Sone)) { return false; } - return ((Sone) object).id.equals(id); + return ((Sone) object).identity.getId().equals(identity.getId()); } /** @@ -673,7 +632,7 @@ public class Sone { */ @Override public String toString() { - return getClass().getName() + "[id=" + id + ",name=" + name + ",requestUri=" + requestUri + ",insertUri=" + insertUri + ",friends(" + friendSones.size() + "),posts(" + posts.size() + "),replies(" + replies.size() + ")]"; + return getClass().getName() + "[identity=" + identity + ",requestUri=" + requestUri + ",insertUri=" + insertUri + ",friends(" + friendSones.size() + "),posts(" + posts.size() + "),replies(" + replies.size() + ")]"; } }