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 }