001 /** 002 * Copyright 2005-2014 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.api.notification; 017 018 import org.joda.time.DateTime; 019 import org.kuali.rice.core.api.mo.common.GloballyUnique; 020 import org.kuali.rice.core.api.mo.common.Versioned; 021 import org.kuali.rice.ken.api.common.KenIdentifiable; 022 023 import java.util.List; 024 025 public interface NotificationContract extends KenIdentifiable, Versioned, GloballyUnique { 026 027 /** 028 * This is the namespace code for the Group. 029 * 030 * <p> 031 * This is a namespace code assigned to a Group. Together with name, it makes up another unique identifier for Group 032 * </p> 033 * 034 * @return namespaceCode 035 */ 036 DateTime getCreationDateTime(); 037 038 List<? extends NotificationRecipientContract> getRecipients(); 039 040 List<? extends NotificationSenderContract> getSenders(); 041 042 DateTime getAutoRemoveDateTime(); 043 044 NotificationChannelContract getChannel(); 045 046 String getContent(); 047 048 NotificationContentTypeContract getContentType(); 049 050 String getDeliveryType(); 051 052 NotificationPriorityContract getPriority(); 053 054 NotificationProducerContract getProducer(); 055 056 DateTime getSendDateTime(); 057 058 String getProcessingFlag(); 059 060 DateTime getLockedDate(); 061 062 String getTitle(); 063 064 String getContentMessage(); 065 066 /** 067 * Gets the custom document type name 068 * 069 * <p> 070 * If null, the system will use the default {@code KualiNotification} document type when routing the notification 071 * </p> 072 * 073 * @return the custom document type name for this Notification, or null if undefined 074 * @since 2.3.1 075 */ 076 String getDocTypeName(); 077 }