♻️ Supply default implementation for predicate
[Sone.git] / src / main / java / net / pterodactylus / sone / notify / ReplyVisibilityFilter.java
1 package net.pterodactylus.sone.notify;
2
3 import java.util.function.Predicate;
4 import javax.annotation.Nonnull;
5 import javax.annotation.Nullable;
6
7 import net.pterodactylus.sone.data.PostReply;
8 import net.pterodactylus.sone.data.Sone;
9
10 import com.google.inject.ImplementedBy;
11
12 @ImplementedBy(DefaultReplyVisibilityFilter.class)
13 public interface ReplyVisibilityFilter {
14
15         boolean isReplyVisible(@Nullable Sone sone, @Nonnull PostReply reply);
16
17         default Predicate<PostReply> isVisible(@Nullable final Sone currentSone) {
18                 return reply -> (reply != null) && isReplyVisible(currentSone, reply);
19         }
20
21 }