package com.googlecode.aviator.runtime.function.custom;
import com.googlecode.aviator.runtime.function.AbstractVariadicFunction;
import com.googlecode.aviator.runtime.type.AviatorObject;
import com.googlecode.aviator.runtime.type.AviatorString;
import java.util.Map;
/**
* From user's issue report https://github.com/killme2008/aviator/issues/12
*
* @author dennis
*
*/
public class GetFirstNonNullFunction extends AbstractVariadicFunction {
public AviatorObject variadicCall(Map<String, Object> env, AviatorObject... args) {
if (args != null) {
for (AviatorObject arg : args) {
if (arg.getValue(env) != null) {
return arg;
}
}
}
return new AviatorString(null);
}
@Override
public String getName() {
return "getFirstNonNull";
}
}