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.service.impl;
17
18 import java.util.ArrayList;
19 import java.util.Collection;
20
21 import org.kuali.rice.ken.bo.NotificationChannel;
22 import org.kuali.rice.ken.service.KENAPIService;
23 import org.kuali.rice.ken.service.NotificationChannelService;
24 import org.kuali.rice.ken.service.UserPreferenceService;
25 import org.springframework.beans.factory.annotation.Required;
26
27 /**
28 * KEN API service implementation
29 *
30 * @author Kuali Rice Team (rice.collab@kuali.org)
31 */
32 public class KENAPIServiceImpl implements KENAPIService {
33 private NotificationChannelService channelService;
34 private UserPreferenceService prefsService;
35
36 /**
37 * Sets the NotificationChannelService
38 * @param ncs the NotificationChannelService
39 */
40 @Required
41 public void setNotificationChannelService(NotificationChannelService ncs) {
42 this.channelService = ncs;
43 }
44
45 /**
46 * Sets the UserPreferenceService
47 * @param ups the UserPreferenceService
48 */
49 @Required
50 public void setUserPreferenceService(UserPreferenceService ups) {
51 this.prefsService = ups;
52 }
53
54 /**
55 * @see org.kuali.rice.ken.service.KENAPIService#getAllChannels()
56 */
57 public Collection<String> getAllChannelNames() {
58 Collection<NotificationChannel> chans = channelService.getAllNotificationChannels();
59 Collection<String> chanNames = new ArrayList<String>(chans.size());
60 for (NotificationChannel c: chans) {
61 chanNames.add(c.getName());
62 }
63 return chanNames;
64 }
65
66 /**
67 * @see org.kuali.rice.ken.service.KENAPIService#getDeliverersForRecipientAndChannel(java.lang.String, java.lang.String)
68 */
69 public Collection<String> getDeliverersForRecipientAndChannel(String recipient, String channel) {
70 /*NotificationChannel nc = channelService.getNotificationChannelByName(channel);
71 if (nc == null) {
72 throw new RuntimeException("Invalid channel: '" + channel + "'");
73 }
74 Collection<UserDelivererConfig> configs = prefsService.getMessageDelivererConfigurationsForUserAndChannel(recipient, nc);
75 Collection<String> deliverers = new ArrayList<String>(configs.size());
76 for (UserDelivererConfig cfg: configs) {
77 deliverers.add(cfg.getDelivererName());
78 }
79 return deliverers;*/
80 return null;
81 }
82
83 /**
84 * @see org.kuali.rice.ken.service.KENAPIService#getRecipientPreference(java.lang.String, java.lang.String)
85 */
86 public String getRecipientPreference(String recipient, String prefKey) {
87 /*RecipientPreference rp = prefsService.getUserRecipientPreferences(recipient, prefKey);
88 if (rp == null) return null;
89 return rp.getValue();
90 */
91 return null;
92 }
93 }