1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.ken.dao.impl;
17
18 import org.apache.log4j.Logger;
19 import org.apache.ojb.broker.query.Criteria;
20 import org.kuali.rice.core.api.util.RiceConstants;
21 import org.kuali.rice.core.framework.persistence.dao.GenericDao;
22 import org.kuali.rice.ken.bo.NotificationMessageDelivery;
23 import org.kuali.rice.ken.dao.NotificationMessegeDeliveryDao;
24 import org.kuali.rice.ken.util.NotificationConstants;
25 import org.springmodules.orm.ojb.support.PersistenceBrokerDaoSupport;
26
27 import java.sql.Timestamp;
28 import java.util.Collection;
29
30
31
32
33
34
35
36 public class NotificationMessegeDeliveryDaoOjb extends PersistenceBrokerDaoSupport implements
37 NotificationMessegeDeliveryDao {
38
39 private static final Logger LOG = Logger.getLogger(NotificationDaoOjb.class);
40
41
42
43
44
45
46 @Override
47 public Collection getUndeliveredMessageDelivers(GenericDao businessObjectDao) {
48
49
50
51 Criteria criteria = new Criteria();
52 criteria.addEqualTo(NotificationConstants.BO_PROPERTY_NAMES.MESSAGE_DELIVERY_STATUS, NotificationConstants.MESSAGE_DELIVERY_STATUS.UNDELIVERED);
53 criteria.addIsNull(NotificationConstants.BO_PROPERTY_NAMES.LOCKED_DATE);
54 Collection<NotificationMessageDelivery> messageDeliveries = businessObjectDao.findMatching(NotificationMessageDelivery.class, criteria, true, RiceConstants.NO_WAIT);
55
56 return messageDeliveries;
57 }
58
59
60
61
62
63
64 @Override
65 public Collection<NotificationMessageDelivery> getMessageDeliveriesForAutoRemoval(Timestamp tm, GenericDao businessObjectDao) {
66
67
68
69
70 Criteria criteria_STATUS = new Criteria();
71 criteria_STATUS.addEqualTo(NotificationConstants.BO_PROPERTY_NAMES.MESSAGE_DELIVERY_STATUS, NotificationConstants.MESSAGE_DELIVERY_STATUS.DELIVERED);
72
73 Criteria criteria_UNDELIVERED = new Criteria();
74 criteria_UNDELIVERED.addEqualTo(NotificationConstants.BO_PROPERTY_NAMES.MESSAGE_DELIVERY_STATUS, NotificationConstants.MESSAGE_DELIVERY_STATUS.UNDELIVERED);
75
76
77 criteria_STATUS.addOrCriteria(criteria_UNDELIVERED);
78
79 Criteria fullQueryCriteria = new Criteria();
80 fullQueryCriteria.addIsNull(NotificationConstants.BO_PROPERTY_NAMES.LOCKED_DATE);
81 fullQueryCriteria.addLessOrEqualThan(NotificationConstants.BO_PROPERTY_NAMES.NOTIFICATION_AUTO_REMOVE_DATE_TIME, tm);
82 fullQueryCriteria.addAndCriteria(criteria_STATUS);
83
84 Collection<NotificationMessageDelivery> messageDeliveries = businessObjectDao.findMatching(NotificationMessageDelivery.class, fullQueryCriteria, true, RiceConstants.NO_WAIT);
85
86 return messageDeliveries;
87 }
88
89
90
91
92
93
94 @Override
95 public Collection<NotificationMessageDelivery> getLockedDeliveries(
96 Class clazz, GenericDao dao) {
97 Criteria criteria = new Criteria();
98 criteria.addNotNull(NotificationConstants.BO_PROPERTY_NAMES.LOCKED_DATE);
99 Collection<NotificationMessageDelivery> lockedDeliveries = dao.findMatching(clazz, criteria);
100
101 return lockedDeliveries;
102 }
103
104 }