summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java b/src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java
index d522b1a..6264671 100644
--- a/src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java
+++ b/src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java
@@ -45,6 +45,7 @@ import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.TimeZone;
+import java.util.regex.Pattern;
import java.util.stream.Collectors;
import javax.annotation.CheckForNull;
import org.hibernate.annotations.Type;
@@ -55,6 +56,8 @@ import org.hibernate.annotations.Where;
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Post<Text extends PostText<?>> extends PanacheEntityBase {
+ private static Pattern sentenceEnderRegex = Pattern.compile("^.*[?.]$");
+
public enum Scope {
top_level,
comment
@@ -141,6 +144,20 @@ public abstract class Post<Text extends PostText<?>> extends PanacheEntityBase {
@CheckForNull
public abstract String getUri();
+ @CheckForNull
+ public final String titleWithSentenceEnder() {
+ var title = getTitle();
+ if (title == null) {
+ return null;
+ }
+
+ if (sentenceEnderRegex.matcher(title).matches()) {
+ return title;
+ }
+
+ return title + ".";
+ }
+
public Visibility getVisibility() {
if (targets.isEmpty()) {
return Visibility.PRIVATE;