package fi.arcusys.koku.common.service.impl; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.ejb.Stateless; import fi.arcusys.koku.common.service.ConsentReplyDAO; import fi.arcusys.koku.common.service.datamodel.Consent; import fi.arcusys.koku.common.service.datamodel.ConsentReply; import fi.arcusys.koku.common.service.datamodel.ConsentReplyStatus; import fi.arcusys.koku.common.service.datamodel.User; /** * DAO implementation for CRUD operations with 'ConsentReply' Entity * * @author Dmitry Kudinov (dmitry.kudinov@arcusys.fi) * Aug 23, 2011 */ @Stateless public class ConsentReplyDAOImpl extends AbstractEntityDAOImpl<ConsentReply> implements ConsentReplyDAO { public ConsentReplyDAOImpl() { super(ConsentReply.class); } /** * @param consent * @param replier * @return */ @Override public ConsentReply getReplyByConsentAndUser(Consent consent, User replier) { final Map<String, Object> params = new HashMap<String, Object>(); params.put("consent", consent); params.put("user", replier); return getSingleResultOrNull("findReplyByConsentAndUser", params); } /** * @param replier * @param startNum * @param maxNum * @return */ @Override public List<ConsentReply> getRepliedConsents(final User user, final int startNum, final int maxNum) { return getResultList("findRepliedConsentsByUser", getReplyParams(user), startNum, maxNum); } protected Map<String, Object> getReplyParams(final User user) { final Map<String, Object> params = new HashMap<String, Object>(); params.put("user", user); params.put("status_valid", ConsentReplyStatus.Given); return params; } /** * @param user * @return */ @Override public Long getTotalRepliedConsents(User user) { return getSingleResult("countRepliedConsentsByUser", getReplyParams(user)); } /** * @param consent * @return */ @Override public List<ConsentReply> getReplies(Consent consent) { return getResultList("findRepliesByConsent", Collections.singletonMap("consent", consent)); } /** * @param replier * @param startNum * @param maxNum * @return */ @Override public List<ConsentReply> getOldRepliedConsents(User user, int startNum, int maxNum) { return getResultList("findOldRepliedConsentsByUser", getReplyParams(user), startNum, maxNum); } /** * @param user * @return */ @Override public Long getTotalOldRepliedConsents(User user) { return getSingleResult("countOldRepliedConsentsByUser", getReplyParams(user)); } }