package org.nutz.dao.util.cri;
import org.nutz.dao.Nesting;
import org.nutz.dao.entity.Entity;
import org.nutz.dao.jdbc.ValueAdaptor;
/**
* 与{@linkplain SimpleExpression}类似,但是
* {@linkplain #joinSql(Entity, StringBuilder)},{@linkplain #joinParams(Entity, Object, Object[], int)}与{@linkplain #paramCount(Entity)}等返回值均为0.
*/
public class NestingExpression extends AbstractSqlExpression {
private static final long serialVersionUID = 1L;
private String op;
private Nesting value;
public NestingExpression(String name, String op, Nesting value) {
super(name);
this.op = op;
this.value = value;
}
public void joinSql(Entity<?> en, StringBuilder sb) {
if (!"EXISTS".equals(op))
sb.append(_fmtcol(en));
if (not)
sb.append(" NOT");
if ("=".equals(op) || ">".equals(op) || "<".equals(op) || "!=".equals(op)) {
sb.append(op).append("(").append(value.toString()).append(")");
} else {
sb.append(" ").append(op).append(" ").append("(").append(value.toString()).append(")");
}
}
public int joinAdaptor(Entity<?> en, ValueAdaptor[] adaptors, int off) {
return 0;
}
public int joinParams(Entity<?> en, Object obj, Object[] params, int off) {
return 0;
}
public int paramCount(Entity<?> en) {
return 0;
}
}