package org.nutz.dao.util.cri;
import org.nutz.dao.entity.Entity;
import org.nutz.dao.entity.MappingField;
import org.nutz.dao.jdbc.Jdbcs;
import org.nutz.dao.jdbc.ValueAdaptor;
public class SimpleExpression extends AbstractSqlExpression {
private String op;
private Object value;
public SimpleExpression(String name, String op, Object val) {
super(name);
this.op = op;
this.value = val;
}
public void joinSql(Entity<?> en, StringBuilder sb) {
if (not)
sb.append(" NOT ");
if ("=".equals(op) || ">".equals(op) || "<".equals(op) || "!=".equals(op))
sb.append(_fmtcol(en)).append(op).append('?');
else
sb.append(_fmtcol(en)).append(' ').append(op).append(' ').append('?');
}
public int joinAdaptor(Entity<?> en, ValueAdaptor[] adaptors, int off) {
MappingField mf = _field(en);
if (null != mf) {
adaptors[off++] = mf.getAdaptor();
} else {
adaptors[off++] = Jdbcs.getAdaptorBy(value);
}
return off;
}
public int joinParams(Entity<?> en, Object obj, Object[] params, int off) {
params[off++] = value;
return off;
}
public int paramCount(Entity<?> en) {
return 1;
}
}