import static com.google.common.base.Preconditions.checkState;
+import java.util.Collection;
+import java.util.HashSet;
+
+import net.pterodactylus.sone.data.Client;
+import net.pterodactylus.sone.data.Post;
import net.pterodactylus.sone.database.SoneBuilder;
import net.pterodactylus.sone.freenet.wot.Identity;
import net.pterodactylus.sone.freenet.wot.OwnIdentity;
protected Identity identity;
protected boolean local;
+ protected long lastUpdated;
+ protected Client client;
+ protected final Collection<Post> posts = new HashSet<Post>();
@Override
public SoneBuilder from(Identity identity) {
return this;
}
+ @Override
+ public SoneBuilder lastUpdated(long lastUpdated) {
+ this.lastUpdated = lastUpdated;
+ return this;
+ }
+
+ @Override
+ public SoneBuilder using(Client client) {
+ this.client = client;
+ return this;
+ }
+
+ @Override
+ public SoneBuilder withPosts(Collection<Post> posts) {
+ this.posts.clear();
+ this.posts.addAll(posts);
+ return this;
+ }
+
protected void validate() throws IllegalStateException {
checkState(identity != null, "identity must not be null");
checkState(!local || (identity instanceof OwnIdentity),
"can not create local Sone from remote identity");
+ checkState(lastUpdated > 0, "last update time must be set");
+ checkState(client != null, "client must not be null");
}
}