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.tklm.api.leave.block;
17  
18  import java.math.BigDecimal;
19  
20  
21  /**
22   * <p>LeaveBlockRendererContract interface</p>
23   *
24   */
25  public interface LeaveBlockRendererContract {
26  
27  	/**
28  	 * The LeaveBlock object associated with the LeaveBlockRenderer
29  	 * 
30  	 * <p>
31  	 * leaveBlock of a LeaveBlockRenderer
32  	 * <p>
33  	 * 
34  	 * @return leaveBlock for LeaveBlockRenderer
35  	 */	
36      public LeaveBlockContract getLeaveBlock();
37  
38  	/**
39  	 * The leave amount of the LeaveBlock object associated with the LeaveBlockRenderer
40  	 * 
41  	 * <p>
42  	 * leaveBlock.getLeaveAmount() of a LeaveBlockRenderer
43  	 * <p>
44  	 * 
45  	 * @return leaveBlock.getLeaveAmount() for LeaveBlockRenderer
46  	 */
47      public BigDecimal getHours();
48  
49      /**
50  	 * The EarnCode name of the LeaveBlock object associated with the LeaveBlockRenderer
51  	 * 
52  	 * <p>
53  	 * leaveBlock.getEarnCode() of a LeaveBlockRenderer
54  	 * <p>
55  	 * 
56  	 * @return leaveBlock.getEarnCode() for LeaveBlockRenderer
57  	 */
58      public String getEarnCode();
59  
60      /**
61     	 * The leave block id of the LeaveBlock object associated with the LeaveBlockRenderer
62     	 * 
63     	 * <p>
64     	 * leaveBlock.getLmLeaveBlockId() of a LeaveBlockRenderer
65     	 * <p>
66     	 * 
67     	 * @return leaveBlock.getLmLeaveBlockId() for LeaveBlockRenderer
68     	 */
69      public String getLeaveBlockId();
70  
71      /**
72     	 * The document id of the LeaveBlock object associated with the LeaveBlockRenderer
73     	 * 
74     	 * <p>
75     	 * leaveBlock.getDocumentId() of a LeaveBlockRenderer
76     	 * <p>
77     	 * 
78     	 * @return leaveBlock.getDocumentId() for LeaveBlockRenderer
79     	 */
80      public String getDocumentId();
81  
82      /**
83     	 * The assignment title of the LeaveBlock object associated with the LeaveBlockRenderer
84     	 * 
85     	 * <p>
86     	 * leaveBlock.getAssignmentTitle() of a LeaveBlockRenderer
87     	 * <p>
88     	 * 
89     	 * @return leaveBlock.getAssignmentTitle() for LeaveBlockRenderer
90     	 */
91  	public String getAssignmentTitle();
92  
93  	/**
94     	 * The editable flag of the LeaveBlock object associated with the LeaveBlockRenderer
95     	 * 
96     	 * <p>
97     	 * leaveBlock.isEditable() of a LeaveBlockRenderer
98     	 * <p>
99     	 * 
100    	 * @return leaveBlock.isEditable() for LeaveBlockRenderer
101    	 */
102     public boolean isEditable(); 
103 
104     /**
105    	 * The deletable flag of the LeaveBlock object associated with the LeaveBlockRenderer
106    	 * 
107    	 * <p>
108    	 * leaveBlock.isDeletable() of a LeaveBlockRenderer
109    	 * <p>
110    	 * 
111    	 * @return leaveBlock.isDeletable() for LeaveBlockRenderer
112    	 */
113     public boolean isDeletable();
114 
115     /**
116 	 * The assignment class associated with the LeaveBlockRenderer
117 	 * 
118 	 * <p>
119 	 * assignmentClass of a LeaveBlockRenderer
120 	 * <p>
121 	 * 
122 	 * @return assignmentClass for LeaveBlockRenderer
123 	 */	
124 	public String getAssignmentClass();
125 
126 	/**
127    	 * The request status string of the LeaveBlock object associated with the LeaveBlockRenderer
128    	 * 
129    	 * <p>
130    	 * leaveBlock.getRequestStatusString().toLowerCase() of an LeaveBlockRenderer
131    	 * <p>
132    	 * 
133    	 * @return leaveBlock.getRequestStatusString().toLowerCase() for LeaveBlockRenderer
134    	 */
135     public String getRequestStatusClass();
136 
137     /**
138   	 * The details of the LeaveBlock object associated with the LeaveBlockRenderer
139   	 * 
140   	 * <p>
141   	 * If the leave block type is Accrual Service
142   	 *     if the ScheduleTimeOffId of the leave block is not null, return the description of the ScheduleTimeOff, else "accrual"
143   	 * If the leave block type is Carry Over Adjustment
144   	 *     if the description of the leave block is Max carry over adjustment, return "carryover adjustment", else "adjustment"
145   	 * If the leave block type is Balance Transfer
146   	 *     if the description of the leave block contains Forfeited, return "transfer forfeiture"
147   	 *     else if it contains Amount transferred, return "amount transferred"
148   	 *     else if it contains Transferred amount, return "transferred amount"
149   	 *     else "balance transfer"
150   	 * If the leave block type is Leave Payout
151   	 *     if the description of the leave block contains Forfeited, return "payout forfeiture"
152   	 *     else if it contains Amount paid out, return "amount paid out"
153   	 *     else if it contains Payout amount, return "payout amount"
154   	 *     else "leave payout"
155   	 * Else
156   	 *    if the leave block type is not Leave Calendar nor Time Calendar, return corresponding string in LEAVE_BLOCK_TYPE_MAP for the leave block type 
157   	 *    else return leaveBlock.getRequestStatusString()
158   	 * <p>
159   	 * 
160   	 * @return see above
161   	 */
162     public String getLeaveBlockDetails();
163     
164     /**
165    	 * The description of the LeaveBlock object associated with the LeaveBlockRenderer
166    	 * 
167    	 * <p>
168    	 * leaveBlock.getDescription() of a LeaveBlockRenderer
169    	 * <p>
170    	 * 
171    	 * @return leaveBlock.getDescription() for LeaveBlockRenderer
172    	 */
173     public String getDescription();
174      
175     /**
176    	 * The time range of the LeaveBlock object associated with the LeaveBlockRenderer
177    	 * 
178    	 * <p>
179    	 * If the begin timestamp and end timestamp of the LeaveBlock are not null, and If the earn code type of the LeaveBlock is "T",
180    	 * it constructs and returns a string that contains begin timestamp and end timestamp.
181    	 * <p>
182    	 * 
183    	 * @return "leaveBlock.getBeginDateTime() in (hh:mm aa) - leaveBlock.getEndDateTime() in (hh:mm aa)" for LeaveBlockRenderer
184    	 */
185     public String getTimeRange();
186 
187 }