001 /**
002 * Copyright 2005-2013 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.rice.ken.bo;
017
018 import org.hibernate.annotations.GenericGenerator;
019 import org.hibernate.annotations.Parameter;
020 import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
021
022 import javax.persistence.*;
023 import java.sql.Timestamp;
024
025 /**
026 * This class represents and instance of a NotificationMessageDelivery. A Notification gets delivered to
027 * recipients, possibly in various ways. For each delivery type that a recipient gets sent to them,
028 * they have an instance of this entity.
029 * @author Kuali Rice Team (rice.collab@kuali.org)
030 */
031 @Entity
032 @Table(name="KREN_NTFCTN_MSG_DELIV_T")
033 public class NotificationMessageDelivery extends PersistableBusinessObjectBase implements Lockable {
034 @Id
035 @GeneratedValue(generator="KREN_NTFCTN_MSG_DELIV_S")
036 @GenericGenerator(name="KREN_NTFCTN_MSG_DELIV_S",strategy="org.hibernate.id.enhanced.SequenceStyleGenerator",parameters={
037 @Parameter(name="sequence_name",value="KREN_NTFCTN_MSG_DELIV_S"),
038 @Parameter(name="value_column",value="id")
039 })
040 @Column(name="NTFCTN_MSG_DELIV_ID")
041 private Long id;
042 @Column(name="STAT_CD", nullable=false)
043 private String messageDeliveryStatus;
044 @Column(name="RECIP_ID", nullable=false)
045 private String userRecipientId;
046 @Column(name="SYS_ID", nullable=true)
047 private String deliverySystemId; // can hold an identifier from the endpoint delivery mechanism system (i.e. workflow id, SMS id, etc)
048 @Column(name="LOCKD_DTTM", nullable=true)
049 private Timestamp lockedDateValue;
050
051 /**
052 * Lock column for OJB optimistic locking
053 */
054 // @Version
055 // @Column(name="VER_NBR")
056 // private Integer lockVerNbr;
057
058 @OneToOne(fetch=FetchType.EAGER, cascade={CascadeType.REFRESH, CascadeType.DETACH})
059 @JoinColumn(name="NTFCTN_ID")
060 private NotificationBo notification;
061
062 /**
063 * Constructs a NotificationMessageDelivery instance.
064 */
065 public NotificationMessageDelivery() {
066 }
067
068 /**
069 * Gets the id attribute.
070 * @return Returns the id.
071 */
072 public Long getId() {
073 return id;
074 }
075
076 /**
077 * Sets the id attribute value.
078 * @param id The id to set.
079 */
080 public void setId(Long id) {
081 this.id = id;
082 }
083
084
085 /**
086 * Return value of lock column for OJB optimistic locking
087 * @return value of lock column for OJB optimistic locking
088 */
089 //public Integer getLockVerNbr() {
090 // return lockVerNbr;
091 //return Integer.valueOf(super.getVersionNumber().intValue());
092 //}
093
094 /**
095 * Set value of lock column for OJB optimistic locking
096 * @param lockVerNbr value of lock column for OJB optimistic locking
097 */
098 //public void setLockVerNbr(Integer lockVerNbr) {
099 // this.lockVerNbr = lockVerNbr;
100 // //super.setVersionNumber(lockVerNbr.longValue());
101 //}
102
103 /**
104 * Gets the messageDeliveryStatus attribute.
105 * @return Returns the messageDeliveryStatus.
106 */
107 public String getMessageDeliveryStatus() {
108 return messageDeliveryStatus;
109 }
110
111 /**
112 * Sets the messageDeliveryStatus attribute value.
113 * @param deliveryStatus The messageDeliveryStatus to set.
114 */
115 public void setMessageDeliveryStatus(String deliveryStatus) {
116 this.messageDeliveryStatus = deliveryStatus;
117 }
118
119 /**
120 * Gets the userRecipientId attribute.
121 * @return Returns the userRecipientId.
122 */
123 public String getUserRecipientId() {
124 return userRecipientId;
125 }
126
127 /**
128 * Sets the userRecipientId attribute value.
129 * @param userRecipientId The userRecipientId to set.
130 */
131 public void setUserRecipientId(String userRecipientId) {
132 this.userRecipientId = userRecipientId;
133 }
134
135 /**
136 * Gets the lockedDate attribute.
137 * @return Returns the lockedDate.
138 */
139 public Timestamp getLockedDateValue() {
140 return this.lockedDateValue;
141 }
142
143 /**
144 * Sets the lockedDate attribute value.
145 * @param lockedDateValue The lockedDate to set.
146 */
147 public void setLockedDateValue(Timestamp lockedDateValue) {
148 this.lockedDateValue = lockedDateValue;
149 }
150
151 /**
152 * Gets the notification attribute.
153 * @return Returns the notification.
154 */
155 public NotificationBo getNotification() {
156 return notification;
157 }
158
159 /**
160 * Sets the notification attribute value.
161 * @param notification The notification to set.
162 */
163 public void setNotification(NotificationBo notification) {
164 this.notification = notification;
165 }
166
167 /**
168 * Gets the deliverySystemId attribute.
169 * @return Returns the deliverySystemId.
170 */
171 public String getDeliverySystemId() {
172 return deliverySystemId;
173 }
174
175 /**
176 * Sets the deliverySystemId attribute value.
177 * @param deliverySystemId The deliverySystemId to set.
178 */
179 public void setDeliverySystemId(String deliverySystemId) {
180 this.deliverySystemId = deliverySystemId;
181 }
182 }