package net.codjo.control.server.handler;
import java.util.Map;
import net.codjo.mad.server.handler.HandlerException;
import net.codjo.mad.server.handler.sql.QueryBuilder;
import net.codjo.mad.server.handler.sql.SqlHandler;
import net.codjo.util.string.StringUtil;
/**
*
*/
public class DbFilterSelectorFactory implements QueryBuilder {
public String buildQuery(final Map args, SqlHandler sqlHandler) throws HandlerException {
String tableName = (String)args.get("tableName");
String columnName = StringUtil.javaToSqlName((String)args.get("columnName"));
String sorter = (String)args.get("sorter");
if ((sorter == null) || ("".equals(sorter))) {
return "select distinct " + columnName + " as VALUE from " + tableName;
}
else {
return "select distinct " + columnName + " as VALUE from " + tableName + " order by " +
buildOrderByClause(sorter, columnName);
}
}
private String buildOrderByClause(String sorter, String columnName) {
if ("ascending".equals(sorter)) {
return columnName;
}
else if ("descending".equals(sorter)) {
return columnName + " desc";
}
else {
return columnName;
}
}
}