package org.araqne.logdb.query.expr;
import java.util.List;
import java.util.Map;
import org.araqne.logdb.QueryContext;
import org.araqne.logdb.QueryParseException;
import org.araqne.logdb.Row;
public class ContextReference implements Expression {
private Map<String, Object> constants;
private String field;
public ContextReference(QueryContext context, List<Expression> exprs) {
this.constants = context.getConstants();
if (exprs.size() == 0)
// throw new QueryParseException("null-context-reference", -1);
throw new QueryParseException("90610", -1, -1, null);
Object o = exprs.get(0).eval(null);
if (o == null)
// throw new QueryParseException("null-context-reference", -1);
throw new QueryParseException("90611", -1, -1, null);
this.field = o.toString();
}
@Override
public Object eval(Row map) {
return constants.get(field);
}
@Override
public String toString() {
return "$(\"" + field + "\")";
}
}