package org.nutz.dao.util.cri;
import org.nutz.dao.entity.Entity;
import org.nutz.dao.jdbc.Jdbcs;
import org.nutz.dao.jdbc.ValueAdaptor;
public class NameRange extends AbstractSqlExpression {
private String[] names;
NameRange(String name, String... names) {
super(name);
this.names = names;
this.not = false;
}
public void joinSql(Entity<?> en, StringBuilder sb) {
if (names.length > 0) {
sb.append(_fmtcol(en));
if (not)
sb.append(" NOT");
sb.append(" IN (");
for (int i = 0; i < names.length; i++)
sb.append("?,");
sb.setCharAt(sb.length() - 1, ')');
} else
;//OK,无需添加.
}
public int joinAdaptor(Entity<?> en,ValueAdaptor[] adaptors, int off) {
for (int i = 0; i < names.length; i++)
adaptors[off++] = Jdbcs.Adaptor.asString;
return off;
}
public int joinParams(Entity<?> en,Object obj, Object[] params, int off) {
for (String name : names)
params[off++] = name;
return off;
}
public int paramCount(Entity<?> en) {
return names.length;
}
}