1 /** 2 * Copyright 2005-2014 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl2.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.kuali.rice.ken.bo; 17 18 import org.kuali.rice.krad.bo.PersistableBusinessObjectBase; 19 import org.kuali.rice.krad.data.jpa.PortableSequenceGenerator; 20 21 import javax.persistence.*; 22 import java.sql.Timestamp; 23 24 /** 25 * This class represents and instance of a NotificationMessageDelivery. A Notification gets delivered to 26 * recipients, possibly in various ways. For each delivery type that a recipient gets sent to them, 27 * they have an instance of this entity. 28 * @author Kuali Rice Team (rice.collab@kuali.org) 29 */ 30 @Entity 31 @Table(name="KREN_NTFCTN_MSG_DELIV_T") 32 public class NotificationMessageDelivery extends PersistableBusinessObjectBase implements Lockable { 33 @Id 34 @GeneratedValue(generator="KREN_NTFCTN_MSG_DELIV_S") 35 @PortableSequenceGenerator(name="KREN_NTFCTN_MSG_DELIV_S") 36 @Column(name="NTFCTN_MSG_DELIV_ID") 37 private Long id; 38 @Column(name="STAT_CD", nullable=false) 39 private String messageDeliveryStatus; 40 @Column(name="RECIP_ID", nullable=false) 41 private String userRecipientId; 42 @Column(name="SYS_ID", nullable=true) 43 private String deliverySystemId; // can hold an identifier from the endpoint delivery mechanism system (i.e. workflow id, SMS id, etc) 44 @Column(name="LOCKD_DTTM", nullable=true) 45 private Timestamp lockedDateValue; 46 47 /** 48 * Lock column for OJB optimistic locking 49 */ 50 // @Version 51 // @Column(name="VER_NBR") 52 // private Integer lockVerNbr; 53 54 @OneToOne(fetch=FetchType.EAGER, cascade={CascadeType.REFRESH, CascadeType.DETACH}) 55 @JoinColumn(name="NTFCTN_ID") 56 private NotificationBo notification; 57 58 /** 59 * Constructs a NotificationMessageDelivery instance. 60 */ 61 public NotificationMessageDelivery() { 62 } 63 64 /** 65 * Gets the id attribute. 66 * @return Returns the id. 67 */ 68 public Long getId() { 69 return id; 70 } 71 72 /** 73 * Sets the id attribute value. 74 * @param id The id to set. 75 */ 76 public void setId(Long id) { 77 this.id = id; 78 } 79 80 81 /** 82 * Return value of lock column for OJB optimistic locking 83 * @return value of lock column for OJB optimistic locking 84 */ 85 //public Integer getLockVerNbr() { 86 // return lockVerNbr; 87 //return Integer.valueOf(super.getVersionNumber().intValue()); 88 //} 89 90 /** 91 * Set value of lock column for OJB optimistic locking 92 * @param lockVerNbr value of lock column for OJB optimistic locking 93 */ 94 //public void setLockVerNbr(Integer lockVerNbr) { 95 // this.lockVerNbr = lockVerNbr; 96 // //super.setVersionNumber(lockVerNbr.longValue()); 97 //} 98 99 /** 100 * Gets the messageDeliveryStatus attribute. 101 * @return Returns the messageDeliveryStatus. 102 */ 103 public String getMessageDeliveryStatus() { 104 return messageDeliveryStatus; 105 } 106 107 /** 108 * Sets the messageDeliveryStatus attribute value. 109 * @param deliveryStatus The messageDeliveryStatus to set. 110 */ 111 public void setMessageDeliveryStatus(String deliveryStatus) { 112 this.messageDeliveryStatus = deliveryStatus; 113 } 114 115 /** 116 * Gets the userRecipientId attribute. 117 * @return Returns the userRecipientId. 118 */ 119 public String getUserRecipientId() { 120 return userRecipientId; 121 } 122 123 /** 124 * Sets the userRecipientId attribute value. 125 * @param userRecipientId The userRecipientId to set. 126 */ 127 public void setUserRecipientId(String userRecipientId) { 128 this.userRecipientId = userRecipientId; 129 } 130 131 /** 132 * Gets the lockedDate attribute. 133 * @return Returns the lockedDate. 134 */ 135 public Timestamp getLockedDateValue() { 136 return this.lockedDateValue; 137 } 138 139 /** 140 * Sets the lockedDate attribute value. 141 * @param lockedDateValue The lockedDate to set. 142 */ 143 public void setLockedDateValue(Timestamp lockedDateValue) { 144 this.lockedDateValue = lockedDateValue; 145 } 146 147 /** 148 * Gets the notification attribute. 149 * @return Returns the notification. 150 */ 151 public NotificationBo getNotification() { 152 return notification; 153 } 154 155 /** 156 * Sets the notification attribute value. 157 * @param notification The notification to set. 158 */ 159 public void setNotification(NotificationBo notification) { 160 this.notification = notification; 161 } 162 163 /** 164 * Gets the deliverySystemId attribute. 165 * @return Returns the deliverySystemId. 166 */ 167 public String getDeliverySystemId() { 168 return deliverySystemId; 169 } 170 171 /** 172 * Sets the deliverySystemId attribute value. 173 * @param deliverySystemId The deliverySystemId to set. 174 */ 175 public void setDeliverySystemId(String deliverySystemId) { 176 this.deliverySystemId = deliverySystemId; 177 } 178 }