X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fmain%2FReparseFilter.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fmain%2FReparseFilter.java;h=acad00b0b504362144d972d1498c9d707b52ce79;hb=89fe86e5fa64ad57b90b9b898e4fc03d29da5a63;hp=0000000000000000000000000000000000000000;hpb=b64a9dcfdd584c6c6b7da45066b27bcc17cf6942;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/main/ReparseFilter.java b/src/main/java/net/pterodactylus/sone/main/ReparseFilter.java new file mode 100644 index 0000000..acad00b --- /dev/null +++ b/src/main/java/net/pterodactylus/sone/main/ReparseFilter.java @@ -0,0 +1,33 @@ +package net.pterodactylus.sone.main; + +import java.io.StringReader; +import java.io.StringWriter; +import java.util.Map; + +import net.pterodactylus.util.template.Filter; +import net.pterodactylus.util.template.Template; +import net.pterodactylus.util.template.TemplateContext; +import net.pterodactylus.util.template.TemplateException; +import net.pterodactylus.util.template.TemplateParser; + +/** + * Takes the input and parses it as a new {@link Template}. + * + * @author David ‘Bombe’ Roden + */ +public class ReparseFilter implements Filter { + + @Override + public Object format(TemplateContext templateContext, Object data, Map parameters) { + Template template = TemplateParser.parse(new StringReader(String.valueOf(data))); + StringWriter stringWriter = new StringWriter(); + try { + template.render(templateContext, stringWriter); + } catch (TemplateException e) { + throw new RuntimeException(e); + } finally { + return stringWriter.toString(); + } + } + +}