public class TextTemplateHandler<T>
extends java.lang.Object
This is thought for quite simple cases where only a few patterns are substituted as it goes over the whole text for each substitution pattern once.
| Modifier and Type | Class and Description |
|---|---|
static interface |
TextTemplateHandler.CtxExpander<T>
Expander which uses a context.
|
static interface |
TextTemplateHandler.Expander
Context-less expander.
|
static class |
TextTemplateHandler.WithoutContext
Helper class.
|
| Constructor and Description |
|---|
TextTemplateHandler() |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
expand(java.lang.String text,
T context)
Expand a string with the given context.
|
static TextTemplateHandler.WithoutContext |
fromMapping(java.lang.String prefix,
java.lang.String suffix,
java.util.Map<java.lang.String,java.lang.String> mapping)
Factory method for a text template handler which just substitutes specially formed tags with
constant texts.
|
static TextTemplateHandler.WithoutContext |
fromMapping(java.lang.String prefix,
java.lang.String suffix,
java.lang.String... keyAndValuePairs)
Factory method for a text template handler which just substitutes specially formed tags with
constant texts.
|
static void |
main(java.lang.String[] args)
Test code.
|
void |
register(java.util.regex.Pattern pattern,
java.lang.String text)
Register an expander for a regular expression pattern which just returns a simple constant text.
|
void |
register(java.util.regex.Pattern pattern,
TextTemplateHandler.CtxExpander<T> expander)
Register an expander for a regular expression pattern.
|
void |
register(java.lang.String sequence,
java.lang.String text)
Register an expander for a simple string pattern which just returns a simple constant text.
|
void |
register(java.lang.String sequence,
TextTemplateHandler.CtxExpander<T> expander)
Register an expander for a simple string pattern.
|
static TextTemplateHandler.WithoutContext |
withoutContext()
Factory method for a text template handler which does not use a context.
|
public void register(@NotNull java.util.regex.Pattern pattern, @NotNull TextTemplateHandler.CtxExpander<T> expander)
pattern - pattern to look forexpander - expander to be called if pattern is foundpublic void register(@NotNull java.lang.String sequence, @NotNull TextTemplateHandler.CtxExpander<T> expander)
sequence - string sequence to look forexpander - expander to be called if sequence is foundpublic void register(@NotNull java.util.regex.Pattern pattern, @NotNull java.lang.String text)
pattern - pattern to look fortext - text used for substituting the patternpublic void register(@NotNull java.lang.String sequence, @NotNull java.lang.String text)
sequence - string sequence to look fortext - text used for substituting the pattern@NotNull public java.lang.String expand(@NotNull java.lang.String text, @NotNull T context) throws java.io.IOException
text - text stringcontext - context to use for expansionjava.io.IOException - on expansion errors@NotNull public static TextTemplateHandler.WithoutContext withoutContext()
@NotNull public static TextTemplateHandler.WithoutContext fromMapping(@NotNull java.lang.String prefix, @NotNull java.lang.String suffix, @NotNull java.util.Map<java.lang.String,java.lang.String> mapping)
An example:
Map<String, String> mapping = new HashMap<>();
mapping.put("ONE", "1");
mapping.put("TWO", "2");
mapping.put("THREE", "3");
WithoutContext wc = fromMapping("{{", "}}", mapping);
String text = "{{ONE}}{{TWO}}{{THREE}}";
String expect = "123";
assert expect.equals(wc.expand(text));
prefix - tag prefix markersuffix - tag suffix markermapping - mapping of tag content@NotNull public static TextTemplateHandler.WithoutContext fromMapping(@NotNull java.lang.String prefix, @NotNull java.lang.String suffix, @NotNull java.lang.String... keyAndValuePairs)
An example:
WithoutContext wc = fromMapping("{{", "}}",
"ONE", "1",
"TWO", "2",
"THREE", "3");
String text = "{{ONE}}{{TWO}}{{THREE}}";
String expect = "123";
assert expect.equals(wc.expand(text));
prefix - tag prefix markersuffix - tag suffix markerkeyAndValuePairs - an even number of paired keys (even index) and values (odd index)public static void main(java.lang.String[] args)
throws java.io.IOException
args - ignoredjava.io.IOException - on template errors