package org.jtwig.functions.impl.mixed; import org.jtwig.exceptions.ResolveValueException; import org.jtwig.functions.FunctionRequest; import org.jtwig.functions.SimpleJtwigFunction; import org.jtwig.value.Undefined; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class DefaultFunction extends SimpleJtwigFunction { private final Logger log = LoggerFactory.getLogger(DefaultFunction.class); @Override public String name() { return "default"; } @Override public Object execute(FunctionRequest request) { request.minimumNumberOfArguments(2).maximumNumberOfArguments(2); Object defaultValue = request.get(1); try { Object input = request.get(0); if (input == null || input == Undefined.UNDEFINED) { return defaultValue; } else { return input; } } catch (ResolveValueException e) { log.debug("Unable to evaluate expression", e); } return defaultValue; } }