X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FImageInserter.java;h=d0dc31a4c6a11d7f28a5fb45262f972da0cc75ed;hp=791663f2c6936a6ab60989bf49655513919d37f1;hb=916a38a274bcddc755c06fe21bdbc41d494b1825;hpb=8677d84408d2495fe6c3e114e64accd28d6576ec diff --git a/src/main/java/net/pterodactylus/sone/core/ImageInserter.java b/src/main/java/net/pterodactylus/sone/core/ImageInserter.java index 791663f..d0dc31a 100644 --- a/src/main/java/net/pterodactylus/sone/core/ImageInserter.java +++ b/src/main/java/net/pterodactylus/sone/core/ImageInserter.java @@ -31,6 +31,8 @@ import net.pterodactylus.sone.data.Image; import net.pterodactylus.sone.data.TemporaryImage; import net.pterodactylus.util.logging.Logging; +import com.google.common.base.Function; + /** * The image inserter is responsible for inserting images using * {@link FreenetInterface#insertImage(TemporaryImage, Image, InsertToken)} and @@ -46,6 +48,7 @@ public class ImageInserter { /** The freenet interface. */ private final FreenetInterface freenetInterface; + private final Function insertTokenSupplier; /** The tokens of running inserts. */ private final Map insertTokens = Collections.synchronizedMap(new HashMap()); @@ -55,9 +58,12 @@ public class ImageInserter { * * @param freenetInterface * The freenet interface + * @param insertTokenSupplier + * The supplier for insert tokens */ - public ImageInserter(FreenetInterface freenetInterface) { + public ImageInserter(FreenetInterface freenetInterface, Function insertTokenSupplier) { this.freenetInterface = freenetInterface; + this.insertTokenSupplier = insertTokenSupplier; } /** @@ -73,7 +79,7 @@ public class ImageInserter { checkNotNull(image, "image must not be null"); checkArgument(image.getId().equals(temporaryImage.getId()), "image IDs must match"); try { - InsertToken insertToken = freenetInterface.new InsertToken(image); + InsertToken insertToken = insertTokenSupplier.apply(image); insertTokens.put(image.getId(), insertToken); freenetInterface.insertImage(temporaryImage, image, insertToken); } catch (SoneException se1) {