* @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);
}
* 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);
}
/**
* 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) {
}
sone.addReply(reply);
saveSone(sone);
+ return reply;
}
/**