import freenet.keys.FreenetURI;
+import com.google.common.collect.FluentIterable;
import com.google.common.hash.Hasher;
import com.google.common.hash.Hashing;
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;
* @param local
* {@code true} if the Sone is a local Sone, {@code false} otherwise
*/
- public SoneImpl(Database database, Identity identity, boolean local, long time) {
+ 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;
}
//
}
/**
- * 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) {
- return this;
- }
-
- /**
* Returns the status of this Sone.
*
* @return The status of this Sone
* @return This Sone (for method chaining)
*/
public Sone setClient(Client client) {
- this.client = client;
return this;
}
* @return All posts of this Sone
*/
public List<Post> getPosts() {
- List<Post> sortedPosts;
synchronized (this) {
- sortedPosts = new ArrayList<Post>(posts);
+ return FluentIterable.from(posts).toSortedList(Post.TIME_COMPARATOR);
}
- Collections.sort(sortedPosts, Post.TIME_COMPARATOR);
- return sortedPosts;
}
/**