Merge branch 'partial-rewrite' into less-critical
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Sat, 26 Jan 2013 11:35:09 +0000 (12:35 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Sat, 26 Jan 2013 11:35:09 +0000 (12:35 +0100)
Conflicts:
src/main/java/net/pterodactylus/sone/data/impl/DefaultPostBuilderFactory.java
src/main/java/net/pterodactylus/sone/text/SoneTextParser.java

14 files changed:
1  2 
src/main/java/net/pterodactylus/sone/core/Core.java
src/main/java/net/pterodactylus/sone/core/SoneDownloader.java
src/main/java/net/pterodactylus/sone/data/impl/DefaultPostBuilderFactory.java
src/main/java/net/pterodactylus/sone/data/impl/PostReplyImpl.java
src/main/java/net/pterodactylus/sone/database/PostProvider.java
src/main/java/net/pterodactylus/sone/database/PostReplyProvider.java
src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java
src/main/java/net/pterodactylus/sone/main/SonePlugin.java
src/main/java/net/pterodactylus/sone/text/SoneTextParser.java
src/main/java/net/pterodactylus/sone/web/MarkAsKnownPage.java
src/main/java/net/pterodactylus/sone/web/SearchPage.java
src/main/java/net/pterodactylus/sone/web/ViewSonePage.java
src/main/java/net/pterodactylus/sone/web/ajax/GetStatusAjaxPage.java
src/main/java/net/pterodactylus/sone/web/ajax/MarkAsKnownAjaxPage.java

  
  package net.pterodactylus.sone.data.impl;
  
- import com.google.inject.Inject;
+ import net.pterodactylus.sone.database.PostBuilder;
+ import net.pterodactylus.sone.database.PostBuilderFactory;
+ import net.pterodactylus.sone.database.SoneProvider;
  
- import net.pterodactylus.sone.core.SoneProvider;
- import net.pterodactylus.sone.data.PostBuilder;
- import net.pterodactylus.sone.data.PostBuilderFactory;
++import com.google.inject.Inject;
 +
  /**
   * {@link PostBuilderFactory} implementation that creates
   * {@link PostBuilderImpl}s.
  
  package net.pterodactylus.sone.data.impl;
  
- import net.pterodactylus.sone.core.PostProvider;
- import net.pterodactylus.sone.core.SoneProvider;
  import net.pterodactylus.sone.data.Post;
  import net.pterodactylus.sone.data.PostReply;
+ import net.pterodactylus.sone.database.PostProvider;
+ import net.pterodactylus.sone.database.SoneProvider;
  
 +import com.google.common.base.Optional;
 +
  /**
   * Simple {@link PostReply} implementation.
   *
index 0000000,865376b..13845da
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,50 +1,52 @@@
 -      public Post getPost(String postId);
+ /*
+  * Sone - PostProvider.java - Copyright © 2011–2013 David Roden
+  *
+  * This program is free software: you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published by
+  * the Free Software Foundation, either version 3 of the License, or
+  * (at your option) any later version.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+  */
+ package net.pterodactylus.sone.database;
+ import java.util.Collection;
+ import net.pterodactylus.sone.data.Post;
++import com.google.common.base.Optional;
++
+ /**
+  * Interface for objects that can provide {@link Post}s by their ID.
+  *
+  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
+  */
+ public interface PostProvider {
+       /**
+        * Returns the post with the given ID.
+        *
+        * @param postId
+        *            The ID of the post to return
+        * @return The post with the given ID, or {@code null}
+        */
++      public Optional<Post> getPost(String postId);
+       /**
+        * Returns all posts that have the given Sone as recipient.
+        *
+        * @see Post#getRecipient()
+        * @param recipientId
+        *            The ID of the recipient of the posts
+        * @return All posts that have the given Sone as recipient
+        */
+       public Collection<Post> getDirectedPosts(String recipientId);
+ }
index 0000000,2ad38a6..8098f1d
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,50 +1,52 @@@
 -      public PostReply getPostReply(String id);
+ /*
+  * Sone - PostReplyProvider.java - Copyright © 2013 David Roden
+  *
+  * This program is free software: you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published by
+  * the Free Software Foundation, either version 3 of the License, or
+  * (at your option) any later version.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+  */
+ package net.pterodactylus.sone.database;
+ import java.util.List;
+ import net.pterodactylus.sone.data.Post;
+ import net.pterodactylus.sone.data.PostReply;
++import com.google.common.base.Optional;
++
+ /**
+  * Interface for objects that can provide {@link PostReply}s.
+  *
+  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
+  */
+ public interface PostReplyProvider {
+       /**
+        * Returns the reply with the given ID.
+        *
+        * @param id
+        *            The ID of the reply to get
+        * @return The reply, or {@code null} if there is no such reply
+        */
++      public Optional<PostReply> getPostReply(String id);
+       /**
+        * Returns all replies for the given post, order ascending by time.
+        *
+        * @param post
+        *            The post to get all replies for
+        * @return All replies for the given post
+        */
+       public List<PostReply> getReplies(Post post);
+ }
@@@ -26,14 -26,12 +26,15 @@@ import java.util.logging.Logger
  import java.util.regex.Matcher;
  import java.util.regex.Pattern;
  
- import com.google.common.base.Optional;
- import net.pterodactylus.sone.core.PostProvider;
- import net.pterodactylus.sone.core.SoneProvider;
  import net.pterodactylus.sone.data.Post;
  import net.pterodactylus.sone.data.Sone;
+ import net.pterodactylus.sone.database.PostProvider;
+ import net.pterodactylus.sone.database.SoneProvider;
  import net.pterodactylus.util.io.Closer;
  import net.pterodactylus.util.logging.Logging;
++
++import com.google.common.base.Optional;
++
  import freenet.keys.FreenetURI;
  
  /**
@@@ -67,19 -65,19 +67,19 @@@ public class MarkAsKnownPage extends So
                for (StringTokenizer idTokenizer = new StringTokenizer(ids); idTokenizer.hasMoreTokens();) {
                        String id = idTokenizer.nextToken();
                        if (type.equals("post")) {
 -                              Post post = webInterface.getCore().getPost(id);
 -                              if (post == null) {
 +                              Optional<Post> post = webInterface.getCore().getPost(id);
 +                              if (!post.isPresent()) {
                                        continue;
                                }
 -                              webInterface.getCore().markPostKnown(post);
 +                              webInterface.getCore().markPostKnown(post.get());
                        } else if (type.equals("reply")) {
 -                              PostReply reply = webInterface.getCore().getPostReply(id);
 -                              if (reply == null) {
 +                              Optional<PostReply> reply = webInterface.getCore().getPostReply(id);
 +                              if (!reply.isPresent()) {
                                        continue;
                                }
 -                              webInterface.getCore().markReplyKnown(reply);
 +                              webInterface.getCore().markReplyKnown(reply.get());
                        } else if (type.equals("sone")) {
-                               Sone sone = webInterface.getCore().getSone(id, false);
+                               Sone sone = webInterface.getCore().getSone(id);
                                if (sone == null) {
                                        continue;
                                }
@@@ -59,19 -57,19 +59,19 @@@ public class MarkAsKnownAjaxPage extend
                Core core = webInterface.getCore();
                for (String id : ids) {
                        if (type.equals("post")) {
 -                              Post post = core.getPost(id);
 -                              if (post == null) {
 +                              Optional<Post> post = core.getPost(id);
 +                              if (!post.isPresent()) {
                                        continue;
                                }
 -                              core.markPostKnown(post);
 +                              core.markPostKnown(post.get());
                        } else if (type.equals("reply")) {
 -                              PostReply reply = core.getPostReply(id);
 -                              if (reply == null) {
 +                              Optional<PostReply> reply = core.getPostReply(id);
 +                              if (!reply.isPresent()) {
                                        continue;
                                }
 -                              core.markReplyKnown(reply);
 +                              core.markReplyKnown(reply.get());
                        } else if (type.equals("sone")) {
-                               Sone sone = core.getSone(id, false);
+                               Sone sone = core.getSone(id);
                                if (sone == null) {
                                        continue;
                                }