package org.n3r.eql.matrix.sqlparser;
import lombok.Value;
import lombok.val;
import org.n3r.eql.map.EqlRun;
import org.n3r.eql.matrix.MatrixTableFieldValue;
import org.n3r.eql.matrix.RulesSet;
@Value
public class DefaultMatrixSqlParseResult implements MatrixSqlParseResult {
private final RulesSet ruleSet;
private final SqlFieldIndex[] sqlFieldIndexes;
@Override
public String getDatabaseName(EqlRun eqlRun) {
val values = new MatrixTableFieldValue[sqlFieldIndexes.length];
for (int i = 0; i < values.length; ++i) {
values[i] = new MatrixTableFieldValue(sqlFieldIndexes[i]);
int variantIndex = sqlFieldIndexes[i].variantIndex;
values[i].fieldValue = "" + eqlRun.realParams.get(variantIndex)._2;
}
val realPartition = ruleSet.find(values);
return realPartition.databaseName;
}
}