Only create new Sones if create is true.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / Core.java
index 51a831c..8984cdd 100644 (file)
@@ -36,6 +36,8 @@ import net.pterodactylus.sone.core.Options.DefaultOption;
 import net.pterodactylus.sone.core.Options.Option;
 import net.pterodactylus.sone.core.Options.OptionWatcher;
 import net.pterodactylus.sone.core.event.ImageInsertAbortedEvent;
+import net.pterodactylus.sone.core.event.ImageInsertFailedEvent;
+import net.pterodactylus.sone.core.event.ImageInsertFinishedEvent;
 import net.pterodactylus.sone.core.event.ImageInsertStartedEvent;
 import net.pterodactylus.sone.core.event.MarkPostKnownEvent;
 import net.pterodactylus.sone.core.event.MarkPostReplyKnownEvent;
@@ -111,9 +113,6 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis
        /** The preferences. */
        private final Preferences preferences = new Preferences(options);
 
-       /** The core listener manager. */
-       private final CoreListenerManager coreListenerManager = new CoreListenerManager(this);
-
        /** The event bus. */
        private final EventBus eventBus;
 
@@ -231,30 +230,6 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis
        }
 
        //
-       // LISTENER MANAGEMENT
-       //
-
-       /**
-        * Adds a new core listener.
-        *
-        * @param coreListener
-        *            The listener to add
-        */
-       public void addCoreListener(CoreListener coreListener) {
-               coreListenerManager.addListener(coreListener);
-       }
-
-       /**
-        * Removes a core listener.
-        *
-        * @param coreListener
-        *            The listener to remove
-        */
-       public void removeCoreListener(CoreListener coreListener) {
-               coreListenerManager.removeListener(coreListener);
-       }
-
-       //
        // ACCESSORS
        //
 
@@ -387,7 +362,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis
        @Override
        public Sone getSone(String id, boolean create) {
                synchronized (sones) {
-                       if (!sones.containsKey(id)) {
+                       if (!sones.containsKey(id) && create) {
                                Sone sone = new Sone(id, false);
                                sones.put(id, sone);
                        }
@@ -2518,7 +2493,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis
                image.setKey(key.toString());
                deleteTemporaryImage(image.getId());
                touchConfiguration();
-               coreListenerManager.fireImageInsertFinished(image);
+               eventBus.post(new ImageInsertFinishedEvent(image));
        }
 
        /**
@@ -2527,7 +2502,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis
        @Override
        public void imageInsertFailed(Image image, Throwable cause) {
                logger.log(Level.WARNING, String.format("Image insert failed for %s." + image), cause);
-               coreListenerManager.fireImageInsertFailed(image, cause);
+               eventBus.post(new ImageInsertFailedEvent(image, cause));
        }
 
        /**