From 449afba6c208774c1d41a34671e2b4a69c857431 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Tue, 29 Aug 2023 20:35:51 +0200 Subject: Remove dots after question mark titles. Fixes: #18 Change-Id: I2915d246e2b614da69c2761864a3e5bd5300db14 --- src/main/java/eu/mulk/mulkcms2/benki/posts/Post.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/main/java/eu') 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> extends PanacheEntityBase { + private static Pattern sentenceEnderRegex = Pattern.compile("^.*[?.]$"); + public enum Scope { top_level, comment @@ -141,6 +144,20 @@ public abstract class Post> 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; -- cgit v1.2.3