🔥 Remove function from Sone interface
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Tue, 18 Feb 2020 13:37:50 +0000 (14:37 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Tue, 18 Feb 2020 13:37:50 +0000 (14:37 +0100)
src/main/java/net/pterodactylus/sone/data/Sone.java
src/main/kotlin/net/pterodactylus/sone/database/memory/MemoryDatabase.kt
src/test/kotlin/net/pterodactylus/sone/core/SoneParserTest.kt

index 836baa1..843400e 100644 (file)
@@ -17,9 +17,7 @@
 
 package net.pterodactylus.sone.data;
 
-import static com.google.common.collect.FluentIterable.from;
 import static net.pterodactylus.sone.data.Album.FLATTENER;
-import static net.pterodactylus.sone.data.Album.IMAGES;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -67,15 +65,6 @@ public interface Sone extends Identified, Fingerprintable, Comparable<Sone> {
                }
        };
 
-       public static final Function<Sone, List<Image>> toAllImages = new Function<Sone, List<Image>>() {
-               @Override
-               public List<Image> apply(@Nullable Sone sone) {
-                       return (sone == null) ? Collections.<Image>emptyList() :
-                                       from(FLATTENER.apply(sone.getRootAlbum()))
-                                                       .transformAndConcat(IMAGES).toList();
-               }
-       };
-
        /**
         * Returns the identity of this Sone.
         *
index 8722873..e62d968 100644 (file)
@@ -31,7 +31,7 @@ import net.pterodactylus.sone.data.PostReply
 import net.pterodactylus.sone.data.Reply.TIME_COMPARATOR
 import net.pterodactylus.sone.data.Sone
 import net.pterodactylus.sone.data.Sone.toAllAlbums
-import net.pterodactylus.sone.data.Sone.toAllImages
+import net.pterodactylus.sone.data.allImages
 import net.pterodactylus.sone.data.impl.AlbumBuilderImpl
 import net.pterodactylus.sone.data.impl.ImageBuilderImpl
 import net.pterodactylus.sone.database.AlbumBuilder
@@ -127,9 +127,9 @@ class MemoryDatabase @Inject constructor(private val configuration: Configuratio
                        for (album in toAllAlbums.apply(sone)!!) {
                                allAlbums[album.id] = album
                        }
-                       soneImages.putAll(sone.id, toAllImages.apply(sone)!!)
-                       for (image in toAllImages.apply(sone)!!) {
-                               allImages[image.id] = image
+                       sone.rootAlbum.allImages.let { images ->
+                               soneImages.putAll(sone.id, images)
+                               images.forEach { image -> allImages[image.id] = image }
                        }
                }
        }
index 336d855..38419a2 100644 (file)
@@ -5,6 +5,7 @@ import com.google.common.base.Optional.*
 import freenet.crypt.*
 import freenet.keys.InsertableClientSSK.*
 import net.pterodactylus.sone.data.*
+import net.pterodactylus.sone.data.impl.AlbumImpl
 import net.pterodactylus.sone.database.memory.*
 import net.pterodactylus.sone.freenet.wot.*
 import net.pterodactylus.sone.test.*
@@ -41,6 +42,7 @@ class SoneParserTest {
                whenever(sone.identity).thenReturn(identity)
                whenever(sone.requestUri).thenAnswer { clientSSK.uri.setKeyType("USK").setDocName("Sone") }
                whenever(sone.time).thenReturn(currentTimeMillis() - DAYS.toMillis(1))
+               whenever(sone.rootAlbum).thenReturn(AlbumImpl(sone))
        }
 
        @Test