From: David ‘Bombe’ Roden Date: Mon, 16 Oct 2017 18:20:57 +0000 (+0200) Subject: Replace database interface with Kotlin version X-Git-Tag: 0.9.8^2~13 X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=commitdiff_plain;h=ff4bc3606b33e9796ff4fbae087b4224d02cf0d0 Replace database interface with Kotlin version --- diff --git a/src/main/java/net/pterodactylus/sone/database/Database.java b/src/main/java/net/pterodactylus/sone/database/Database.java deleted file mode 100644 index db63ba3..0000000 --- a/src/main/java/net/pterodactylus/sone/database/Database.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Sone - Database.java - Copyright © 2013–2016 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 net.pterodactylus.sone.database.memory.MemoryDatabase; - -import com.google.common.util.concurrent.Service; -import com.google.inject.ImplementedBy; - -/** - * Database for Sone data. This interface combines the various provider, - * store, and builder factory interfaces into a single interface. - * - * @author David ‘Bombe’ Roden - */ -@ImplementedBy(MemoryDatabase.class) -public interface Database extends Service, SoneDatabase, FriendDatabase, PostDatabase, PostReplyDatabase, AlbumDatabase, ImageDatabase, BookmarkDatabase { - - /** - * Saves the database. - * - * @throws DatabaseException - * if an error occurs while saving - */ - public void save() throws DatabaseException; - -} diff --git a/src/main/java/net/pterodactylus/sone/main/SonePlugin.java b/src/main/java/net/pterodactylus/sone/main/SonePlugin.java index c1628eb..e6a71f0 100644 --- a/src/main/java/net/pterodactylus/sone/main/SonePlugin.java +++ b/src/main/java/net/pterodactylus/sone/main/SonePlugin.java @@ -26,7 +26,11 @@ import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; +import javax.inject.Singleton; + import net.pterodactylus.sone.core.Core; +import net.pterodactylus.sone.database.Database; +import net.pterodactylus.sone.database.memory.MemoryDatabase; import net.pterodactylus.sone.fcp.FcpInterface; import net.pterodactylus.sone.freenet.PluginStoreConfigurationBackend; import net.pterodactylus.sone.freenet.wot.Context; @@ -252,6 +256,7 @@ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, Fr bind(PluginVersion.class).toInstance(new PluginVersion(getVersion())); bind(PluginYear.class).toInstance(new PluginYear(getYear())); bind(PluginHomepage.class).toInstance(new PluginHomepage(getHomepage())); + bind(Database.class).to(MemoryDatabase.class).in(Singleton.class); if (startConfiguration.getBooleanValue("Developer.LoadFromFilesystem").getValue(false)) { String path = startConfiguration.getStringValue("Developer.FilesystemPath").getValue(null); if (path != null) { diff --git a/src/main/kotlin/net/pterodactylus/sone/database/Database.kt b/src/main/kotlin/net/pterodactylus/sone/database/Database.kt new file mode 100644 index 0000000..522ce32 --- /dev/null +++ b/src/main/kotlin/net/pterodactylus/sone/database/Database.kt @@ -0,0 +1,31 @@ +/* + * Sone - Database.java - Copyright © 2013–2016 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 com.google.common.util.concurrent.Service + +/** + * Database for Sone data. This interface combines the various provider, + * store, and builder factory interfaces into a single interface. + */ +interface Database : Service, SoneDatabase, FriendDatabase, PostDatabase, PostReplyDatabase, AlbumDatabase, ImageDatabase, BookmarkDatabase { + + @Throws(DatabaseException::class) + fun save() + +}