Store the client name and version in the inserted Sone.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / Core.java
index 60101b4..393c91f 100644 (file)
@@ -301,9 +301,23 @@ public class Core implements IdentityListener {
         * @return The Sone with the given ID
         */
        public Sone getLocalSone(String id) {
+               return getLocalSone(id, true);
+       }
+
+       /**
+        * Returns the local Sone with the given ID, optionally creating a new Sone.
+        *
+        * @param id
+        *            The ID of the Sone
+        * @param create
+        *            {@code true} to create a new Sone if none exists,
+        *            {@code false} to return null if none exists
+        * @return The Sone with the given ID, or {@code null}
+        */
+       public Sone getLocalSone(String id, boolean create) {
                synchronized (localSones) {
                        Sone sone = localSones.get(id);
-                       if (sone == null) {
+                       if ((sone == null) && create) {
                                sone = new Sone(id);
                                localSones.put(id, sone);
                        }
@@ -1006,9 +1020,10 @@ public class Core implements IdentityListener {
         *            The post that this reply refers to
         * @param text
         *            The text of the reply
+        * @return The created reply
         */
-       public void createReply(Sone sone, Post post, String text) {
-               createReply(sone, post, System.currentTimeMillis(), text);
+       public Reply createReply(Sone sone, Post post, String text) {
+               return createReply(sone, post, System.currentTimeMillis(), text);
        }
 
        /**
@@ -1022,11 +1037,12 @@ public class Core implements IdentityListener {
         *            The time of the reply
         * @param text
         *            The text of the reply
+        * @return The created reply
         */
-       public void createReply(Sone sone, Post post, long time, String text) {
+       public Reply createReply(Sone sone, Post post, long time, String text) {
                if (!isLocalSone(sone)) {
                        logger.log(Level.FINE, "Tried to create reply for non-local Sone: %s", sone);
-                       return;
+                       return null;
                }
                Reply reply = new Reply(sone, post, System.currentTimeMillis(), text);
                synchronized (replies) {
@@ -1037,6 +1053,7 @@ public class Core implements IdentityListener {
                }
                sone.addReply(reply);
                saveSone(sone);
+               return reply;
        }
 
        /**