View Javadoc
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.tklm.api.leave.approval.web;
17  
18  import java.math.BigDecimal;
19  import java.util.Date;
20  import java.util.List;
21  import java.util.Map;
22  
23  import org.kuali.kpme.tklm.api.leave.block.LeaveBlockContract;
24  import org.kuali.rice.kew.api.note.Note;
25  
26  /**
27   * <p>ApprovalLeaveSummaryRowContract interface</p>
28   *
29   */
30  public interface ApprovalLeaveSummaryRowContract {
31     
32  	/**
33  	 * Indicates if this record is ready to be approved.
34  	 * 
35  	 * <p>
36  	 * Is this record ready to be approved?
37  	 * <p>
38  	 * 
39  	 * @return true if a valid TK_APPROVER / TK_PROCESSOR can approve, false otherwise.
40  	 */
41      public boolean isApprovable();
42  
43  	/**
44  	 * The name associated with the ApprovalLeaveSummaryRow
45  	 * 
46  	 * <p>
47  	 * name of an ApprovalLeaveSummaryRow
48  	 * <p>
49  	 * 
50  	 * @return name for ApprovalLeaveSummaryRow
51  	 */
52  	public String getName();
53  	
54  	/**
55  	 * The principalId associated with the ApprovalLeaveSummaryRow
56  	 * 
57  	 * <p>
58  	 * principalId of an ApprovalLeaveSummaryRow
59  	 * <p>
60  	 * 
61  	 * @return principalId for ApprovalLeaveSummaryRow
62  	 */
63  	public String getPrincipalId();
64  	
65  	/**
66  	 * TODO: Make sure this comment is right
67     	 * The URL parameters associated with the ApprovalLeaveSummaryRow
68     	 * 
69     	 * <p>
70     	 * Helper method to grab the URL parameters for setting target mode for a
71       * user/documentID leave summary.
72     	 * <p>
73     	 * 
74     	 * @return parameter portion of a URL, usable to initiate target mode.
75     	 */
76      public String getUserTargetURLParams();
77  
78      /**
79  	 * The list of LeaveBlock objects associated with the ApprovalLeaveSummaryRow
80  	 * 
81  	 * <p>
82  	 * leaveBlockList of an ApprovalLeaveSummaryRow
83  	 * <p>
84  	 * 
85  	 * @return leaveBlockList for ApprovalLeaveSummaryRow
86  	 */
87  	public List<? extends LeaveBlockContract> getLeaveBlockList();
88  	
89  	/**
90  	 * The documentId associated with the ApprovalLeaveSummaryRow
91  	 * 
92  	 * <p>
93  	 * documentId of an ApprovalLeaveSummaryRow
94  	 * <p>
95  	 * 
96  	 * @return documentId for ApprovalLeaveSummaryRow
97  	 */
98  	public String getDocumentId();
99  
100 	/**
101 	 * The list of warnings associated with the ApprovalLeaveSummaryRow
102 	 * 
103 	 * <p>
104 	 * warnings of an ApprovalLeaveSummaryRow
105 	 * <p>
106 	 * 
107 	 * @return warnings for ApprovalLeaveSummaryRow
108 	 */
109 	public List<String> getWarnings();
110 
111 	/**
112 	 * TODO: Put a better comment
113 	 * The selected associated with the ApprovalLeaveSummaryRow
114 	 * 
115 	 * <p>
116 	 * selected of an ApprovalLeaveSummaryRow
117 	 * <p>
118 	 * 
119 	 * @return selected for ApprovalLeaveSummaryRow
120 	 */
121 	public String getSelected();
122 
123 	/**
124 	 * The list of notes associated with the ApprovalLeaveSummaryRow
125 	 * 
126 	 * <p>
127 	 * notes of an ApprovalLeaveSummaryRow
128 	 * <p>
129 	 * 
130 	 * @return notes for ApprovalLeaveSummaryRow
131 	 */
132     public List<Note> getNotes();
133 
134     /**
135 	 * The lastApproveMessage associated with the ApprovalLeaveSummaryRow
136 	 * 
137 	 * <p>
138 	 * lastApproveMessage of an ApprovalLeaveSummaryRow
139 	 * <p>
140 	 * 
141 	 * @return lastApproveMessage for ApprovalLeaveSummaryRow
142 	 */
143 	public String getLastApproveMessage();
144 	
145 	/**
146 	 * The approvalStatus associated with the ApprovalLeaveSummaryRow
147 	 * 
148 	 * <p>
149 	 * approvalStatus of an ApprovalLeaveSummaryRow
150 	 * <p>
151 	 * 
152 	 * @return approvalStatus for ApprovalLeaveSummaryRow
153 	 */
154 	public String getApprovalStatus();
155 
156 	/**
157 	 * The map of earn code leave hours associated with the ApprovalLeaveSummaryRow
158 	 * 
159 	 * <p>
160 	 * earnCodeLeaveHours of an ApprovalLeaveSummaryRow
161 	 * <p>
162 	 * 
163 	 * @return earnCodeLeaveHours for ApprovalLeaveSummaryRow
164 	 */
165 	public Map<Date, Map<String, BigDecimal>> getEarnCodeLeaveHours();
166 
167 	/**
168      * TODO: Is this field needed?
169 	 * The moreThanOneCalendar flag of the ApprovalTimeSummaryRow
170 	 * 
171 	 * <p>
172 	 * moreThanOneCalendar flag of an ApprovalTimeSummaryRow
173 	 * <p>
174 	 * 
175 	 * @return moreThanOneCalendar flag for an ApprovalTimeSummaryRow
176 	 */
177 	public Boolean getMoreThanOneCalendar();
178 
179 	/**
180      * TODO: Is this field needed?
181 	 * The exemptEmployee flag of the ApprovalTimeSummaryRow
182 	 * 
183 	 * <p>
184 	 * exemptEmployee flag of an ApprovalTimeSummaryRow
185 	 * <p>
186 	 * 
187 	 * @return moreThaexemptEmployeenOneCalendar flag for an ApprovalTimeSummaryRow
188 	 */
189 	public Boolean getExemptEmployee();
190 
191 	/**
192 	 * The color associated with the ApprovalLeaveSummaryRow
193 	 * 
194 	 * <p>
195 	 * color of an ApprovalLeaveSummaryRow
196 	 * <p>
197 	 * 
198 	 * @return color for ApprovalLeaveSummaryRow
199 	 */
200 	public String getColor();
201 	
202 	/**
203 	 * The map of role names associated with the ApprovalLeaveSummaryRow
204 	 * 
205 	 * <p>
206 	 * roleNames of an ApprovalLeaveSummaryRow
207 	 * <p>
208 	 * 
209 	 * @return roleNames for ApprovalLeaveSummaryRow
210 	 */
211     public Map<String, String> getRoleNames();
212     
213     /**
214 	 * The role name of the principalId associated with the ApprovalLeaveSummaryRow
215 	 * 
216 	 * <p>
217 	 * role name of the principalId of an ApprovalLeaveSummaryRow
218 	 * <p>
219 	 * 
220 	 * @return getRoleNames().get(HrContext.getPrincipalId()) for ApprovalLeaveSummaryRow
221 	 */
222     public String getRoleName();
223 
224 }