X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2Fimpl%2FSoneImpl.java;h=551e2298b8f62c512e2e20c534e86b693c3b0d15;hb=3049b7e396ce20b5b6600ae2791334a6babb414e;hp=4c9bcaea3446d04b16098ef96f004f8a50af28c2;hpb=022590cd1b8be63e04847b4c76985f3d19fe489c;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 4c9bcae..551e229 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;
@@ -40,6 +41,7 @@ import net.pterodactylus.sone.data.Reply;
import net.pterodactylus.sone.data.Sone;
import net.pterodactylus.sone.data.SoneOptions;
import net.pterodactylus.sone.data.SoneOptions.DefaultSoneOptions;
+import net.pterodactylus.sone.database.Database;
import net.pterodactylus.sone.freenet.wot.Identity;
import net.pterodactylus.sone.freenet.wot.OwnIdentity;
@@ -55,11 +57,14 @@ 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");
+ /** The database. */
+ private final Database database;
+
/** The ID of this Sone. */
private final String id;
@@ -87,9 +92,6 @@ public class SoneImpl implements Sone {
/** Whether this Sone is known. */
private volatile boolean known;
- /** All friend Sones. */
- private final Set friendSones = new CopyOnWriteArraySet();
-
/** All posts. */
private final Set posts = new CopyOnWriteArraySet();
@@ -111,12 +113,14 @@ public class SoneImpl implements Sone {
/**
* Creates a new Sone.
*
+ * @param database The database
* @param identity
* The identity of the Sone
* @param local
* {@code true} if the Sone is a local Sone, {@code false} otherwise
*/
- public SoneImpl(Identity identity, boolean local) {
+ public SoneImpl(Database database, Identity identity, boolean local) {
+ this.database = database;
this.id = identity.getId();
this.identity = identity;
this.local = local;
@@ -340,7 +344,7 @@ public class SoneImpl implements Sone {
* @return The friend Sones of this Sone
*/
public Collection getFriends() {
- return new ArrayList(friendSones);
+ return database.getFriends(this);
}
/**
@@ -352,7 +356,7 @@ public class SoneImpl implements Sone {
* false} otherwise
*/
public boolean hasFriend(String friendSoneId) {
- return friendSones.contains(friendSoneId);
+ return database.isFriend(this, friendSoneId);
}
/**
@@ -685,7 +689,7 @@ public class SoneImpl implements Sone {
/** {@inheritDoc} */
@Override
public String toString() {
- return getClass().getName() + "[identity=" + identity + ",friends(" + friendSones.size() + "),posts(" + posts.size() + "),replies(" + replies.size() + "),albums(" + getRootAlbum().getAlbums().size() + ")]";
+ return getClass().getName() + "[identity=" + identity + ",posts(" + posts.size() + "),replies(" + replies.size() + "),albums(" + getRootAlbum().getAlbums().size() + ")]";
}
}