/*
- * Sone - ImageInserter.java - Copyright © 2011 David Roden
+ * Sone - ImageInserter.java - Copyright © 2011–2013 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
package net.pterodactylus.sone.core;
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import net.pterodactylus.sone.data.Image;
import net.pterodactylus.sone.data.TemporaryImage;
import net.pterodactylus.util.logging.Logging;
-import net.pterodactylus.util.validation.Validation;
/**
* The image inserter is responsible for inserting images using
/** The logger. */
private static final Logger logger = Logging.getLogger(ImageInserter.class);
- /** The core. */
- private final Core core;
-
/** The freenet interface. */
private final FreenetInterface freenetInterface;
/**
* Creates a new image inserter.
*
- * @param core
- * The Sone core
* @param freenetInterface
* The freenet interface
*/
- public ImageInserter(Core core, FreenetInterface freenetInterface) {
- this.core = core;
+ public ImageInserter(FreenetInterface freenetInterface) {
this.freenetInterface = freenetInterface;
}
/**
- * Inserts the given image. The {@link #core} will automatically added as
- * {@link ImageInsertListener} to the created {@link InsertToken}.
+ * Inserts the given image.
*
* @param temporaryImage
* The temporary image data
* The image
*/
public void insertImage(TemporaryImage temporaryImage, Image image) {
- Validation.begin().isNotNull("Temporary Image", temporaryImage).isNotNull("Image", image).check().isEqual("Image IDs", image.getId(), temporaryImage.getId()).check();
+ checkNotNull(temporaryImage, "temporaryImage must not be null");
+ checkNotNull(image, "image must not be null");
+ checkArgument(image.getId().equals(temporaryImage.getId()), "image IDs must match");
try {
InsertToken insertToken = freenetInterface.new InsertToken(image);
insertTokens.put(image.getId(), insertToken);
- insertToken.addImageInsertListener(core);
freenetInterface.insertImage(temporaryImage, image, insertToken);
} catch (SoneException se1) {
logger.log(Level.WARNING, "Could not insert image!", se1);
* The image being inserted
*/
public void cancelImageInsert(Image image) {
- InsertToken insertToken = insertTokens.remove(image);
+ InsertToken insertToken = insertTokens.remove(image.getId());
if (insertToken == null) {
return;
}
insertToken.cancel();
- insertToken.removeImageInsertListener(core);
}
}