View Javadoc
1   /**
2    * Copyright 2004-2014 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  }