Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
NotificationChannel |
|
| 1.0;1 |
1 | /* | |
2 | * Copyright 2007-2008 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.hibernate.annotations.GenericGenerator; | |
19 | import org.hibernate.annotations.Parameter; | |
20 | import org.kuali.rice.krad.bo.PersistableBusinessObjectBase; | |
21 | ||
22 | import javax.persistence.*; | |
23 | import java.util.ArrayList; | |
24 | import java.util.List; | |
25 | ||
26 | /** | |
27 | * This class represents and instance of a Notification Channel. A Notification Channel is correlated to a specific class of | |
28 | * notification, or in other words a specific business purpose. For instance, all overdue books from a specific library could | |
29 | * be a channel or a channel for concerts coming to campus could be another channel. | |
30 | * | |
31 | * @author Kuali Rice Team (rice.collab@kuali.org) | |
32 | */ | |
33 | @Entity | |
34 | @Table(name = "KREN_CHNL_T") | |
35 | public class NotificationChannel extends PersistableBusinessObjectBase { | |
36 | @Id | |
37 | @GeneratedValue(generator="KREN_CHNL_S") | |
38 | @GenericGenerator(name="KREN_CHNL_S",strategy="org.hibernate.id.enhanced.SequenceStyleGenerator",parameters={ | |
39 | @Parameter(name="sequence_name",value="KREN_CHNL_S"), | |
40 | @Parameter(name="value_column",value="id") | |
41 | }) | |
42 | @Column(name = "CHNL_ID") | |
43 | private Long id; | |
44 | @Column(name = "NM", nullable = false) | |
45 | private String name; | |
46 | @Column(name = "DESC_TXT", nullable = false) | |
47 | private String description; | |
48 | @Column(name = "SUBSCRB_IND", nullable = false) | |
49 | private boolean subscribable; | |
50 | ||
51 | // List references | |
52 | @OneToMany(cascade={CascadeType.REFRESH, CascadeType.DETACH, CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}, | |
53 | targetEntity=org.kuali.rice.ken.bo.NotificationRecipientList.class, mappedBy="channel") | |
54 | @OrderBy ("id ASC") | |
55 | private List<NotificationRecipientList> recipientLists; | |
56 | ||
57 | @ManyToMany(fetch=FetchType.LAZY, cascade={CascadeType.REFRESH, CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST})@JoinTable(name="KREN_CHNL_PRODCR_T", | |
58 | joinColumns=@JoinColumn(name="CHNL_ID"), | |
59 | inverseJoinColumns=@JoinColumn(name="PRODCR_ID")) | |
60 | @OrderBy ("id ASC") | |
61 | private List<NotificationProducer> producers; | |
62 | ||
63 | 0 | @OneToMany(cascade={CascadeType.REFRESH, CascadeType.DETACH, CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}, |
64 | targetEntity=org.kuali.rice.ken.bo.NotificationChannelReviewer.class, mappedBy="channel") | |
65 | @OrderBy ("id ASC") | |
66 | private List<NotificationChannelReviewer> reviewers = new ArrayList<NotificationChannelReviewer>(); | |
67 | ||
68 | 0 | @OneToMany(cascade={CascadeType.REFRESH, CascadeType.DETACH, CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}, |
69 | targetEntity=org.kuali.rice.ken.bo.UserChannelSubscription.class, mappedBy="channel") | |
70 | @OrderBy ("id ASC") | |
71 | private List<UserChannelSubscription> subscriptions = new ArrayList<UserChannelSubscription>(); | |
72 | ||
73 | ||
74 | /** | |
75 | * Constructs a NotificationChannel instance. | |
76 | */ | |
77 | public NotificationChannel() { | |
78 | 0 | super(); |
79 | 0 | recipientLists = new ArrayList<NotificationRecipientList>(); |
80 | 0 | producers = new ArrayList<NotificationProducer>(); |
81 | 0 | } |
82 | ||
83 | /** | |
84 | * Gets the recipientLists attribute. | |
85 | * | |
86 | * @return Returns the recipientLists. | |
87 | */ | |
88 | public List<NotificationRecipientList> getRecipientLists() { | |
89 | 0 | return recipientLists; |
90 | } | |
91 | ||
92 | /** | |
93 | * Sets the recipientLists attribute value. | |
94 | * | |
95 | * @param recipientLists | |
96 | * The recipientLists to set. | |
97 | */ | |
98 | public void setRecipientLists(List<NotificationRecipientList> recipientLists) { | |
99 | 0 | this.recipientLists = recipientLists; |
100 | 0 | } |
101 | ||
102 | /** | |
103 | * This method adds a recipient list to the overall set of recipient lists that are associated with this channnel. | |
104 | * | |
105 | * @param recipientList | |
106 | */ | |
107 | public void addRecipientList(NotificationRecipientList recipientList) { | |
108 | 0 | this.recipientLists.add(recipientList); |
109 | 0 | } |
110 | ||
111 | /** | |
112 | * This method removes a recipient list object from the overall list. | |
113 | * | |
114 | * @param recipientList | |
115 | */ | |
116 | public void removeRecipientList(NotificationRecipientList recipientList) { | |
117 | 0 | this.recipientLists.remove(recipientList); |
118 | 0 | } |
119 | ||
120 | /** | |
121 | * Gets the description attribute. | |
122 | * | |
123 | * @return Returns the description. | |
124 | */ | |
125 | public String getDescription() { | |
126 | 0 | return description; |
127 | } | |
128 | ||
129 | /** | |
130 | * Sets the description attribute value. | |
131 | * | |
132 | * @param description | |
133 | * The description to set. | |
134 | */ | |
135 | public void setDescription(String description) { | |
136 | 0 | this.description = description; |
137 | 0 | } |
138 | ||
139 | /** | |
140 | * Gets the id attribute. | |
141 | * | |
142 | * @return Returns the id. | |
143 | */ | |
144 | public Long getId() { | |
145 | 0 | return id; |
146 | } | |
147 | ||
148 | /** | |
149 | * Sets the id attribute value. | |
150 | * | |
151 | * @param id | |
152 | * The id to set. | |
153 | */ | |
154 | public void setId(Long id) { | |
155 | 0 | this.id = id; |
156 | 0 | } |
157 | ||
158 | /** | |
159 | * Gets the name attribute. | |
160 | * | |
161 | * @return Returns the name. | |
162 | */ | |
163 | public String getName() { | |
164 | 0 | return name; |
165 | } | |
166 | ||
167 | /** | |
168 | * Sets the name attribute value. | |
169 | * | |
170 | * @param name | |
171 | * The name to set. | |
172 | */ | |
173 | public void setName(String name) { | |
174 | 0 | this.name = name; |
175 | 0 | } |
176 | ||
177 | /** | |
178 | * Gets the subscribable attribute. | |
179 | * | |
180 | * @return Returns the subscribable. | |
181 | */ | |
182 | public boolean isSubscribable() { | |
183 | 0 | return subscribable; |
184 | } | |
185 | ||
186 | /** | |
187 | * Sets the subscribable attribute value. | |
188 | * | |
189 | * @param subscribable | |
190 | * The subscribable to set. | |
191 | */ | |
192 | public void setSubscribable(boolean subscribable) { | |
193 | 0 | this.subscribable = subscribable; |
194 | 0 | } |
195 | ||
196 | /** | |
197 | * Gets the producers attribute. | |
198 | * | |
199 | * @return Returns the producers. | |
200 | */ | |
201 | public List<NotificationProducer> getProducers() { | |
202 | 0 | return producers; |
203 | } | |
204 | ||
205 | /** | |
206 | * Sets the producers attribute value. | |
207 | * | |
208 | * @param producers | |
209 | * The producers to set. | |
210 | */ | |
211 | public void setProducers(List<NotificationProducer> producers) { | |
212 | 0 | this.producers = producers; |
213 | 0 | } |
214 | ||
215 | /** | |
216 | * Gets the list of reviewers for notification publications to this channel | |
217 | * | |
218 | * @return the list of reviewers for notification publications to this channel | |
219 | */ | |
220 | public List<NotificationChannelReviewer> getReviewers() { | |
221 | 0 | return reviewers; |
222 | } | |
223 | ||
224 | /** | |
225 | * Sets the list of reviewers for notification publications to this channel | |
226 | * | |
227 | * @param reviewers | |
228 | * the list of reviewers for notification publications to this channel | |
229 | */ | |
230 | public void setReviewers(List<NotificationChannelReviewer> reviewers) { | |
231 | 0 | this.reviewers = reviewers; |
232 | 0 | } |
233 | ||
234 | /** | |
235 | * Gets the list of subscriptions to this channel | |
236 | * | |
237 | * @return the list of subscriptions to this channel | |
238 | */ | |
239 | public List<UserChannelSubscription> getSubscriptions() { | |
240 | 0 | return subscriptions; |
241 | } | |
242 | ||
243 | /** | |
244 | * Sets the list of subscriptions to this channel | |
245 | * | |
246 | * @param subscriptions | |
247 | * the list of subscriptions to this channel | |
248 | */ | |
249 | public void setSubscriptions(List<UserChannelSubscription> subscriptions) { | |
250 | 0 | this.subscriptions = subscriptions; |
251 | 0 | } |
252 | ||
253 | /** | |
254 | * Compares the id values of each NotificationChannel object. | |
255 | * | |
256 | * @see java.lang.Object#equals(java.lang.Object) | |
257 | */ | |
258 | @Override | |
259 | public boolean equals(Object obj) { | |
260 | 0 | NotificationChannel channelToCompare = (NotificationChannel) obj; |
261 | 0 | return this.getId().equals(channelToCompare.getId()); |
262 | } | |
263 | } |