package it.unisa.sesa.repominer.db; import it.unisa.sesa.repominer.db.entities.Change; import it.unisa.sesa.repominer.db.entities.ChangeForCommit; import it.unisa.sesa.repominer.db.entities.Project; import java.sql.Connection; import java.util.List; import net.sf.jeasyorm.EntityManager; public class ChangeForCommitDAO { /** * This method returns all changes occurred for a single commit passed as * parameter * * @param pChange * @return A list of ChangeForCommit objects */ public List<ChangeForCommit> getChangeForCommitOfChange(Change pChange) { Connection connection = ConnectionPool.getInstance().getConnection(); EntityManager em = EntityManager.getInstance(connection); List<ChangeForCommit> changesForCommit = em.find(ChangeForCommit.class, "where change_hash=?", pChange.getId()); ConnectionPool.getInstance().releaseConnection(connection); return changesForCommit; } /** * This method returns a single change occurred in a commit picked by id * * @param pId * @return A ChangeForCommit object */ public ChangeForCommit getChangeForCommitById(Integer pId) { Connection connection = ConnectionPool.getInstance().getConnection(); EntityManager em = EntityManager.getInstance(connection); ChangeForCommit changeForCommit = em.load(ChangeForCommit.class, pId); ConnectionPool.getInstance().releaseConnection(connection); return changeForCommit; } /** * This method returns all changes occurred in all commits which refer to a * project passed as parameter * * @param pProject * @return A list of ChangeForCommit objects */ public List<ChangeForCommit> getChangesForCommitByProject(Project pProject) { Connection connection = ConnectionPool.getInstance().getConnection(); EntityManager em = EntityManager.getInstance(connection); List<ChangeForCommit> changesForCommit = em .find(ChangeForCommit.class, "select * from changes_for_commit where change_hash in (select id from changes where project = ? ", pProject.getId()); ConnectionPool.getInstance().releaseConnection(connection); return changesForCommit; } }