View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
14   */
15  
16  package org.kuali.student.enrollment.acal.infc;
17  
18  import java.util.Date;
19  
20  import org.kuali.student.r2.common.infc.IdEntity;
21  
22  
23  /**
24   * Information about a key date. A key date may represent a single
25   * point in time or a range depending on the value of isDateRange().
26   *
27   * @impl maps to a Milestone with a type that is one of the key dates
28   * @author tom
29   * @since Tue Apr 05 14:22:34 EDT 2011
30   */ 
31  
32  public interface KeyDate 
33      extends IdEntity {
34  
35      /**
36       * Tests if this key date is an all day event. An all-day event
37       * does not have a meaningful time component in the date.
38       *
39       * @name Is All Day
40       * @required
41       */
42      public Boolean getIsAllDay();
43    
44      /**
45       * Tests if this KeyDate is relative to another KeyDate.
46       *
47       * @name Is Relative To Key Date
48       * @required
49       * @impl maps to isRelative
50       */
51      public Boolean getIsRelativeToKeyDate();
52  
53      /**
54       * Gets the anchor KeyDate to which this KeyDate is relative.
55       *
56       * @name Relative Anchor KeyDate Id
57       * @impl maps to relativeAnchorMilestoneId
58       */
59      public String getRelativeAnchorKeyDateId();
60  
61      /**
62       * Tests if this key date has a date range. 
63       *
64       * @return true if the end date is different than the start
65       *         date, false if the start end end date are the same
66       * @name Is Date Range
67       * @required
68       */
69      public Boolean getIsDateRange();    
70  
71      /**
72       * The start date and time of the key date.
73       *
74       * @name Start Date
75       */
76      public Date getStartDate();
77      
78      /**
79       * The end date and time of the key date. The end
80       * date must be equal to or greater that the start.
81       *
82       * @name End Date
83       */
84      public Date getEndDate();
85  }