From: David ‘Bombe’ Roden Date: Wed, 5 Aug 2020 20:04:51 +0000 (+0200) Subject: 🎨 Replace in-memory post reply with Kotlin version X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=80538cb39f2f708a5811b00bd95cdee8efa0e05d;p=Sone.git 🎨 Replace in-memory post reply with Kotlin version --- diff --git a/src/main/java/net/pterodactylus/sone/database/memory/MemoryPostReply.java b/src/main/java/net/pterodactylus/sone/database/memory/MemoryPostReply.java deleted file mode 100644 index 5764622..0000000 --- a/src/main/java/net/pterodactylus/sone/database/memory/MemoryPostReply.java +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Sone - MemoryPostReply.java - Copyright © 2013–2020 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.memory; - -import static com.google.common.base.Optional.fromNullable; - -import net.pterodactylus.sone.data.Post; -import net.pterodactylus.sone.data.PostReply; -import net.pterodactylus.sone.data.Sone; -import net.pterodactylus.sone.database.SoneProvider; - -import com.google.common.base.Optional; - -/** - * Memory-based {@link PostReply} implementation. - */ -class MemoryPostReply implements PostReply { - - /** The database. */ - private final MemoryDatabase database; - - /** The Sone provider. */ - private final SoneProvider soneProvider; - - /** The ID of the post reply. */ - private final String id; - - /** The ID of the owning Sone. */ - private final String soneId; - - /** The time of the post reply. */ - private final long time; - - /** The text of the post reply. */ - private final String text; - - /** The ID of the post this post reply refers to. */ - private final String postId; - - /** - * Creates a new memory-based {@link PostReply} implementation. - * - * @param database - * The database - * @param soneProvider - * The Sone provider - * @param id - * The ID of the post reply - * @param soneId - * The ID of the owning Sone - * @param time - * The time of the post reply - * @param text - * The text of the post reply - * @param postId - * The ID of the post this post reply refers to - */ - public MemoryPostReply(MemoryDatabase database, SoneProvider soneProvider, String id, String soneId, long time, String text, String postId) { - this.database = database; - this.soneProvider = soneProvider; - this.id = id; - this.soneId = soneId; - this.time = time; - this.text = text; - this.postId = postId; - } - - // - // REPLY METHODS - // - - /** - * {@inheritDocs} - */ - @Override - public String getId() { - return id; - } - - /** - * {@inheritDocs} - */ - @Override - public Sone getSone() { - return soneProvider.getSone(soneId); - } - - /** - * {@inheritDocs} - */ - @Override - public long getTime() { - return time; - } - - /** - * {@inheritDocs} - */ - @Override - public String getText() { - return text; - } - - /** - * {@inheritDocs} - */ - @Override - public boolean isKnown() { - return database.isPostReplyKnown(this); - } - - // - // POSTREPLY METHODS - // - - /** - * {@inheritDocs} - */ - @Override - public String getPostId() { - return postId; - } - - /** - * {@inheritDocs} - */ - @Override - public Optional getPost() { - return fromNullable(database.getPost(postId)); - } - - // - // OBJECT METHODS - // - - /** - * {@inheritDocs} - */ - @Override - public int hashCode() { - return id.hashCode(); - } - - /** - * {@inheritDocs} - */ - @Override - public boolean equals(Object object) { - if (!(object instanceof MemoryPostReply)) { - return false; - } - MemoryPostReply memoryPostReply = (MemoryPostReply) object; - return memoryPostReply.id.equals(id); - } - - @Override - public String toString() { - return "MemoryPostReply{" + - "database=" + database + - ", soneProvider=" + soneProvider + - ", id='" + id + '\'' + - ", soneId='" + soneId + '\'' + - ", time=" + time + - ", text='" + text + '\'' + - ", postId='" + postId + '\'' + - '}'; - } - -} diff --git a/src/main/kotlin/net/pterodactylus/sone/database/memory/MemoryPostReply.kt b/src/main/kotlin/net/pterodactylus/sone/database/memory/MemoryPostReply.kt new file mode 100644 index 0000000..0f2969a --- /dev/null +++ b/src/main/kotlin/net/pterodactylus/sone/database/memory/MemoryPostReply.kt @@ -0,0 +1,70 @@ +/* + * Sone - MemoryPostReply.kt - Copyright © 2013–2020 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.memory + +import com.google.common.base.Optional +import net.pterodactylus.sone.data.Post +import net.pterodactylus.sone.data.PostReply +import net.pterodactylus.sone.database.SoneProvider +import net.pterodactylus.sone.utils.asOptional + +/** + * Memory-based [PostReply] implementation. + */ +class MemoryPostReply( + private val database: MemoryDatabase, + private val soneProvider: SoneProvider, + override val id: String, + private val soneId: String, + private val time: Long, + private val text: String, + private val postId: String) : PostReply { + + override fun getSone() = soneProvider.getSone(soneId)!! + + override fun getTime() = time + + override fun getText() = text + + override fun isKnown() = database.isPostReplyKnown(this) + + override fun getPostId() = postId + + override fun getPost(): Optional = database.getPost(postId).asOptional() + + override fun hashCode() = id.hashCode() + + override fun equals(other: Any?): Boolean { + if (other !is MemoryPostReply) { + return false + } + return other.id == id + } + + override fun toString(): String { + return "MemoryPostReply{" + + "database=" + database + + ", soneProvider=" + soneProvider + + ", id='" + id + '\'' + + ", soneId='" + soneId + '\'' + + ", time=" + time + + ", text='" + text + '\'' + + ", postId='" + postId + '\'' + + '}' + } + +}