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;
}
/**