package org.araqne.logdb.query.expr; import java.util.List; import org.araqne.logdb.QueryContext; import org.araqne.logdb.Row; public class ToDouble extends FunctionExpression { private Expression valueExpr; public ToDouble(QueryContext ctx, List<Expression> exprs) { super("double", exprs, 1); this.valueExpr = exprs.get(0); } @Override public Object eval(Row map) { try { Object v = valueExpr.eval(map); if (v == null) return null; String s = v.toString(); if (s.isEmpty()) return null; return Double.parseDouble(s); } catch (Throwable t) { return null; } } }