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
*/
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);
+
}