diff --git a/handlebars/src/main/java/com/github/jknack/handlebars/internal/TemplateBuilder.java b/handlebars/src/main/java/com/github/jknack/handlebars/internal/TemplateBuilder.java index e5862814b..ca25145df 100644 --- a/handlebars/src/main/java/com/github/jknack/handlebars/internal/TemplateBuilder.java +++ b/handlebars/src/main/java/com/github/jknack/handlebars/internal/TemplateBuilder.java @@ -697,7 +697,7 @@ public Template visitBody(final BodyContext ctx) { list.add(candidate); prev = candidate; } else { - ((Text) prev).append(((Text) candidate).textWithoutEscapeChar()); + ((Text) prev).append(((Text) candidate)); } } else { list.add(candidate); diff --git a/handlebars/src/main/java/com/github/jknack/handlebars/internal/Text.java b/handlebars/src/main/java/com/github/jknack/handlebars/internal/Text.java index 11f832a90..cd457e41f 100644 --- a/handlebars/src/main/java/com/github/jknack/handlebars/internal/Text.java +++ b/handlebars/src/main/java/com/github/jknack/handlebars/internal/Text.java @@ -34,10 +34,10 @@ class Text extends BaseTemplate { /** * The plain text. Required. */ - private StringBuilder text; + private final StringBuilder text; /** The escape's char or empty. */ - private String escapeChar; + private final String escapeChar; /** * Creates a new {@link Text}. @@ -67,27 +67,21 @@ public String text() { return escapeChar + text.toString(); } - /** - * @return Same as {@link #text()} without the escape char. - */ - public char[] textWithoutEscapeChar() { - return text.toString().toCharArray(); - } - @Override protected void merge(final Context scope, final Writer writer) throws IOException { writer.write(text.toString()); } /** - * Append text. + * Merges the content of the given {@link Text} instance into this instance. * - * @param text The text to append. - * @return This object. + * @param other the {@link Text} instance to merge with this instance; + * if null or contains no text, no action is taken */ - public Text append(final char[] text) { - this.text.append(text); - return this; - } + public void append(final Text other) { + if (other != null && other.text != null) { + this.text.append(other.text); + } + } }