Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
CourseRegistrationService |
|
| 1.0;1 |
1 | /** | |
2 | */ | |
3 | package org.kuali.student.enrollment.registration.course.service; | |
4 | ||
5 | import java.util.List; | |
6 | ||
7 | import javax.jws.WebParam; | |
8 | import javax.jws.WebService; | |
9 | import javax.jws.soap.SOAPBinding; | |
10 | ||
11 | import org.kuali.rice.core.api.criteria.QueryByCriteria; | |
12 | import org.kuali.student.common.validation.dto.ValidationResultInfo; | |
13 | import org.kuali.student.enrollment.courseoffering.dto.RegistrationGroupInfo; | |
14 | import org.kuali.student.enrollment.registration.course.dto.ActivityRegistrationInfo; | |
15 | import org.kuali.student.enrollment.registration.course.dto.CourseRegistrationInfo; | |
16 | import org.kuali.student.enrollment.registration.course.dto.RegGroupRegistrationInfo; | |
17 | import org.kuali.student.enrollment.registration.course.dto.RegRequestInfo; | |
18 | import org.kuali.student.enrollment.registration.course.dto.RegResponseInfo; | |
19 | import org.kuali.student.enrollment.waitlist.course.dto.CourseWaitlistEntryInfo; | |
20 | import org.kuali.student.r2.common.datadictionary.service.DataDictionaryService; | |
21 | import org.kuali.student.r2.common.dto.ContextInfo; | |
22 | import org.kuali.student.r2.common.dto.DateRangeInfo; | |
23 | import org.kuali.student.r2.common.dto.StatusInfo; | |
24 | import org.kuali.student.r2.common.exceptions.AlreadyExistsException; | |
25 | import org.kuali.student.r2.common.exceptions.DataValidationErrorException; | |
26 | import org.kuali.student.r2.common.exceptions.DoesNotExistException; | |
27 | import org.kuali.student.r2.common.exceptions.InvalidParameterException; | |
28 | import org.kuali.student.r2.common.exceptions.MissingParameterException; | |
29 | import org.kuali.student.r2.common.exceptions.OperationFailedException; | |
30 | import org.kuali.student.r2.common.exceptions.PermissionDeniedException; | |
31 | import org.kuali.student.r2.common.exceptions.VersionMismatchException; | |
32 | import org.kuali.student.r2.common.service.StateService; | |
33 | import org.kuali.student.r2.common.service.TypeService; | |
34 | import org.kuali.student.r2.common.util.constants.CourseRegistrationServiceConstants; | |
35 | ||
36 | /** | |
37 | * The Course Registration Service is a Class II service supporting the process | |
38 | * of registering a student in course(s) for a term. The service provides | |
39 | * operations for creating and validating registration requests , registering | |
40 | * for a course, waitlist processing, and dropping a course. This service | |
41 | * supports the concept of registration cart in the application and all of the | |
42 | * transactional requests for registration are made through this service. As | |
43 | * part of negotiating the student's registration, operations are provided to | |
44 | * manage related exceptions and holds related to registration. | |
45 | * | |
46 | * @author Kuali Student Team (sambit) | |
47 | */ | |
48 | ||
49 | @WebService(name = "CourseRegistrationService", targetNamespace = CourseRegistrationServiceConstants.NAMESPACE) | |
50 | @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) | |
51 | public interface CourseRegistrationService extends DataDictionaryService, TypeService, StateService { | |
52 | ||
53 | /** | |
54 | * Checks if a student can register at all i.e., checks if the students | |
55 | * current academic status allows them to register. This is more generic | |
56 | * operation and doesn't take in the term information. | |
57 | * <p> | |
58 | * Implementation notes: Checks high-level conditions required for | |
59 | * registration e.g. student admitted,in good standing , alove etc. | |
60 | * | |
61 | * @param studentId | |
62 | * @param context | |
63 | * @return | |
64 | * @throws DoesNotExistException | |
65 | * @throws InvalidParameterException | |
66 | * @throws MissingParameterException | |
67 | * @throws OperationFailedException | |
68 | * @throws PermissionDeniedException | |
69 | */ | |
70 | public Boolean checkStudentEligibility(@WebParam(name = "studentId") String studentId, | |
71 | @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, | |
72 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
73 | ||
74 | /** | |
75 | * Checks the eligibility of a student to register given the term. If the | |
76 | * student is eligible for a term, then they can build reg cart for the | |
77 | * term. | |
78 | * <p> | |
79 | * Implementation notes: expected that term, holds for that term | |
80 | * | |
81 | * @param studentId | |
82 | * @param termId | |
83 | * @param context | |
84 | * @return | |
85 | * @throws InvalidParameterException | |
86 | * @throws MissingParameterException | |
87 | * @throws OperationFailedException | |
88 | * @throws PermissionDeniedException | |
89 | */ | |
90 | public List<ValidationResultInfo> checkStudentEligibilityForTerm(@WebParam(name = "studentId") String studentId, | |
91 | @WebParam(name = "termId") String termId, @WebParam(name = "context") ContextInfo context) | |
92 | throws InvalidParameterException, MissingParameterException, OperationFailedException, | |
93 | PermissionDeniedException; | |
94 | ||
95 | /** | |
96 | * Gets the appointment window for a term that a student can register in. | |
97 | * <p> | |
98 | * Implementation notes: | |
99 | * | |
100 | * @param studentId | |
101 | * @param termId | |
102 | * @param context | |
103 | * @return | |
104 | * @throws InvalidParameterException | |
105 | * @throws MissingParameterException | |
106 | * @throws OperationFailedException | |
107 | * @throws PermissionDeniedException | |
108 | */ | |
109 | public List<DateRangeInfo> getAppointmentWindow(@WebParam(name = "studentId") String studentId, | |
110 | @WebParam(name = "termId") String termId, @WebParam(name = "context") ContextInfo context) | |
111 | throws InvalidParameterException, MissingParameterException, OperationFailedException, | |
112 | PermissionDeniedException; | |
113 | ||
114 | /** | |
115 | * Checks if the student is eligible to register for a particular course | |
116 | * offering. | |
117 | * <p> | |
118 | * Implementation notes: This operation does prerequisite checks basic | |
119 | * prerequisites check | |
120 | * | |
121 | * @param studentId | |
122 | * @param courseOfferingId | |
123 | * @param context | |
124 | * @return | |
125 | */ | |
126 | public List<ValidationResultInfo> checkStudentEligibiltyForCourseOffering( | |
127 | @WebParam(name = "studentId") String studentId, | |
128 | @WebParam(name = "courseOfferingId") String courseOfferingId, | |
129 | @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, | |
130 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
131 | ||
132 | /** | |
133 | * Checks if the student is eligible to register for a particular | |
134 | * registration group. Returns a {@link List} of | |
135 | * {@link ValidationResultInfo}. When a student is eligible the {@link List} | |
136 | * contains a single {@link ValidationResultInfo} with error level OK. | |
137 | * | |
138 | * @param studentId | |
139 | * @param regGroupId | |
140 | * @param context | |
141 | * @return | |
142 | */ | |
143 | public List<ValidationResultInfo> checkStudentEligibiltyForRegGroup(@WebParam(name = "studentId") String studentId, | |
144 | @WebParam(name = "regGroupId") String regGroupId, @WebParam(name = "context") ContextInfo context) | |
145 | throws InvalidParameterException, MissingParameterException, OperationFailedException, | |
146 | PermissionDeniedException; | |
147 | ||
148 | /** | |
149 | * Gets the registration groups for a course offering from the | |
150 | * CourseOfferingService and then filters out the registration groups the | |
151 | * student is not eligible for using checkEligibilityForRegGroup. | |
152 | * | |
153 | * @param studentId | |
154 | * @param courseOfferingId | |
155 | * @param context | |
156 | * @return | |
157 | */ | |
158 | public List<RegistrationGroupInfo> getEligibleRegGroupsForStudentInCourseOffering( | |
159 | @WebParam(name = "studentId") String studentId, | |
160 | @WebParam(name = "courseOfferingId") String courseOfferingId, | |
161 | @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, | |
162 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
163 | ||
164 | /** | |
165 | * Calculate the credit load for a student in a particular term. This | |
166 | * information can be used to display in the cart. | |
167 | * | |
168 | * @param studentId | |
169 | * @param termId | |
170 | * @param context | |
171 | * @return | |
172 | */ | |
173 | public String calculateCreditLoadForTerm(@WebParam(name = "studentId") String studentId, | |
174 | @WebParam(name = "termId") String termId, @WebParam(name = "context") ContextInfo context); | |
175 | ||
176 | /** | |
177 | * Calculate the credit load for a student in a particular request. It also | |
178 | * adds up the credits for courses the student has registered for already in | |
179 | * the term. | |
180 | * | |
181 | * @param studentId | |
182 | * @param regRequestInfo | |
183 | * @param context | |
184 | * @return | |
185 | */ | |
186 | public String calculateCreditLoadForRegRequest(@WebParam(name = "studentId") String studentId, | |
187 | @WebParam(name = "regRequestInfo") RegRequestInfo regRequestInfo, | |
188 | @WebParam(name = "context") ContextInfo context); | |
189 | ||
190 | /** | |
191 | * Retrieves the open seat count for a particular registration group. | |
192 | * | |
193 | * @param regGroupId | |
194 | * @param context | |
195 | * @return | |
196 | * @throws InvalidParameterException | |
197 | * @throws MissingParameterException | |
198 | * @throws OperationFailedException | |
199 | * @throws PermissionDeniedException | |
200 | */ | |
201 | public Integer getAvailableSeatsForRegGroupAndStudent(@WebParam(name = "regGroupId") String regGroupId, | |
202 | @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, | |
203 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
204 | ||
205 | /** | |
206 | * Retrieves the open seat count for a particular registration group. | |
207 | * | |
208 | * @param regGroupId | |
209 | * @param context | |
210 | * @return | |
211 | * @throws InvalidParameterException | |
212 | * @throws MissingParameterException | |
213 | * @throws OperationFailedException | |
214 | * @throws PermissionDeniedException | |
215 | */ | |
216 | public Integer getAvailableSeatsForCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, | |
217 | @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, | |
218 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
219 | ||
220 | /** | |
221 | * Gets the number of seats available for a particular student in a | |
222 | * registration group. | |
223 | * | |
224 | * @param studentId | |
225 | * @param regGroupId | |
226 | * @param context | |
227 | * @return | |
228 | * @throws InvalidParameterException | |
229 | * @throws MissingParameterException | |
230 | * @throws OperationFailedException | |
231 | * @throws PermissionDeniedException | |
232 | */ | |
233 | public Integer getAvailableSeatCountForStudentInRegGroup(@WebParam(name = "studentId") String studentId, | |
234 | @WebParam(name = "regGroupId") String regGroupId, @WebParam(name = "context") ContextInfo context) | |
235 | throws DataValidationErrorException, InvalidParameterException, MissingParameterException, | |
236 | OperationFailedException, PermissionDeniedException; | |
237 | ||
238 | /** | |
239 | * Returns the available seats in a particular seat pool. | |
240 | * | |
241 | * @param studentId | |
242 | * @param seatpoolId | |
243 | * @param context | |
244 | * @return | |
245 | * @throws InvalidParameterException | |
246 | * @throws MissingParameterException | |
247 | * @throws OperationFailedException | |
248 | * @throws PermissionDeniedException | |
249 | */ | |
250 | public Integer getAvailableSeatsInSeatpool(@WebParam(name = "seatpoolId") String seatpoolId, | |
251 | @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, | |
252 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
253 | ||
254 | /** | |
255 | * Create a registration request for a student. | |
256 | * <p> | |
257 | * Implementation Notes : This operation does the following steps: | |
258 | * <ul> | |
259 | * <li>Validate the data in the reqRequestInfo parameter. If invalid throw | |
260 | * an exception. | |
261 | * <li>Create an id and persist the registration request. | |
262 | * <li>Return the updated registration request. | |
263 | * | |
264 | * @param reqRequestInfo | |
265 | * @param context | |
266 | * @return | |
267 | * @throws DataValidationErrorException | |
268 | * @throws InvalidParameterException | |
269 | * @throws MissingParameterException | |
270 | * @throws OperationFailedException | |
271 | * @throws PermissionDeniedException | |
272 | */ | |
273 | public RegRequestInfo createRegRequest(@WebParam(name = "reqRequestInfo") RegRequestInfo reqRequestInfo, | |
274 | @WebParam(name = "context") ContextInfo context) throws AlreadyExistsException, | |
275 | DataValidationErrorException, InvalidParameterException, MissingParameterException, | |
276 | OperationFailedException, PermissionDeniedException; | |
277 | ||
278 | /** | |
279 | * Check the request state and if its not SUBMITTED or beyond and updates it | |
280 | * with the input {@link RegRequestInfo} values. The id is fetched from the | |
281 | * {@link RegRequestInfo} in the parameter. If the state is not valid, throw | |
282 | * an exception. | |
283 | * <p> | |
284 | * Implementation notes:This method shouldn't update the state of a | |
285 | * registration request since that can be done as part of any transaction | |
286 | * only. This operation will be called to save a registration cart after | |
287 | * changes e.g addition or deletion of courses. | |
288 | * | |
289 | * @param reqRequestInfo | |
290 | * @param context | |
291 | * @return | |
292 | * @throws DataValidationErrorException | |
293 | * @throws InvalidParameterException | |
294 | * @throws MissingParameterException | |
295 | * @throws OperationFailedException | |
296 | * @throws PermissionDeniedException | |
297 | */ | |
298 | public RegRequestInfo updateRegRequest(@WebParam(name = "reqRequestInfo") RegRequestInfo reqRequestInfo, | |
299 | @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, | |
300 | DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, | |
301 | PermissionDeniedException, VersionMismatchException; | |
302 | ||
303 | /** | |
304 | * Delete the registration request from the database. | |
305 | * | |
306 | * @param reqRequestId | |
307 | * @param context | |
308 | * @return | |
309 | * @throws DataValidationErrorException | |
310 | * @throws InvalidParameterException | |
311 | * @throws MissingParameterException | |
312 | * @throws OperationFailedException | |
313 | * @throws PermissionDeniedException | |
314 | */ | |
315 | public StatusInfo deleteRegRequest(@WebParam(name = "reqRequestId") String reqRequestId, | |
316 | @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, | |
317 | InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
318 | ||
319 | /** | |
320 | * Set the state of the registration request to canceled. This operation | |
321 | * would be used instead of delete when the registration request might need | |
322 | * to be stored and not deleted for reporting purposes. Scenarios are | |
323 | * request for a course that was canceled later etc. Throws an exception if | |
324 | * a registration request is already in a success or failure state post | |
325 | * completion of the transaction. | |
326 | * | |
327 | * @param reqRequestId | |
328 | * @param context | |
329 | * @return | |
330 | * @throws DataValidationErrorException | |
331 | * @throws InvalidParameterException | |
332 | * @throws MissingParameterException | |
333 | * @throws OperationFailedException | |
334 | * @throws PermissionDeniedException | |
335 | */ | |
336 | public StatusInfo cancelRegRequest(@WebParam(name = "reqRequestId") String reqRequestId, | |
337 | @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, | |
338 | InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
339 | ||
340 | /** | |
341 | * Retrieves a registration request by id. | |
342 | * | |
343 | * @param reqRequestId | |
344 | * @param context | |
345 | * @return | |
346 | * @throws DataValidationErrorException | |
347 | * @throws InvalidParameterException | |
348 | * @throws MissingParameterException | |
349 | * @throws OperationFailedException | |
350 | * @throws PermissionDeniedException | |
351 | */ | |
352 | public RegRequestInfo getRegRequestById(@WebParam(name = "reqRequestId") String reqRequestId, | |
353 | @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, | |
354 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
355 | ||
356 | /** | |
357 | * Retrieves a registration requests by id list. | |
358 | * | |
359 | * @param reqRequestId | |
360 | * @param context | |
361 | * @return | |
362 | * @throws DataValidationErrorException | |
363 | * @throws InvalidParameterException | |
364 | * @throws MissingParameterException | |
365 | * @throws OperationFailedException | |
366 | * @throws PermissionDeniedException | |
367 | */ | |
368 | public List<RegRequestInfo> getRegRequestByIdList(@WebParam(name = "reqRequestId") List<String> reqRequestIds, | |
369 | @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, | |
370 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
371 | ||
372 | /** | |
373 | * Get the registration requests for a student by term and student id. | |
374 | * Additionally the state of the registration request can also be passed so | |
375 | * that only requests in certain states are returned. | |
376 | * | |
377 | * @param requestStates | |
378 | * @param studentId | |
379 | * @param termId | |
380 | * @param context | |
381 | * @return | |
382 | * @throws InvalidParameterException | |
383 | * @throws MissingParameterException | |
384 | * @throws OperationFailedException | |
385 | * @throws PermissionDeniedException | |
386 | */ | |
387 | public List<RegRequestInfo> getRegRequestsForStuByTerm(@WebParam(name = "studentId") String studentId, | |
388 | @WebParam(name = "termKey") String termKey, @WebParam(name = "requestStates") List<String> requestStates, | |
389 | @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, | |
390 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
391 | ||
392 | /** | |
393 | * Validate a registration request to see that there are no conflicting or | |
394 | * invalid/ in-eligible registration groups in the request after each | |
395 | * modification or when finally submitting or saving it. | |
396 | * | |
397 | * @param reqRequestInfo | |
398 | * @param context | |
399 | * @return | |
400 | * @throws DataValidationErrorException | |
401 | * @throws InvalidParameterException | |
402 | * @throws MissingParameterException | |
403 | * @throws OperationFailedException | |
404 | * @throws PermissionDeniedException | |
405 | */ | |
406 | public List<ValidationResultInfo> validateReqRequest( | |
407 | @WebParam(name = "reqRequestInfo") RegRequestInfo reqRequestInfo, | |
408 | @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, | |
409 | InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
410 | ||
411 | /** | |
412 | * Verifies a registration request to make sure that the data in the | |
413 | * {@link RegRequestInfo} satisfies the rules to be a valid registration | |
414 | * request. This includes course pre-requisites or co-requisites and credit | |
415 | * load rules. | |
416 | * | |
417 | * @param reqRequestInfo | |
418 | * @param context | |
419 | * @return | |
420 | * @throws DataValidationErrorException | |
421 | * @throws InvalidParameterException | |
422 | * @throws MissingParameterException | |
423 | * @throws OperationFailedException | |
424 | * @throws PermissionDeniedException | |
425 | */ | |
426 | public RegResponseInfo verifyReqRequest(@WebParam(name = "reqRequestInfo") RegRequestInfo reqRequestInfo, | |
427 | @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, | |
428 | InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
429 | ||
430 | /** | |
431 | * Verifies a reg request to see that there are no conflicting or invalid/ | |
432 | * ineligible registration groups in the request after each modification or | |
433 | * when finally submitting it. This method takes in a id assuming that the | |
434 | * {@link RegRequestInfo} is already saved in the database. | |
435 | * | |
436 | * @param reqRequestInfo | |
437 | * @param context | |
438 | * @return | |
439 | * @throws DataValidationErrorException | |
440 | * @throws InvalidParameterException | |
441 | * @throws MissingParameterException | |
442 | * @throws OperationFailedException | |
443 | * @throws PermissionDeniedException | |
444 | */ | |
445 | public RegResponseInfo verifyReqRequestForSubmission(@WebParam(name = "reqRequestId") String reqRequestId, | |
446 | @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, | |
447 | InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
448 | ||
449 | /** | |
450 | * Create a new registration request from an existing registration request. | |
451 | * Convenient when a transaction fails and a students wants to rebuild the | |
452 | * registration cart with earlier items. It can also be used in any such other | |
453 | * scenario where a registration request has passed one of the final states | |
454 | * (or is canceled) and a new registration request needs to be created for | |
455 | * re-initiating the transaction. | |
456 | * | |
457 | * @param existingRegRequestId | |
458 | * @param context | |
459 | * @return | |
460 | * @throws DoesNotExistException | |
461 | * @throws DataValidationErrorException | |
462 | * @throws InvalidParameterException | |
463 | * @throws MissingParameterException | |
464 | * @throws OperationFailedException | |
465 | * @throws PermissionDeniedException | |
466 | */ | |
467 | public RegRequestInfo createReqRequestFromExisting( | |
468 | @WebParam(name = "existingRegRequestId") String existingRegRequestId, | |
469 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, | |
470 | DataValidationErrorException, InvalidParameterException, MissingParameterException, | |
471 | OperationFailedException, PermissionDeniedException; | |
472 | ||
473 | /** | |
474 | * Submits a reg request for a course or multiple courses. Assumes that the | |
475 | * cart is already saved before this operation is called. This operation | |
476 | * also handles dropping courses. If the requested course is full and if the | |
477 | * student is requesting to be waitlisted, hold-listed etc. this operation | |
478 | * process that after attempt to register fails. This method is | |
479 | * transactional and for multiple registration request items, each need to | |
480 | * succeed or else the overall registration fails and the successful | |
481 | * transactions are rolled back. A failure is when a course registration, | |
482 | * waitlisting, hold-listing or exception-listing cannot be completed | |
483 | * successfully. This operation calls validateReqRequest to make sure that | |
484 | * the request is valid before starting the transaction. | |
485 | * | |
486 | * @param reqRequestInfo | |
487 | * @param context | |
488 | * @return | |
489 | * @throws DoesNotExistException | |
490 | * @throws DataValidationErrorException | |
491 | * @throws InvalidParameterException | |
492 | * @throws MissingParameterException | |
493 | * @throws OperationFailedException | |
494 | * @throws PermissionDeniedException | |
495 | */ | |
496 | public RegResponseInfo submitReqRequest(@WebParam(name = "reqRequestId") String reqRequestId, | |
497 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
498 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
499 | ||
500 | /** | |
501 | * Gets a course waitlist entry by id. | |
502 | * | |
503 | * @param courseWaitlistEntryId | |
504 | * @param context | |
505 | * @return | |
506 | * @throws InvalidParameterException | |
507 | * @throws MissingParameterException | |
508 | * @throws OperationFailedException | |
509 | * @throws PermissionDeniedException | |
510 | */ | |
511 | public CourseWaitlistEntryInfo getCourseWaitlistEntryById( | |
512 | @WebParam(name = "courseWaitlistEntryId") String courseWaitlistEntryId, | |
513 | @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, | |
514 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
515 | ||
516 | /** | |
517 | * Updates a course waitlist entry - used to update rank or other info in a | |
518 | * course waitlist entry. | |
519 | * | |
520 | * @param reqRequestInfo | |
521 | * @param context | |
522 | * @return | |
523 | * @throws AlreadyExistsException | |
524 | * @throws DataValidationErrorException | |
525 | * @throws InvalidParameterException | |
526 | * @throws MissingParameterException | |
527 | * @throws OperationFailedException | |
528 | * @throws PermissionDeniedException | |
529 | */ | |
530 | public RegResponseInfo updateCourseWaitlistEntry( | |
531 | @WebParam(name = "reqRequestInfo") CourseWaitlistEntryInfo courseWaitlistEntryInfo, | |
532 | @WebParam(name = "context") ContextInfo context) throws AlreadyExistsException, | |
533 | DataValidationErrorException, InvalidParameterException, MissingParameterException, | |
534 | OperationFailedException, PermissionDeniedException; | |
535 | ||
536 | /** | |
537 | * Deletes a course waitlist entry | |
538 | * | |
539 | * @param reqRequestInfo | |
540 | * @param context | |
541 | * @return | |
542 | * @throws AlreadyExistsException | |
543 | * @throws DataValidationErrorException | |
544 | * @throws InvalidParameterException | |
545 | * @throws MissingParameterException | |
546 | * @throws OperationFailedException | |
547 | * @throws PermissionDeniedException | |
548 | */ | |
549 | public RegResponseInfo deleteCourseWaitlistEntry( | |
550 | @WebParam(name = "courseWaitlistEntryId") String courseWaitlistEntryId, | |
551 | @WebParam(name = "context") ContextInfo context) throws AlreadyExistsException, | |
552 | DataValidationErrorException, InvalidParameterException, MissingParameterException, | |
553 | OperationFailedException, PermissionDeniedException; | |
554 | ||
555 | /** | |
556 | * Register a student to a reg group from a waitlist. | |
557 | * | |
558 | * @param reqRequestInfo | |
559 | * @param context | |
560 | * @return | |
561 | * @throws AlreadyExistsException | |
562 | * @throws DataValidationErrorException | |
563 | * @throws InvalidParameterException | |
564 | * @throws MissingParameterException | |
565 | * @throws OperationFailedException | |
566 | * @throws PermissionDeniedException | |
567 | */ | |
568 | public RegResponseInfo registerStudentFromWaitlist( | |
569 | @WebParam(name = "courseWaitlistEntryId") String courseWaitlistEntryId, | |
570 | @WebParam(name = "context") ContextInfo context) throws AlreadyExistsException, | |
571 | DataValidationErrorException, InvalidParameterException, MissingParameterException, | |
572 | OperationFailedException, PermissionDeniedException; | |
573 | ||
574 | /** | |
575 | * Gets the course waitlist entries for a course offering. Returns all | |
576 | * students who are on waitlists for that course offering. | |
577 | * | |
578 | * @param courseOfferingId | |
579 | * @param context | |
580 | * @return | |
581 | * @throws InvalidParameterException | |
582 | * @throws MissingParameterException | |
583 | * @throws OperationFailedException | |
584 | * @throws PermissionDeniedException | |
585 | */ | |
586 | public List<CourseWaitlistEntryInfo> getCourseWaitlistEntriesForCourseOffering( | |
587 | @WebParam(name = "courseOfferingId") String courseOfferingId, | |
588 | @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, | |
589 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
590 | ||
591 | /** | |
592 | * Gets the course waitlist entries for a reg group. | |
593 | * | |
594 | * @param courseOfferingId | |
595 | * @param context | |
596 | * @return | |
597 | * @throws InvalidParameterException | |
598 | * @throws MissingParameterException | |
599 | * @throws OperationFailedException | |
600 | * @throws PermissionDeniedException | |
601 | */ | |
602 | public List<CourseWaitlistEntryInfo> getCourseWaitlistEntriesForRegGroup( | |
603 | @WebParam(name = "regGroupId") String regGroupId, @WebParam(name = "context") ContextInfo context) | |
604 | throws InvalidParameterException, MissingParameterException, OperationFailedException, | |
605 | PermissionDeniedException; | |
606 | ||
607 | /** | |
608 | * Gets the waitlist entries for a course offering by student. A student | |
609 | * might be listed in multiple reg group waitlists in the same course. | |
610 | * | |
611 | * @param courseOfferingId | |
612 | * @param context | |
613 | * @return | |
614 | * @throws InvalidParameterException | |
615 | * @throws MissingParameterException | |
616 | * @throws OperationFailedException | |
617 | * @throws PermissionDeniedException | |
618 | */ | |
619 | public List<CourseWaitlistEntryInfo> getCourseWaitlistEntriesForStudentAndCourseOffering( | |
620 | @WebParam(name = "courseOfferingId") String courseOfferingId, | |
621 | @WebParam(name = "studentId") String studentId, @WebParam(name = "context") ContextInfo context) | |
622 | throws InvalidParameterException, MissingParameterException, OperationFailedException, | |
623 | PermissionDeniedException; | |
624 | ||
625 | /** | |
626 | * Gets the waitlist for a reg group and student. | |
627 | * | |
628 | * @param courseOfferingId | |
629 | * @param context | |
630 | * @return | |
631 | * @throws InvalidParameterException | |
632 | * @throws MissingParameterException | |
633 | * @throws OperationFailedException | |
634 | * @throws PermissionDeniedException | |
635 | */ | |
636 | public CourseWaitlistEntryInfo getCourseWaitlistEntryForStudentAndRegGroup( | |
637 | @WebParam(name = "regGroupId") String regGroupId, @WebParam(name = "studentId") String studentId, | |
638 | @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, | |
639 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
640 | ||
641 | /** | |
642 | * Get all the waitlist the student is in for a term. Returns | |
643 | * CourseWaitlistEntryInfo which is the student-waitlist relation. | |
644 | * | |
645 | * @param studentId | |
646 | * @param termId | |
647 | * @param context | |
648 | * @return | |
649 | * @throws InvalidParameterException | |
650 | * @throws MissingParameterException | |
651 | * @throws OperationFailedException | |
652 | * @throws PermissionDeniedException | |
653 | */ | |
654 | public List<CourseWaitlistEntryInfo> getCourseWaitlistEntriesForStudentByTerm( | |
655 | @WebParam(name = "studentId") String studentId, @WebParam(name = "termId") String termId, | |
656 | @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, | |
657 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
658 | ||
659 | /** | |
660 | * Gets the course registration by ID. | |
661 | * | |
662 | * @param courseRegistrationId | |
663 | * @param context | |
664 | * @return | |
665 | */ | |
666 | public CourseRegistrationInfo getCourseRegistrationById( | |
667 | @WebParam(name = "courseRegistrationId") String courseRegistrationId, | |
668 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
669 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
670 | ||
671 | /** | |
672 | * Gets the course registration by ID list. | |
673 | * | |
674 | * @param courseRegistrationId | |
675 | * @param context | |
676 | * @return | |
677 | */ | |
678 | public CourseRegistrationInfo getCourseRegistrationsByIdList( | |
679 | @WebParam(name = "courseRegistrationIds") List<String> courseRegistrationIds, | |
680 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
681 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
682 | ||
683 | /** | |
684 | * Gets the course registrations for a student by term. | |
685 | * | |
686 | * @param studentId | |
687 | * @param termId | |
688 | * @param context | |
689 | * @return | |
690 | * @throws InvalidParameterException | |
691 | * @throws MissingParameterException | |
692 | * @throws OperationFailedException | |
693 | * @throws PermissionDeniedException | |
694 | */ | |
695 | public List<CourseRegistrationInfo> getCourseRegistrationsForStudentByTerm( | |
696 | @WebParam(name = "studentId") String studentId, @WebParam(name = "termId") String termId, | |
697 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
698 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
699 | ||
700 | /** | |
701 | * Get course registrations by course offering id. Gets all student | |
702 | * registrations for the course. | |
703 | * | |
704 | * @param courseOfferingId | |
705 | * @param context | |
706 | * @return | |
707 | * @throws InvalidParameterException | |
708 | * @throws MissingParameterException | |
709 | * @throws OperationFailedException | |
710 | * @throws PermissionDeniedException | |
711 | */ | |
712 | ||
713 | public List<CourseRegistrationInfo> getCourseRegistrationsByCourseOfferingId( | |
714 | @WebParam(name = "courseOfferingId") String courseOfferingId, | |
715 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
716 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
717 | ||
718 | /** | |
719 | * Get the request that resulted in this course registration. | |
720 | * | |
721 | * @param courseRegistrationId | |
722 | * @param context | |
723 | * @return | |
724 | * @throws InvalidParameterException | |
725 | * @throws MissingParameterException | |
726 | * @throws OperationFailedException | |
727 | * @throws PermissionDeniedException | |
728 | */ | |
729 | public List<RegRequestInfo> getRegRequestsForCourseRegn( | |
730 | @WebParam(name = "courseRegistrationId") String courseRegistrationId, | |
731 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
732 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
733 | ||
734 | /** | |
735 | * This method gets the reg requests for a course offering for all students. | |
736 | * | |
737 | * @param courseOfferingId | |
738 | * @param context | |
739 | * @return | |
740 | * @throws DoesNotExistException | |
741 | * @throws InvalidParameterException | |
742 | * @throws MissingParameterException | |
743 | * @throws OperationFailedException | |
744 | * @throws PermissionDeniedException | |
745 | */ | |
746 | public List<RegRequestInfo> getRegRequestsForCourseOffering( | |
747 | @WebParam(name = "courseOfferingId") String courseOfferingId, | |
748 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
749 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
750 | ||
751 | /** | |
752 | * Get reg requests objects which are attached to this course offering for a | |
753 | * student. | |
754 | * | |
755 | * @param courseOfferingId | |
756 | * @param studentId | |
757 | * @param context | |
758 | * @return | |
759 | * @throws DoesNotExistException | |
760 | * @throws InvalidParameterException | |
761 | * @throws MissingParameterException | |
762 | * @throws OperationFailedException | |
763 | * @throws PermissionDeniedException | |
764 | */ | |
765 | public List<RegRequestInfo> getRegRequestsForCourseOfferingByStudent( | |
766 | @WebParam(name = "courseOfferingId") String courseOfferingId, | |
767 | @WebParam(name = "studentId") String studentId, @WebParam(name = "context") ContextInfo context) | |
768 | throws DoesNotExistException, InvalidParameterException, MissingParameterException, | |
769 | OperationFailedException, PermissionDeniedException; | |
770 | ||
771 | /** | |
772 | * Get the activity registrations for this course registration. A course | |
773 | * registration results in one-many activity registrations depending on the | |
774 | * reg group the student registered for. | |
775 | * | |
776 | * @param courseRegistrationId | |
777 | * @param context | |
778 | * @return | |
779 | * @throws InvalidParameterException | |
780 | * @throws MissingParameterException | |
781 | * @throws OperationFailedException | |
782 | * @throws PermissionDeniedException | |
783 | */ | |
784 | public List<ActivityRegistrationInfo> getActivityRegistrationsForCourseRegn( | |
785 | @WebParam(name = "courseRegistrationId") String courseRegistrationId, | |
786 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
787 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
788 | ||
789 | /** | |
790 | * Get the activity registration by id. | |
791 | * | |
792 | * @param activityRegistrationId | |
793 | * @param context | |
794 | * @return | |
795 | * @throws InvalidParameterException | |
796 | * @throws MissingParameterException | |
797 | * @throws OperationFailedException | |
798 | * @throws PermissionDeniedException | |
799 | */ | |
800 | public ActivityRegistrationInfo getActivityRegistrationById( | |
801 | @WebParam(name = "activityRegistrationId") String activityRegistrationId, | |
802 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
803 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
804 | ||
805 | /** | |
806 | * Get the activity resgistrations by the list of identifiers. | |
807 | * | |
808 | * @param activityRegistrationIds | |
809 | * @param context | |
810 | * @return | |
811 | * @throws DoesNotExistException | |
812 | * @throws InvalidParameterException | |
813 | * @throws MissingParameterException | |
814 | * @throws OperationFailedException | |
815 | * @throws PermissionDeniedException | |
816 | */ | |
817 | public ActivityRegistrationInfo getActivityRegistrationsByIdList( | |
818 | @WebParam(name = "activityRegistrationIds") List<String> activityRegistrationIds, | |
819 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
820 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
821 | ||
822 | /** | |
823 | * Get the activity registrations for this course registration. A course | |
824 | * registration results in one-many activity registrations depending on the | |
825 | * reg group the student registered for. | |
826 | * | |
827 | * @param courseRegistrationId | |
828 | * @param context | |
829 | * @return | |
830 | * @throws InvalidParameterException | |
831 | * @throws MissingParameterException | |
832 | * @throws OperationFailedException | |
833 | * @throws PermissionDeniedException | |
834 | */ | |
835 | public List<ActivityRegistrationInfo> getActivityRegistrationsForActivityOffering( | |
836 | @WebParam(name = "courseRegistrationId") String courseRegistrationId, | |
837 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
838 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
839 | ||
840 | /** | |
841 | * Get all activity registrations by student for a certain term. | |
842 | * | |
843 | * @param courseRegistrationId | |
844 | * @param termId | |
845 | * @param context | |
846 | * @return | |
847 | * @throws InvalidParameterException | |
848 | * @throws MissingParameterException | |
849 | * @throws OperationFailedException | |
850 | * @throws PermissionDeniedException | |
851 | */ | |
852 | public List<ActivityRegistrationInfo> getActivityRegistrationsForStudentByTerm( | |
853 | @WebParam(name = "studentId") String studentId, @WebParam(name = "termId") String termId, | |
854 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
855 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
856 | ||
857 | /** | |
858 | * Get reg group registration by id. | |
859 | * | |
860 | * @param regGroupRegistrationId | |
861 | * @param context | |
862 | * @return | |
863 | * @throws InvalidParameterException | |
864 | * @throws MissingParameterException | |
865 | * @throws OperationFailedException | |
866 | * @throws PermissionDeniedException | |
867 | */ | |
868 | public RegGroupRegistrationInfo getRegGroupRegistration( | |
869 | @WebParam(name = "regGroupRegistrationId") String regGroupRegistrationId, | |
870 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
871 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
872 | ||
873 | /** | |
874 | * Get reg group registration for a course registration . | |
875 | * | |
876 | * @param courseRegistrationId | |
877 | * @param context | |
878 | * @return | |
879 | * @throws InvalidParameterException | |
880 | * @throws MissingParameterException | |
881 | * @throws OperationFailedException | |
882 | * @throws PermissionDeniedException | |
883 | */ | |
884 | ||
885 | public List<RegGroupRegistrationInfo> getRegGroupRegistrationsForCourseRegistration( | |
886 | @WebParam(name = "courseRegistrationId") String courseRegistrationId, | |
887 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
888 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
889 | ||
890 | /** | |
891 | * Get reg group registrations by id id of reg groups. | |
892 | * | |
893 | * @param regGroupIds | |
894 | * @param context | |
895 | * @return | |
896 | * @throws DoesNotExistException | |
897 | * @throws InvalidParameterException | |
898 | * @throws MissingParameterException | |
899 | * @throws OperationFailedException | |
900 | * @throws PermissionDeniedException | |
901 | */ | |
902 | public List<RegGroupRegistrationInfo> getRegGroupRegistrationsByIdList( | |
903 | @WebParam(name = "courseRegistrationId") List<String> regGroupIds, | |
904 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
905 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
906 | ||
907 | /** | |
908 | * This method get reg group registration by reg group id. Returns the reg | |
909 | * group registration for a reg group id | |
910 | * | |
911 | * @param courseRegistrationId | |
912 | * @param context | |
913 | * @return | |
914 | * @throws DoesNotExistException | |
915 | * @throws InvalidParameterException | |
916 | * @throws MissingParameterException | |
917 | * @throws OperationFailedException | |
918 | * @throws PermissionDeniedException | |
919 | */ | |
920 | public List<RegGroupRegistrationInfo> getRegGroupRegistrationsByRegGroupId( | |
921 | @WebParam(name = "regGroupId") String regGroupId, @WebParam(name = "context") ContextInfo context) | |
922 | throws DoesNotExistException, InvalidParameterException, MissingParameterException, | |
923 | OperationFailedException, PermissionDeniedException; | |
924 | ||
925 | /** | |
926 | * Get the registration group registration for a student in a particular | |
927 | * term. | |
928 | * | |
929 | * @param studentId | |
930 | * @param termId | |
931 | * @param context | |
932 | * @return | |
933 | * @throws InvalidParameterException | |
934 | * @throws MissingParameterException | |
935 | * @throws OperationFailedException | |
936 | * @throws PermissionDeniedException | |
937 | */ | |
938 | public RegGroupRegistrationInfo getRegGroupRegistrationsForStudentByTerm( | |
939 | @WebParam(name = "studentId") String studentId, @WebParam(name = "termId") String termId, | |
940 | @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, | |
941 | MissingParameterException, OperationFailedException, PermissionDeniedException; | |
942 | ||
943 | /** | |
944 | * Searches for course registrations based on the criteria, returns a list | |
945 | * of {@link CourseRegistrationInfo} object. | |
946 | * | |
947 | * @param criteria | |
948 | * @return | |
949 | */ | |
950 | public List<CourseRegistrationInfo> searchForCourseRegistrations(QueryByCriteria criteria); | |
951 | ||
952 | /** | |
953 | * Searches for course registrations based on the criteria, returns a list | |
954 | * of {@link CourseRegistrationInfo} ids. | |
955 | * | |
956 | * @param criteria | |
957 | * @return | |
958 | */ | |
959 | public List<String> searchForCourseOfferingRegistrationIds(QueryByCriteria criteria); | |
960 | ||
961 | /** | |
962 | * This method ... | |
963 | * | |
964 | * @param criteria | |
965 | * @return | |
966 | */ | |
967 | public List<ActivityRegistrationInfo> searchForActivityRegistrations(QueryByCriteria criteria); | |
968 | ||
969 | /** | |
970 | * This method ... | |
971 | * | |
972 | * @param criteria | |
973 | * @return | |
974 | */ | |
975 | public List<String> searchForActivityRegistrationIds(QueryByCriteria criteria); | |
976 | ||
977 | /** | |
978 | * This method ... | |
979 | * | |
980 | * @param criteria | |
981 | * @return | |
982 | */ | |
983 | public List<RegGroupRegistrationInfo> searchForRegGroupRegistrations(QueryByCriteria criteria); | |
984 | ||
985 | /** | |
986 | * This method ... | |
987 | * | |
988 | * @param criteria | |
989 | * @return | |
990 | */ | |
991 | public List<String> searchForRegGroupRegistrationIds(QueryByCriteria criteria); | |
992 | ||
993 | /** | |
994 | * This method ... | |
995 | * | |
996 | * @param criteria | |
997 | * @return | |
998 | */ | |
999 | public List<CourseWaitlistEntryInfo> searchForCourseWaitlistEntries(QueryByCriteria criteria); | |
1000 | ||
1001 | /** | |
1002 | * This method ... | |
1003 | * | |
1004 | * @param criteria | |
1005 | * @return | |
1006 | */ | |
1007 | public List<String> searchForCourseWaitlistEntryIds(QueryByCriteria criteria); | |
1008 | ||
1009 | } |