package org.jtwig.functions.impl.string; import org.jtwig.functions.FunctionRequest; import org.jtwig.functions.SimpleJtwigFunction; import static java.nio.charset.Charset.forName; public class ConvertEncodingFunction extends SimpleJtwigFunction { @Override public String name() { return "convert_encoding"; } @Override public Object execute(FunctionRequest request) { request.minimumNumberOfArguments(3).maximumNumberOfArguments(3); String input = getString(request, 0); String from = getString(request, 1); String to = getString(request, 2); return new String(input.getBytes(forName(from)), forName(to)); } private String getString(FunctionRequest request, int index) { return request.getEnvironment().getValueEnvironment().getStringConverter().convert(request.get(index)); } }