}
@Override
+ public Function<String, Optional<Sone>> getSone() {
+ return new Function<String, Optional<Sone>>() {
+ @Override
+ public Optional<Sone> apply(String soneId) {
+ return (soneId == null) ? Optional.<Sone>absent() : getSone(soneId);
+ }
+ };
+ }
+
+ @Override
public Optional<Sone> getSone(String soneId) {
lock.readLock().lock();
try {
//
@Override
+ public Function<String, Optional<Post>> getPost() {
+ return new Function<String, Optional<Post>>() {
+ @Override
+ public Optional<Post> apply(String postId) {
+ return (postId == null) ? Optional.<Post>absent() : getPost(postId);
+ }
+ };
+ }
+
+ @Override
public Optional<Post> getPost(String postId) {
lock.readLock().lock();
try {
lock.writeLock().lock();
try {
allAlbums.put(album.getId(), album);
- albumChildren.put(album.getParent().getId(), album.getId());
+ if (!album.isRoot()) {
+ albumChildren.put(album.getParent().getId(), album.getId());
+ }
} finally {
lock.writeLock().unlock();
}