package pl.shockah.shocky.sql;
import java.util.ArrayList;
import java.util.Arrays;
public class QueryDelete extends Query {
private final String table;
private final ArrayList<Criterion> criterions = new ArrayList<Criterion>();
private int limitOffset = 0, limitCount = 1;
public QueryDelete(String table) {
this.table = table;
}
public void addCriterions(Criterion... criterions) {
this.criterions.addAll(Arrays.asList(criterions));
}
public void setLimitOffset(int offset) {limitOffset = offset;}
public void setLimitCount(int count) {limitCount = count;}
public void setLimit(int offset, int count) {
setLimitOffset(offset);
setLimitCount(count);
}
public String getSQLQuery() {
String clauseWhere = getWhereClause(criterions);
String clauseLimit = limitOffset == 0 && limitCount == 1 ? "" : "LIMIT "+(limitOffset != 0 ? ""+limitOffset+"," : "")+limitCount;
return "DELETE FROM "+table+(clauseWhere.isEmpty() ? "" : " "+clauseWhere)+(clauseLimit.isEmpty() ? "" : " "+clauseLimit);
}
}