001 /**
002 * Copyright 2010 The Kuali Foundation Licensed under the
003 * Educational Community License, Version 2.0 (the "License"); you may
004 * not use this file except in compliance with the License. You may
005 * obtain a copy of the License at
006 *
007 * http://www.osedu.org/licenses/ECL-2.0
008 *
009 * Unless required by applicable law or agreed to in writing,
010 * software distributed under the License is distributed on an "AS IS"
011 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
012 * or implied. See the License for the specific language governing
013 * permissions and limitations under the License.
014 */
015
016 package org.kuali.student.enrollment.acal.infc;
017
018 import java.util.Date;
019 import java.util.List;
020
021 import org.kuali.student.r2.common.infc.IdEntity;
022
023
024 /**
025 * Information about an Academic Calendar.
026 *
027 * @author tom
028 * @since Tue Apr 05 14:22:34 EDT 2011
029 */
030
031 public interface AcademicCalendar
032 extends IdEntity {
033
034 /**
035 * The holiday calendar id corresponding to this academic
036 * calendar. A multi-year academic calendar may have more than one
037 * holiday calendar.
038 *
039 * @name Holiday Calendar Ids
040 * @impl Holiday Calendars are stored in the ATP service as an Associated ATP ATP relation
041 */
042 public List<String> getHolidayCalendarIds();
043
044 /**
045 * The administrative organization responsible for maintaining
046 * this calendar.
047 *
048 * @name AdminOrg Id
049 */
050 public String getAdminOrgId();
051
052 /**
053 * Date and time the term became effective. This
054 * does not provide a bound on date ranges or milestones
055 * associated with this time period, but instead indicates the
056 * time period proper. This is a similar concept to the effective
057 * date on enumerated values. When an expiration date has been
058 * specified, this field must be less than or equal to the
059 * expiration date.
060 *
061 * @name Start Date
062 */
063 public Date getStartDate();
064
065 /**
066 * Date and time the term expires. This does not
067 * provide a bound on date ranges or milestones associated with
068 * this time period, but instead indicates the time period
069 * proper. If specified, this must be greater than or equal to the
070 * effective date. If this field is not specified, then no
071 * expiration date has been currently defined and should
072 * automatically be considered greater than the effective date.
073 *
074 * @name End Date
075 */
076 public Date getEndDate();
077 }