package net.codjo.dataprocess.server.handler.handlerfactory; import net.codjo.dataprocess.common.table.model.FieldModel; import net.codjo.dataprocess.common.table.model.TableModel; import net.codjo.util.string.StringUtil; import java.util.Iterator; import java.util.List; /** * */ public abstract class AbstractQueryFactory implements QueryFactory { protected String buildSelectClause(TableModel table) { int idx = 0; StringBuilder sb = new StringBuilder(); for (FieldModel field : table.getFields()) { if (idx > 0) { sb.append(", "); } sb.append(field.getSqlName()); idx++; } return String.format("select %s from %s", sb.toString(), table.getName()); } protected String buildWhereClause(TableModel tableModel) { StringBuilder sb = new StringBuilder(" where "); for (Iterator<FieldModel> it = tableModel.getPks().iterator(); it.hasNext(); ) { sb.append(StringUtil.javaToSqlName(it.next().getName())).append(" = ? "); if (it.hasNext()) { sb.append(" and "); } } return sb.toString(); } protected String buildFieldValuesList(int nbValues) { StringBuilder sb = new StringBuilder(" values ("); for (int i = 0; i < nbValues; i++) { sb.append("?"); if (i < nbValues - 1) { sb.append(", "); } } sb.append(")"); return sb.toString(); } protected String buildFieldNameList(List<FieldModel> fields) { StringBuilder sb = new StringBuilder(); for (Iterator<FieldModel> it = fields.iterator(); it.hasNext(); ) { sb.append(it.next().getSqlName()); if (it.hasNext()) { sb.append(", "); } } return sb.toString(); } }