package net.pterodactylus.sone.data.impl; import static java.util.Collections.emptyList; import static java.util.Collections.emptySet; import java.util.Collection; import java.util.List; import java.util.Set; import net.pterodactylus.sone.data.Album; import net.pterodactylus.sone.data.Client; import net.pterodactylus.sone.data.Post; import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Profile; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.data.SoneOptions; import net.pterodactylus.sone.freenet.wot.Identity; import freenet.keys.FreenetURI; import com.google.common.base.Objects; /** * {@link Sone} implementation that only stores the ID of a Sone and returns * {@code null}, {@code 0}, or empty collections where appropriate. * * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a> */ public class IdOnlySone implements Sone { private final String id; public IdOnlySone(String id) { this.id = id; } @Override public Identity getIdentity() { return null; } @Override public String getName() { return id; } @Override public boolean isLocal() { return false; } @Override public FreenetURI getRequestUri() { return null; } @Override public FreenetURI getInsertUri() { return null; } @Override public long getLatestEdition() { return 0; } @Override public void setLatestEdition(long latestEdition) { } @Override public long getTime() { return 0; } @Override public Sone setTime(long time) { return null; } @Override public SoneStatus getStatus() { return null; } @Override public Sone setStatus(SoneStatus status) { return null; } @Override public Profile getProfile() { return new Profile(this); } @Override public void setProfile(Profile profile) { } @Override public Client getClient() { return null; } @Override public Sone setClient(Client client) { return null; } @Override public boolean isKnown() { return false; } @Override public Sone setKnown(boolean known) { return null; } @Override public List<String> getFriends() { return emptyList(); } @Override public boolean hasFriend(String friendSoneId) { return false; } @Override public List<Post> getPosts() { return emptyList(); } @Override public Sone setPosts(Collection<Post> posts) { return this; } @Override public void addPost(Post post) { } @Override public void removePost(Post post) { } @Override public Set<PostReply> getReplies() { return emptySet(); } @Override public Sone setReplies(Collection<PostReply> replies) { return this; } @Override public void addReply(PostReply reply) { } @Override public void removeReply(PostReply reply) { } @Override public Set<String> getLikedPostIds() { return emptySet(); } @Override public Sone setLikePostIds(Set<String> likedPostIds) { return this; } @Override public boolean isLikedPostId(String postId) { return false; } @Override public Sone addLikedPostId(String postId) { return this; } @Override public Sone removeLikedPostId(String postId) { return this; } @Override public Set<String> getLikedReplyIds() { return emptySet(); } @Override public Sone setLikeReplyIds(Set<String> likedReplyIds) { return this; } @Override public boolean isLikedReplyId(String replyId) { return false; } @Override public Sone addLikedReplyId(String replyId) { return this; } @Override public Sone removeLikedReplyId(String replyId) { return this; } @Override public Album getRootAlbum() { return null; } @Override public SoneOptions getOptions() { return null; } @Override public void setOptions(SoneOptions options) { } @Override public int compareTo(Sone o) { return 0; } @Override public String getFingerprint() { return null; } @Override public String getId() { return id; } @Override public int hashCode() { return id.hashCode(); } @Override public boolean equals(Object object) { return (object != null) && (object.getClass() == getClass()) && Objects.equal(id, ((IdOnlySone) object).id); } }