import java.util.concurrent.locks.ReentrantReadWriteLock;
import net.pterodactylus.sone.data.Album;
+import net.pterodactylus.sone.data.Image;
import net.pterodactylus.sone.data.Post;
import net.pterodactylus.sone.data.PostReply;
import net.pterodactylus.sone.data.Reply;
import net.pterodactylus.sone.data.Sone;
-import net.pterodactylus.sone.data.impl.AlbumBuilderImpl;
+import net.pterodactylus.sone.data.impl.DefaultAlbumBuilder;
import net.pterodactylus.sone.database.AlbumBuilder;
import net.pterodactylus.sone.database.Database;
import net.pterodactylus.sone.database.DatabaseException;
private final Map<String, Album> allAlbums = new HashMap<String, Album>();
+ private final Map<String, Image> allImages = new HashMap<String, Image>();
+
/**
* Creates a new memory database.
*
@Override
public AlbumBuilder newAlbumBuilder() {
- return new AlbumBuilderImpl();
+ return new DefaultAlbumBuilder();
}
//
}
//
+ // IMAGEPROVIDER METHODS
+ //
+
+ @Override
+ public Optional<Image> getImage(String imageId) {
+ lock.readLock().lock();
+ try {
+ return fromNullable(allImages.get(imageId));
+ } finally {
+ lock.readLock().unlock();
+ }
+ }
+
+ //
+ // IMAGESTORE METHODS
+ //
+
+ @Override
+ public void storeImage(Image image) {
+ lock.writeLock().lock();
+ try {
+ allImages.put(image.getId(), image);
+ } finally {
+ lock.writeLock().unlock();
+ }
+ }
+
+ @Override
+ public void removeImage(Image image) {
+ lock.writeLock().lock();
+ try {
+ allImages.remove(image.getId());
+ } finally {
+ lock.writeLock().unlock();
+ }
+ }
+
+ //
// PACKAGE-PRIVATE METHODS
//