package marubinotto.piggydb.impl.mapper; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Iterator; import marubinotto.piggydb.model.entity.RawEntityFactory; import marubinotto.piggydb.model.entity.RawFilter; import marubinotto.piggydb.model.exception.BaseDataObsoleteException; import marubinotto.util.Assert; import org.springframework.jdbc.core.JdbcTemplate; public class FilterRowMapper extends EntityRowMapper<RawFilter> { private static final EntityTable TABLE = new EntityTable("filter", "filter_id") .defColumn("filter_name") .defColumn("includes_and"); public FilterRowMapper(RawEntityFactory<RawFilter> factory, String prefix) { super(factory, prefix); } @Override protected EntityTable getEntityTable() { return TABLE; } public static void insert(RawFilter filter, JdbcTemplate jdbcTemplate) { Assert.Arg.notNull(filter, "filter"); Assert.Arg.notNull(jdbcTemplate, "jdbcTemplate"); Object[] values = new Object[]{ filter.getName(), filter.isAnd() }; TABLE.insert(filter, values, jdbcTemplate); } public static void update(RawFilter filter, JdbcTemplate jdbcTemplate) throws BaseDataObsoleteException { Assert.Arg.notNull(filter, "filter"); Assert.Arg.notNull(jdbcTemplate, "jdbcTemplate"); Object[] values = new Object[]{ filter.getName(), filter.isAnd() }; TABLE.update(filter, values, true, jdbcTemplate); } public RawFilter mapRow(ResultSet rs, int rowNum) throws SQLException { RawFilter filter = createEntityWithCommonColumns(rs); Iterator<String> columns = properColumns(); filter.setName(rs.getString(columns.next())); filter.setAnd(rs.getBoolean(columns.next())); return filter; } }