X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FImageInserter.java;h=76519f4d579c33f7ae23adf0899800283d05f192;hp=791663f2c6936a6ab60989bf49655513919d37f1;hb=438378deab1514f0f608d975ef65f5b7aea44ccb;hpb=99888ce13cc17d49f5e217ab6f2c9ad5ef168792 diff --git a/src/main/java/net/pterodactylus/sone/core/ImageInserter.java b/src/main/java/net/pterodactylus/sone/core/ImageInserter.java index 791663f..76519f4 100644 --- a/src/main/java/net/pterodactylus/sone/core/ImageInserter.java +++ b/src/main/java/net/pterodactylus/sone/core/ImageInserter.java @@ -1,5 +1,5 @@ /* - * Sone - ImageInserter.java - Copyright © 2011–2013 David Roden + * Sone - ImageInserter.java - Copyright © 2011–2020 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,6 +19,7 @@ package net.pterodactylus.sone.core; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.logging.Logger.getLogger; import java.util.Collections; import java.util.HashMap; @@ -26,26 +27,29 @@ import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; +import javax.inject.Inject; + import net.pterodactylus.sone.core.FreenetInterface.InsertToken; +import net.pterodactylus.sone.core.FreenetInterface.InsertTokenSupplier; 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 * also tracks running inserts, giving the possibility to abort a running * insert. - * - * @author David ‘Bombe’ Roden */ public class ImageInserter { /** The logger. */ - private static final Logger logger = Logging.getLogger(ImageInserter.class); + private static final Logger logger = getLogger(ImageInserter.class.getName()); /** 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 +59,13 @@ public class ImageInserter { * * @param freenetInterface * The freenet interface + * @param insertTokenSupplier + * The supplier for insert tokens */ - public ImageInserter(FreenetInterface freenetInterface) { + @Inject + public ImageInserter(FreenetInterface freenetInterface, InsertTokenSupplier insertTokenSupplier) { this.freenetInterface = freenetInterface; + this.insertTokenSupplier = insertTokenSupplier; } /** @@ -73,7 +81,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) {