From: David ‘Bombe’ Roden Date: Sat, 26 Jan 2013 11:35:09 +0000 (+0100) Subject: Merge branch 'partial-rewrite' into less-critical X-Git-Tag: 0.8.5^2~3^2~45 X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=commitdiff_plain;h=8f02544d31f323ae9053dd9a11a99eacd8cf5bcd Merge branch 'partial-rewrite' into less-critical Conflicts: src/main/java/net/pterodactylus/sone/data/impl/DefaultPostBuilderFactory.java src/main/java/net/pterodactylus/sone/text/SoneTextParser.java --- 8f02544d31f323ae9053dd9a11a99eacd8cf5bcd diff --cc src/main/java/net/pterodactylus/sone/data/impl/DefaultPostBuilderFactory.java index cf32640,567708b..4df8897 --- a/src/main/java/net/pterodactylus/sone/data/impl/DefaultPostBuilderFactory.java +++ b/src/main/java/net/pterodactylus/sone/data/impl/DefaultPostBuilderFactory.java @@@ -17,12 -17,10 +17,12 @@@ 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. diff --cc src/main/java/net/pterodactylus/sone/data/impl/PostReplyImpl.java index 065ce2f,87c792a..30badf7 --- a/src/main/java/net/pterodactylus/sone/data/impl/PostReplyImpl.java +++ b/src/main/java/net/pterodactylus/sone/data/impl/PostReplyImpl.java @@@ -17,13 -17,11 +17,13 @@@ 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. * diff --cc src/main/java/net/pterodactylus/sone/database/PostProvider.java index 0000000,865376b..13845da mode 000000,100644..100644 --- a/src/main/java/net/pterodactylus/sone/database/PostProvider.java +++ b/src/main/java/net/pterodactylus/sone/database/PostProvider.java @@@ -1,0 -1,50 +1,52 @@@ + /* + * 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 . + */ + + 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 David ‘Bombe’ Roden + */ + 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 Post getPost(String postId); ++ public Optional 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 getDirectedPosts(String recipientId); + + } diff --cc src/main/java/net/pterodactylus/sone/database/PostReplyProvider.java index 0000000,2ad38a6..8098f1d mode 000000,100644..100644 --- a/src/main/java/net/pterodactylus/sone/database/PostReplyProvider.java +++ b/src/main/java/net/pterodactylus/sone/database/PostReplyProvider.java @@@ -1,0 -1,50 +1,52 @@@ + /* + * 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 . + */ + + 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 David ‘Bombe’ Roden + */ + 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 PostReply getPostReply(String id); ++ public Optional 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 getReplies(Post post); + + } diff --cc src/main/java/net/pterodactylus/sone/text/SoneTextParser.java index 6e84c70,9aacff6..f2ca0c5 --- a/src/main/java/net/pterodactylus/sone/text/SoneTextParser.java +++ b/src/main/java/net/pterodactylus/sone/text/SoneTextParser.java @@@ -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; /** diff --cc src/main/java/net/pterodactylus/sone/web/MarkAsKnownPage.java index f183ff4,a923386..88f1026 --- a/src/main/java/net/pterodactylus/sone/web/MarkAsKnownPage.java +++ b/src/main/java/net/pterodactylus/sone/web/MarkAsKnownPage.java @@@ -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 = 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 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; } diff --cc src/main/java/net/pterodactylus/sone/web/ajax/MarkAsKnownAjaxPage.java index 997c9dc,55ae553..4701118 --- a/src/main/java/net/pterodactylus/sone/web/ajax/MarkAsKnownAjaxPage.java +++ b/src/main/java/net/pterodactylus/sone/web/ajax/MarkAsKnownAjaxPage.java @@@ -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 = 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 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; }