View Javadoc

1   /*
2    * Copyright 2011 The Kuali Foundation 
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the
5    * "License"); you may not use this file except in compliance with the
6    * License. You may obtain a copy of the License at
7    *
8    * http://www.osedu.org/licenses/ECL-2.0
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
13   * implied. See the License for the specific language governing
14   * permissions and limitations under the License.
15   */
16  
17  package org.kuali.student.enrollment.courseregistration.service;
18  
19  import java.util.List;
20  
21  import javax.jws.WebParam;
22  import javax.jws.WebService;
23  import javax.jws.soap.SOAPBinding;
24  
25  import org.kuali.rice.core.api.criteria.QueryByCriteria;
26  
27  import org.kuali.student.enrollment.courseregistration.dto.ActivityRegistrationInfo;
28  import org.kuali.student.enrollment.courseregistration.dto.CourseRegistrationInfo;
29  import org.kuali.student.enrollment.courseregistration.dto.RegistrationRequestInfo;
30  import org.kuali.student.enrollment.courseregistration.dto.RegistrationRequestItemInfo;
31  import org.kuali.student.enrollment.courseregistration.dto.RegistrationResponseInfo;
32  import org.kuali.student.enrollment.courseregistration.dto.CreditLoadInfo;
33  import org.kuali.student.enrollment.courseoffering.dto.RegistrationGroupInfo;
34  
35  import org.kuali.student.r2.common.dto.ContextInfo;
36  import org.kuali.student.r2.common.dto.StatusInfo;
37  import org.kuali.student.r2.common.dto.ValidationResultInfo;
38  
39  import org.kuali.student.r2.common.exceptions.AlreadyExistsException;
40  import org.kuali.student.r2.common.exceptions.DataValidationErrorException;
41  import org.kuali.student.r2.common.exceptions.DoesNotExistException;
42  import org.kuali.student.r2.common.exceptions.InvalidParameterException;
43  import org.kuali.student.r2.common.exceptions.MissingParameterException;
44  import org.kuali.student.r2.common.exceptions.OperationFailedException;
45  import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
46  import org.kuali.student.r2.common.exceptions.ReadOnlyException;
47  import org.kuali.student.r2.common.exceptions.VersionMismatchException;
48  
49  import org.kuali.student.r2.common.util.constants.CourseRegistrationServiceConstants;
50  
51  /**
52   * The Course Registration Service is a Class II service supporting
53   * the process of registering a student in course(s) for a term. The
54   * service provides operations for creating and validating
55   * registration requests, registering for a course, and dropping a
56   * course. 
57   *
58   * This service supports the concept of registration cart in the
59   * application and all of the transactional requests for registration
60   * are made through this service. As part of negotiating the student's
61   * registration, operations are provided to manage related exceptions
62   * and holds related to registration.
63   * 
64   * @author Kuali Student Team (sambit)
65   */
66  
67  @WebService(name = "CourseRegistrationService", targetNamespace = CourseRegistrationServiceConstants.NAMESPACE)
68  @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
69  public interface CourseRegistrationService  {
70  
71      // CourseRegistration methods
72  
73      /**
74       * Retrieves a single CourseRegistration by an CourseRegistration Id.
75       *
76       * @param courseRegistrationId the identifier for the
77       *        CourseRegistration to be retrieved
78       * @param contextInfo information containing the principalId and
79       *        locale information about the caller of the service
80       *        operation
81       * @return the CourseRegistration requested
82       * @throws DoesNotExistException courseRegistrationId is not found
83       * @throws InvalidParameterException contextInfo is not valid
84       * @throws MissingParameterException courseRegistrationId or
85       *         contextInfo is missing or null
86       * @throws OperationFailedException unable to complete request
87       * @throws PermissionDeniedException an authorization failure occurred
88       */
89      public CourseRegistrationInfo getCourseRegistration(@WebParam(name = "courseRegistrationId") String courseRegistrationId,
90                                                          @WebParam(name = "contextInfo") ContextInfo contextInfo)
91          throws DoesNotExistException, 
92                 InvalidParameterException,
93                 MissingParameterException, 
94                 OperationFailedException, 
95                 PermissionDeniedException;
96  
97      /**
98       * Retrieve a list of CourseRegistrations from a list of
99       * CourseRegistration Ids. The returned list may be in any order
100      * and if duplicate Ids are supplied, a unique set may or may not
101      * ber returned.
102      *
103      * @param courseRegistrationIds a list of CourseRegistration identifiers
104      * @param contextInfo information containing the principalId and
105      *        locale information about the caller of the service
106      *        operation
107      * @return a list of CourseRegistrations
108      * @throws DoesNotExistException a courseRegistrationId in the
109      *         list was not found
110      * @throws InvalidParameterException contextInfo is not valid
111      * @throws MissingParameterException courseRegistrationIds, an Id
112      *         in courseRegistrationIds, or contextInfo is missing or
113      *         null
114      * @throws OperationFailedException unable to complete request
115      * @throws PermissionDeniedException an authorization failure occurred
116      */
117     public List<CourseRegistrationInfo> getCourseRegistrationsByIds(@WebParam(name = "courseRegistrationIds") List<String> courseRegistrationIds,
118                                                                     @WebParam(name = "contextInfo") ContextInfo contextInfo)
119         throws DoesNotExistException, 
120                InvalidParameterException,
121                MissingParameterException, 
122                OperationFailedException, 
123                PermissionDeniedException;
124 
125     /**
126      * Retrieve a list of CourseRegistrationIds by CourseRegistration
127      * Type.
128      *
129      * @param courseRegistrationTypeKey an identifier for an
130      *        CourseRegistration Type
131      * @param contextInfo information containing the principalId and
132      *        locale information about the caller of the service
133      *        operation
134      * @return a list of CourseRegistrations identifiers matching
135      *         courseRegistrationTypeKey or an empty list of none found
136      * @throws InvalidParameterException contextInfo is not valid
137      * @throws MissingParameterException courseRegistrationTypeKey
138      *         or contextInfo is missing or null
139      * @throws OperationFailedException unable to complete request
140      * @throws PermissionDeniedException an authorization failure occurred
141      */
142     public List<String> getCourseRegistrationIdsByType(@WebParam(name = "courseRegistrationTypeKey") String courseRegistrationTypeKey,
143                                                        @WebParam(name = "contextInfo") ContextInfo contextInfo)
144         throws InvalidParameterException,
145                MissingParameterException, 
146                OperationFailedException, 
147                PermissionDeniedException;
148 
149     /**
150      * Gets a list of CourseRegistrations for a given Student. 
151      *
152      * @param studentId an identifier for a Student
153      * @param contextInfo information containing the principalId and
154      *        locale information about the caller of the service
155      *        operation
156      * @return list of CourseRegistrations associated with the given
157      *         Student or an empty list if none found
158      * @throws InvalidParameterException contextInfo is not valid
159      * @throws MissingParameterException studentId or contextInfo is
160      *         missing or null
161      * @throws OperationFailedException unable to complete request
162      * @throws PermissionDeniedException an authorization failure occurred
163      */
164     public List<CourseRegistrationInfo> getCourseRegistrationsByStudent(@WebParam(name = "studentId") String studentId,
165                                                                         @WebParam(name = "contextInfo") ContextInfo contextInfo)
166         throws InvalidParameterException,
167                MissingParameterException, 
168                OperationFailedException, 
169                PermissionDeniedException;
170 
171     /**
172      * Gets a list of CourseRegistrations for a given CourseOffering.
173      *
174      * @param courseOfferingId an identifier for a CourseOffering
175      * @param contextInfo information containing the principalId and
176      *        locale information about the caller of the service
177      *        operation
178      * @return list of CourseRegistrations associated with the given
179      *         CourseOffering or an empty list if none found
180      * @throws InvalidParameterException contextInfo is not valid
181      * @throws MissingParameterException courseOfferingId or
182      *         contextInfo is missing or null
183      * @throws OperationFailedException unable to complete request
184      * @throws PermissionDeniedException an authorization failure occurred
185      */
186     public List<CourseRegistrationInfo> getCourseRegistrationsByCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId,
187                                                                                @WebParam(name = "contextInfo") ContextInfo contextInfo)
188         throws InvalidParameterException,
189                MissingParameterException, 
190                OperationFailedException, 
191                PermissionDeniedException;
192 
193     /**
194      * Gets a list of CourseRegistrations for a given Student and
195      * CourseOffering.
196      *
197      * @param studentId an identifier for a Student
198      * @param courseOfferingId an identifier for a CourseOffering
199      * @param contextInfo information containing the principalId and
200      *        locale information about the caller of the service
201      *        operation
202      * @return list of CourseRegistrations associated with the given
203      *         Student and CourseOffering or an empty list if none
204      *         found
205      * @throws InvalidParameterException contextInfo is not valid
206      * @throws MissingParameterException studentId, courseOfferingId,
207      *         or contextInfo is missing or null
208      * @throws OperationFailedException unable to complete request
209      * @throws PermissionDeniedException an authorization failure occurred
210      */
211     public List<CourseRegistrationInfo> getCourseRegistrationsByStudentAndCourseOffering(@WebParam(name = "studentId") String studentId,
212                                                                                          @WebParam(name = "courseOfferingId") String courseOfferingId,
213                                                                                          @WebParam(name = "contextInfo") ContextInfo contextInfo)
214         throws InvalidParameterException,
215                MissingParameterException, 
216                OperationFailedException, 
217                PermissionDeniedException;
218 
219     /**
220      * Gets a list of CourseRegistrations for a given Student and
221      * Term.
222      *
223      * @param studentId an identifier for a Student
224      * @param termId an identifier for a Term
225      * @param contextInfo information containing the principalId and
226      *        locale information about the caller of the service
227      *        operation
228      * @return list of CourseRegistrations associated with the given
229      *         Student and CourseOffering or an empty list if none
230      *         found
231      * @throws InvalidParameterException contextInfo is not valid
232      * @throws MissingParameterException studentId, termId,
233      *         or contextInfo is missing or null
234      * @throws OperationFailedException unable to complete request
235      * @throws PermissionDeniedException an authorization failure occurred
236      */
237     public List<CourseRegistrationInfo> getCourseRegistrationsByStudentAndTerm(@WebParam(name = "studentId") String studentId,
238                                                                                @WebParam(name = "termId") String termId,
239                                                                                @WebParam(name = "contextInfo") ContextInfo contextInfo)
240         throws InvalidParameterException,
241                MissingParameterException, 
242                OperationFailedException, 
243                PermissionDeniedException;
244 
245     /**
246      * Searches for CourseRegistrations that meet the given search
247      * criteria.
248      *
249      * @param criteria the search criteria
250      * @param contextInfo information containing the principalId and
251      *        locale information about the caller of the service
252      *        operation
253      * @return a list of CourseRegistration identifiers matching the criteria
254      * @throws InvalidParameterException criteria or contextInfo is
255      *         not valid
256      * @throws MissingParameterException criteria or or contextInfo is
257      *         missing or null
258      * @throws OperationFailedException unable to complete request
259      * @throws PermissionDeniedException an authorization failure occurred
260      */
261     public List<String> searchForCourseRegistrationIds(@WebParam(name = "criteria") QueryByCriteria criteria,
262                                                        @WebParam(name = "contextInfo") ContextInfo contextInfo)
263         throws InvalidParameterException,
264                MissingParameterException, 
265                OperationFailedException, 
266                PermissionDeniedException;
267 
268     /**
269      * Searches for CourseRegistrations that meet the given search
270      * criteria.
271      *
272      * @param criteria the search criteria
273      * @param contextInfo information containing the principalId and
274      *        locale information about the caller of the service
275      *        operation
276      * @return a list of CourseRegistrations matching the criteria
277      * @throws InvalidParameterException criteria or contextInfo is
278      *         not valid
279      * @throws MissingParameterException criteria or or contextInfo is
280      *         missing or null
281      * @throws OperationFailedException unable to complete request
282      * @throws PermissionDeniedException an authorization failure occurred
283      */
284     public List<CourseRegistrationInfo> searchForCourseRegistrations(@WebParam(name = "criteria") QueryByCriteria criteria,
285                                                                      @WebParam(name = "contextInfo") ContextInfo contextInfo)
286         throws InvalidParameterException,
287                MissingParameterException, 
288                OperationFailedException, 
289                PermissionDeniedException;
290 
291     // ActivityRegistration methods
292 
293     /**
294      * Retrieves a single ActivityRegistration by an
295      * ActivityRegistration Id.
296      *
297      * @param activityRegistrationId the identifier for the
298      *        ActivityRegistration to be retrieved
299      * @param contextInfo information containing the principalId and
300      *        locale information about the caller of the service
301      *        operation
302      * @return the ActivityRegistration requested
303      * @throws DoesNotExistException activityRegistrationId is not found
304      * @throws InvalidParameterException contextInfo is not valid
305      * @throws MissingParameterException activityRegistrationId or
306      *         contextInfo is missing or null
307      * @throws OperationFailedException unable to complete request
308      * @throws PermissionDeniedException an authorization failure occurred
309      */
310     public ActivityRegistrationInfo getActivityRegistration(@WebParam(name = "activityRegistrationId") String activityRegistrationId,
311                                                             @WebParam(name = "contextInfo") ContextInfo contextInfo)
312         throws DoesNotExistException, 
313                InvalidParameterException,
314                MissingParameterException, 
315                OperationFailedException, 
316                PermissionDeniedException;
317 
318     /**
319      * Retrieve a list of ActivityRegistrations from a list of
320      * ActivityRegistration Ids. The returned list may be in any order
321      * and if duplicate Ids are supplied, a unique set may or may not
322      * ber returned.
323      *
324      * @param activityRegistrationIds a list of ActivityRegistration
325      *        identifiers
326      * @param contextInfo information containing the principalId and
327      *        locale information about the caller of the service
328      *        operation
329      * @return a list of ActivityRegistrations
330      * @throws DoesNotExistException a activityRegistrationId in the
331      *         list was not found
332      * @throws InvalidParameterException contextInfo is not valid
333      * @throws MissingParameterException activityRegistrationIds, an Id in
334      *         activityRegistrationIds, or contextInfo is missing or null
335      * @throws OperationFailedException unable to complete request
336      * @throws PermissionDeniedException an authorization failure occurred
337      */
338     public List<ActivityRegistrationInfo> getActivityRegistrationsByIds(@WebParam(name = "activityRegistrationIds") List<String> activityRegistrationIds,
339                                                                         @WebParam(name = "contextInfo") ContextInfo contextInfo)
340         throws DoesNotExistException, 
341                InvalidParameterException,
342                MissingParameterException, 
343                OperationFailedException, 
344                PermissionDeniedException;
345 
346     /**
347      * Retrieve a list of ActivityRegistrationIds by
348      * ActivityRegistration Type.
349      *
350      * @param activityRegistrationTypeKey an identifier for an
351      *        ActivityRegistration Type
352      * @param contextInfo information containing the principalId and
353      *        locale information about the caller of the service
354      *        operation
355      * @return a list of ActivityRegistrations identifiers matching
356      *         activityRegistrationTypeKey or an empty list of none
357      *         found
358      * @throws InvalidParameterException contextInfo is not valid
359      * @throws MissingParameterException activityRegistrationTypeKey
360      *         or contextInfo is missing or null
361      * @throws OperationFailedException unable to complete request
362      * @throws PermissionDeniedException an authorization failure occurred
363      */
364     public List<String> getActivityRegistrationIdsByType(@WebParam(name = "activityRegistrationTypeKey") String activityRegistrationTypeKey,
365                                                          @WebParam(name = "contextInfo") ContextInfo contextInfo)
366         throws InvalidParameterException,
367                MissingParameterException, 
368                OperationFailedException, 
369                PermissionDeniedException;
370 
371     /**
372      * Gets a list of ActivityRegistrations for a CourseRegistration.
373      *
374      * @param courseRegistrationId an identifier for a CourseRegistration
375      * @param contextInfo information containing the principalId and
376      *        locale information about the caller of the service
377      *        operation
378      * @return list of ActivityRegistrations associated with the given
379      *         CourseRegistration or an empty list if none found
380      * @throws InvalidParameterException contextInfo is not valid
381      * @throws MissingParameterException courseRegistrationId or
382      *         contextInfo is missing or null
383      * @throws OperationFailedException unable to complete request
384      * @throws PermissionDeniedException an authorization failure occurred
385      */
386     public List<ActivityRegistrationInfo> getActivityRegistrationsForCourseRegistration(@WebParam(name = "courseRegistrationId") String courseRegistrationId,
387                                                                                         @WebParam(name = "contextInfo") ContextInfo contextInfo)
388         throws InvalidParameterException,
389                MissingParameterException, 
390                OperationFailedException, 
391                PermissionDeniedException;
392 
393     /**
394      * Gets a list of ActivityRegistrations for a given Student.
395      *
396      * @param studentId an identifier for a Student
397      * @param contextInfo information containing the principalId and
398      *        locale information about the caller of the service
399      *        operation
400      * @return list of ActivityRegistrations associated with the given
401      *         Student or an empty list if none found
402      * @throws InvalidParameterException contextInfo is not valid
403      * @throws MissingParameterException studentId or contextInfo is
404      *         missing or null
405      * @throws OperationFailedException unable to complete request
406      * @throws PermissionDeniedException an authorization failure occurred
407      */
408     public List<ActivityRegistrationInfo> getActivityRegistrationsByStudent(@WebParam(name = "studentId") String studentId,
409                                                                             @WebParam(name = "contextInfo") ContextInfo contextInfo)
410         throws InvalidParameterException,
411                MissingParameterException, 
412                OperationFailedException, 
413                PermissionDeniedException;
414 
415     /**
416      * Gets a list of ActivityRegistrations for a given
417      * ActivityOffering.
418      *
419      * @param courseOfferingId an identifier for a ActivityOffering
420      * @param contextInfo information containing the principalId and
421      *        locale information about the caller of the service
422      *        operation
423      * @return list of ActivityRegistrations associated with the given
424      *         ActivityOffering or an empty list if none found
425      * @throws InvalidParameterException contextInfo is not valid
426      * @throws MissingParameterException courseOfferingId or
427      *         contextInfo is missing or null
428      * @throws OperationFailedException unable to complete request
429      * @throws PermissionDeniedException an authorization failure occurred
430      */
431     public List<ActivityRegistrationInfo> getActivityRegistrationsByActivityOffering(@WebParam(name = "courseOfferingId") String courseOfferingId,
432                                                                                      @WebParam(name = "contextInfo") ContextInfo contextInfo)
433         throws InvalidParameterException,
434                MissingParameterException, 
435                OperationFailedException, 
436                PermissionDeniedException;
437 
438     /**
439      * Gets a list of ActivityRegistrations for a given Student and
440      * ActivityOffering.
441      *
442      * @param studentId an identifier for a Student
443      * @param courseOfferingId an identifier for a ActivityOffering
444      * @param contextInfo information containing the principalId and
445      *        locale information about the caller of the service
446      *        operation
447      * @return list of ActivityRegistrations associated with the given
448      *         Student and ActivityOffering or an empty list if none
449      *         found
450      * @throws InvalidParameterException contextInfo is not valid
451      * @throws MissingParameterException studentId, courseOfferingId,
452      *         or contextInfo is missing or null
453      * @throws OperationFailedException unable to complete request
454      * @throws PermissionDeniedException an authorization failure occurred
455      */
456     public List<ActivityRegistrationInfo> getActivityRegistrationsByStudentAndActivityOffering(@WebParam(name = "studentId") String studentId,
457                                                                                                @WebParam(name = "courseOfferingId") String courseOfferingId,
458                                                                                                @WebParam(name = "contextInfo") ContextInfo contextInfo)
459         throws InvalidParameterException,
460                MissingParameterException, 
461                OperationFailedException, 
462                PermissionDeniedException;
463 
464     /**
465      * Gets a list of ActivityRegistrations for a given Student and
466      * Term.
467      *
468      * @param studentId an identifier for a Student
469      * @param termId an identifier for a Term
470      * @param contextInfo information containing the principalId and
471      *        locale information about the caller of the service
472      *        operation
473      * @return list of ActivityRegistrations associated with the given
474      *         Student and ActivityOffering or an empty list if none
475      *         found
476      * @throws InvalidParameterException contextInfo is not valid
477      * @throws MissingParameterException studentId, termId,
478      *         or contextInfo is missing or null
479      * @throws OperationFailedException unable to complete request
480      * @throws PermissionDeniedException an authorization failure occurred
481      */
482     public List<ActivityRegistrationInfo> getActivityRegistrationsByStudentAndTerm(@WebParam(name = "studentId") String studentId,
483                                                                                    @WebParam(name = "termId") String termId,
484                                                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
485         throws InvalidParameterException,
486                MissingParameterException, 
487                OperationFailedException, 
488                PermissionDeniedException;
489 
490     /**
491      * Searches for ActivityRegistrations that meet the given search
492      * criteria.
493      *
494      * @param criteria the search criteria
495      * @param contextInfo information containing the principalId and
496      *        locale information about the caller of the service
497      *        operation
498      * @return a list of ActivityRegistration identifiers matching the
499      *         criteria
500      * @throws InvalidParameterException criteria or contextInfo is
501      *         not valid
502      * @throws MissingParameterException criteria or or contextInfo is
503      *         missing or null
504      * @throws OperationFailedException unable to complete request
505      * @throws PermissionDeniedException an authorization failure occurred
506      */
507     public List<String> searchForActivityRegistrationIds(@WebParam(name = "criteria") QueryByCriteria criteria,
508                                                          @WebParam(name = "contextInfo") ContextInfo contextInfo)
509         throws InvalidParameterException,
510                MissingParameterException, 
511                OperationFailedException, 
512                PermissionDeniedException;
513 
514     /**
515      * Searches for ActivityRegistrations that meet the given search
516      * criteria.
517      *
518      * @param criteria the search criteria
519      * @param contextInfo information containing the principalId and
520      *        locale information about the caller of the service
521      *        operation
522      * @return a list of ActivityRegistrations matching the criteria
523      * @throws InvalidParameterException criteria or contextInfo is
524      *         not valid
525      * @throws MissingParameterException criteria or or contextInfo is
526      *         missing or null
527      * @throws OperationFailedException unable to complete request
528      * @throws PermissionDeniedException an authorization failure occurred
529      */
530     public List<ActivityRegistrationInfo> searchForActivityRegistrations(@WebParam(name = "criteria") QueryByCriteria criteria,
531                                                                          @WebParam(name = "contextInfo") ContextInfo contextInfo)
532         throws InvalidParameterException,
533                MissingParameterException, 
534                OperationFailedException, 
535                PermissionDeniedException;
536 
537     // RegistrationRequest methods
538 
539     /**
540      * Retrieves a single RegistrationRequest by an
541      * RegistrationRequest Id.
542      *
543      * @param registrationRequestId the identifier for the
544      *        RegistrationRequest to be retrieved
545      * @param contextInfo information containing the principalId and
546      *        locale information about the caller of the service
547      *        operation
548      * @return the RegistrationRequest requested
549      * @throws DoesNotExistException registrationRequestId is not found
550      * @throws InvalidParameterException contextInfo is not valid
551      * @throws MissingParameterException registrationRequestId or contextInfo is
552      *         missing or null
553      * @throws OperationFailedException unable to complete request
554      * @throws PermissionDeniedException an authorization failure occurred
555      */
556     public RegistrationRequestInfo getRegistrationRequest(@WebParam(name = "registrationRequestId") String registrationRequestId,
557                                                           @WebParam(name = "contextInfo") ContextInfo contextInfo)
558         throws DoesNotExistException, 
559                InvalidParameterException,
560                MissingParameterException, 
561                OperationFailedException, 
562                PermissionDeniedException;
563 
564     /**
565      * Retrieve a list of RegistrationRequests from a list of
566      * RegistrationRequest Ids. The returned list may be in any order
567      * and if duplicate Ids are supplied, a unique set may or may not
568      * ber returned.
569      *
570      * @param registrationRequestIds a list of RegistrationRequest
571      *        identifiers
572      * @param contextInfo information containing the principalId and
573      *        locale information about the caller of the service
574      *        operation
575      * @return a list of RegistrationRequests
576      * @throws DoesNotExistException a registrationRequestId in the
577      *         list was not found
578      * @throws InvalidParameterException contextInfo is not valid
579      * @throws MissingParameterException registrationRequestIds, an Id in
580      *         registrationRequestIds, or contextInfo is missing or null
581      * @throws OperationFailedException unable to complete request
582      * @throws PermissionDeniedException an authorization failure occurred
583      */
584     public List<RegistrationRequestInfo> getRegistrationRequestsByIds(@WebParam(name = "registrationRequestIds") List<String> registrationRequestIds,
585                                                                       @WebParam(name = "contextInfo") ContextInfo contextInfo)
586         throws DoesNotExistException, 
587                InvalidParameterException,
588                MissingParameterException, 
589                OperationFailedException, 
590                PermissionDeniedException;
591 
592     /**
593      * Retrieve a list of RegistrationRequestIds by
594      * RegistrationRequest Type.
595      *
596      * @param registrationRequestTypeKey an identifier for an
597      *        RegistrationRequest Type
598      * @param contextInfo information containing the principalId and
599      *        locale information about the caller of the service
600      *        operation
601      * @return a list of RegistrationRequests identifiers matching
602      *         registrationRequestTypeKey or an empty list of none
603      *         found
604      * @throws InvalidParameterException contextInfo is not valid
605      * @throws MissingParameterException registrationRequestTypeKey or
606      *         contextInfo is missing or null
607      * @throws OperationFailedException unable to complete request
608      * @throws PermissionDeniedException an authorization failure occurred
609      */
610     public List<String> getRegistrationRequestIdsByType(@WebParam(name = "registrationRequestTypeKey") String registrationRequestTypeKey,
611                                                         @WebParam(name = "contextInfo") ContextInfo contextInfo)
612         throws InvalidParameterException,
613                MissingParameterException, 
614                OperationFailedException, 
615                PermissionDeniedException;
616 
617     /**
618      * Gets a list of RegistrationRequests by requesting person Id. 
619      *
620      * @param personId an identifier for a Person
621      * @param contextInfo information containing the principalId and
622      *        locale information about the caller of the service
623      *        operation
624      * @return list of RegistrationRequests associated with the given Lui or
625      *         an empty list if none found 
626      * @throws InvalidParameterException contextInfo is not valid
627      * @throws MissingParameterException personId
628      *         or contextInfo is missing or null
629      * @throws OperationFailedException unable to complete request
630      * @throws PermissionDeniedException an authorization failure occurred
631      */
632     public List<RegistrationRequestInfo> getRegistrationRequestsByRequestor(@WebParam(name = "pesonId") String personId,
633                                                                             @WebParam(name = "contextInfo") ContextInfo contextInfo)
634         throws InvalidParameterException,
635                MissingParameterException, 
636                OperationFailedException, 
637                PermissionDeniedException;
638 
639     /**
640      * Gets a list of unsubmitted RegistrationRequests by requesting
641      * person Id and Term.
642      *
643      * @param personId an identifier for a Person
644      * @param termId an identifier for a Term
645      * @param contextInfo information containing the principalId and
646      *        locale information about the caller of the service
647      *        operation
648      * @return list of RegistrationRequests associated with the given Lui or
649      *         an empty list if none found 
650      * @throws InvalidParameterException contextInfo is not valid
651      * @throws MissingParameterException personId, termId,
652      *         or contextInfo is missing or null
653      * @throws OperationFailedException unable to complete request
654      * @throws PermissionDeniedException an authorization failure occurred
655      */
656 
657     public List<RegistrationRequestInfo> getUnsubmittedRegistrationRequestsByRequestorAndTerm(@WebParam(name = "requestorId") String requestorId, 
658                                                                                               @WebParam(name = "termId") String termId,
659                                                                                               @WebParam(name = "contextInfo") ContextInfo contextInfo) 
660         throws InvalidParameterException,
661                MissingParameterException, 
662                OperationFailedException, 
663                PermissionDeniedException;
664 
665     /**
666      * Searches for RegistrationRequests that meet the given search
667      * criteria.
668      *
669      * @param criteria the search criteria
670      * @param contextInfo information containing the principalId and
671      *        locale information about the caller of the service
672      *        operation
673      * @return a list of RegistrationRequest identifiers matching the
674      *         criteria
675      * @throws InvalidParameterException criteria or contextInfo is
676      *         not valid
677      * @throws MissingParameterException criteria or or contextInfo is
678      *         missing or null
679      * @throws OperationFailedException unable to complete request
680      * @throws PermissionDeniedException an authorization failure occurred
681      */
682     public List<String> searchForRegistrationRequestIds(@WebParam(name = "criteria") QueryByCriteria criteria,
683                                                         @WebParam(name = "contextInfo") ContextInfo contextInfo)
684         throws InvalidParameterException,
685                MissingParameterException, 
686                OperationFailedException, 
687                PermissionDeniedException;
688 
689     /**
690      * Searches for RegistrationRequests that meet the given search
691      * criteria.
692      *
693      * @param criteria the search criteria
694      * @param contextInfo information containing the principalId and
695      *        locale information about the caller of the service
696      *        operation
697      * @return a list of RegistrationRequests matching the criteria
698      * @throws InvalidParameterException criteria or contextInfo is
699      *         not valid
700      * @throws MissingParameterException criteria or or contextInfo is
701      *         missing or null
702      * @throws OperationFailedException unable to complete request
703      * @throws PermissionDeniedException an authorization failure occurred
704      */
705     public List<RegistrationRequestInfo> searchForRegistrationRequests(@WebParam(name = "criteria") QueryByCriteria criteria,
706                                                                        @WebParam(name = "contextInfo") ContextInfo contextInfo)
707         throws InvalidParameterException,
708                MissingParameterException, 
709                OperationFailedException, 
710                PermissionDeniedException;
711 
712     /**
713      * Validates an RegistrationRequest. Depending on the value of
714      * validationType, this validation could be limited to tests on
715      * just the current RegistrationRequest and its directly contained
716      * sub-objects or expanded to perform all tests related to this
717      * RegistrationRequest. If an identifier is present for the
718      * RegistrationRequest (and/or one of its contained sub-objects)
719      * and a record is found for that identifier, the validation
720      * checks if the RegistrationRequest can be updated to the new
721      * values. If an identifier is not present or a record does not
722      * exist, the validation checks if the RegistrationRequest with
723      * the given data can be created.
724      *
725      * @param validationTypeKey the identifier for the validation Type
726      * @param registrationRequestTypeKey the identifier for the
727      *        RegistrationRequest Type to be validated
728      * @param registrationRequestInfo the RegistrationRequest to be validated
729      * @param contextInfo information containing the principalId and
730      *        locale information about the caller of the service
731      *        operation
732      * @return a list of validation results or an empty list if
733      *         validation succeeded
734      * @throws DoesNotExistException validationTypeKey or
735      *         registrationRequestTypeKey is not found
736      * @throws InvalidParameterException registrationRequestInfo or
737      *         contextInfo is not valid
738      * @throws MissingParameterException validationTypeKey,
739      *         registrationRequestTypeKey, registrationRequestInfo, or
740      *         contextInfo is missing or null
741      * @throws OperationFailedException unable to complete request
742      * @throws PermissionDeniedException an authorization failure occurred
743      */
744     public List<ValidationResultInfo> validateRegistrationRequest(@WebParam(name = "validationTypeKey") String validationTypeKey,
745                                                                   @WebParam(name = "registrationRequestTypeKey") String registrationRequestTypeKey,
746                                                                   @WebParam(name = "registrationRequestInfo") RegistrationRequestInfo registrationRequestInfo,
747                                                                   @WebParam(name = "contextInfo") ContextInfo contextInfo)
748         throws DoesNotExistException,
749                InvalidParameterException,
750                MissingParameterException, 
751                OperationFailedException, 
752                PermissionDeniedException;
753 
754     /**
755      * Creates a new RegistrationRequest. The RegistrationRequest Id,
756      * Type, and Meta information may not be set in the supplied data
757      * object.
758      *
759      * @param registrationRequestTypeKey the identifier for the Type
760      *        of RegistrationRequest to be created
761      * @param registrationRequestInfo the data with which to create
762      *        the RegistrationRequest
763      * @param contextInfo information containing the principalId and
764      *        locale information about the caller of the service
765      *        operation
766      * @return the new RegistrationRequest
767      * @throws DataValidationErrorException supplied data is invalid
768      * @throws DoesNotExistException registrationRequestTypeKey does
769      *         not exist or is not supported
770      * @throws InvalidParameterException registrationRequestInfo or
771      *         contextInfo is not valid
772      * @throws MissingParameterException registrationRequestTypeKey,
773      *         registrationRequestInfo, or contextInfo is missing or null
774      * @throws OperationFailedException unable to complete request
775      * @throws PermissionDeniedException an authorization failure occurred
776      * @throws ReadOnlyException an attempt at supplying information
777      *         designated as read only
778      */
779     public RegistrationRequestInfo createRegistrationRequest(@WebParam(name = "registrationRequestTypeKey") String registrationRequestTypeKey,
780                                                              @WebParam(name = "registrationRequestInfo") RegistrationRequestInfo registrationRequestInfo,
781                                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
782         throws DataValidationErrorException,
783                DoesNotExistException,
784                InvalidParameterException,
785                MissingParameterException, 
786                OperationFailedException, 
787                PermissionDeniedException,
788                ReadOnlyException;
789 
790     /**
791      * A utiligy to create a new RegistrationRequest from an existing
792      * RegistrationRequest. Once a RegistrationRequest is submitted,
793      * it cannot be reused. If the registration fails, this method can
794      * be used to copy the contents of the failed request into a new
795      * request.
796      *
797      * @param registrationRequestId a RegistrationRequest from which to create 
798      *        the new one
799      * @param contextInfo information containing the principalId and
800      *        locale information about the caller of the service
801      *        operation
802      * @return the new RegistrationRequest
803      * @throws DoesNotExistException registrationRequestId does
804      *         not exist
805      * @throws InvalidParameterException contextInfo is not valid
806      * @throws MissingParameterException registrationRequestId or
807      *         contextInfo is missing or null
808      * @throws OperationFailedException unable to complete request
809      * @throws PermissionDeniedException an authorization failure occurred
810      */
811     public RegistrationRequestInfo createRegistrationRequestFromExisting(@WebParam(name = "registrationRequestId") String registrationRequestId, 
812                                                                          @WebParam(name = "contextInfo") ContextInfo contextInfo)
813         throws DoesNotExistException,               
814                InvalidParameterException,
815                MissingParameterException, 
816                OperationFailedException, 
817                PermissionDeniedException;
818 
819     /**
820      * Updates an existing RegistrationRequest. The
821      * RegistrationRequest Id, Type, and Meta information may not be
822      * changed.
823      *
824      * @param registrationRequestId the identifier for the
825      *        RegistrationRequest to be updated
826      * @param registrationRequestInfo the new data for the RegistrationRequest
827      * @param contextInfo information containing the principalId and
828      *        locale information about the caller of the service
829      *        operation
830      * @return the updated RegistrationRequest
831      * @throws DataValidationErrorException supplied data is invalid
832      * @throws DoesNotExistException registrationRequestId is not found
833      * @throws InvalidParameterException registrationRequestInfo or
834      *         contextInfo is not valid
835      * @throws MissingParameterException registrationRequestId,
836      *         registrationRequestInfo, or contextInfo is missing or
837      *         null
838      * @throws OperationFailedException unable to complete request
839      * @throws PermissionDeniedException an authorization failure occurred
840      * @throws ReadOnlyException an attempt at supplying information
841      *         designated as read only
842      * @throws VersionMismatchException an optimistic locking failure
843      *         or the action was attempted on an out of date version
844      */
845     public RegistrationRequestInfo updateRegistrationRequest(@WebParam(name = "registrationRequestId") String registrationRequestId,
846                                                              @WebParam(name = "registrationRequestInfo") RegistrationRequestInfo registrationRequestInfo,
847                                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
848         throws DataValidationErrorException,
849                DoesNotExistException,
850                InvalidParameterException,
851                MissingParameterException, 
852                OperationFailedException, 
853                PermissionDeniedException,
854                ReadOnlyException,
855                VersionMismatchException;                          
856 
857     /**
858      * Deletes an existing RegistrationRequest.
859      *
860      * @param registrationRequestId the identifier for the
861      *        RegistrationRequest to be deleted
862      * @param contextInfo information containing the principalId and
863      *        locale information about the caller of the service
864      *        operation
865      * @return the status of the delete operation. This must always be
866      *         true.q
867      * @throws DoesNotExistException registrationRequestId is not found
868      * @throws InvalidParameterException contextInfo is not valid
869      * @throws MissingParameterException registrationRequestId or
870      *         contextInfo is missing or null
871      * @throws OperationFailedException unable to complete request
872      * @throws PermissionDeniedException authorization failure
873      */
874     public StatusInfo deleteRegistrationRequest(@WebParam(name = "registrationRequestId") String registrationRequestId,
875                                                 @WebParam(name = "contextInfo") ContextInfo contextInfo) 
876         throws DoesNotExistException, 
877                InvalidParameterException,
878                MissingParameterException, 
879                OperationFailedException, 
880                PermissionDeniedException;
881 
882     /**
883      * Verifies a persisted RegistrationRequest for
884      * submission. validateRegistrationRequest() validates the data
885      * for persistence of the request itself. This method is intended
886      * as a final validation prior to submission and may perform
887      * additional checks, such as eligibility, course pre-requisites,
888      * and calculating credit load limits.
889      *
890      * @param registrationRequestId an identifier for a
891      *        RegistrationRequest
892      * @param contextInfo information containing the principalId and
893      *        locale information about the caller of the service
894      *        operation
895      * @return a list of ValidationResults
896      * @throws DoesNotExistException registrationRequestId
897      *         is not found
898      * @throws InvalidParameterException contextInfo is not valid
899      * @throws MissingParameterException, registrationRequestId or
900      *         contextInfo is missing or null
901      * @throws OperationFailedException unable to complete request
902      * @throws PermissionDeniedException an authorization failure occurred
903      */
904     public List<ValidationResultInfo> verifyRegistrationRequestForSubmission(@WebParam(name = "registrationRequestId") String registrationRequestId, 
905                                                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
906         throws DoesNotExistException,
907                InvalidParameterException,
908                MissingParameterException, 
909                OperationFailedException, 
910                PermissionDeniedException;
911 
912     /**
913      * Submits a RegsitrationRequest. This method is transactional and
914      * for multiple items, each RegistrationRequestItem must succeed
915      * or the entireregistration transaction fails.
916      *
917      * @param registrationRequestId an identifier for a RegistrationRequest
918      * @param contextInfo information containing the principalId and
919      *        locale information about the caller of the service
920      *        operation
921      * @return a RegistrationResponse
922      * @throws AlreadyExistsException When the reg request is already submitted
923      * @throws DoesNotExistException registrationRequestId
924      *         is not found
925      * @throws InvalidParameterException contextInfo is not valid
926      * @throws MissingParameterException, registrationRequestId or
927      *         contextInfo is missing or null
928      * @throws OperationFailedException unable to complete request
929      * @throws PermissionDeniedException an authorization failure occurred
930      */
931     public RegistrationResponseInfo submitRegistrationRequest(@WebParam(name = "registrationRequestId") String registrationRequestId, 
932                                                               @WebParam(name = "contextInfo") ContextInfo contextInfo) 
933         throws AlreadyExistsException,
934                DoesNotExistException,
935                InvalidParameterException,
936                MissingParameterException, 
937                OperationFailedException, 
938                PermissionDeniedException;
939 
940     /**
941      * Gets the RegistrationRequestItems that resulted in or impacted
942      * the given CourseRegistration.
943      * 
944      * @param courseRegistrationId an identifier for a CourseRegistration
945      * @param contextInfo information containing the principalId and
946      *        locale information about the caller of the service
947      *        operation
948      * @return list of RegistrationRequests associated with the given
949      *         CourseRegistration or an empty list if none found
950      * @throws InvalidParameterException contextInfo is not valid
951      * @throws MissingParameterException personId
952      *         or contextInfo is missing or null
953      * @throws OperationFailedException unable to complete request
954      * @throws PermissionDeniedException an authorization failure occurred
955      */
956     public List<RegistrationRequestItemInfo> getRegistrationRequestItemsForCourseRegistration(@WebParam(name = "courseRegistrationId") String courseRegistrationId, 
957                                                                                               @WebParam(name = "contextInfo") ContextInfo contextInfo)
958         throws InvalidParameterException,
959                MissingParameterException, 
960                OperationFailedException, 
961                PermissionDeniedException;
962 
963     /**
964      * Gets list of RegistrationRequestItems resulting in or impacting
965      * a Student's registration in a CourseOffering.
966      * 
967      * @param courseOfferingId an identifier for a CourseOffering
968      * @param studentId an identifier for a Student
969      * @param contextInfo information containing the principalId and
970      *        locale information about the caller of the service
971      *        operation
972      * @return list of RegistrationRequests associated with the given
973      *         CourseOffering or an empty list if none found
974      * @throws InvalidParameterException contextInfo is not valid
975      * @throws MissingParameterException courseOfferingId, personId,
976      *         or contextInfo is missing or null
977      * @throws OperationFailedException unable to complete request
978      * @throws PermissionDeniedException an authorization failure occurred
979      */
980     public List<RegistrationRequestItemInfo> getRegistrationRequestItemsByCourseOfferingAndStudent(@WebParam(name = "courseOfferingId") String courseOfferingId, 
981                                                                                                    @WebParam(name = "studentId") String studentId,
982                                                                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo) 
983         throws InvalidParameterException,
984                MissingParameterException, 
985                OperationFailedException, 
986                PermissionDeniedException;
987 
988     /**
989      * Checks if a student is eligible to enter the registration
990      * process. 
991      *
992      * @param studentId Identifier of the student
993      * @param contextInfo information containing the principalId and
994      *        locale information about the caller of the service
995      *        operation
996      * @return a list of errors, warnings, or informational messages
997      * @throws DoesNotExistException studentId is not found
998      * @throws InvalidParameterException contextInfo is not valid
999      * @throws MissingParameterException studentId or contextInfo is
1000      *         missing or null
1001      * @throws OperationFailedException unable to complete request
1002      * @throws PermissionDeniedException an authorization failure occurred
1003      */
1004                                                                                                    /// yes, no, messages
1005     public List<ValidationResultInfo> checkStudentEligibility(@WebParam(name = "studentId") String studentId, 
1006                                                               @WebParam(name = "contextInfo") ContextInfo contextInfo) 
1007         throws DoesNotExistException,
1008                InvalidParameterException,
1009                MissingParameterException, 
1010                OperationFailedException, 
1011                PermissionDeniedException;
1012 
1013     /**
1014      * Checks the eligibility of a student to register in a particular
1015      * term. 
1016      *
1017      * @param studentId an identifier of a Student
1018      * @param termId an identifier of a Term
1019      * @param contextInfo information containing the principalId and
1020      *        locale information about the caller of the service
1021      *        operation
1022      * @return a list of errors, warnings or informational messages
1023      * @throws DoesNotExistException studentId or termId is not found
1024      * @throws InvalidParameterException contextInfo is not valid
1025      * @throws MissingParameterException studentId, termId, or
1026      *         contextInfo is missing or null
1027      * @throws OperationFailedException unable to complete request
1028      * @throws PermissionDeniedException an authorization failure occurred
1029      */
1030     public List<ValidationResultInfo> checkStudentEligibilityForTerm(@WebParam(name = "studentId") String studentId, 
1031                                                                      @WebParam(name = "termId") String termId,
1032                                                                      @WebParam(name = "contextInfo") ContextInfo contextInfo) 
1033         throws DoesNotExistException,
1034                InvalidParameterException,
1035                MissingParameterException, 
1036                OperationFailedException, 
1037                PermissionDeniedException;
1038 
1039     /**
1040      * Checks if the student is eligible to register for a particular course
1041      * offering.
1042      *
1043      * @param studentId an identifier of a Student
1044      * @param courseOfferingId an identifier of a CourseOffering
1045      * @param contextInfo information containing the principalId and
1046      *        locale information about the caller of the service
1047      *        operation
1048      * @return a list of errors, warnings or informational messages
1049      * @throws DoesNotExistException studentId or courseOfferingId is
1050      *         not found
1051      * @throws InvalidParameterException contextInfo is not valid
1052      * @throws MissingParameterException studentId, courseOfferingId,
1053      *         or contextInfo is missing or null
1054      * @throws OperationFailedException unable to complete request
1055      * @throws PermissionDeniedException an authorization failure occurred
1056      */
1057     public List<ValidationResultInfo> checkStudentEligibiltyForCourseOffering(@WebParam(name = "studentId") String studentId, 
1058                                                                               @WebParam(name = "courseOfferingId") String courseOfferingId,
1059                                                                               @WebParam(name = "contextInfo") ContextInfo contextInfo) 
1060         throws DoesNotExistException,
1061                InvalidParameterException,
1062                MissingParameterException, 
1063                OperationFailedException, 
1064                PermissionDeniedException;
1065 
1066     /**
1067      * Checks if the student is eligible to register for a particular
1068      * registration group. 
1069      *
1070      * @param studentId an identifier of a Student
1071      * @param registrationGroupId an identifier of a RegistrationGroup
1072      * @param contextInfo information containing the principalId and
1073      *        locale information about the caller of the service
1074      *        operation
1075      * @return a list of errors, warnings or informational messages
1076      * @throws DoesNotExistException studentId or registrationGroupId
1077      *         is not found
1078      * @throws InvalidParameterException contextInfo is not valid
1079      * @throws MissingParameterException studentId,
1080      *         registrationGroupId, or contextInfo is missing or null
1081      * @throws OperationFailedException unable to complete request
1082      * @throws PermissionDeniedException an authorization failure occurred
1083      */
1084     public List<ValidationResultInfo> checkStudentEligibiltyForRegistrationGroup(@WebParam(name = "studentId") String studentId, 
1085                                                                                  @WebParam(name = "registrationGroupId") String registrationGroupId,
1086                                                                                  @WebParam(name = "contextInfo") ContextInfo contextInfo) 
1087         throws DoesNotExistException,
1088                InvalidParameterException,
1089                MissingParameterException, 
1090                OperationFailedException, 
1091                PermissionDeniedException;
1092 
1093     /**
1094      * Gets the Registration Groups for a CourseOffering for which the
1095      * given student is eligible to register.
1096      * 
1097      * @param studentId an identifier of a Student
1098      * @param courseOfferingId an identifier of a CourseOffering
1099      * @param contextInfo information containing the principalId and
1100      *        locale information about the caller of the service
1101      *        operation
1102      * @return a list of RegistrationGroups
1103      * @throws DoesNotExistException studentId or courseOfferingId is
1104      *         not found
1105      * @throws InvalidParameterException contextInfo is not valid
1106      * @throws MissingParameterException studentId, courseOfferingId,
1107      *         or contextInfo is missing or null
1108      * @throws OperationFailedException unable to complete request
1109      * @throws PermissionDeniedException an authorization failure occurred
1110      */
1111     public List<RegistrationGroupInfo> getEligibleRegistrationGroupsForStudentInCourseOffering(@WebParam(name = "studentId") String studentId, 
1112                                                                                                @WebParam(name = "courseOfferingId") String courseOfferingId,
1113                                                                                                @WebParam(name = "contextInfo") ContextInfo contextInfo) 
1114         throws DoesNotExistException,
1115                InvalidParameterException,
1116                MissingParameterException, 
1117                OperationFailedException, 
1118                PermissionDeniedException;
1119 
1120     /**
1121      * Calculate the credit load for a given student in a given
1122      * RegistrationRequest.
1123      * 
1124      * @param registrationRequestId an identifier of a RegistrationRequest
1125      * @param studentId an identifier of a Student
1126      * @param contextInfo information containing the principalId and
1127      *        locale information about the caller of the service
1128      *        operation
1129      * @return the credit load
1130      * @throws DoesNotExistException registrationRequestId is not
1131      *         found or studentId not in RegistrationRequest
1132      * @throws InvalidParameterException contextInfo is not valid
1133      * @throws MissingParameterException registrationRequestId, or
1134      *         contextInfo is missing or null
1135      * @throws OperationFailedException unable to complete request
1136      * @throws PermissionDeniedException an authorization failure occurred
1137      */
1138     public CreditLoadInfo calculateCreditLoadForStudentRegistrationRequest(@WebParam(name = "registrationRequestId") String registrationRequestId, 
1139                                                                            @WebParam(name = "studentId") String studentId, 
1140                                                                            @WebParam(name = "contextInfo") ContextInfo contextInfo)
1141         throws DoesNotExistException,
1142                InvalidParameterException,
1143                MissingParameterException, 
1144                OperationFailedException, 
1145                PermissionDeniedException;
1146 
1147     /**
1148      * Retrieves the available seat count for a particular course offering. It sums
1149      * up the available seats for individual registration groups under the same
1150      * course offering.
1151      * 
1152      * @param courseOfferingId
1153      * @param context  Information Containing the principalId and locale information about the caller of the service operation.
1154      * @return The available seat count for the specified CourseOffering.
1155      * @throws InvalidParameterException Invalid courseOfferingId in the input
1156      * @throws MissingParameterException Missing courseOfferingId in the input
1157      * @throws OperationFailedException Unable to complete request
1158      * @throws PermissionDeniedException Not authorized to do this operation
1159      */
1160                                                //    public Integer getAvailableSeatsForCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException,         MissingParameterException, OperationFailedException, PermissionDeniedException;
1161 
1162 
1163                                                       
1164     /**
1165      * Get available seat count for the registration group.
1166      * 
1167      * @param regGroupId Identifier of the registration group
1168      * @param context  Information Containing the principalId and locale information about the caller of the service operation.
1169      * @return The available seat count for the specified Registration Group
1170      * @throws InvalidParameterException Invalid regGroupId in the input
1171      * @throws MissingParameterException Missing regGroupId in the input
1172      * @throws OperationFailedException Unable to complete request
1173      * @throws PermissionDeniedException Not authorized to do this operation
1174      */
1175                                                       //    public Integer getAvailableSeatsForRegistrationGroup(@WebParam(name = "regGroupId") String regGroupId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException,            MissingParameterException, OperationFailedException, PermissionDeniedException;
1176 
1177     /**
1178      * Gets the number of seats available for a particular student in a
1179      * registration group.
1180      * <p>
1181      * Implementation notes : Seats available for a student taking seat pool (if
1182      * any) into consideration.
1183      * 
1184      * @param studentId Identifier of the student
1185      * @param regGroupId Identifier of the registration group
1186      * @param context  Information Containing the principalId and locale information about the caller of the service operation.
1187      * @return The available seat count for the specified student in a specified RegistrationGroup.
1188      * @throws InvalidParameterException Invalid studentId or regGroupId in the
1189      *             input
1190      * @throws MissingParameterException Missing studentId or regGroupId in the
1191      *             input
1192      * @throws OperationFailedException Unable to complete request
1193      * @throws PermissionDeniedException Not authorized to do this operation
1194      */
1195                                                       //    public Integer getAvailableSeatsForStudentInRegistrationGroup(@WebParam(name = "studentId") String studentId, @WebParam(name = "regGroupId") String regGroupId,            @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
1196 
1197     /**
1198      * Returns the available seat count in a particular seat pool. This is an admin
1199      * support function to check the seat pool usage.
1200      * 
1201      * @param seatPoolId Identifier of the seatPool
1202      * @param context  Information Containing the principalId and locale information about the caller of the service operation.
1203      * @return The available seat count for the specified seat pool.
1204      * @throws InvalidParameterException Invalid seatPool in the input
1205      * @throws MissingParameterException Missing parameter seatPoolId in the input
1206      * @throws OperationFailedException Unable to complete request
1207      * @throws PermissionDeniedException Not authorized to do this operation
1208      */
1209                                                       //    public Integer getAvailableSeatsInSeatPool(@WebParam(name = "seatPoolId") String seatPoolId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException,            MissingParameterException, OperationFailedException, PermissionDeniedException;                                               
1210 }