package ctbrec.variableexpansion.functions; import ctbrec.StringUtil; import ctbrec.variableexpansion.VarArgsFunction; import java.util.Optional; public class OrElse implements VarArgsFunction { @Override public String apply(Object... params) { if (params == null || params.length < 1) { return ""; } String fallback = ""; if (params.length >= 2) { fallback = String.valueOf(params[1]); } Optional result = Optional.ofNullable(params[0]).map(String::valueOf); if (result.isPresent() && StringUtil.isNotBlank(result.get())) { return result.get(); } else { return fallback; } } }