import java.util.concurrent.CopyOnWriteArraySet;
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.annotation.Nullable;
import net.pterodactylus.sone.data.Album;
import net.pterodactylus.sone.data.Client;
+import net.pterodactylus.sone.data.Image;
import net.pterodactylus.sone.data.Post;
import net.pterodactylus.sone.data.PostReply;
import net.pterodactylus.sone.data.Profile;
import net.pterodactylus.sone.freenet.wot.Identity;
import net.pterodactylus.sone.freenet.wot.OwnIdentity;
+import com.google.common.base.Optional;
+import com.google.common.base.Predicate;
+import com.google.common.collect.FluentIterable;
import freenet.keys.FreenetURI;
import com.google.common.hash.Hasher;
public class SoneImpl implements Sone {
/** The logger. */
- private static final Logger logger = getLogger("Sone.Data");
+ private static final Logger logger = getLogger(SoneImpl.class.getName());
/** The database. */
private final Database database;
return rootAlbum;
}
+ @Override
+ public Optional<Image> getImageByInternalId(final String internalId) {
+ return FluentIterable.from(toAllImages.apply(this)).filter(new Predicate<Image>() {
+ @Override
+ public boolean apply(@Nullable Image input) {
+ return (input != null) && input.getInternalId().equals(internalId);
+ }
+ }).first();
+ }
+
/**
* Returns Sone-specific options.
*