package org.n3r.eql.parser;
import com.google.common.base.Objects;
import lombok.Value;
import org.n3r.eql.base.ExpressionEvaluator;
import org.n3r.eql.map.EqlRun;
import java.util.List;
@Value
public class SwitchPart implements EqlPart {
private final String condition;
private final List<IfCondition> cases;
@Override
public String evalSql(EqlRun eqlRun) {
ExpressionEvaluator evaluator = eqlRun.getEqlConfig().getExpressionEvaluator();
Object target = evaluator.eval(condition, eqlRun);
if (target == null) return "";
String strTarget = target.toString();
for (IfCondition ifCondition : cases) {
if ("".equals(ifCondition.getExpr())
|| Objects.equal(strTarget, ifCondition.getExpr()))
return ifCondition.getValue().evalSql(eqlRun);
}
return "";
}
}