package org.nutz.dao.util.cri;
import java.util.ArrayList;
import java.util.List;
import org.nutz.dao.entity.Entity;
import org.nutz.dao.impl.sql.pojo.NoParamsPItem;
import org.nutz.dao.sql.OrderBy;
import org.nutz.dao.sql.Pojo;
public class OrderBySet extends NoParamsPItem implements OrderBy {
private List<OrderByItem> list;
OrderBySet() {
list = new ArrayList<OrderByItem>(3);
}
public void joinSql(Entity<?> en, StringBuilder sb) {
if (!list.isEmpty()) {
sb.append(" ORDER BY ");
for (OrderByItem obi : list) {
obi.joinSql(en, sb);
sb.append(", ");
}
sb.setCharAt(sb.length() - 2, ' ');
} else
;// OK,无需添加.
}
public String toSql(Entity<?> en) {
StringBuilder sb = new StringBuilder();
joinSql(en, sb);
return sb.toString();
}
public OrderBy asc(String name) {
OrderByItem asc = new OrderByItem(name, "ASC");
asc.setPojo(pojo);
list.add(asc);
return this;
}
public OrderBy desc(String name) {
OrderByItem desc = new OrderByItem(name, "DESC");
desc.setPojo(pojo);
list.add(desc);
return this;
}
public void setPojo(Pojo pojo) {
super.setPojo(pojo);
for (OrderByItem obi : list)
obi.setPojo(pojo);
}
public List<OrderByItem> getItems() {
return list;
}
public String toString() {
return toSql(null);
}
}