/** * */ package net.agef.jobexchange.integration; import java.util.List; import net.agef.jobexchange.domain.AlumniRole; import net.agef.jobexchange.domain.OrganisationRole; import net.agef.jobexchange.domain.User; import org.chenillekit.hibernate.daos.AbstractHibernateDAO; import org.chenillekit.hibernate.utils.QueryParameter; import org.hibernate.Session; import org.hibernate.criterion.Restrictions; import org.slf4j.Logger; /** * @author Administrator * */ public class UserDAOHibernate extends AbstractHibernateDAO<User, Long> implements UserDAO{ private Session session; public UserDAOHibernate(Logger logger, Session session) { super(logger, session); this.session = session; } public User findCobraUserByID(Long cobraSuperID, boolean isOrganisationUser) { List<User> user = this.findByQuery("From User u WHERE u.cobraSuperId = :cobraId", new QueryParameter("cobraId", cobraSuperID)); if (!user.isEmpty()) { for (int i =0; i < user.size();i++){ if((user.get(i).getUserRole() instanceof OrganisationRole) && isOrganisationUser){ return user.remove(i); } else if((user.get(i).getUserRole() instanceof AlumniRole) && !isOrganisationUser){ return user.remove(i); } } } return null; } public User findAPDUserByID(Long apdUserID) { List<User> user = this.findByQuery("From User u WHERE u.apdUserId = :apdId", new QueryParameter("apdId", apdUserID)); if (!user.isEmpty()) { return user.remove(0); } else return null; } @Override public User doRetrieve(Long userId, boolean detached){ try { return super.doRetrieve(userId, detached); } catch (Exception e) { return null; } } @Override public User findInwentUserByID(Long applicantProfileOwnerId) { try { return (User) session.createCriteria(User.class).add(Restrictions.eq("inwentUserId", applicantProfileOwnerId)).uniqueResult(); } catch (Exception e){ return null; } } }