From 54e35873a9660bc51aae7cdb4c1e7d399e50986b Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Wed, 28 Sep 2011 20:23:39 +0200 Subject: [PATCH] Add abstract base class for replies, move post reply into its own class. --- .../java/net/pterodactylus/sone/core/Core.java | 45 ++-- .../net/pterodactylus/sone/core/CoreListener.java | 8 +- .../sone/core/CoreListenerManager.java | 12 +- .../pterodactylus/sone/core/SoneDownloader.java | 4 +- .../net/pterodactylus/sone/core/SoneInserter.java | 3 +- .../net/pterodactylus/sone/data/PostReply.java | 232 +++++++++++++++++++++ .../java/net/pterodactylus/sone/data/Reply.java | 210 ++----------------- .../java/net/pterodactylus/sone/data/Sone.java | 14 +- .../sone/fcp/AbstractSoneCommand.java | 13 +- .../pterodactylus/sone/fcp/CreateReplyCommand.java | 3 +- .../pterodactylus/sone/fcp/DeleteReplyCommand.java | 8 +- .../pterodactylus/sone/fcp/LikeReplyCommand.java | 4 +- .../sone/notify/ListNotificationFilters.java | 13 +- .../pterodactylus/sone/template/PostAccessor.java | 2 +- .../pterodactylus/sone/template/ReplyAccessor.java | 3 +- .../sone/template/ReplyGroupFilter.java | 12 +- .../pterodactylus/sone/web/DeleteReplyPage.java | 4 +- .../pterodactylus/sone/web/MarkAsKnownPage.java | 3 +- .../net/pterodactylus/sone/web/SearchPage.java | 3 +- .../net/pterodactylus/sone/web/ViewSonePage.java | 8 +- .../net/pterodactylus/sone/web/WebInterface.java | 19 +- .../sone/web/ajax/CreateReplyAjaxPage.java | 4 +- .../sone/web/ajax/DeleteReplyAjaxPage.java | 4 +- .../sone/web/ajax/GetLikesAjaxPage.java | 4 +- .../sone/web/ajax/GetNotificationAjaxPage.java | 4 +- .../sone/web/ajax/GetReplyAjaxPage.java | 6 +- .../sone/web/ajax/GetStatusAjaxPage.java | 14 +- .../sone/web/ajax/GetTimesAjaxPage.java | 4 +- .../sone/web/ajax/MarkAsKnownAjaxPage.java | 3 +- 29 files changed, 368 insertions(+), 298 deletions(-) create mode 100644 src/main/java/net/pterodactylus/sone/data/PostReply.java diff --git a/src/main/java/net/pterodactylus/sone/core/Core.java b/src/main/java/net/pterodactylus/sone/core/Core.java index 1c9d668..ee5ec87 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -38,6 +38,7 @@ import net.pterodactylus.sone.data.Album; import net.pterodactylus.sone.data.Client; import net.pterodactylus.sone.data.Image; import net.pterodactylus.sone.data.Post; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Profile; import net.pterodactylus.sone.data.Reply; import net.pterodactylus.sone.data.Sone; @@ -173,7 +174,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis private Set knownPosts = new HashSet(); /** All replies. */ - private Map replies = new HashMap(); + private Map replies = new HashMap(); /** All new replies. */ private Set newReplies = new HashSet(); @@ -676,7 +677,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis * The ID of the reply to get * @return The reply */ - public Reply getReply(String replyId) { + public PostReply getReply(String replyId) { return getReply(replyId, true); } @@ -692,11 +693,11 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis * to return {@code null} if no reply can be found * @return The reply, or {@code null} if there is no such reply */ - public Reply getReply(String replyId, boolean create) { + public PostReply getReply(String replyId, boolean create) { synchronized (replies) { - Reply reply = replies.get(replyId); + PostReply reply = replies.get(replyId); if (create && (reply == null)) { - reply = new Reply(replyId); + reply = new PostReply(replyId); replies.put(replyId, reply); } return reply; @@ -710,11 +711,11 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis * The post to get all replies for * @return All replies for the given post */ - public List getReplies(Post post) { + public List getReplies(Post post) { Set sones = getSones(); - List replies = new ArrayList(); + List replies = new ArrayList(); for (Sone sone : sones) { - for (Reply reply : sone.getReplies()) { + for (PostReply reply : sone.getReplies()) { if (reply.getPost().equals(post)) { replies.add(reply); } @@ -762,7 +763,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis * The reply to get the liking Sones for * @return The Sones that like the given reply */ - public Set getLikes(Reply reply) { + public Set getLikes(PostReply reply) { Set sones = new HashSet(); for (Sone sone : getSones()) { if (sone.getLikedReplyIds().contains(reply.getId())) { @@ -1204,16 +1205,16 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis } synchronized (replies) { if (!soneRescueMode) { - for (Reply reply : storedSone.getReplies()) { + for (PostReply reply : storedSone.getReplies()) { replies.remove(reply.getId()); if (!sone.getReplies().contains(reply)) { coreListenerManager.fireReplyRemoved(reply); } } } - Set storedReplies = storedSone.getReplies(); + Set storedReplies = storedSone.getReplies(); synchronized (newReplies) { - for (Reply reply : sone.getReplies()) { + for (PostReply reply : sone.getReplies()) { reply.setSone(storedSone); if (!storedReplies.contains(reply) && !knownReplies.contains(reply.getId())) { newReplies.add(reply.getId()); @@ -1249,7 +1250,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis for (Post post : sone.getPosts()) { storedSone.addPost(post); } - for (Reply reply : sone.getReplies()) { + for (PostReply reply : sone.getReplies()) { storedSone.addReply(reply); } for (String likedPostId : sone.getLikedPostIds()) { @@ -1395,7 +1396,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis } /* load replies. */ - Set replies = new HashSet(); + Set replies = new HashSet(); while (true) { String replyPrefix = sonePrefix + "/Replies/" + replies.size(); String replyId = configuration.getStringValue(replyPrefix + "/ID").getValue(null); @@ -1528,7 +1529,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis } } synchronized (newReplies) { - for (Reply reply : replies) { + for (PostReply reply : replies) { knownReplies.add(reply.getId()); } } @@ -1718,7 +1719,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis * The text of the reply * @return The created reply */ - public Reply createReply(Sone sone, Post post, String text) { + public PostReply createReply(Sone sone, Post post, String text) { return createReply(sone, post, System.currentTimeMillis(), text); } @@ -1735,12 +1736,12 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis * The text of the reply * @return The created reply */ - public Reply createReply(Sone sone, Post post, long time, String text) { + public PostReply createReply(Sone sone, Post post, long time, String text) { if (!isLocalSone(sone)) { logger.log(Level.FINE, "Tried to create reply for non-local Sone: %s", sone); return null; } - final Reply reply = new Reply(sone, post, System.currentTimeMillis(), text); + final PostReply reply = new PostReply(sone, post, System.currentTimeMillis(), text); synchronized (replies) { replies.put(reply.getId(), reply); } @@ -1769,7 +1770,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis * @param reply * The reply to delete */ - public void deleteReply(Reply reply) { + public void deleteReply(PostReply reply) { Sone sone = reply.getSone(); if (!isLocalSone(sone)) { logger.log(Level.FINE, "Tried to delete non-local reply: %s", reply); @@ -1793,7 +1794,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis * @param reply * The reply to mark as known */ - public void markReplyKnown(Reply reply) { + public void markReplyKnown(PostReply reply) { synchronized (newReplies) { if (newReplies.remove(reply.getId())) { knownReplies.add(reply.getId()); @@ -2064,7 +2065,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis /* save replies. */ int replyCounter = 0; - for (Reply reply : sone.getReplies()) { + for (PostReply reply : sone.getReplies()) { String replyPrefix = sonePrefix + "/Replies/" + replyCounter++; configuration.getStringValue(replyPrefix + "/ID").setValue(reply.getId()); configuration.getStringValue(replyPrefix + "/Post/ID").setValue(reply.getPost().getId()); @@ -2457,7 +2458,7 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis } synchronized (replies) { synchronized (newReplies) { - for (Reply reply : sone.getReplies()) { + for (PostReply reply : sone.getReplies()) { replies.remove(reply.getId()); newReplies.remove(reply.getId()); coreListenerManager.fireReplyRemoved(reply); diff --git a/src/main/java/net/pterodactylus/sone/core/CoreListener.java b/src/main/java/net/pterodactylus/sone/core/CoreListener.java index 1658745..2e7b337 100644 --- a/src/main/java/net/pterodactylus/sone/core/CoreListener.java +++ b/src/main/java/net/pterodactylus/sone/core/CoreListener.java @@ -21,7 +21,7 @@ import java.util.EventListener; import net.pterodactylus.sone.data.Image; import net.pterodactylus.sone.data.Post; -import net.pterodactylus.sone.data.Reply; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.util.version.Version; @@ -55,7 +55,7 @@ public interface CoreListener extends EventListener { * @param reply * The new reply */ - public void newReplyFound(Reply reply); + public void newReplyFound(PostReply reply); /** * Notifies a listener that the given Sone is now marked as known. @@ -79,7 +79,7 @@ public interface CoreListener extends EventListener { * @param reply * The known reply */ - public void markReplyKnown(Reply reply); + public void markReplyKnown(PostReply reply); /** * Notifies a listener that the given Sone was removed. @@ -103,7 +103,7 @@ public interface CoreListener extends EventListener { * @param reply * The removed reply */ - public void replyRemoved(Reply reply); + public void replyRemoved(PostReply reply); /** * Notifies a listener when a Sone was locked. diff --git a/src/main/java/net/pterodactylus/sone/core/CoreListenerManager.java b/src/main/java/net/pterodactylus/sone/core/CoreListenerManager.java index 5748ffc..9951ccd 100644 --- a/src/main/java/net/pterodactylus/sone/core/CoreListenerManager.java +++ b/src/main/java/net/pterodactylus/sone/core/CoreListenerManager.java @@ -19,7 +19,7 @@ package net.pterodactylus.sone.core; import net.pterodactylus.sone.data.Image; import net.pterodactylus.sone.data.Post; -import net.pterodactylus.sone.data.Reply; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.util.event.AbstractListenerManager; import net.pterodactylus.util.version.Version; @@ -74,11 +74,11 @@ public class CoreListenerManager extends AbstractListenerManager replies = new HashSet(); + Set replies = new HashSet(); if (repliesXml == null) { /* TODO - mark Sone as bad. */ logger.log(Level.WARNING, "Downloaded Sone %s has no replies!", new Object[] { sone }); diff --git a/src/main/java/net/pterodactylus/sone/core/SoneInserter.java b/src/main/java/net/pterodactylus/sone/core/SoneInserter.java index a66069f..eb74dc0 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneInserter.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneInserter.java @@ -29,6 +29,7 @@ import java.util.logging.Logger; import net.pterodactylus.sone.core.Core.SoneStatus; import net.pterodactylus.sone.data.Post; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Reply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.freenet.StringBucket; @@ -299,7 +300,7 @@ public class SoneInserter extends AbstractService { soneProperties.put("insertUri", sone.getInsertUri()); soneProperties.put("profile", sone.getProfile()); soneProperties.put("posts", new ListBuilder(new ArrayList(sone.getPosts())).sort(Post.TIME_COMPARATOR).get()); - soneProperties.put("replies", new ListBuilder(new ArrayList(sone.getReplies())).sort(new ReverseComparator(Reply.TIME_COMPARATOR)).get()); + soneProperties.put("replies", new ListBuilder(new ArrayList(sone.getReplies())).sort(new ReverseComparator>(Reply.TIME_COMPARATOR)).get()); soneProperties.put("likedPostIds", new HashSet(sone.getLikedPostIds())); soneProperties.put("likedReplyIds", new HashSet(sone.getLikedReplyIds())); soneProperties.put("albums", sone.getAllAlbums()); diff --git a/src/main/java/net/pterodactylus/sone/data/PostReply.java b/src/main/java/net/pterodactylus/sone/data/PostReply.java new file mode 100644 index 0000000..23f310d --- /dev/null +++ b/src/main/java/net/pterodactylus/sone/data/PostReply.java @@ -0,0 +1,232 @@ +/* + * Sone - PostReply.java - Copyright © 2010–2011 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.data; + +import java.util.UUID; + +/** + * A reply is like a {@link Post} but can never be posted on its own, it always + * refers to another {@link Post}. + * + * @author David ‘Bombe’ Roden + */ +public class PostReply extends Reply { + + /** The ID of the reply. */ + private final UUID id; + + /** The Sone that posted this reply. */ + private volatile Sone sone; + + /** The Post this reply refers to. */ + private volatile Post post; + + /** The time of the reply. */ + private volatile long time; + + /** The text of the reply. */ + private volatile String text; + + /** + * Creates a new reply. + * + * @param id + * The ID of the reply + */ + public PostReply(String id) { + this(id, null, null, 0, null); + } + + /** + * Creates a new reply. + * + * @param sone + * The sone that posted the reply + * @param post + * The post to reply to + * @param text + * The text of the reply + */ + public PostReply(Sone sone, Post post, String text) { + this(sone, post, System.currentTimeMillis(), text); + } + + /** + * Creates a new reply- + * + * @param sone + * The sone that posted the reply + * @param post + * The post to reply to + * @param time + * The time of the reply + * @param text + * The text of the reply + */ + public PostReply(Sone sone, Post post, long time, String text) { + this(UUID.randomUUID().toString(), sone, post, time, text); + } + + /** + * Creates a new reply- + * + * @param sone + * The sone that posted the reply + * @param id + * The ID of the reply + * @param post + * The post to reply to + * @param time + * The time of the reply + * @param text + * The text of the reply + */ + public PostReply(String id, Sone sone, Post post, long time, String text) { + this.id = UUID.fromString(id); + this.sone = sone; + this.post = post; + this.time = time; + this.text = text; + } + + // + // ACCESSORS + // + + /** + * {@inheritDoc} + */ + @Override + public String getId() { + return id.toString(); + } + + /** + * {@inheritDoc} + */ + @Override + public Sone getSone() { + return sone; + } + + /** + * Sets the Sone that posted this reply. + * + * @param sone + * The Sone that posted this reply + * @return This reply (for method chaining) + */ + public PostReply setSone(Sone sone) { + this.sone = sone; + return this; + } + + /** + * Returns the post this reply refers to. + * + * @return The post this reply refers to + */ + public Post getPost() { + return post; + } + + /** + * Sets the post this reply refers to. + * + * @param post + * The post this reply refers to + * @return This reply (for method chaining) + */ + public PostReply setPost(Post post) { + this.post = post; + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public long getTime() { + return time; + } + + /** + * Sets the time of this reply. + * + * @param time + * The time of this reply (in milliseconds since Jan 1, 1970 UTC) + * @return This reply (for method chaining) + */ + public PostReply setTime(long time) { + this.time = time; + return this; + } + + /** + * {@inheritDoc} + */ + @Override + public String getText() { + return text; + } + + /** + * Sets the text of this reply. + * + * @param text + * The text of this reply + * @return This reply (for method chaining) + */ + public PostReply setText(String text) { + this.text = text; + return this; + } + + // + // OBJECT METHODS + // + + /** + * {@inheritDoc} + */ + @Override + public int hashCode() { + return id.hashCode(); + } + + /** + * {@inheritDoc} + */ + @Override + public boolean equals(Object object) { + if (!(object instanceof PostReply)) { + return false; + } + PostReply reply = (PostReply) object; + return reply.id.equals(id); + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return getClass().getName() + "[id=" + id + ",sone=" + sone + ",post=" + post + ",time=" + time + ",text=" + text + "]"; + } + +} diff --git a/src/main/java/net/pterodactylus/sone/data/Reply.java b/src/main/java/net/pterodactylus/sone/data/Reply.java index 2dacfbe..935c79b 100644 --- a/src/main/java/net/pterodactylus/sone/data/Reply.java +++ b/src/main/java/net/pterodactylus/sone/data/Reply.java @@ -1,5 +1,5 @@ /* - * Sone - Reply.java - Copyright © 2010 David Roden + * Sone - Reply.java - Copyright © 2011 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 @@ -18,242 +18,70 @@ package net.pterodactylus.sone.data; import java.util.Comparator; -import java.util.UUID; import net.pterodactylus.util.filter.Filter; /** - * A reply is like a {@link Post} but can never be posted on its own, it always - * refers to another {@link Post}. + * Abstract base class for all replies. * + * @param + * The type of the reply * @author David ‘Bombe’ Roden */ -public class Reply { +public abstract class Reply> { /** Comparator that sorts replies ascending by time. */ - public static final Comparator TIME_COMPARATOR = new Comparator() { + public static final Comparator> TIME_COMPARATOR = new Comparator>() { + /** + * {@inheritDoc} + */ @Override - public int compare(Reply leftReply, Reply rightReply) { + public int compare(Reply leftReply, Reply rightReply) { return (int) Math.max(Integer.MIN_VALUE, Math.min(Integer.MAX_VALUE, leftReply.getTime() - rightReply.getTime())); } }; /** Filter for replies with timestamps from the future. */ - public static final Filter FUTURE_REPLIES_FILTER = new Filter() { + public static final Filter> FUTURE_REPLY_FILTER = new Filter>() { + /** + * {@inheritDoc} + */ @Override - public boolean filterObject(Reply reply) { + public boolean filterObject(Reply reply) { return reply.getTime() <= System.currentTimeMillis(); } }; - /** The ID of the reply. */ - private final UUID id; - - /** The Sone that posted this reply. */ - private volatile Sone sone; - - /** The Post this reply refers to. */ - private volatile Post post; - - /** The time of the reply. */ - private volatile long time; - - /** The text of the reply. */ - private volatile String text; - - /** - * Creates a new reply. - * - * @param id - * The ID of the reply - */ - public Reply(String id) { - this(id, null, null, 0, null); - } - - /** - * Creates a new reply. - * - * @param sone - * The sone that posted the reply - * @param post - * The post to reply to - * @param text - * The text of the reply - */ - public Reply(Sone sone, Post post, String text) { - this(sone, post, System.currentTimeMillis(), text); - } - - /** - * Creates a new reply- - * - * @param sone - * The sone that posted the reply - * @param post - * The post to reply to - * @param time - * The time of the reply - * @param text - * The text of the reply - */ - public Reply(Sone sone, Post post, long time, String text) { - this(UUID.randomUUID().toString(), sone, post, time, text); - } - - /** - * Creates a new reply- - * - * @param sone - * The sone that posted the reply - * @param id - * The ID of the reply - * @param post - * The post to reply to - * @param time - * The time of the reply - * @param text - * The text of the reply - */ - public Reply(String id, Sone sone, Post post, long time, String text) { - this.id = UUID.fromString(id); - this.sone = sone; - this.post = post; - this.time = time; - this.text = text; - } - - // - // ACCESSORS - // - /** * Returns the ID of the reply. * * @return The ID of the reply */ - public String getId() { - return id.toString(); - } + public abstract String getId(); /** * Returns the Sone that posted this reply. * * @return The Sone that posted this reply */ - public Sone getSone() { - return sone; - } - - /** - * Sets the Sone that posted this reply. - * - * @param sone - * The Sone that posted this reply - * @return This reply (for method chaining) - */ - public Reply setSone(Sone sone) { - this.sone = sone; - return this; - } - - /** - * Returns the post this reply refers to. - * - * @return The post this reply refers to - */ - public Post getPost() { - return post; - } - - /** - * Sets the post this reply refers to. - * - * @param post - * The post this reply refers to - * @return This reply (for method chaining) - */ - public Reply setPost(Post post) { - this.post = post; - return this; - } + public abstract Sone getSone(); /** * Returns the time of the reply. * * @return The time of the reply (in milliseconds since Jan 1, 1970 UTC) */ - public long getTime() { - return time; - } - - /** - * Sets the time of this reply. - * - * @param time - * The time of this reply (in milliseconds since Jan 1, 1970 UTC) - * @return This reply (for method chaining) - */ - public Reply setTime(long time) { - this.time = time; - return this; - } + public abstract long getTime(); /** * Returns the text of the reply. * * @return The text of the reply */ - public String getText() { - return text; - } - - /** - * Sets the text of this reply. - * - * @param text - * The text of this reply - * @return This reply (for method chaining) - */ - public Reply setText(String text) { - this.text = text; - return this; - } - - // - // OBJECT METHODS - // - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() { - return id.hashCode(); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object object) { - if (!(object instanceof Reply)) { - return false; - } - Reply reply = (Reply) object; - return reply.id.equals(id); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return getClass().getName() + "[id=" + id + ",sone=" + sone + ",post=" + post + ",time=" + time + ",text=" + text + "]"; - } + public abstract String getText(); } diff --git a/src/main/java/net/pterodactylus/sone/data/Sone.java b/src/main/java/net/pterodactylus/sone/data/Sone.java index be3a660..1db47c2 100644 --- a/src/main/java/net/pterodactylus/sone/data/Sone.java +++ b/src/main/java/net/pterodactylus/sone/data/Sone.java @@ -138,7 +138,7 @@ public class Sone implements Fingerprintable, Comparable { private final Set posts = Collections.synchronizedSet(new HashSet()); /** All replies. */ - private final Set replies = Collections.synchronizedSet(new HashSet()); + private final Set replies = Collections.synchronizedSet(new HashSet()); /** The IDs of all liked posts. */ private final Set likedPostIds = Collections.synchronizedSet(new HashSet()); @@ -477,7 +477,7 @@ public class Sone implements Fingerprintable, Comparable { * * @return All replies this Sone made */ - public synchronized Set getReplies() { + public synchronized Set getReplies() { return Collections.unmodifiableSet(replies); } @@ -488,7 +488,7 @@ public class Sone implements Fingerprintable, Comparable { * The new (and only) replies of this Sone * @return This Sone (for method chaining) */ - public synchronized Sone setReplies(Collection replies) { + public synchronized Sone setReplies(Collection replies) { this.replies.clear(); this.replies.addAll(replies); return this; @@ -501,7 +501,7 @@ public class Sone implements Fingerprintable, Comparable { * @param reply * The reply to add */ - public synchronized void addReply(Reply reply) { + public synchronized void addReply(PostReply reply) { if (reply.getSone().equals(this)) { replies.add(reply); } @@ -513,7 +513,7 @@ public class Sone implements Fingerprintable, Comparable { * @param reply * The reply to remove */ - public synchronized void removeReply(Reply reply) { + public synchronized void removeReply(PostReply reply) { if (reply.getSone().equals(this)) { replies.remove(reply); } @@ -782,10 +782,10 @@ public class Sone implements Fingerprintable, Comparable { } fingerprint.append(")"); - List replies = new ArrayList(getReplies()); + List replies = new ArrayList(getReplies()); Collections.sort(replies, Reply.TIME_COMPARATOR); fingerprint.append("Replies("); - for (Reply reply : replies) { + for (PostReply reply : replies) { fingerprint.append("Reply(").append(reply.getId()).append(')'); } fingerprint.append(')'); diff --git a/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java b/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java index d88872e..ab705d7 100644 --- a/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java +++ b/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java @@ -22,6 +22,7 @@ import java.util.List; import net.pterodactylus.sone.core.Core; import net.pterodactylus.sone.data.Post; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Profile; import net.pterodactylus.sone.data.Reply; import net.pterodactylus.sone.data.Sone; @@ -205,10 +206,10 @@ public abstract class AbstractSoneCommand extends AbstractCommand { * if there is no reply ID stored under the given parameter * name, or if the reply ID is invalid */ - protected Reply getReply(SimpleFieldSet simpleFieldSet, String parameterName) throws FcpException { + protected PostReply getReply(SimpleFieldSet simpleFieldSet, String parameterName) throws FcpException { try { String replyId = simpleFieldSet.getString(parameterName); - Reply reply = core.getReply(replyId, false); + PostReply reply = core.getReply(replyId, false); if (reply == null) { throw new FcpException("Could not load reply from “" + replyId + "”."); } @@ -305,7 +306,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand { postBuilder.put(encodeLikes(core.getLikes(post), prefix + "Likes.")); if (includeReplies) { - List replies = core.getReplies(post); + List replies = core.getReplies(post); postBuilder.put(encodeReplies(replies, prefix)); } @@ -334,7 +335,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand { String postPrefix = prefix + postIndex++; postBuilder.put(encodePost(post, postPrefix + ".", includeReplies)); if (includeReplies) { - postBuilder.put(encodeReplies(Filters.filteredList(core.getReplies(post), Reply.FUTURE_REPLIES_FILTER), postPrefix + ".")); + postBuilder.put(encodeReplies(Filters.filteredList(core.getReplies(post), Reply.FUTURE_REPLY_FILTER), postPrefix + ".")); } } @@ -351,12 +352,12 @@ public abstract class AbstractSoneCommand extends AbstractCommand { * {@code null}) * @return The simple field set containing the replies */ - protected SimpleFieldSet encodeReplies(Collection replies, String prefix) { + protected SimpleFieldSet encodeReplies(Collection replies, String prefix) { SimpleFieldSetBuilder replyBuilder = new SimpleFieldSetBuilder(); int replyIndex = 0; replyBuilder.put(prefix + "Replies.Count", replies.size()); - for (Reply reply : replies) { + for (PostReply reply : replies) { String replyPrefix = prefix + "Replies." + replyIndex++ + "."; replyBuilder.put(replyPrefix + "ID", reply.getId()); replyBuilder.put(replyPrefix + "Sone", reply.getSone().getId()); diff --git a/src/main/java/net/pterodactylus/sone/fcp/CreateReplyCommand.java b/src/main/java/net/pterodactylus/sone/fcp/CreateReplyCommand.java index 880d51e..9fc78d6 100644 --- a/src/main/java/net/pterodactylus/sone/fcp/CreateReplyCommand.java +++ b/src/main/java/net/pterodactylus/sone/fcp/CreateReplyCommand.java @@ -19,6 +19,7 @@ package net.pterodactylus.sone.fcp; import net.pterodactylus.sone.core.Core; import net.pterodactylus.sone.data.Post; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Reply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.freenet.SimpleFieldSetBuilder; @@ -52,7 +53,7 @@ public class CreateReplyCommand extends AbstractSoneCommand { Sone sone = getSone(parameters, "Sone", true); Post post = getPost(parameters, "Post"); String text = getString(parameters, "Text"); - Reply reply = getCore().createReply(sone, post, text); + PostReply reply = getCore().createReply(sone, post, text); return new Response("ReplyCreated", new SimpleFieldSetBuilder().put("Reply", reply.getId()).get()); } diff --git a/src/main/java/net/pterodactylus/sone/fcp/DeleteReplyCommand.java b/src/main/java/net/pterodactylus/sone/fcp/DeleteReplyCommand.java index 4ac9c15..614b23e 100644 --- a/src/main/java/net/pterodactylus/sone/fcp/DeleteReplyCommand.java +++ b/src/main/java/net/pterodactylus/sone/fcp/DeleteReplyCommand.java @@ -18,16 +18,16 @@ package net.pterodactylus.sone.fcp; import net.pterodactylus.sone.core.Core; -import net.pterodactylus.sone.data.Reply; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.freenet.SimpleFieldSetBuilder; import net.pterodactylus.sone.freenet.fcp.FcpException; import freenet.support.SimpleFieldSet; import freenet.support.api.Bucket; /** - * FCP command that deletes a {@link Reply}. + * FCP command that deletes a {@link PostReply}. * - * @see Core#deleteReply(Reply) + * @see Core#deleteReply(PostReply) * @author David ‘Bombe’ Roden */ public class DeleteReplyCommand extends AbstractSoneCommand { @@ -47,7 +47,7 @@ public class DeleteReplyCommand extends AbstractSoneCommand { */ @Override public Response execute(SimpleFieldSet parameters, Bucket data, AccessType accessType) throws FcpException { - Reply reply = getReply(parameters, "Reply"); + PostReply reply = getReply(parameters, "Reply"); if (!getCore().isLocalSone(reply.getSone())) { return new ErrorResponse(401, "Not allowed."); } diff --git a/src/main/java/net/pterodactylus/sone/fcp/LikeReplyCommand.java b/src/main/java/net/pterodactylus/sone/fcp/LikeReplyCommand.java index 2c8f04f..61257e7 100644 --- a/src/main/java/net/pterodactylus/sone/fcp/LikeReplyCommand.java +++ b/src/main/java/net/pterodactylus/sone/fcp/LikeReplyCommand.java @@ -18,7 +18,7 @@ package net.pterodactylus.sone.fcp; import net.pterodactylus.sone.core.Core; -import net.pterodactylus.sone.data.Reply; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.freenet.SimpleFieldSetBuilder; import net.pterodactylus.sone.freenet.fcp.FcpException; @@ -47,7 +47,7 @@ public class LikeReplyCommand extends AbstractSoneCommand { */ @Override public Response execute(SimpleFieldSet parameters, Bucket data, AccessType accessType) throws FcpException { - Reply reply = getReply(parameters, "Reply"); + PostReply reply = getReply(parameters, "Reply"); Sone sone = getSone(parameters, "Sone", true); sone.addLikedReplyId(reply.getId()); return new Response("ReplyLiked", new SimpleFieldSetBuilder().put("LikeCount", getCore().getLikes(reply).size()).get()); diff --git a/src/main/java/net/pterodactylus/sone/notify/ListNotificationFilters.java b/src/main/java/net/pterodactylus/sone/notify/ListNotificationFilters.java index 3db8912..beeb81e 100644 --- a/src/main/java/net/pterodactylus/sone/notify/ListNotificationFilters.java +++ b/src/main/java/net/pterodactylus/sone/notify/ListNotificationFilters.java @@ -22,6 +22,7 @@ import java.util.Collection; import java.util.List; import net.pterodactylus.sone.data.Post; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Reply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.freenet.wot.OwnIdentity; @@ -60,7 +61,7 @@ public class ListNotificationFilters { filteredNotifications.add(filteredNotification); } } else if (notification.getId().equals("new-reply-notification")) { - ListNotification filteredNotification = filterNewReplyNotification((ListNotification) notification, currentSone); + ListNotification filteredNotification = filterNewReplyNotification((ListNotification) notification, currentSone); if (filteredNotification != null) { filteredNotifications.add(filteredNotification); } @@ -129,12 +130,12 @@ public class ListNotificationFilters { * @return The filtered new-reply notification, or {@code null} if the * notification should be removed */ - public static ListNotification filterNewReplyNotification(ListNotification newReplyNotification, Sone currentSone) { + public static ListNotification filterNewReplyNotification(ListNotification newReplyNotification, Sone currentSone) { if (currentSone == null) { return null; } - List newReplies = new ArrayList(); - for (Reply reply : newReplyNotification.getElements()) { + List newReplies = new ArrayList(); + for (PostReply reply : newReplyNotification.getElements()) { if (isReplyVisible(currentSone, reply)) { newReplies.add(reply); } @@ -145,7 +146,7 @@ public class ListNotificationFilters { if (newReplies.size() == newReplyNotification.getElements().size()) { return newReplyNotification; } - ListNotification filteredNotification = new ListNotification(newReplyNotification); + ListNotification filteredNotification = new ListNotification(newReplyNotification); filteredNotification.setElements(newReplies); filteredNotification.setLastUpdateTime(newReplyNotification.getLastUpdatedTime()); return filteredNotification; @@ -237,7 +238,7 @@ public class ListNotificationFilters { * @return {@code true} if the reply is considered visible, {@code false} * otherwise */ - public static boolean isReplyVisible(Sone sone, Reply reply) { + public static boolean isReplyVisible(Sone sone, PostReply reply) { Validation.begin().isNotNull("Reply", reply).check(); Post post = reply.getPost(); if (post == null) { diff --git a/src/main/java/net/pterodactylus/sone/template/PostAccessor.java b/src/main/java/net/pterodactylus/sone/template/PostAccessor.java index 99d6845..bef94d6 100644 --- a/src/main/java/net/pterodactylus/sone/template/PostAccessor.java +++ b/src/main/java/net/pterodactylus/sone/template/PostAccessor.java @@ -56,7 +56,7 @@ public class PostAccessor extends ReflectionAccessor { public Object get(TemplateContext templateContext, Object object, String member) { Post post = (Post) object; if ("replies".equals(member)) { - return Filters.filteredList(core.getReplies(post), Reply.FUTURE_REPLIES_FILTER); + return Filters.filteredList(core.getReplies(post), Reply.FUTURE_REPLY_FILTER); } else if (member.equals("likes")) { return core.getLikes(post); } else if (member.equals("liked")) { diff --git a/src/main/java/net/pterodactylus/sone/template/ReplyAccessor.java b/src/main/java/net/pterodactylus/sone/template/ReplyAccessor.java index 1e54d53..24bcfd6 100644 --- a/src/main/java/net/pterodactylus/sone/template/ReplyAccessor.java +++ b/src/main/java/net/pterodactylus/sone/template/ReplyAccessor.java @@ -18,6 +18,7 @@ package net.pterodactylus.sone.template; import net.pterodactylus.sone.core.Core; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Reply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.util.template.Accessor; @@ -50,7 +51,7 @@ public class ReplyAccessor extends ReflectionAccessor { */ @Override public Object get(TemplateContext templateContext, Object object, String member) { - Reply reply = (Reply) object; + PostReply reply = (PostReply) object; if ("likes".equals(member)) { return core.getLikes(reply); } else if (member.equals("liked")) { diff --git a/src/main/java/net/pterodactylus/sone/template/ReplyGroupFilter.java b/src/main/java/net/pterodactylus/sone/template/ReplyGroupFilter.java index 2567284..8bc17a7 100644 --- a/src/main/java/net/pterodactylus/sone/template/ReplyGroupFilter.java +++ b/src/main/java/net/pterodactylus/sone/template/ReplyGroupFilter.java @@ -24,7 +24,7 @@ import java.util.Map; import java.util.Set; import net.pterodactylus.sone.data.Post; -import net.pterodactylus.sone.data.Reply; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.util.template.Filter; import net.pterodactylus.util.template.TemplateContext; @@ -44,10 +44,10 @@ public class ReplyGroupFilter implements Filter { @Override public Object format(TemplateContext templateContext, Object data, Map parameters) { @SuppressWarnings("unchecked") - List allReplies = (List) data; + List allReplies = (List) data; Map> postSones = new HashMap>(); - Map> postReplies = new HashMap>(); - for (Reply reply : allReplies) { + Map> postReplies = new HashMap>(); + for (PostReply reply : allReplies) { Post post = reply.getPost(); Set sones = postSones.get(post); if (sones == null) { @@ -55,9 +55,9 @@ public class ReplyGroupFilter implements Filter { postSones.put(post, sones); } sones.add(reply.getSone()); - Set replies = postReplies.get(post); + Set replies = postReplies.get(post); if (replies == null) { - replies = new HashSet(); + replies = new HashSet(); postReplies.put(post, replies); } replies.add(reply); diff --git a/src/main/java/net/pterodactylus/sone/web/DeleteReplyPage.java b/src/main/java/net/pterodactylus/sone/web/DeleteReplyPage.java index 226e0d3..4502617 100644 --- a/src/main/java/net/pterodactylus/sone/web/DeleteReplyPage.java +++ b/src/main/java/net/pterodactylus/sone/web/DeleteReplyPage.java @@ -17,7 +17,7 @@ package net.pterodactylus.sone.web; -import net.pterodactylus.sone.data.Reply; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.web.page.FreenetRequest; import net.pterodactylus.util.template.Template; import net.pterodactylus.util.template.TemplateContext; @@ -53,7 +53,7 @@ public class DeleteReplyPage extends SoneTemplatePage { protected void processTemplate(FreenetRequest request, TemplateContext templateContext) throws RedirectException { super.processTemplate(request, templateContext); String replyId = request.getHttpRequest().getPartAsStringFailsafe("reply", 36); - Reply reply = webInterface.getCore().getReply(replyId); + PostReply reply = webInterface.getCore().getReply(replyId); String returnPage = request.getHttpRequest().getPartAsStringFailsafe("returnPage", 256); if (request.getMethod() == Method.POST) { if (!webInterface.getCore().isLocalSone(reply.getSone())) { diff --git a/src/main/java/net/pterodactylus/sone/web/MarkAsKnownPage.java b/src/main/java/net/pterodactylus/sone/web/MarkAsKnownPage.java index 987fa1f..8cca4d1 100644 --- a/src/main/java/net/pterodactylus/sone/web/MarkAsKnownPage.java +++ b/src/main/java/net/pterodactylus/sone/web/MarkAsKnownPage.java @@ -20,6 +20,7 @@ package net.pterodactylus.sone.web; import java.util.StringTokenizer; import net.pterodactylus.sone.data.Post; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Reply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.web.page.FreenetRequest; @@ -70,7 +71,7 @@ public class MarkAsKnownPage extends SoneTemplatePage { } webInterface.getCore().markPostKnown(post); } else if (type.equals("reply")) { - Reply reply = webInterface.getCore().getReply(id, false); + PostReply reply = webInterface.getCore().getReply(id, false); if (reply == null) { continue; } diff --git a/src/main/java/net/pterodactylus/sone/web/SearchPage.java b/src/main/java/net/pterodactylus/sone/web/SearchPage.java index 91e2a08..832f9d9 100644 --- a/src/main/java/net/pterodactylus/sone/web/SearchPage.java +++ b/src/main/java/net/pterodactylus/sone/web/SearchPage.java @@ -28,6 +28,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import net.pterodactylus.sone.data.Post; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Profile; import net.pterodactylus.sone.data.Profile.Field; import net.pterodactylus.sone.data.Reply; @@ -365,7 +366,7 @@ public class SearchPage extends SoneTemplatePage { if (post.getRecipient() != null) { postString.append(' ').append(SoneStringGenerator.NAME_GENERATOR.generateString(post.getRecipient())); } - for (Reply reply : Filters.filteredList(webInterface.getCore().getReplies(post), Reply.FUTURE_REPLIES_FILTER)) { + for (PostReply reply : Filters.filteredList(webInterface.getCore().getReplies(post), Reply.FUTURE_REPLY_FILTER)) { postString.append(' ').append(SoneStringGenerator.NAME_GENERATOR.generateString(reply.getSone())); postString.append(' ').append(reply.getText()); } diff --git a/src/main/java/net/pterodactylus/sone/web/ViewSonePage.java b/src/main/java/net/pterodactylus/sone/web/ViewSonePage.java index 5d463c0..5fe356d 100644 --- a/src/main/java/net/pterodactylus/sone/web/ViewSonePage.java +++ b/src/main/java/net/pterodactylus/sone/web/ViewSonePage.java @@ -26,7 +26,7 @@ import java.util.Map; import java.util.Set; import net.pterodactylus.sone.data.Post; -import net.pterodactylus.sone.data.Reply; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.template.SoneAccessor; import net.pterodactylus.sone.web.page.FreenetRequest; @@ -91,9 +91,9 @@ public class ViewSonePage extends SoneTemplatePage { Pagination postPagination = new Pagination(sonePosts, webInterface.getCore().getPreferences().getPostsPerPage()).setPage(Numbers.safeParseInteger(request.getHttpRequest().getParam("postPage"), 0)); templateContext.set("postPagination", postPagination); templateContext.set("posts", postPagination.getItems()); - Set replies = sone.getReplies(); - final Map> repliedPosts = new HashMap>(); - for (Reply reply : replies) { + Set replies = sone.getReplies(); + final Map> repliedPosts = new HashMap>(); + for (PostReply reply : replies) { Post post = reply.getPost(); if (repliedPosts.containsKey(post) || sone.equals(post.getSone()) || (sone.equals(post.getRecipient()))) { continue; diff --git a/src/main/java/net/pterodactylus/sone/web/WebInterface.java b/src/main/java/net/pterodactylus/sone/web/WebInterface.java index 7f53419..7320ad5 100644 --- a/src/main/java/net/pterodactylus/sone/web/WebInterface.java +++ b/src/main/java/net/pterodactylus/sone/web/WebInterface.java @@ -40,6 +40,7 @@ import net.pterodactylus.sone.core.CoreListener; import net.pterodactylus.sone.data.Album; import net.pterodactylus.sone.data.Image; import net.pterodactylus.sone.data.Post; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Reply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.freenet.L10nFilter; @@ -176,13 +177,13 @@ public class WebInterface implements CoreListener { private final ListNotification newPostNotification; /** The “new reply” notification. */ - private final ListNotification newReplyNotification; + private final ListNotification newReplyNotification; /** The invisible “local post” notification. */ private final ListNotification localPostNotification; /** The invisible “local reply” notification. */ - private final ListNotification localReplyNotification; + private final ListNotification localReplyNotification; /** The “you have been mentioned” notification. */ private final ListNotification mentionNotification; @@ -266,10 +267,10 @@ public class WebInterface implements CoreListener { localPostNotification = new ListNotification("local-post-notification", "posts", localPostNotificationTemplate, false); Template newReplyNotificationTemplate = TemplateParser.parse(createReader("/templates/notify/newReplyNotification.html")); - newReplyNotification = new ListNotification("new-reply-notification", "replies", newReplyNotificationTemplate, false); + newReplyNotification = new ListNotification("new-reply-notification", "replies", newReplyNotificationTemplate, false); Template localReplyNotificationTemplate = TemplateParser.parse(createReader("/templates/notify/newReplyNotification.html")); - localReplyNotification = new ListNotification("local-reply-notification", "replies", localReplyNotificationTemplate, false); + localReplyNotification = new ListNotification("local-reply-notification", "replies", localReplyNotificationTemplate, false); Template mentionNotificationTemplate = TemplateParser.parse(createReader("/templates/notify/mentionNotification.html")); mentionNotification = new ListNotification("mention-notification", "posts", mentionNotificationTemplate, false); @@ -464,8 +465,8 @@ public class WebInterface implements CoreListener { * * @return The new replies */ - public Set getNewReplies() { - return new SetBuilder().addAll(newReplyNotification.getElements()).addAll(localReplyNotification.getElements()).get(); + public Set getNewReplies() { + return new SetBuilder().addAll(newReplyNotification.getElements()).addAll(localReplyNotification.getElements()).get(); } /** @@ -805,7 +806,7 @@ public class WebInterface implements CoreListener { * {@inheritDoc} */ @Override - public void newReplyFound(Reply reply) { + public void newReplyFound(PostReply reply) { boolean isLocal = getCore().isLocalSone(reply.getSone()); if (isLocal) { localReplyNotification.add(reply); @@ -845,7 +846,7 @@ public class WebInterface implements CoreListener { * {@inheritDoc} */ @Override - public void markReplyKnown(Reply reply) { + public void markReplyKnown(PostReply reply) { newReplyNotification.remove(reply); localReplyNotification.remove(reply); mentionNotification.remove(reply.getPost()); @@ -872,7 +873,7 @@ public class WebInterface implements CoreListener { * {@inheritDoc} */ @Override - public void replyRemoved(Reply reply) { + public void replyRemoved(PostReply reply) { newReplyNotification.remove(reply); localReplyNotification.remove(reply); } diff --git a/src/main/java/net/pterodactylus/sone/web/ajax/CreateReplyAjaxPage.java b/src/main/java/net/pterodactylus/sone/web/ajax/CreateReplyAjaxPage.java index 9f5c882..337a238 100644 --- a/src/main/java/net/pterodactylus/sone/web/ajax/CreateReplyAjaxPage.java +++ b/src/main/java/net/pterodactylus/sone/web/ajax/CreateReplyAjaxPage.java @@ -18,7 +18,7 @@ package net.pterodactylus.sone.web.ajax; import net.pterodactylus.sone.data.Post; -import net.pterodactylus.sone.data.Reply; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.text.TextFilter; import net.pterodactylus.sone.web.WebInterface; @@ -63,7 +63,7 @@ public class CreateReplyAjaxPage extends JsonPage { return createErrorJsonObject("invalid-post-id"); } text = TextFilter.filter(request.getHttpRequest().getHeader("host"), text); - Reply reply = webInterface.getCore().createReply(sender, post, text); + PostReply reply = webInterface.getCore().createReply(sender, post, text); return createSuccessJsonObject().put("reply", reply.getId()).put("sone", sender.getId()); } diff --git a/src/main/java/net/pterodactylus/sone/web/ajax/DeleteReplyAjaxPage.java b/src/main/java/net/pterodactylus/sone/web/ajax/DeleteReplyAjaxPage.java index 7bea4cf..76126f4 100644 --- a/src/main/java/net/pterodactylus/sone/web/ajax/DeleteReplyAjaxPage.java +++ b/src/main/java/net/pterodactylus/sone/web/ajax/DeleteReplyAjaxPage.java @@ -17,7 +17,7 @@ package net.pterodactylus.sone.web.ajax; -import net.pterodactylus.sone.data.Reply; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.web.WebInterface; import net.pterodactylus.sone.web.page.FreenetRequest; import net.pterodactylus.util.json.JsonObject; @@ -49,7 +49,7 @@ public class DeleteReplyAjaxPage extends JsonPage { @Override protected JsonObject createJsonObject(FreenetRequest request) { String replyId = request.getHttpRequest().getParam("reply"); - Reply reply = webInterface.getCore().getReply(replyId); + PostReply reply = webInterface.getCore().getReply(replyId); if (reply == null) { return createErrorJsonObject("invalid-reply-id"); } diff --git a/src/main/java/net/pterodactylus/sone/web/ajax/GetLikesAjaxPage.java b/src/main/java/net/pterodactylus/sone/web/ajax/GetLikesAjaxPage.java index 539be3d..12a9e8d 100644 --- a/src/main/java/net/pterodactylus/sone/web/ajax/GetLikesAjaxPage.java +++ b/src/main/java/net/pterodactylus/sone/web/ajax/GetLikesAjaxPage.java @@ -23,7 +23,7 @@ import java.util.List; import java.util.Set; import net.pterodactylus.sone.data.Post; -import net.pterodactylus.sone.data.Reply; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.template.SoneAccessor; import net.pterodactylus.sone.web.WebInterface; @@ -67,7 +67,7 @@ public class GetLikesAjaxPage extends JsonPage { Set sones = webInterface.getCore().getLikes(post); return createSuccessJsonObject().put("likes", sones.size()).put("sones", getSones(sones)); } else if ("reply".equals(type)) { - Reply reply = webInterface.getCore().getReply(id); + PostReply reply = webInterface.getCore().getReply(id); Set sones = webInterface.getCore().getLikes(reply); return createSuccessJsonObject().put("likes", sones.size()).put("sones", getSones(sones)); } diff --git a/src/main/java/net/pterodactylus/sone/web/ajax/GetNotificationAjaxPage.java b/src/main/java/net/pterodactylus/sone/web/ajax/GetNotificationAjaxPage.java index dfac8e4..6cdbf12 100644 --- a/src/main/java/net/pterodactylus/sone/web/ajax/GetNotificationAjaxPage.java +++ b/src/main/java/net/pterodactylus/sone/web/ajax/GetNotificationAjaxPage.java @@ -21,7 +21,7 @@ import java.io.IOException; import java.io.StringWriter; import net.pterodactylus.sone.data.Post; -import net.pterodactylus.sone.data.Reply; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.main.SonePlugin; import net.pterodactylus.sone.notify.ListNotification; @@ -89,7 +89,7 @@ public class GetNotificationAjaxPage extends JsonPage { if ("new-post-notification".equals(notificationId)) { notification = ListNotificationFilters.filterNewPostNotification((ListNotification) notification, currentSone, false); } else if ("new-reply-notification".equals(notificationId)) { - notification = ListNotificationFilters.filterNewReplyNotification((ListNotification) notification, currentSone); + notification = ListNotificationFilters.filterNewReplyNotification((ListNotification) notification, currentSone); } else if ("mention-notification".equals(notificationId)) { notification = ListNotificationFilters.filterNewPostNotification((ListNotification) notification, currentSone, false); } diff --git a/src/main/java/net/pterodactylus/sone/web/ajax/GetReplyAjaxPage.java b/src/main/java/net/pterodactylus/sone/web/ajax/GetReplyAjaxPage.java index 2eef58a..f38e0f2 100644 --- a/src/main/java/net/pterodactylus/sone/web/ajax/GetReplyAjaxPage.java +++ b/src/main/java/net/pterodactylus/sone/web/ajax/GetReplyAjaxPage.java @@ -19,7 +19,7 @@ package net.pterodactylus.sone.web.ajax; import java.io.StringWriter; -import net.pterodactylus.sone.data.Reply; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.web.WebInterface; import net.pterodactylus.sone.web.page.FreenetRequest; @@ -62,7 +62,7 @@ public class GetReplyAjaxPage extends JsonPage { @Override protected JsonObject createJsonObject(FreenetRequest request) { String replyId = request.getHttpRequest().getParam("reply"); - Reply reply = webInterface.getCore().getReply(replyId); + PostReply reply = webInterface.getCore().getReply(replyId); if ((reply == null) || (reply.getSone() == null)) { return createErrorJsonObject("invalid-reply-id"); } @@ -92,7 +92,7 @@ public class GetReplyAjaxPage extends JsonPage { * The currently logged in Sone (to store in the template) * @return The JSON representation of the reply */ - private JsonObject createJsonReply(FreenetRequest request, Reply reply, Sone currentSone) { + private JsonObject createJsonReply(FreenetRequest request, PostReply reply, Sone currentSone) { JsonObject jsonReply = new JsonObject(); jsonReply.put("id", reply.getId()); jsonReply.put("postId", reply.getPost().getId()); diff --git a/src/main/java/net/pterodactylus/sone/web/ajax/GetStatusAjaxPage.java b/src/main/java/net/pterodactylus/sone/web/ajax/GetStatusAjaxPage.java index eaa6506..038cfb8 100644 --- a/src/main/java/net/pterodactylus/sone/web/ajax/GetStatusAjaxPage.java +++ b/src/main/java/net/pterodactylus/sone/web/ajax/GetStatusAjaxPage.java @@ -26,7 +26,7 @@ import java.util.List; import java.util.Set; import net.pterodactylus.sone.data.Post; -import net.pterodactylus.sone.data.Reply; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.notify.ListNotificationFilters; import net.pterodactylus.sone.template.SoneAccessor; @@ -117,27 +117,27 @@ public class GetStatusAjaxPage extends JsonPage { jsonPosts.add(jsonPost); } /* load new replies. */ - Set newReplies = webInterface.getNewReplies(); + Set newReplies = webInterface.getNewReplies(); if (currentSone != null) { - newReplies = Filters.filteredSet(newReplies, new Filter() { + newReplies = Filters.filteredSet(newReplies, new Filter() { @Override - public boolean filterObject(Reply reply) { + public boolean filterObject(PostReply reply) { return ListNotificationFilters.isReplyVisible(currentSone, reply); } }); } /* remove replies to unknown posts. */ - newReplies = Filters.filteredSet(newReplies, new Filter() { + newReplies = Filters.filteredSet(newReplies, new Filter() { @Override - public boolean filterObject(Reply reply) { + public boolean filterObject(PostReply reply) { return (reply.getPost() != null) && (reply.getPost().getSone() != null); } }); JsonArray jsonReplies = new JsonArray(); - for (Reply reply : newReplies) { + for (PostReply reply : newReplies) { JsonObject jsonReply = new JsonObject(); jsonReply.put("id", reply.getId()); jsonReply.put("sone", reply.getSone().getId()); diff --git a/src/main/java/net/pterodactylus/sone/web/ajax/GetTimesAjaxPage.java b/src/main/java/net/pterodactylus/sone/web/ajax/GetTimesAjaxPage.java index 1711a5b..cec9967 100644 --- a/src/main/java/net/pterodactylus/sone/web/ajax/GetTimesAjaxPage.java +++ b/src/main/java/net/pterodactylus/sone/web/ajax/GetTimesAjaxPage.java @@ -22,7 +22,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import net.pterodactylus.sone.data.Post; -import net.pterodactylus.sone.data.Reply; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.web.WebInterface; import net.pterodactylus.sone.web.page.FreenetRequest; import net.pterodactylus.util.json.JsonObject; @@ -75,7 +75,7 @@ public class GetTimesAjaxPage extends JsonPage { if (allIds.length() > 0) { String[] ids = allIds.split(","); for (String id : ids) { - Reply reply = webInterface.getCore().getReply(id, false); + PostReply reply = webInterface.getCore().getReply(id, false); if (reply == null) { continue; } diff --git a/src/main/java/net/pterodactylus/sone/web/ajax/MarkAsKnownAjaxPage.java b/src/main/java/net/pterodactylus/sone/web/ajax/MarkAsKnownAjaxPage.java index 42ee8b2..0e9b6b7 100644 --- a/src/main/java/net/pterodactylus/sone/web/ajax/MarkAsKnownAjaxPage.java +++ b/src/main/java/net/pterodactylus/sone/web/ajax/MarkAsKnownAjaxPage.java @@ -19,6 +19,7 @@ package net.pterodactylus.sone.web.ajax; import net.pterodactylus.sone.core.Core; import net.pterodactylus.sone.data.Post; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Reply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.web.WebInterface; @@ -62,7 +63,7 @@ public class MarkAsKnownAjaxPage extends JsonPage { } core.markPostKnown(post); } else if (type.equals("reply")) { - Reply reply = core.getReply(id, false); + PostReply reply = core.getReply(id, false); if (reply == null) { continue; } -- 2.7.4