1 /**
2 * Copyright 2004-2015 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.kpme.core.api.calendar;
17
18 import org.joda.time.DateTime;
19 import org.kuali.kpme.core.api.calendar.entry.CalendarEntry;
20 import org.kuali.kpme.core.api.calendar.web.CalendarWeekContract;
21
22 import java.util.List;
23
24 /**
25 * <p>CalendarParentContract interface</p>
26 *
27 */
28 public interface CalendarParentContract {
29
30 /**
31 * The being date time the CalendarParent is associated with
32 *
33 * <p>
34 * beginDateTime of a CalendarParent
35 * </p>
36 *
37 * @return beginDateTime of CalendarParent
38 */
39 public DateTime getBeginDateTime();
40
41 /**
42 * The end date time the CalendarParent is associated with
43 *
44 * <p>
45 * endDateTime of a CalendarParent
46 * </p>
47 *
48 * @return endDateTime of CalendarParent
49 */
50 public DateTime getEndDateTime();
51
52 /**
53 * The CalendarEntry object the CalendarParent is associated with
54 *
55 * <p>
56 * calendarEntry of a CalendarParent
57 * </p>
58 *
59 * @return calendarEntry of CalendarParent
60 */
61 public CalendarEntry getCalendarEntry();
62
63 /**
64 * The list of CalendarWeek objects the CalendarParent is associated with
65 *
66 * <p>
67 * weeks of a CalendarParent
68 * </p>
69 *
70 * @return weeks of CalendarParent
71 */
72 public List<? extends CalendarWeekContract> getWeeks();
73
74 /**
75 * The calendar title/heading the CalendarParent is associated with
76 *
77 * <p>
78 * If the Pay Calendar entry spans multiple months, you get Abbreviated Month name + year of both the
79 * beginning month and the ending month.
80 * </p>
81 *
82 * @return String for calendar title use
83 */
84 public String getCalendarTitle() ;
85
86 /**
87 * The calendar day headings the CalendarParent is associated with
88 *
89 * <p>
90 * Assumption of 7 "days" per week, or 7 "blocks" per row.
91 * </p>
92 *
93 * @return A list of string titles for each row block (day)
94 */
95 public List<String> getCalendarDayHeadings();
96
97 }