package edu.internet2.middleware.grouper;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Query;
import net.sf.hibernate.Session;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.util.ArrayList;
import java.util.List;
public class MembershipRequestHistoryFinder {
private static Log log = LogFactory.getLog(MembershipRequestHistoryFinder.class);
public static ArrayList<MembershipRequestHistory> findHistory(GrouperSession grouperSession, Group group, String requestor) throws QueryException {
ArrayList<MembershipRequestHistory> requests = new ArrayList<MembershipRequestHistory>();
Session hs = null;
try {
hs = GridGrouperHibernateHelper.getSession();
Query qry = hs.createQuery("select mrh from MembershipRequestHistory as mrh inner join mrh.membershipRequest as mr where mr.group = :grp and mr.requestorId = :requestor");
qry.setEntity("grp", group);
qry.setString("requestor", requestor);
List<?> list = qry.list();
for (Object object : list) {
MembershipRequestHistory membershipRequests = (MembershipRequestHistory) object;
requests.add(membershipRequests);
}
} catch (HibernateException e) {
throw new QueryException("error finding history requests: " + e.getMessage(), e);
} finally {
if (hs != null) {
try {
hs.close();
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
}
return requests;
}
}