X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FSone.java;h=90d03555bb35f9247cf3406d8c92be162d7ea4b0;hb=c1f6e1176c57d470eb98ed45cfa268faff8e4009;hp=777660f937febe485830561ebeece73f5acb9c5b;hpb=18a45f362d69085b12fe3028e9320578e10cc968;p=Sone.git
diff --git a/src/main/java/net/pterodactylus/sone/data/Sone.java b/src/main/java/net/pterodactylus/sone/data/Sone.java
index 777660f..90d0355 100644
--- a/src/main/java/net/pterodactylus/sone/data/Sone.java
+++ b/src/main/java/net/pterodactylus/sone/data/Sone.java
@@ -1,5 +1,5 @@
/*
- * Sone - Sone.java - Copyright © 2010â2016 David Roden
+ * Sone - Sone.java - Copyright © 2010â2020 David Roden
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -32,27 +32,21 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import net.pterodactylus.sone.freenet.wot.Identity;
-import net.pterodactylus.sone.freenet.wot.OwnIdentity;
import net.pterodactylus.sone.template.SoneAccessor;
import freenet.keys.FreenetURI;
import com.google.common.base.Function;
-import com.google.common.base.Predicate;
import com.google.common.primitives.Ints;
/**
* A Sone defines everything about a user: her profile, her status updates, her
* replies, her likes and dislikes, etc.
- *
- * @author David âBombeâ Roden
*/
public interface Sone extends Identified, Fingerprintable, Comparable {
/**
* Enumeration for the possible states of a {@link Sone}.
- *
- * @author David âBombeâ Roden
*/
public enum SoneStatus {
@@ -119,34 +113,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
}
};
- /** Filter to remove Sones that have not been downloaded. */
- public static final Predicate EMPTY_SONE_FILTER = new Predicate() {
-
- @Override
- public boolean apply(Sone sone) {
- return (sone != null) && (sone.getTime() != 0);
- }
- };
-
- /** Filter that matches all {@link Sone#isLocal() local Sones}. */
- public static final Predicate LOCAL_SONE_FILTER = new Predicate() {
-
- @Override
- public boolean apply(Sone sone) {
- return (sone != null) && (sone.getIdentity() instanceof OwnIdentity);
- }
-
- };
-
- /** Filter that matches Sones that have at least one album. */
- public static final Predicate HAS_ALBUM_FILTER = new Predicate() {
-
- @Override
- public boolean apply(Sone sone) {
- return (sone != null) && !sone.getRootAlbum().getAlbums().isEmpty();
- }
- };
-
public static final Function> toAllAlbums = new Function>() {
@Override
public List apply(@Nullable Sone sone) {
@@ -169,6 +135,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
*
* @return The identity of this Sone
*/
+ @Nonnull
Identity getIdentity();
/**
@@ -176,6 +143,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
*
* @return The name of this Sone
*/
+ @Nonnull
String getName();
/**
@@ -190,16 +158,10 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
*
* @return The request URI of this Sone
*/
+ @Nonnull
FreenetURI getRequestUri();
/**
- * Returns the insert URI of this Sone.
- *
- * @return The insert URI of this Sone
- */
- FreenetURI getInsertUri();
-
- /**
* Returns the latest edition of this Sone.
*
* @return The latest edition of this Sone
@@ -230,6 +192,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* The time of the update (in milliseconds since Jan 1, 1970 UTC)
* @return This Sone (for method chaining)
*/
+ @Nonnull
Sone setTime(long time);
/**
@@ -237,6 +200,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
*
* @return The status of this Sone
*/
+ @Nonnull
SoneStatus getStatus();
/**
@@ -248,7 +212,8 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* @throws IllegalArgumentException
* if {@code status} is {@code null}
*/
- Sone setStatus(SoneStatus status);
+ @Nonnull
+ Sone setStatus(@Nonnull SoneStatus status);
/**
* Returns a copy of the profile. If you want to update values in the profile
@@ -257,6 +222,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
*
* @return A copy of the profile
*/
+ @Nonnull
Profile getProfile();
/**
@@ -267,13 +233,14 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* @param profile
* The profile to set
*/
- void setProfile(Profile profile);
+ void setProfile(@Nonnull Profile profile);
/**
* Returns the client used by this Sone.
*
* @return The client used by this Sone, or {@code null}
*/
+ @Nullable
Client getClient();
/**
@@ -283,7 +250,8 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* The client used by this Sone, or {@code null}
* @return This Sone (for method chaining)
*/
- Sone setClient(Client client);
+ @Nonnull
+ Sone setClient(@Nullable Client client);
/**
* Returns whether this Sone is known.
@@ -299,6 +267,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* {@code true} if this Sone is known, {@code false} otherwise
* @return This Sone
*/
+ @Nonnull
Sone setKnown(boolean known);
/**
@@ -306,6 +275,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
*
* @return The friend Sones of this Sone
*/
+ @Nonnull
Collection getFriends();
/**
@@ -316,13 +286,14 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* @return {@code true} if this Sone has the given Sone as a friend, {@code
* false} otherwise
*/
- boolean hasFriend(String friendSoneId);
+ boolean hasFriend(@Nonnull String friendSoneId);
/**
* Returns the list of posts of this Sone, sorted by time, newest first.
*
* @return All posts of this Sone
*/
+ @Nonnull
List getPosts();
/**
@@ -332,7 +303,8 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* The new (and only) posts of this Sone
* @return This Sone (for method chaining)
*/
- Sone setPosts(Collection posts);
+ @Nonnull
+ Sone setPosts(@Nonnull Collection posts);
/**
* Adds the given post to this Sone. The post will not be added if its {@link
@@ -341,7 +313,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* @param post
* The post to add
*/
- void addPost(Post post);
+ void addPost(@Nonnull Post post);
/**
* Removes the given post from this Sone.
@@ -349,13 +321,14 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* @param post
* The post to remove
*/
- void removePost(Post post);
+ void removePost(@Nonnull Post post);
/**
* Returns all replies this Sone made.
*
* @return All replies this Sone made
*/
+ @Nonnull
Set getReplies();
/**
@@ -365,7 +338,8 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* The new (and only) replies of this Sone
* @return This Sone (for method chaining)
*/
- Sone setReplies(Collection replies);
+ @Nonnull
+ Sone setReplies(@Nonnull Collection replies);
/**
* Adds a reply to this Sone. If the given reply was not made by this Sone,
@@ -374,7 +348,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* @param reply
* The reply to add
*/
- void addReply(PostReply reply);
+ void addReply(@Nonnull PostReply reply);
/**
* Removes a reply from this Sone.
@@ -382,13 +356,14 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* @param reply
* The reply to remove
*/
- void removeReply(PostReply reply);
+ void removeReply(@Nonnull PostReply reply);
/**
* Returns the IDs of all liked posts.
*
* @return All liked postsâ IDs
*/
+ @Nonnull
Set getLikedPostIds();
/**
@@ -398,7 +373,8 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* All liked postsâ IDs
* @return This Sone (for method chaining)
*/
- Sone setLikePostIds(Set likedPostIds);
+ @Nonnull
+ Sone setLikePostIds(@Nonnull Set likedPostIds);
/**
* Checks whether the given post ID is liked by this Sone.
@@ -408,7 +384,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* @return {@code true} if this Sone likes the given post, {@code false}
* otherwise
*/
- boolean isLikedPostId(String postId);
+ boolean isLikedPostId(@Nonnull String postId);
/**
* Adds the given post ID to the list of posts this Sone likes.
@@ -417,22 +393,23 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* The ID of the post
* @return This Sone (for method chaining)
*/
- Sone addLikedPostId(String postId);
+ @Nonnull
+ Sone addLikedPostId(@Nonnull String postId);
/**
* Removes the given post ID from the list of posts this Sone likes.
*
* @param postId
* The ID of the post
- * @return This Sone (for method chaining)
*/
- Sone removeLikedPostId(String postId);
+ void removeLikedPostId(@Nonnull String postId);
/**
* Returns the IDs of all liked replies.
*
* @return All liked repliesâ IDs
*/
+ @Nonnull
Set getLikedReplyIds();
/**
@@ -442,7 +419,8 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* All liked repliesâ IDs
* @return This Sone (for method chaining)
*/
- Sone setLikeReplyIds(Set likedReplyIds);
+ @Nonnull
+ Sone setLikeReplyIds(@Nonnull Set likedReplyIds);
/**
* Checks whether the given reply ID is liked by this Sone.
@@ -452,7 +430,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* @return {@code true} if this Sone likes the given reply, {@code false}
* otherwise
*/
- boolean isLikedReplyId(String replyId);
+ boolean isLikedReplyId(@Nonnull String replyId);
/**
* Adds the given reply ID to the list of replies this Sone likes.
@@ -461,22 +439,23 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* The ID of the reply
* @return This Sone (for method chaining)
*/
- Sone addLikedReplyId(String replyId);
+ @Nonnull
+ Sone addLikedReplyId(@Nonnull String replyId);
/**
* Removes the given post ID from the list of replies this Sone likes.
*
* @param replyId
* The ID of the reply
- * @return This Sone (for method chaining)
*/
- Sone removeLikedReplyId(String replyId);
+ void removeLikedReplyId(@Nonnull String replyId);
/**
* Returns the root album that contains all visible albums of this Sone.
*
* @return The root album of this Sone
*/
+ @Nonnull
Album getRootAlbum();
/**
@@ -484,6 +463,7 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
*
* @return The options of this Sone
*/
+ @Nonnull
SoneOptions getOptions();
/**
@@ -493,6 +473,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable {
* The options of this Sone
*/
/* TODO - remove this method again, maybe add an option provider */
- void setOptions(SoneOptions options);
+ void setOptions(@Nonnull SoneOptions options);
}