Add Sone insert events to core listener.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / CoreListener.java
index f8278ed..0e497e8 100644 (file)
@@ -22,6 +22,7 @@ import java.util.EventListener;
 import net.pterodactylus.sone.data.Post;
 import net.pterodactylus.sone.data.Reply;
 import net.pterodactylus.sone.data.Sone;
+import net.pterodactylus.util.version.Version;
 
 /**
  * Listener interface for objects that want to be notified on certain
@@ -32,6 +33,22 @@ import net.pterodactylus.sone.data.Sone;
 public interface CoreListener extends EventListener {
 
        /**
+        * Notifies a listener that a Sone is now being rescued.
+        *
+        * @param sone
+        *            The Sone that is rescued
+        */
+       public void rescuingSone(Sone sone);
+
+       /**
+        * Notifies a listener that the Sone was rescued and can now be unlocked.
+        *
+        * @param sone
+        *            The Sone that was rescued
+        */
+       public void rescuedSone(Sone sone);
+
+       /**
         * Notifies a listener that a new Sone has been discovered.
         *
         * @param sone
@@ -63,4 +80,104 @@ public interface CoreListener extends EventListener {
         */
        public void markSoneKnown(Sone sone);
 
+       /**
+        * Notifies a listener that the given post is now marked as known.
+        *
+        * @param post
+        *            The known post
+        */
+       public void markPostKnown(Post post);
+
+       /**
+        * Notifies a listener that the given reply is now marked as known.
+        *
+        * @param reply
+        *            The known reply
+        */
+       public void markReplyKnown(Reply reply);
+
+       /**
+        * Notifies a listener that the given Sone was removed.
+        *
+        * @param sone
+        *            The removed Sone
+        */
+       public void soneRemoved(Sone sone);
+
+       /**
+        * Notifies a listener that the given post was removed.
+        *
+        * @param post
+        *            The removed post
+        */
+       public void postRemoved(Post post);
+
+       /**
+        * Notifies a listener that the given reply was removed.
+        *
+        * @param reply
+        *            The removed reply
+        */
+       public void replyRemoved(Reply reply);
+
+       /**
+        * Notifies a listener when a Sone was locked.
+        *
+        * @param sone
+        *            The Sone that was locked
+        */
+       public void soneLocked(Sone sone);
+
+       /**
+        * Notifies a listener that a Sone was unlocked.
+        *
+        * @param sone
+        *            The Sone that was unlocked
+        */
+       public void soneUnlocked(Sone sone);
+
+       /**
+        * Notifies a listener that the insert of the given Sone has started.
+        *
+        * @see SoneInsertListener#insertStarted(Sone)
+        * @param sone
+        *            The Sone that is being inserted
+        */
+       public void soneInserting(Sone sone);
+
+       /**
+        * Notifies a listener that the insert of the given Sone has finished
+        * successfully.
+        *
+        * @see SoneInsertListener#insertFinished(Sone, long)
+        * @param sone
+        *            The Sone that has been inserted
+        * @param insertDuration
+        *            The insert duration (in milliseconds)
+        */
+       public void soneInserted(Sone sone, long insertDuration);
+
+       /**
+        * Notifies a listener that the insert of the given Sone was aborted.
+        *
+        * @see SoneInsertListener#insertAborted(Sone, Throwable)
+        * @param sone
+        *            The Sone that was inserted
+        * @param cause
+        *            The cause for the abortion (may be {@code null})
+        */
+       public void soneInsertAborted(Sone sone, Throwable cause);
+
+       /**
+        * Notifies a listener that a new version has been found.
+        *
+        * @param version
+        *            The version that was found
+        * @param releaseTime
+        *            The release time of the new version
+        * @param latestEdition
+        *            The latest edition of the Sone homepage
+        */
+       public void updateFound(Version version, long releaseTime, long latestEdition);
+
 }