package gov.nysenate.openleg.dao.common; import gov.nysenate.openleg.dao.base.SqlBaseDao; import gov.nysenate.openleg.model.bill.BillId; import gov.nysenate.openleg.model.bill.BillVoteId; import gov.nysenate.openleg.model.bill.BillVoteType; import gov.nysenate.openleg.model.entity.Chamber; import gov.nysenate.openleg.model.entity.CommitteeId; import org.springframework.jdbc.core.RowMapper; import java.sql.ResultSet; import java.sql.SQLException; import java.time.LocalDate; /** * Creates a BillVoteId reference from the result set. */ public class BillVoteIdRowMapper implements RowMapper<BillVoteId> { @Override public BillVoteId mapRow(ResultSet rs, int rowNum) throws SQLException { BillId billId = new BillId(rs.getString("bill_print_no"), rs.getInt("bill_session_year"), rs.getString("bill_amend_version")); LocalDate voteDate = SqlBaseDao.getLocalDateFromRs(rs, "vote_date"); BillVoteType voteType = BillVoteType.getValue(rs.getString("vote_type")); int sequenceNo = rs.getInt("sequence_no"); CommitteeId commId = null; if (rs.getString("committee_name") != null) { commId = new CommitteeId(Chamber.getValue(rs.getString("committee_chamber").toUpperCase()), rs.getString("committee_name")); } return new BillVoteId(billId, voteDate, voteType, sequenceNo, commId); } }