27 lines
738 B
Java
27 lines
738 B
Java
package ctbrec.variableexpansion.functions;
|
|
|
|
import ctbrec.StringUtil;
|
|
import ctbrec.variableexpansion.VarArgsFunction;
|
|
|
|
import java.util.Optional;
|
|
|
|
public class OrElse implements VarArgsFunction<Object, String> {
|
|
@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<String> result = Optional.ofNullable(params[0]).map(String::valueOf);
|
|
if (result.isPresent() && StringUtil.isNotBlank(result.get())) {
|
|
return result.get();
|
|
} else {
|
|
return fallback;
|
|
}
|
|
}
|
|
}
|