package net.codjo.dataprocess.server.handler.handlerfactory; import net.codjo.database.api.Database; import net.codjo.dataprocess.common.table.model.FieldModel; import net.codjo.dataprocess.common.table.model.TableModel; import net.codjo.mad.server.handler.Handler; import net.codjo.mad.server.handler.requetor.AbstractRequetorHandler; import java.util.List; import org.picocontainer.MutablePicoContainer; /** * */ public class SelectRequetorHandlerFactory extends AbstractHandlerFactory { public SelectRequetorHandlerFactory(MutablePicoContainer container, TableModel tableModel) { super(container, tableModel); } public String getHandlerId() { return getTableModel().getHandlerIdProvider().getSelectRequetorHandlerId(); } public Handler createHandler() { return new SelectRequetorHandler(getTableModel(), getDatabase()); } private static class SelectRequetorHandler extends AbstractRequetorHandler { private TableModel table; SelectRequetorHandler(TableModel table, Database database) { super(table.getName(), table.getPkAsStrArray(), database); this.table = table; final List<FieldModel> fields = table.getFields(); for (FieldModel field : fields) { wrappers.put(field.getName(), new SqlWrapper(field.getName())); } } protected SelectRequetorHandler(String sqlTableName, String[] pks, Database database) { super(sqlTableName, pks, database); } public String getId() { return table.getHandlerIdProvider().getSelectRequetorHandlerId(); } } }