From a7504a0d48d339f53646090cd0ee3807d84623d2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Wed, 16 Oct 2013 20:47:39 +0200 Subject: [PATCH] Move PostReplyProvider and PostReplyStore into PostReplyDatabase. --- .../java/net/pterodactylus/sone/core/Core.java | 5 +- .../sone/database/PostReplyDatabase.java | 68 +++++++++++++++++++-- .../sone/database/PostReplyProvider.java | 51 ---------------- .../sone/database/PostReplyStore.java | 69 ---------------------- 4 files changed, 65 insertions(+), 128 deletions(-) delete mode 100644 src/main/java/net/pterodactylus/sone/database/PostReplyProvider.java delete mode 100644 src/main/java/net/pterodactylus/sone/database/PostReplyStore.java diff --git a/src/main/java/net/pterodactylus/sone/core/Core.java b/src/main/java/net/pterodactylus/sone/core/Core.java index 126f4ae..fade421 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -74,7 +74,6 @@ import net.pterodactylus.sone.database.PostBuilder; import net.pterodactylus.sone.database.PostBuilder.PostCreated; import net.pterodactylus.sone.database.PostReplyBuilder; import net.pterodactylus.sone.database.PostReplyBuilder.PostReplyCreated; -import net.pterodactylus.sone.database.PostReplyProvider; import net.pterodactylus.sone.database.SoneProvider; import net.pterodactylus.sone.fcp.FcpInterface; import net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired; @@ -114,7 +113,7 @@ import com.google.inject.Inject; * * @author David ‘Bombe’ Roden */ -public class Core extends AbstractService implements SoneProvider, PostReplyProvider { +public class Core extends AbstractService implements SoneProvider { /** The logger. */ private static final Logger logger = Logging.getLogger(Core.class); @@ -408,12 +407,10 @@ public class Core extends AbstractService implements SoneProvider, PostReplyProv } } - @Override public Optional getPostReply(String replyId) { return database.getPostReply(replyId); } - @Override public List getReplies(final String postId) { return database.getReplies(postId); } diff --git a/src/main/java/net/pterodactylus/sone/database/PostReplyDatabase.java b/src/main/java/net/pterodactylus/sone/database/PostReplyDatabase.java index facb02b..2f320d2 100644 --- a/src/main/java/net/pterodactylus/sone/database/PostReplyDatabase.java +++ b/src/main/java/net/pterodactylus/sone/database/PostReplyDatabase.java @@ -17,14 +17,74 @@ package net.pterodactylus.sone.database; +import java.util.Collection; +import java.util.List; + +import net.pterodactylus.sone.data.PostReply; +import net.pterodactylus.sone.data.Sone; + +import com.google.common.base.Optional; + /** - * Combines a {@link PostReplyProvider} and a {@link PostReplyStore} into a - * complete post reply database. + * Database for handling {@link PostReply}s. * * @author David ‘Bombe’ Roden */ -public interface PostReplyDatabase extends PostReplyProvider, PostReplyStore { +public interface PostReplyDatabase { + + /** + * 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 + */ + Optional getPostReply(String id); + + /** + * Returns all replies for the given post, order ascending by time. + * + * @param postId + * The ID of the post to get all replies for + * @return All replies for the given post + */ + List getReplies(String postId); + + /** + * Stores the given post reply. + * + * @param postReply + * The post reply + */ + void storePostReply(PostReply postReply); + + /** + * Stores the given post replies as exclusive collection of post replies for + * the given Sone. This will remove all other post replies from this Sone! + * + * @param sone + * The Sone to store all post replies for + * @param postReplies + * The post replies of the Sone + * @throws IllegalArgumentException + * if one of the replies does not belong to the given Sone + */ + void storePostReplies(Sone sone, Collection postReplies) throws IllegalArgumentException; + + /** + * Removes the given post reply from this store. + * + * @param postReply + * The post reply to remove + */ + void removePostReply(PostReply postReply); - /* nothing here. */ + /** + * Removes all post replies of the given Sone. + * + * @param sone + * The Sone to remove all post replies for + */ + void removePostReplies(Sone sone); } diff --git a/src/main/java/net/pterodactylus/sone/database/PostReplyProvider.java b/src/main/java/net/pterodactylus/sone/database/PostReplyProvider.java deleted file mode 100644 index e186e5b..0000000 --- a/src/main/java/net/pterodactylus/sone/database/PostReplyProvider.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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.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 Optional getPostReply(String id); - - /** - * Returns all replies for the given post, order ascending by time. - * - * @param postId - * The ID of the post to get all replies for - * @return All replies for the given post - */ - public List getReplies(String postId); - -} diff --git a/src/main/java/net/pterodactylus/sone/database/PostReplyStore.java b/src/main/java/net/pterodactylus/sone/database/PostReplyStore.java deleted file mode 100644 index a3cefb3..0000000 --- a/src/main/java/net/pterodactylus/sone/database/PostReplyStore.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Sone - PostReplyStore.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.Collection; - -import net.pterodactylus.sone.data.PostReply; -import net.pterodactylus.sone.data.Sone; - -/** - * Defines a store for {@link PostReply post replies}. - * - * @author David ‘Bombe’ Roden - */ -public interface PostReplyStore { - - /** - * Stores the given post reply. - * - * @param postReply - * The post reply - */ - public void storePostReply(PostReply postReply); - - /** - * Stores the given post replies as exclusive collection of post replies for - * the given Sone. This will remove all other post replies from this Sone! - * - * @param sone - * The Sone to store all post replies for - * @param postReplies - * The post replies of the Sone - * @throws IllegalArgumentException - * if one of the replies does not belong to the given Sone - */ - public void storePostReplies(Sone sone, Collection postReplies) throws IllegalArgumentException; - - /** - * Removes the given post reply from this store. - * - * @param postReply - * The post reply to remove - */ - public void removePostReply(PostReply postReply); - - /** - * Removes all post replies of the given Sone. - * - * @param sone - * The Sone to remove all post replies for - */ - public void removePostReplies(Sone sone); - -} -- 2.7.4