001/**
002 * Copyright 2005-2016 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 */
016package org.kuali.rice.ken.core;
017
018import org.kuali.rice.ken.api.service.KENAPIService;
019import org.kuali.rice.ken.service.NotificationAuthorizationService;
020import org.kuali.rice.ken.service.NotificationChannelService;
021import org.kuali.rice.ken.service.NotificationContentTypeService;
022import org.kuali.rice.ken.service.NotificationMessageContentService;
023import org.kuali.rice.ken.service.NotificationMessageDeliveryAutoRemovalService;
024import org.kuali.rice.ken.service.NotificationMessageDeliveryResolverService;
025import org.kuali.rice.ken.service.NotificationMessageDeliveryService;
026import org.kuali.rice.ken.service.NotificationRecipientService;
027import org.kuali.rice.ken.service.NotificationService;
028import org.kuali.rice.ken.service.NotificationWorkflowDocumentService;
029import org.kuali.rice.ken.service.UserPreferenceService;
030import org.quartz.Scheduler;
031
032/**
033 * Interface for obtaining Notification System services
034 * @author Kuali Rice Team (rice.collab@kuali.org)
035 */
036public interface NotificationServiceLocator {
037    /**
038     * This method returns an instance of the Spring configured impl for the KENAPIService.
039     * @return KENAPIService
040     */
041    public KENAPIService getKENAPIService();
042
043    /**
044     * This method returns an instance of the Spring configured impl for the NotificationService.
045     * @return NotificationService
046     */
047    public NotificationService getNotificationService();
048
049    /**
050     * This method returns an instance of the Spring configured impl for the NotificationContentTypeService.
051     * @return NotificationContentTypeService
052     */
053    public NotificationContentTypeService getNotificationContentTypeService();
054
055    /**
056     * This method returns an instance of the Spring configured impl for the NotificationMessageContentService.
057     * @return NotificationMessageContentService
058     */
059    public NotificationMessageContentService getNotificationMessageContentService();
060
061    /**
062     * This method returns an instance of the Spring configured impl for the NotificationAuthorizationService.
063     * @return NotificationAuthorizationService
064     */
065    public NotificationAuthorizationService getNotificationAuthorizationService();
066    
067    /**
068     * This method returns an instance of the Spring configured impl for the NotificationWorkflowDocumentService.
069     * @return NotificationWorkflowDocumentService
070     */
071    public NotificationWorkflowDocumentService getNotificationWorkflowDocumentService();
072    
073    /**
074     * This method returns an instance of the Spring configured impl for the NotificationMessageDeliveryAutoRemovalService.
075     * @return NotificationMessageDeliveryAutoRemovalService
076     */
077    public NotificationMessageDeliveryAutoRemovalService getNotificationMessageDeliveryAutoRemovalService();
078
079    /**
080     * This method returns an instance of the Spring configured impl for the getNotificationMessageDeliveryResolverService.
081     * @return NotificationMessageDeliveryResolverService
082     */
083    public NotificationMessageDeliveryResolverService getNotificationMessageDeliveryResolverService();
084    
085    /**
086     * This method returns an instance of the Spring configured impl for the NotificationRecipientService.
087     * @return NotificationRecipientService
088     */
089    public NotificationRecipientService getNotificationRecipientService();
090    
091    /**
092     * This method returns an instance of the Spring configured impl for the NotificationMessageDeliveryService.
093     * @return NotificationMessageDeliveryService
094     */
095    public NotificationMessageDeliveryService getNotificationMessageDeliveryService();
096    
097    /**
098     * This method returns an instance of the Spring configured impl for the UserPreferenceService.
099     * @return UserPreferenceService
100     */
101    public UserPreferenceService getUserPreferenceService();
102    
103    /**
104     * This method returns an instance of the Spring configured impl for the NotificationChannelService.
105     * @return NotificationChannelService
106     */
107    public NotificationChannelService getNotificationChannelService();
108    
109    /**
110     * Returns the Quartz scheduler used by the Notification system
111     * @return the Quartz scheduler used by the Notification system
112     */
113    public Scheduler getScheduler();
114}