package org.nutz.dao.impl.sql.pojo;
import org.nutz.dao.FieldMatcher;
import org.nutz.dao.entity.Entity;
import org.nutz.dao.entity.MappingField;
import org.nutz.dao.sql.PItem;
import org.nutz.dao.sql.Pojo;
import org.nutz.dao.sql.SqlType;
public abstract class AbstractPItem implements PItem {
private static final long serialVersionUID = 1L;
protected Pojo pojo;
protected boolean top = true;
public Pojo getPojo() {
return pojo;
}
public void setPojo(Pojo pojo) {
this.pojo = pojo;
this.setupPojo(pojo);
}
protected SqlType getSqlType() {
return pojo.getSqlType();
}
protected FieldMatcher getFieldMatcher() {
return pojo.getContext().getFieldMatcher();
}
protected void setupPojo(Pojo pojo) {}
protected Entity<?> _en(Entity<?> en) {
if (null == en && null != pojo)
return pojo.getEntity();
return en;
}
protected String _fmtcolnm(Entity<?> en, String name) {
if (null == en && null != pojo)
en = pojo.getEntity();
if (null != en) {
MappingField mf = en.getField(name);
if (null != mf)
return mf.getColumnNameInSql();
}
return name;
}
public AbstractPItem setTop(boolean top) {
this.top = top;
return this;
}
public boolean isTop() {
return top;
}
}