+ @Nonnull
+ @Override
+ public Output output(Reaction reaction) {
+ return new DefaultOutput(summary(reaction))
+ .addText("text/plain", plainText())
+ .addText("text/html", htmlText());
+ }
+
+ @Nonnull
+ protected String summary(Reaction reaction) {
+ return reaction.name();
+ }
+
+ @Nonnull
+ protected abstract String plainText();
+
+ @Nullable
+ protected String htmlText() {
+ //noinspection UnstableApiUsage
+ return "<div>" + htmlEscaper.escape(plainText()) + "</div>";
+ }
+
+ @SuppressWarnings("UnstableApiUsage")
+ private static final Escaper htmlEscaper = HtmlEscapers.htmlEscaper();
+