X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2Fimpl%2FSoneImpl.java;h=44111aad0748f7282c70500db955528196c1c5ae;hb=f5c7590a5a340597f8127440a20058f65ed0abd1;hp=2fdd40c9b5ae350aad5678c6b0aae963a12abe2e;hpb=17bc7628a552608caa3bc2057428cdc80535444b;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/data/impl/SoneImpl.java b/src/main/java/net/pterodactylus/sone/data/impl/SoneImpl.java index 2fdd40c..44111aa 100644 --- a/src/main/java/net/pterodactylus/sone/data/impl/SoneImpl.java +++ b/src/main/java/net/pterodactylus/sone/data/impl/SoneImpl.java @@ -33,6 +33,7 @@ import java.util.logging.Logger; import net.pterodactylus.sone.data.Album; import net.pterodactylus.sone.data.Client; +import net.pterodactylus.sone.data.LocalSone; import net.pterodactylus.sone.data.Post; import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Profile; @@ -46,6 +47,7 @@ import net.pterodactylus.sone.freenet.wot.OwnIdentity; import freenet.keys.FreenetURI; +import com.google.common.collect.FluentIterable; import com.google.common.hash.Hasher; import com.google.common.hash.Hashing; @@ -56,7 +58,7 @@ import com.google.common.hash.Hashing; * * @author David ‘Bombe’ Roden */ -public class SoneImpl implements Sone { +public class SoneImpl implements LocalSone { /** The logger. */ private static final Logger logger = getLogger("Sone.Data"); @@ -77,7 +79,7 @@ public class SoneImpl implements Sone { private volatile long latestEdition; /** The time of the last inserted update. */ - private volatile long time; + private final long time; /** The status of this Sone. */ private volatile SoneStatus status = SoneStatus.unknown; @@ -86,7 +88,7 @@ public class SoneImpl implements Sone { private volatile Profile profile = new Profile(this); /** The client used by the Sone. */ - private volatile Client client; + private final Client client; /** Whether this Sone is known. */ private volatile boolean known; @@ -118,11 +120,13 @@ public class SoneImpl implements Sone { * @param local * {@code true} if the Sone is a local Sone, {@code false} otherwise */ - public SoneImpl(Database database, Identity identity, boolean local) { + public SoneImpl(Database database, Identity identity, boolean local, long time, Client client) { this.database = database; this.id = identity.getId(); this.identity = identity; this.local = local; + this.time = time; + this.client = client; } // @@ -238,18 +242,6 @@ public class SoneImpl implements Sone { } /** - * Sets the time of the last inserted update of this Sone. - * - * @param time - * The time of the update (in milliseconds since Jan 1, 1970 UTC) - * @return This Sone (for method chaining) - */ - public Sone setTime(long time) { - this.time = time; - return this; - } - - /** * Returns the status of this Sone. * * @return The status of this Sone @@ -312,7 +304,6 @@ public class SoneImpl implements Sone { * @return This Sone (for method chaining) */ public Sone setClient(Client client) { - this.client = client; return this; } @@ -364,12 +355,9 @@ public class SoneImpl implements Sone { * @return All posts of this Sone */ public List getPosts() { - List sortedPosts; synchronized (this) { - sortedPosts = new ArrayList(posts); + return FluentIterable.from(posts).toSortedList(Post.TIME_COMPARATOR); } - Collections.sort(sortedPosts, Post.TIME_COMPARATOR); - return sortedPosts; } /**