Coverage Report - org.kuali.student.enrollment.courseoffering.service.CourseOfferingService
 
Classes in this File Line Coverage Branch Coverage Complexity
CourseOfferingService
N/A
N/A
1
 
 1  
 /**
 2  
  * Copyright 2010 The Kuali Foundation
 3  
  *
 4  
  * Licensed under the the Educational Community License, Version 1.0
 5  
  * (the "License"); you may not use this file except in compliance
 6  
  * with the License.  You may obtain a copy of the License at
 7  
  *
 8  
  * http://www.opensource.org/licenses/ecl1.php
 9  
  *
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package org.kuali.student.enrollment.courseoffering.service;
 18  
 
 19  
 import org.kuali.rice.core.api.criteria.QueryByCriteria;
 20  
 import org.kuali.student.enrollment.courseoffering.dto.*;
 21  
 
 22  
 import org.kuali.student.r2.common.dto.ContextInfo;
 23  
 import org.kuali.student.r2.common.dto.StatusInfo;
 24  
 import org.kuali.student.r2.common.dto.ValidationResultInfo;
 25  
 
 26  
 import org.kuali.student.r2.common.exceptions.DataValidationErrorException;
 27  
 import org.kuali.student.r2.common.exceptions.DependentObjectsExistException;
 28  
 import org.kuali.student.r2.common.exceptions.DoesNotExistException;
 29  
 import org.kuali.student.r2.common.exceptions.InvalidParameterException;
 30  
 import org.kuali.student.r2.common.exceptions.MissingParameterException;
 31  
 import org.kuali.student.r2.common.exceptions.OperationFailedException;
 32  
 import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
 33  
 import org.kuali.student.r2.common.exceptions.ReadOnlyException;
 34  
 import org.kuali.student.r2.common.exceptions.VersionMismatchException;
 35  
 
 36  
 import org.kuali.student.r2.common.util.constants.CourseOfferingServiceConstants;
 37  
 import org.kuali.student.r2.core.type.dto.TypeInfo;
 38  
 
 39  
 import javax.jws.WebParam;
 40  
 import javax.jws.WebService;
 41  
 import javax.jws.soap.SOAPBinding;
 42  
 import java.util.List;
 43  
 import org.kuali.student.r2.common.exceptions.AlreadyExistsException;
 44  
 
 45  
 /**
 46  
  * Course Offering is a Class II service supporting the process of
 47  
  * offering courses for student registration.
 48  
  * 
 49  
  * Courses are offered for a specific term which is associated with a
 50  
  * specific Academic Calendar. At the canonical level a course is
 51  
  * defined by formats for which the course will be offered. Each
 52  
  * format describes the activity types that comprise that format,
 53  
  * e.g., lecture and lab.
 54  
  * 
 55  
  * The purpose of multiple formats is to support different formats
 56  
  * based on a term type, e.g., Fall versus Spring offering, or to
 57  
  * offer multiple formats in the same term, e.g., in person
 58  
  * (traditional) versus online. Offering a course is the process of
 59  
  * creating specific instances of the course, and for each format to
 60  
  * be offered in the selected term, creating a specified number of
 61  
  * each activity type that comprises the format, e.g. five (5)
 62  
  * lectures and ten (10) labs of Biology 101. Individual activity
 63  
  * offerings correspond to events in a scheduling system, each with a
 64  
  * meeting pattern. The term 'section' varies by institution, but
 65  
  * refers to either the individual activity offering, or it refers to
 66  
  * the combination of activity offerings, when the course has more
 67  
  * than one activity type, that the student registers in as part of
 68  
  * that course.  To avoid confusion, this service introduces a new
 69  
  * entity to capture the second definition of section. A registration
 70  
  * group represents a valid combination of activity offerings, even if
 71  
  * the number is one, in which a student registers. The design
 72  
  * supports unrestricted matching, e.g., any lecture with any lab, as
 73  
  * well as specific matching, e.g., lecture 1 with lab A or B, and
 74  
  * lecture 2 with lab C or D. Version: 1.0 (Dev)
 75  
  *
 76  
  * @author Kuali Student Team (Kamal)
 77  
  */
 78  
 @WebService(name = "CourseOfferingService", serviceName = "CourseOfferingService", portName = "CourseOfferingService", targetNamespace = CourseOfferingServiceConstants.NAMESPACE)
 79  
 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
 80  
 public interface CourseOfferingService {
 81  
 
 82  
     /**
 83  
      * Retrieves a single CourseOfferingAdminDisplayInfo by a
 84  
      * CourseOffering Id.
 85  
      *
 86  
      * @param courseOfferingId an identifier for a CourseOffering
 87  
      * @param contextInfo information containing the principalId and
 88  
      *        locale information about the caller of service operation
 89  
      * @return a CourseOfferingAdminDisplay
 90  
      * @throws DoesNotExistException courseOfferingId does not exist
 91  
      * @throws InvalidParameterException contextInfo is not valid
 92  
      * @throws MissingParameterException courseOfferingId or
 93  
      *         contextInfo is missing or null
 94  
      * @throws OperationFailedException  unable to complete request
 95  
      * @throws PermissionDeniedException an authorization failure occurred
 96  
      */
 97  
     public CourseOfferingAdminDisplayInfo getCourseOfferingAdminDisplay(@WebParam(name = "courseOfferingId") String courseOfferingId, 
 98  
                                                                         @WebParam(name = "contextInfo") ContextInfo contextInfo) 
 99  
                                                                     throws DoesNotExistException, 
 100  
                                                                         InvalidParameterException, 
 101  
                                                                         MissingParameterException, 
 102  
                                                                         OperationFailedException, 
 103  
                                                                         PermissionDeniedException;
 104  
 
 105  
     /**
 106  
      * Retrieve a list of CourseOfferingAdminDisplayInfos
 107  
      * corresponding to a list of CourseOfferingIds.
 108  
      *
 109  
      * @param courseOfferingIds a list of CourseOffering identifiers
 110  
      * @param contextInfo information containing the principalId and
 111  
      *        locale information about the caller of service operation
 112  
      * @return a list of CourseOfferingAdminDisplayInfos
 113  
      * @throws DoesNotExistException a courseOfferingId in the list not found
 114  
      * @throws InvalidParameterException contextInfo is not valid
 115  
      * @throws MissingParameterException courseOfferingIds, an Id in
 116  
      *         courseOfferingId, or contextInfo is missing or null
 117  
      * @throws OperationFailedException  unable to complete request
 118  
      * @throws PermissionDeniedException an authorization failure occurred
 119  
      */
 120  
     public List<CourseOfferingAdminDisplayInfo> getCourseOfferingAdminDisplaysByIds(@WebParam(name = "courseOfferingIds") List<String> courseOfferingIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 121  
 
 122  
     /**
 123  
      * Retrieves a single ActivityOfferingAdminDisplayInfo by a
 124  
      * ActivityOffering Id.
 125  
      *
 126  
      * @param activityOfferingId an identifier for an ActivityOffering
 127  
      * @param contextInfo information containing the principalId and
 128  
      *        locale information about the caller of service operation
 129  
      * @return an ActivityOfferingAdminDisplay
 130  
      * @throws DoesNotExistException activityOfferingId does not exist
 131  
      * @throws InvalidParameterException contextInfo is not valid
 132  
      * @throws MissingParameterException activityOfferingId or
 133  
      *         contextInfo is missing or null
 134  
      * @throws OperationFailedException  unable to complete request
 135  
      * @throws PermissionDeniedException an authorization failure occurred
 136  
      */
 137  
     public ActivityOfferingAdminDisplayInfo getActivityOfferingAdminDisplay(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 138  
 
 139  
     /**
 140  
      * Retrieve a list of ActivitAOfferingAdminDisplayInfos
 141  
      * corresponding to a list of ActivityOfferingIds.
 142  
      *
 143  
      * @param activityOfferingIds a list of ActivityOffering identifiers
 144  
      * @param contextInfo information containing the principalId and
 145  
      *        locale information about the caller of service operation
 146  
      * @return a list of ActivityOfferingAdminDisplayInfos
 147  
      * @throws DoesNotExistException an activityOfferingId in the list not found
 148  
      * @throws InvalidParameterException contextInfo is not valid
 149  
      * @throws MissingParameterException activityOfferingIds, an Id in
 150  
      *         activityOfferingId, or contextInfo is missing or null
 151  
      * @throws OperationFailedException unable to complete request
 152  
      * @throws PermissionDeniedException an authorization failure occurred
 153  
      */
 154  
     public List<ActivityOfferingAdminDisplayInfo> getActivityOfferingAdminDisplaysByIds(@WebParam(name = "activityOfferingIds") List<String> activityOfferingIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 155  
 
 156  
     /**
 157  
      * Retrieve a list of ActivityOfferingAdminDisplayInfos
 158  
      * corresponding to a CourseOffering Id. Activity Offerings for
 159  
      * all FormatOfferings within the given CourseOffering are used to
 160  
      * assemble this administrative view.
 161  
      *
 162  
      * @param courseOfferingId the identifier for a CourseOffering
 163  
      * @param contextInfo information containing the principalId and
 164  
      *        locale information about the caller of service operation
 165  
      * @return a list of ActivityOfferingAdminDisplayInfos
 166  
      * @throws DoesNotExistException courseOfferingId is not found
 167  
      * @throws InvalidParameterException contextInfo is not valid
 168  
      * @throws MissingParameterException courseOfferingId or
 169  
      *         contextInfo is missing or null
 170  
      * @throws OperationFailedException unable to complete request
 171  
      * @throws PermissionDeniedException an authorization failure occurred
 172  
      */
 173  
     public List<ActivityOfferingAdminDisplayInfo> getActivityOfferingAdminDisplaysForCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 174  
 
 175  
     /**
 176  
      * This method returns the TypeInfo for a given course offering type key.
 177  
      *
 178  
      * @param courseOfferingTypeKey Key of the type
 179  
      * @param context                 Context information containing the principalId and locale
 180  
      *                                information about the caller of service operation
 181  
      * @return Information about the Type
 182  
      * @throws DoesNotExistException     courseOfferingTypeKey not found
 183  
      * @throws InvalidParameterException invalid courseOfferingTypeKey
 184  
      * @throws MissingParameterException missing courseOfferingTypeKey
 185  
      * @throws OperationFailedException  unable to complete request
 186  
      * @throws PermissionDeniedException authorization failure
 187  
      */
 188  
     public TypeInfo getCourseOfferingType(@WebParam(name = "courseOfferingTypeKey") String courseOfferingTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 189  
 
 190  
     /**
 191  
      * This method returns the valid course offering types.
 192  
      *
 193  
      * @param context Context information containing the principalId and locale
 194  
      *                information about the caller of service operation
 195  
      * @return a list of valid course offering Types
 196  
      * @throws InvalidParameterException invalid context
 197  
      * @throws MissingParameterException missing context
 198  
      * @throws OperationFailedException  unable to complete request
 199  
      * @throws PermissionDeniedException authorization failure
 200  
      */
 201  
     public List<TypeInfo> getCourseOfferingTypes(@WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 202  
 
 203  
     /**
 204  
      * This method returns the valid instructor (lpr) types for a
 205  
      * course offering type.
 206  
      *
 207  
      * @param courseOfferingTypeKey a key for a course offering type
 208  
      * @param contextInfo information containing the principalId and
 209  
      *        locale information about the caller of service operation
 210  
      * @return a list of valid instructor types
 211  
      * @throws DoesNotExistException courseOfferingTypeKey not found
 212  
      * @throws InvalidParameterException contextInfo is not valud
 213  
      * @throws MissingParameterException courseOfferingTypeKey or
 214  
      *         contextInfo is missing or null
 215  
      * @throws OperationFailedException  unable to complete request
 216  
      * @throws PermissionDeniedException an authorization failure occurred
 217  
      */
 218  
     public List<TypeInfo> getInstructorTypesForCourseOfferingType(@WebParam(name = "courseOfferingTypeKey") String courseOfferingTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 219  
 
 220  
     /**
 221  
      * Retrieve information about a CourseOffering
 222  
      *
 223  
      * @param courseOfferingId Unique Id of the CourseOffering
 224  
      * @param context          Context information containing the principalId and locale
 225  
      *                         information about the caller of service operation
 226  
      * @throws DoesNotExistException     courseOfferingId not found
 227  
      * @throws InvalidParameterException invalid courseOfferingId
 228  
      * @throws MissingParameterException missing courseOfferingId
 229  
      * @throws OperationFailedException  unable to complete request
 230  
      * @throws PermissionDeniedException authorization failure
 231  
      */
 232  
     public CourseOfferingInfo getCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 233  
 
 234  
     /**
 235  
      * Retrieves a list of course offerings by id list.
 236  
      *
 237  
      * @param courseOfferingIds List of unique Ids of CourseOffering
 238  
      * @param context           Context information containing the principalId and locale
 239  
      *                          information about the caller of service operation
 240  
      * @throws DoesNotExistException     courseOfferingId in the list not found
 241  
      * @throws InvalidParameterException invalid courseOfferingIds
 242  
      * @throws MissingParameterException missing courseOfferingIds
 243  
      * @throws OperationFailedException  unable to complete request
 244  
      * @throws PermissionDeniedException authorization failure
 245  
      */
 246  
     public List<CourseOfferingInfo> getCourseOfferingsByIds(@WebParam(name = "courseOfferingIds") List<String> courseOfferingIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 247  
 
 248  
     /**
 249  
      * Retrieve CourseOfferings by canonical course id. 
 250  
      * This could
 251  
      * return multiple offerings in cases of multiple offerings for formats and
 252  
      * cross listed
 253  
      *
 254  
      * @param courseId Unique Id of the Course (canonical)
 255  
      * @param context  Context information containing the principalId and locale
 256  
      *                 information about the caller of service operation
 257  
      * @throws DoesNotExistException     courseId or termId not found
 258  
      * @throws InvalidParameterException invalid courseId or termId
 259  
      * @throws MissingParameterException missing courseId or termId
 260  
      * @throws OperationFailedException  unable to complete request
 261  
      * @throws PermissionDeniedException authorization failure
 262  
      */
 263  
     public List<CourseOfferingInfo> getCourseOfferingsByCourse(@WebParam(name = "courseId") String courseId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 264  
 
 265  
     /**
 266  
      * Retrieve CourseOfferings by canonical course id and term. This could
 267  
      * return multiple offerings in cases of multiple offerings for formats and
 268  
      * cross listed
 269  
      *
 270  
      * @param courseId Unique Id of the Course (canonical)
 271  
      * @param termId   Unique key of the term in which the course is being offered
 272  
      * @param context  Context information containing the principalId and locale
 273  
      *                 information about the caller of service operation
 274  
      * @throws DoesNotExistException     courseId or termId not found
 275  
      * @throws InvalidParameterException invalid courseId or termId
 276  
      * @throws MissingParameterException missing courseId or termId
 277  
      * @throws OperationFailedException  unable to complete request
 278  
      * @throws PermissionDeniedException authorization failure
 279  
      */
 280  
     public List<CourseOfferingInfo> getCourseOfferingsByCourseAndTerm(@WebParam(name = "courseId") String courseId, @WebParam(name = "termId") String termId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 281  
 
 282  
     /**
 283  
      * Retrieve CourseOffering Ids for a given term and if useIncludedTerms is
 284  
      * set to 'true' then use included terms also
 285  
      *
 286  
      * @param termId          Unique key of the term in which the course is being offered
 287  
      * @param useIncludedTerm Indicates if the offerings from included term are also to be
 288  
      *                        returned
 289  
      * @param context         Context information containing the principalId and locale
 290  
      *                        information about the caller of service operation
 291  
      * @return List of CourseOffering Ids
 292  
      * @throws DoesNotExistException     courseId or termId not found
 293  
      * @throws InvalidParameterException invalid courseId or termId
 294  
      * @throws MissingParameterException missing courseId or termId
 295  
      * @throws OperationFailedException  unable to complete request
 296  
      * @throws PermissionDeniedException authorization failure
 297  
      */
 298  
     public List<String> getCourseOfferingIdsByTerm(@WebParam(name = "termId") String termId, @WebParam(name = "useIncludedTerm") Boolean useIncludedTerm, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 299  
 
 300  
     /**
 301  
      * Retrieve CourseOffering Ids for a given term and subject area.
 302  
      * A CourseOffering will have an official and "other" subject areas, this
 303  
      * operation will the course offeiring ids with either official or other subject area
 304  
      * that match.
 305  
      *
 306  
      * @param termId      Unique key of the term in which the course is being offered
 307  
      * @param subjectArea subject area
 308  
      * @param context  information about the caller of service operation
 309  
      * @return List of CourseOffering Ids
 310  
      * @throws DoesNotExistException     courseId or termId not found
 311  
      * @throws InvalidParameterException invalid courseId or termId
 312  
      * @throws MissingParameterException missing courseId or termId
 313  
      * @throws OperationFailedException  unable to complete request
 314  
      * @throws PermissionDeniedException authorization failure
 315  
      */
 316  
     public List<String> getCourseOfferingIdsByTermAndSubjectArea(@WebParam(name = "termId") String termId, @WebParam(name = "subjectArea") String subjectArea, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 317  
 
 318  
     /**
 319  
      * Retrieve Course Offerings for a given term and instructor id
 320  
      *
 321  
      *
 322  
      * @param termId       Unique key of the term in which the course is being offered
 323  
      * @param instructorId person id of an instructor
 324  
      * @param context      Context information containing the principalId and locale
 325  
      *                     information about the caller of service operation
 326  
      * @return List of CourseOffering Ids
 327  
      * @throws DoesNotExistException     courseId or termId or instructorId not found
 328  
      * @throws InvalidParameterException invalid courseId or termId
 329  
      * @throws MissingParameterException missing courseId or termId
 330  
      * @throws OperationFailedException  unable to complete request
 331  
      * @throws PermissionDeniedException authorization failure
 332  
      */
 333  
     public List<CourseOfferingInfo> getCourseOfferingsByTermAndInstructor(@WebParam(name = "termId") String termId, @WebParam(name = "instructorId") String instructorId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 334  
 
 335  
     /**
 336  
      * Retrieve CourseOffering Ids for a given term and unit content owner
 337  
      *
 338  
      *
 339  
      * @param termId      Unique key of the term in which the course is being offered
 340  
      * @param unitsContentOwnerId Org Id of the Units content owner
 341  
      * @param context     Context information containing the principalId and locale
 342  
      *                    information about the caller of service operation
 343  
      * @return List of CourseOffering Ids
 344  
      * @throws DoesNotExistException     courseId or termId not found
 345  
      * @throws InvalidParameterException invalid courseId or termId
 346  
      * @throws MissingParameterException missing courseId or termId
 347  
      * @throws OperationFailedException  unable to complete request
 348  
      * @throws PermissionDeniedException authorization failure
 349  
      */
 350  
     public List<String> getCourseOfferingIdsByTermAndUnitsContentOwner(@WebParam(name = "termId") String termId, @WebParam(name = "unitsContentOwnerId") String unitsContentOwnerId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 351  
 
 352  
     /**
 353  
      * Retrieve CourseOffering Ids for a given term and unit content owner
 354  
      *
 355  
      * @param typeKey      Unique key of the term in which the course is being offered
 356  
      * @param context     Context information containing the principalId and locale
 357  
      *                    information about the caller of service operation
 358  
      * @return List of CourseOffering Ids
 359  
      * @throws DoesNotExistException     courseId or termId not found
 360  
      * @throws InvalidParameterException invalid courseId or termId
 361  
      * @throws MissingParameterException missing courseId or termId
 362  
      * @throws OperationFailedException  unable to complete request
 363  
      * @throws PermissionDeniedException authorization failure
 364  
      */
 365  
     public List<String> getCourseOfferingIdsByType(@WebParam(name = "typeKey") String typeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 366  
 
 367  
     /**
 368  
      * Get the valid options that can be specified to control 
 369  
      * canonical course to course offering operations.  
 370  
      * 
 371  
      * This can happen in several situations:
 372  
      * (1) When creating a course offering from scratch that copies data from the canonical
 373  
      * (2) When a course is rolledOver and the "use canonical" option is specified in a rollover
 374  
      * (3) When a course offering is explicitly asked to be updated based on the canonical
 375  
      * (4) When a course offering is explicitly asked to be validated against the canonical
 376  
      * 
 377  
      * These may identify fields to be copied or not copied or special checks or 
 378  
      * comparisons to be made, such as comparing that the credits of the course
 379  
      * are consistent with the specified classroom hours.
 380  
      * 
 381  
      * TODO: The exact types that can be specified here have not yet been defined
 382  
      * 
 383  
      * @param context      Context information containing the principalId and locale
 384  
      *                     information about the caller of service operation
 385  
      * @return list of option keys used to to indicate the options to be used when copying data.
 386  
      * @throws InvalidParameterException    One or more parameters invalid
 387  
      * @throws MissingParameterException    One or more parameters missing
 388  
      * @throws OperationFailedException     unable to complete request
 389  
      * @throws PermissionDeniedException    authorization failure
 390  
      */
 391  
     public List<String> getValidCanonicalCourseToCourseOfferingOptionKeys(@WebParam(name = "context") ContextInfo context) 
 392  
             throws InvalidParameterException, MissingParameterException, 
 393  
             OperationFailedException, PermissionDeniedException, ReadOnlyException;
 394  
     
 395  
      /**
 396  
      * Get the valid rollover option keys
 397  
      * 
 398  
      * This is the list of option keys supported by the rollover operation.
 399  
      * Keys released with kuali student can be found here
 400  
      * https://wiki.kuali.org/display/STUDENT/Course+Offering+Set+Types+and+States#CourseOfferingSetTypesandStates-RolloverOptionKeys
 401  
      * 
 402  
      * @param context      Context information containing the principalId and locale
 403  
      *                     information about the caller of service operation
 404  
      * @return list of option keys
 405  
      * @throws InvalidParameterException    One or more parameters invalid
 406  
      * @throws MissingParameterException    One or more parameters missing
 407  
      * @throws OperationFailedException     unable to complete request
 408  
      * @throws PermissionDeniedException    authorization failure
 409  
      */
 410  
     public List<String> getValidRolloverOptionKeys(@WebParam(name = "context") ContextInfo context) 
 411  
             throws InvalidParameterException, MissingParameterException, 
 412  
             OperationFailedException, PermissionDeniedException, ReadOnlyException;
 413  
 
 414  
 
 415  
 
 416  
     /**
 417  
      * Creates a new course offering from a canonical course.
 418  
      * 
 419  
      * Fields in course offering will be initialized with data from the canonical.
 420  
      *
 421  
      * @param courseId     Canonical course Id of courseOffering Id that the
 422  
      *                     ActivityOffering will belong to
 423  
      * @param termId       Unique key of the term in which the course is being offered
 424  
      *                     course offering
 425  
      * @param optionKeys options to use when copying data from the canonical
 426  
      * @param context      Context information containing the principalId and locale
 427  
      *                     information about the caller of service operation
 428  
      * @return newly created CourseOfferingInfo
 429  
      * @throws DoesNotExistException        courseId not found
 430  
      * @throws DataValidationErrorException One or more values invalid for this operation
 431  
      * @throws InvalidParameterException    One or more parameters invalid
 432  
      * @throws MissingParameterException    One or more parameters missing
 433  
      * @throws OperationFailedException     unable to complete request
 434  
      * @throws PermissionDeniedException    authorization failure
 435  
      */
 436  
     public CourseOfferingInfo createCourseOffering(@WebParam(name = "courseId") String courseId, 
 437  
             @WebParam(name = "termId") String termId, 
 438  
             @WebParam(name = "courseOfferingTypeKey") String courseOfferingTypeKey, 
 439  
             @WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo, 
 440  
             @WebParam(name = "optionKeys") List<String> optionKeys, 
 441  
             @WebParam(name = "context") ContextInfo context) throws DoesNotExistException,
 442  
             DataValidationErrorException, InvalidParameterException,
 443  
             MissingParameterException, OperationFailedException, PermissionDeniedException, 
 444  
             ReadOnlyException;
 445  
 
 446  
     
 447  
      /**
 448  
      * Creates a new course offering based on the source course offering.
 449  
      * 
 450  
      * Fields in course offering will be initialized with data from the source 
 451  
      * course offering.
 452  
      * .
 453  
      *
 454  
      * @param sourceCourseOfferingId  The id of the course offering to be rolled over.
 455  
      * @param targetTermId Unique key of the term in which the course is rolled over into
 456  
      * @param optionKeys keys that control optional processing
 457  
      * @param context      Context information containing the principalId and locale
 458  
      *                     information about the caller of service operation
 459  
      * @return newly created CourseOfferingInfo
 460  
      * @throws DoesNotExistException        sourceCoId not found
 461  
      * @throws AlreadyExistsException       if the course offering already exists in the target term and 
 462  
      *                                      skip if already exists option is specified
 463  
      * @throws DataValidationErrorException data in system is not valid or not valid for an option key specified
 464  
      * @throws InvalidParameterException    One or more parameters invalid
 465  
      * @throws MissingParameterException    One or more parameters missing
 466  
      * @throws OperationFailedException     unable to complete request
 467  
      * @throws PermissionDeniedException    authorization failure
 468  
      */
 469  
     public CourseOfferingInfo rolloverCourseOffering(@WebParam(name = "sourceCourseOfferingId") String sourceCourseOfferingId,  @WebParam(name = "targetTermId") String targetTermId, @WebParam(name = "optionKeys") List<String> optionKeys,  @WebParam(name = "context") ContextInfo context) throws AlreadyExistsException,
 470  
             DoesNotExistException, DataValidationErrorException, 
 471  
             InvalidParameterException, MissingParameterException, 
 472  
             OperationFailedException, PermissionDeniedException, ReadOnlyException;
 473  
 
 474  
     
 475  
     /**
 476  
      * Updates an existing CourseOffering.
 477  
      *
 478  
      * @param courseOfferingId   Id of CourseOffering to be updated
 479  
      * @param courseOfferingInfo Details of updates to the CourseOffering
 480  
      * @param context            Context information containing the principalId and locale
 481  
      *                           information about the caller of service operation
 482  
      * @return updated CourseOffering
 483  
      * @throws DataValidationErrorException One or more values invalid for this operation
 484  
      * @throws DoesNotExistException      the CourseOffering does not exist
 485  
      * @throws InvalidParameterException    One or more parameters invalid
 486  
      * @throws MissingParameterException    One or more parameters missing
 487  
      * @throws OperationFailedException     unable to complete request
 488  
      * @throws PermissionDeniedException    authorization failure
 489  
      * @throws VersionMismatchException     The action was attempted on an out of date version.
 490  
      */
 491  
     public CourseOfferingInfo updateCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 492  
 
 493  
     /**
 494  
      * Updates an existing CourseOffering from its canonical. This should
 495  
      * reinitialize and overwrite any changes to the course offering that were
 496  
      * made since its creation with the defaults from the canonical course
 497  
      *
 498  
      * @param courseOfferingId Id of CourseOffering to be updated     
 499  
      * @param optionKeys options to use when copying data from the canonical
 500  
      * @param context          Context information containing the principalId and locale
 501  
      *                         information about the caller of service operation
 502  
      * @return updated CourseOffering
 503  
      * @throws DataValidationErrorException One or more values invalid for this operation
 504  
      * @throws DoesNotExistException        the CourseOffering does not exist
 505  
      * @throws InvalidParameterException    One or more parameters invalid
 506  
      * @throws MissingParameterException    One or more parameters missing
 507  
      * @throws OperationFailedException     unable to complete request
 508  
      * @throws PermissionDeniedException    authorization failure
 509  
      * @throws VersionMismatchException     The action was attempted on an out of date version.
 510  
      */
 511  
     public CourseOfferingInfo updateCourseOfferingFromCanonical(@WebParam(name = "courseOfferingId") String courseOfferingId,
 512  
             @WebParam(name = "optionKeys") List<String> optionKeys, 
 513  
             @WebParam(name = "context") ContextInfo context) 
 514  
             throws DataValidationErrorException, DoesNotExistException, 
 515  
             InvalidParameterException, MissingParameterException, OperationFailedException, 
 516  
             PermissionDeniedException, VersionMismatchException;
 517  
 
 518  
     /**
 519  
      * Deletes an existing CourseOffering.
 520  
      *
 521  
      * @param courseOfferingId the Id of the ActivityOffering to be deleted
 522  
      * @param context          Context information containing the principalId and locale
 523  
      *                         information about the caller of service operation
 524  
      * @return status of the operation (success, failed)
 525  
      * @throws DoesNotExistException     the SeatPoolDefinition does not exist
 526  
      * @throws InvalidParameterException One or more parameters invalid
 527  
      * @throws MissingParameterException One or more parameters missing
 528  
      * @throws OperationFailedException  unable to complete request
 529  
      * @throws PermissionDeniedException authorization failure
 530  
      * @throws DependentObjectsExistException dependent object exist  for course offering
 531  
      */
 532  
     public StatusInfo deleteCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException;
 533  
 
 534  
     /**
 535  
      * Deletes an existing CourseOffering cascaded style. Deleting a course offering
 536  
      * cascaded style would also delete all the format offering, activity offerings
 537  
      * and registrations groups within
 538  
      * it. Cross listed course offerings should also be deleted along with
 539  
      * passed in courseOfferingId.
 540  
      *
 541  
      * @param courseOfferingId the Id of the ActivityOffering to be deleted
 542  
      * @param context          Context information containing the principalId and locale
 543  
      *                         information about the caller of service operation
 544  
      * @return status of the operation (success, failed)
 545  
      * @throws DoesNotExistException     the SeatPoolDefinition does not exist
 546  
      * @throws InvalidParameterException One or more parameters invalid
 547  
      * @throws MissingParameterException One or more parameters missing
 548  
      * @throws OperationFailedException  unable to complete request
 549  
      * @throws PermissionDeniedException authorization failure
 550  
      */
 551  
     public StatusInfo deleteCourseOfferingCascaded(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 552  
 
 553  
     /**
 554  
      * Validates a course offering. Depending on the value of validationType,
 555  
      * this validation could be limited to tests on just the current object and
 556  
      * its directly contained sub-objects or expanded to perform all tests
 557  
      * related to this object. If an identifier is present for the academic
 558  
      * calendar and a record is found for that identifier, the validation checks
 559  
      * if the academic calendar can be shifted to the new values. If a record
 560  
      * cannot be found for the identifier, it is assumed that the record does
 561  
      * not exist and as such, the checks performed will be much shallower,
 562  
      * typically mimicking those performed by setting the validationType to the
 563  
      * current object. This is a slightly different pattern from the standard
 564  
      * validation as the caller provides the identifier in the create statement
 565  
      * instead of the server assigning an identifier.
 566  
      *
 567  
      * @param validationType     Identifier of the extent of validation
 568  
      * @param courseOfferingInfo the course offering information to be tested.
 569  
      * @param context            Context information containing the principalId and locale
 570  
      *                           information about the caller of service operation
 571  
      * @return the results from performing the validation
 572  
      * @throws DoesNotExistException     validationTypeKey not found
 573  
      * @throws InvalidParameterException invalid validationTypeKey, courseOfferingInfo
 574  
      * @throws MissingParameterException missing validationTypeKey, courseOfferingInfo
 575  
      * @throws OperationFailedException  unable to complete request
 576  
      */
 577  
     public List<ValidationResultInfo> validateCourseOffering(@WebParam(name = "validationType") String validationType, @WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
 578  
 
 579  
     /**
 580  
      * Validates / Compares a course offering against it's canonical course.
 581  
      * 
 582  
      * @param courseOfferingInfo the course offering information to be tested.
 583  
      * @param context            Context information containing the principalId and locale
 584  
      *                           information about the caller of service operation
 585  
      * @return the results from performing the validation
 586  
      * @throws DoesNotExistException if the course associated with the course offering does not exist
 587  
      * @throws InvalidParameterException if a parameter is invalid
 588  
      * @throws MissingParameterException if a parameter is missing
 589  
      * @throws OperationFailedException unable to complete request
 590  
      */
 591  
     public List<ValidationResultInfo> validateCourseOfferingFromCanonical(@WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo, 
 592  
             @WebParam(name = "optionKeys") List<String> optionKeys, 
 593  
             @WebParam(name = "context") ContextInfo context) 
 594  
             throws DoesNotExistException, InvalidParameterException, 
 595  
             MissingParameterException, OperationFailedException;
 596  
 
 597  
     /**
 598  
      *  Gets an format offering  based on Id.
 599  
      *
 600  
      * @param formatOfferingId  The  Format Offering  identifier
 601  
      * @param  context
 602  
      * @return
 603  
      * @throws DoesNotExistException  The Format Offering doesn't exist
 604  
      * @throws InvalidParameterException  Invalid formatOfferingId
 605  
      * @throws MissingParameterException  Missing formatOfferingId
 606  
      * @throws OperationFailedException    unable to complete request
 607  
      * @throws PermissionDeniedException
 608  
      */
 609  
     public FormatOfferingInfo getFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 610  
 
 611  
     /**
 612  
      * Gets a list of format offering by a course offering id they belong to.
 613  
      * @param courseOfferingId  Course offering identifier
 614  
      * @param context
 615  
      * @return
 616  
      * @throws DoesNotExistException   The course offering  doesn't exist
 617  
      * @throws InvalidParameterException Invalid course offering id
 618  
      * @throws MissingParameterException     Missing course offering id
 619  
      * @throws OperationFailedException    unable to complete request
 620  
      * @throws PermissionDeniedException   authorization failure
 621  
      */
 622  
     public List<FormatOfferingInfo> getFormatOfferingsByCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 623  
 
 624  
     /**
 625  
      * Creates an  Format Offering  for a course offering
 626  
      *
 627  
      * @param courseOfferingId  Course offering that the  Format Offering  belongs to
 628  
      * @param formatId
 629  
      * @param formatOfferingType  the type key of the  Format Offering  template
 630  
      * @param formatOfferingInfo  The Format Offering  info object
 631  
      * @return
 632  
      * @throws DataValidationErrorException
 633  
      * @throws DoesNotExistException if courseOfferingId or formatId does not exist for the course in the course offering
 634  
      * @throws InvalidParameterException Invalid course offering id
 635  
      * @throws MissingParameterException     Missing course offering id, formatOfferingTemplate  or formatOfferingType
 636  
      * @throws OperationFailedException    unable to complete request
 637  
      * @throws PermissionDeniedException
 638  
      */
 639  
     public FormatOfferingInfo createFormatOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "formatId") String formatId, @WebParam(name = "formatOfferingType") String formatOfferingType, @WebParam(name = "formatOfferingInfo") FormatOfferingInfo formatOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 640  
 
 641  
     /**
 642  
      * Update a  Format Offering
 643  
      *
 644  
      * @param formatOfferingId  The  Id formatOffering to be updated
 645  
      * @param formatOfferingInfo  The new formatOffering Info
 646  
      * @param context
 647  
      * @return
 648  
      * @throws DataValidationErrorException   One or more values invalid for this operation
 649  
      * @throws DoesNotExistException  The formatOfferingId doesn't exist
 650  
      * @throws InvalidParameterException Invalid  formatOfferingId or formatOffering
 651  
      * @throws MissingParameterException Missing formatOffering or  formatOfferingId
 652  
      * @throws OperationFailedException    unable to complete request
 653  
      * @throws PermissionDeniedException   authorization failure
 654  
      * @throws VersionMismatchException stale version being updated
 655  
      */
 656  
     public FormatOfferingInfo updateFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "formatOfferingInfo") FormatOfferingInfo formatOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 657  
 
 658  
 
 659  
     /**
 660  
         * Validates a format offering. Depending on the value of validationType,
 661  
         * this validation could be limited to tests on just the current object and
 662  
         * its directly contained sub-objects or expanded to perform all tests
 663  
         * related to this object.
 664  
         *
 665  
         * @param validationType     Identifier of the extent of validation
 666  
         * @param formatOfferingInfo the format offering information to be tested.
 667  
         * @param context            Context information containing the principalId and locale
 668  
         *                           information about the caller of service operation
 669  
         * @return the results from performing the validation
 670  
         * @throws DoesNotExistException     validationTypeKey not found
 671  
         * @throws InvalidParameterException invalid validationTypeKey, formatOfferingInfo
 672  
         * @throws MissingParameterException missing validationTypeKey, formatOfferingInfo
 673  
         * @throws OperationFailedException  unable to complete request
 674  
         */
 675  
        public List<ValidationResultInfo> validateFormatOffering(@WebParam(name = "validationType") String validationType, @WebParam(name = "formatOfferingInfo") FormatOfferingInfo formatOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
 676  
 
 677  
 
 678  
     /**
 679  
      * Deletes an  Format Offering
 680  
      *
 681  
      * @param formatOfferingId  The  Id formatOffering to be deleted
 682  
      * @param context
 683  
      * @return
 684  
      * @throws DoesNotExistException  The formatOfferingId doesn't exist
 685  
      * @throws InvalidParameterException  Invalid  formatOfferingId
 686  
      * @throws MissingParameterException  Missing  formatOfferingId
 687  
      * @throws OperationFailedException    unable to complete request
 688  
      * @throws PermissionDeniedException   authorization failure
 689  
      * @throws DependentObjectsExistException if a dependent object exists
 690  
      */
 691  
     public StatusInfo deleteFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException;
 692  
 
 693  
 
 694  
     /**
 695  
      * Deletes an  Format Offering with dependent Activity Offering and Registration group
 696  
      *
 697  
      * @param formatOfferingId  The  Id formatOffering to be deleted
 698  
      * @param context
 699  
      * @return
 700  
      * @throws DoesNotExistException  The formatOfferingId doesn't exist
 701  
      * @throws InvalidParameterException  Invalid  formatOfferingId
 702  
      * @throws MissingParameterException  Missing  formatOfferingId
 703  
      * @throws OperationFailedException    unable to complete request
 704  
      * @throws PermissionDeniedException   authorization failure
 705  
      */
 706  
 
 707  
     public StatusInfo deleteFormatOfferingCascaded(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 708  
 
 709  
     /**
 710  
      * This method returns the TypeInfo for a given activity offering type key.
 711  
      *
 712  
      * @param activityOfferingTypeKey Key of the type
 713  
      * @param context                 Context information containing the principalId and locale
 714  
      *                                information about the caller of service operation
 715  
      * @return Information about the Type
 716  
      * @throws DoesNotExistException     activityOfferingTypeKey not found
 717  
      * @throws InvalidParameterException invalid activityOfferingTypeKey
 718  
      * @throws MissingParameterException missing activityOfferingTypeKey
 719  
      * @throws OperationFailedException  unable to complete request
 720  
      * @throws PermissionDeniedException authorization failure
 721  
      */
 722  
     public TypeInfo getActivityOfferingType(@WebParam(name = "activityOfferingTypeKey") String activityOfferingTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 723  
 
 724  
     /**
 725  
      * This method returns the valid activity offering types.
 726  
      *
 727  
      * @param context Context information containing the principalId and locale
 728  
      *                information about the caller of service operation
 729  
      * @return a list of valid activity offering Types
 730  
      * @throws InvalidParameterException invalid context
 731  
      * @throws MissingParameterException missing context
 732  
      * @throws OperationFailedException  unable to complete request
 733  
      * @throws PermissionDeniedException authorization failure
 734  
      */
 735  
     public List<TypeInfo> getActivityOfferingTypes(@WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 736  
 
 737  
     /**
 738  
      * This method returns the valid activity offering types for a given
 739  
      * canonical activity type
 740  
      *
 741  
      * @param activityTypeKey Key of the canonical activity type
 742  
      * @param context         Context information containing the principalId and locale
 743  
      *                        information about the caller of service operation
 744  
      * @return a list of valid activity offering Types
 745  
      * @throws DoesNotExistException     activityOfferingTypeKey not found
 746  
      * @throws InvalidParameterException invalid context
 747  
      * @throws MissingParameterException missing context
 748  
      * @throws OperationFailedException  unable to complete request
 749  
      * @throws PermissionDeniedException authorization failure
 750  
      */
 751  
     public List<TypeInfo> getActivityOfferingTypesForActivityType(@WebParam(name = "activityTypeKey") String activityTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 752  
 
 753  
     /**
 754  
      * This method returns the valid instructor (lpr) types for an
 755  
      * activity offering type.
 756  
      *
 757  
      * @param activityOfferingTypeKey a key for an activity offering type
 758  
      * @param contextInfo information containing the principalId and
 759  
      *        locale information about the caller of service operation
 760  
      * @return a list of valid instructor types
 761  
      * @throws DoesNotExistException     activityOfferingTypeKey not found
 762  
      * @throws InvalidParameterException context is not valud
 763  
      * @throws MissingParameterException activityOfferingTypeKey or
 764  
      *         contextInfo is missing or null
 765  
      * @throws OperationFailedException  unable to complete request
 766  
      * @throws PermissionDeniedException an authorization failure occurred
 767  
      */
 768  
     public List<TypeInfo> getInstructorTypesForActivityOfferingType(@WebParam(name = "activityOfferingTypeKey") String activityOfferingTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 769  
 
 770  
     /**
 771  
      * Retrieve information about an ActivityOffering
 772  
      *
 773  
      * @param activityOfferingId Unique Id of the ActivityOffering
 774  
      * @param context            Context information containing the principalId and locale
 775  
      *                           information about the caller of service operation
 776  
      * @return ActivityOffering associated with the passed in Id
 777  
      * @throws DoesNotExistException     seatPoolDefinitionId not found
 778  
      * @throws InvalidParameterException invalid activityOfferingId
 779  
      * @throws MissingParameterException missing activityOfferingId
 780  
      * @throws OperationFailedException  unable to complete request
 781  
      * @throws PermissionDeniedException authorization failure
 782  
      */
 783  
     public ActivityOfferingInfo getActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 784  
 
 785  
     /**
 786  
      * Retrieves a list of activity offerings by id list.
 787  
      *
 788  
      * @param activityOfferingIds List of unique Ids of ActivityCourseOffering
 789  
      * @param context             Context information containing the principalId and locale
 790  
      *                            information about the caller of service operation
 791  
      * @return Activity offering list
 792  
      * @throws DoesNotExistException     activityOfferingId in the list not found
 793  
      * @throws InvalidParameterException invalid activityOfferingIds
 794  
      * @throws MissingParameterException missing activityOfferingIds
 795  
      * @throws OperationFailedException  unable to complete request
 796  
      * @throws PermissionDeniedException authorization failure
 797  
      */
 798  
     public List<ActivityOfferingInfo> getActivityOfferingsByIds(@WebParam(name = "activityOfferingIds") List<String> activityOfferingIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 799  
 
 800  
     /**
 801  
      * Retrieves a list of ActivityOffering records that belongs to a
 802  
      * CourseOffering.
 803  
      *
 804  
      * @param courseOfferingId Unique Id of the CourseOffering
 805  
      * @param context          Context information containing the principalId and locale
 806  
      *                         information about the caller of service operation
 807  
      * @return List of ActivityOffering
 808  
      * @throws DoesNotExistException     courseOfferingId not found
 809  
      * @throws InvalidParameterException invalid courseOfferingId
 810  
      * @throws MissingParameterException missing courseOfferingId
 811  
      * @throws OperationFailedException  unable to complete request
 812  
      * @throws PermissionDeniedException authorization failure
 813  
      */
 814  
     public List<ActivityOfferingInfo> getActivityOfferingsByCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 815  
 
 816  
     /**
 817  
      * Retrieves a list of ActivityOffering records that belongs to a
 818  
      * CourseOffering.
 819  
      *
 820  
      * @param formatOfferingId Unique Id of the CourseOffering
 821  
      * @param context          Context information containing the principalId and locale
 822  
      *                         information about the caller of service operation
 823  
      * @return List of ActivityOffering
 824  
      * @throws DoesNotExistException     courseOfferingId not found
 825  
      * @throws InvalidParameterException invalid courseOfferingId
 826  
      * @throws MissingParameterException missing courseOfferingId
 827  
      * @throws OperationFailedException  unable to complete request
 828  
      * @throws PermissionDeniedException authorization failure
 829  
      */
 830  
     public List<ActivityOfferingInfo> getActivityOfferingsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 831  
 
 832  
     /**
 833  
      * Retrieves the Activity Offerings by actvity offering template id which don't have
 834  
      * registration groups created for them yet.
 835  
      *
 836  
      * @param courseOfferingId  The Id of the course offering
 837  
      * @param context
 838  
      * @return
 839  
      * @throws DoesNotExistException   The courseOfferingId does not exist
 840  
      * @throws InvalidParameterException  Invalid formatOfferingId
 841  
      * @throws MissingParameterException  Missing formatOfferingId
 842  
      * @throws OperationFailedException  unable to complete request
 843  
      * @throws PermissionDeniedException authorization failure
 844  
      */
 845  
     public List<ActivityOfferingInfo> getActivityOfferingsByCourseOfferingWithoutRegGroup(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 846  
 
 847  
 
 848  
        /**
 849  
      * Creates a new Activity Offering for a format offering.
 850  
      *
 851  
      *
 852  
      * @param formatOfferingId       courseOffering that the ActivityOffering belongs to
 853  
      * @param activityId  the canonical activity this is associated with
 854  
      * @param activityOfferingInfo Details of the ActivityOffering to be created
 855  
      * @param context              Context information containing the principalId and locale
 856  
      *                             information about the caller of service operation
 857  
      * @return newly created ActivityOffering
 858  
      * @throws DoesNotExistException        if the format offering does not exist
 859  
      * @throws DataValidationErrorException One or more values invalid for this operation
 860  
      * @throws InvalidParameterException    One or more parameters invalid
 861  
      * @throws MissingParameterException    One or more parameters missing
 862  
      * @throws OperationFailedException     unable to complete request
 863  
      * @throws PermissionDeniedException    authorization failure
 864  
      */
 865  
     public ActivityOfferingInfo createActivityOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "activityId") String activityId, @WebParam(name = "activityOfferingTypeKey") String activityOfferingTypeKey, @WebParam(name = "activityOfferingInfo") ActivityOfferingInfo activityOfferingInfo, @WebParam(name = "context") ContextInfo context)  throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 866  
     /**
 867  
      * Creates a new Activity Offering from another activity offering, the generated activity offering is the same format offering, type and canonical activity as the source activity fofering
 868  
      *
 869  
      *
 870  
      * @param activityOfferingId  the  activity offering used as source
 871  
      * @param context              Context information containing the principalId and locale
 872  
      *                             information about the caller of service operation
 873  
      * @return newly created ActivityOffering
 874  
      * @throws DoesNotExistException        if the format offering does not exist
 875  
      * @throws DataValidationErrorException One or more values invalid for this operation
 876  
      * @throws InvalidParameterException    One or more parameters invalid
 877  
      * @throws MissingParameterException    One or more parameters missing
 878  
      * @throws OperationFailedException     unable to complete request
 879  
      * @throws PermissionDeniedException    authorization failure
 880  
      */
 881  
     public ActivityOfferingInfo copyActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context)  throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 882  
 
 883  
     /**
 884  
      * Generates activity offerings based on a format offering.
 885  
      *
 886  
      * @param formatOfferingId
 887  
      * @param  activityOfferingType
 888  
      * @param  quantity
 889  
      * @param context
 890  
      * @return
 891  
      * @throws InvalidParameterException    formatOfferingId invalid
 892  
      * @throws MissingParameterException    Missing formatOfferingId in the input
 893  
      * @throws OperationFailedException     unable to complete request
 894  
      * @throws PermissionDeniedException    authorization failure
 895  
      */
 896  
     List<ActivityOfferingInfo> generateActivityOfferings(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "activityOfferingType")String activityOfferingType,@WebParam(name = "quantity") Integer  quantity,  @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 897  
 
 898  
     /**
 899  
      * Updates an existing ActivityOffering.
 900  
      *
 901  
      * @param activityOfferingId   Id of ActivitOffering to be updated
 902  
      * @param activityOfferingInfo Details of updates to the ActivityOffering
 903  
      * @param context              Context information containing the principalId and locale
 904  
      *                             information about the caller of service operation
 905  
      * @return updated ActivityOffering
 906  
      * @throws DataValidationErrorException One or more values invalid for this operation
 907  
      * @throws DoesNotExistException        the ActivityOffering does not exist
 908  
      * @throws InvalidParameterException    One or more parameters invalid
 909  
      * @throws MissingParameterException    One or more parameters missing
 910  
      * @throws OperationFailedException     unable to complete request
 911  
      * @throws PermissionDeniedException    authorization failure
 912  
      * @throws VersionMismatchException     The action was attempted on an out of date version.
 913  
      */
 914  
     public ActivityOfferingInfo updateActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "activityOfferingInfo") ActivityOfferingInfo activityOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException, ReadOnlyException;
 915  
 
 916  
     /**
 917  
      * Deletes an existing ActivityOffering. Deleting an activity will also
 918  
      * delete any relation it has with course offerings. An activity offering
 919  
      * cannot be deleted if it is being referenced in a registration group and will be
 920  
      * DependentObjectsExistException. The
 921  
      * registration group needs to be updated to drop the activity offering
 922  
      * references before the activity offering can be deleted. The difference in
 923  
      * behavior is because of the relationship nature is different between
 924  
      * course offering to activity offering and registration group to activity
 925  
      * offering. Course offering contains activity offering, so deleting an
 926  
      * activity offering can be logically interpreted as removing the containing
 927  
      * relationship. Registration group only references existing activity
 928  
      * offerings and hence deleting an activity offering will leave the
 929  
      * registration group in inconsistent state and updating registration group
 930  
      * automatically will lead to unintended side effects.
 931  
      *
 932  
      * @param activityOfferingId the Id of the ActivityOffering to be deleted
 933  
      * @param context            Context information containing the principalId and locale
 934  
      *                           information about the caller of service operation
 935  
      * @return status of the operation (success, failed)
 936  
      * @throws DoesNotExistException     the SeatPoolDefinition does not exist
 937  
      * @throws InvalidParameterException One or more parameters invalid
 938  
      * @throws MissingParameterException One or more parameters missing
 939  
      * @throws OperationFailedException  unable to complete request
 940  
      * @throws PermissionDeniedException authorization failure
 941  
      * @throws  DependentObjectsExistException
 942  
      */
 943  
     public StatusInfo deleteActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException , DependentObjectsExistException;
 944  
 
 945  
     /**
 946  
      * Validates an activity offering. Depending on the value of validationType,
 947  
      * this validation could be limited to tests on just the current object and
 948  
      * its directly contained sub-objects or expanded to perform all tests
 949  
      * related to this object. If an identifier is present for the academic
 950  
      * calendar and a record is found for that identifier, the validation checks
 951  
      * if the academic calendar can be shifted to the new values. If a record
 952  
      * cannot be found for the identifier, it is assumed that the record does
 953  
      * not exist and as such, the checks performed will be much shallower,
 954  
      * typically mimicking those performed by setting the validationType to the
 955  
      * current object. This is a slightly different pattern from the standard
 956  
      * validation as the caller provides the identifier in the create statement
 957  
      * instead of the server assigning an identifier.
 958  
      *
 959  
      * @param validationType       Identifier of the extent of validation
 960  
      * @param activityOfferingInfo the activity offering information to be tested.
 961  
      * @param context              Context information containing the principalId and locale
 962  
      *                             information about the caller of service operation
 963  
      * @return the results from performing the validation
 964  
      * @throws DoesNotExistException     validationTypeKey not found
 965  
      * @throws InvalidParameterException invalid validationTypeKey, academicCalendarInfo
 966  
      * @throws MissingParameterException missing validationTypeKey, academicCalendarInfo
 967  
      * @throws OperationFailedException  unable to complete request
 968  
      */
 969  
     public List<ValidationResultInfo> validateActivityOffering(@WebParam(name = "validationType") String validationType, @WebParam(name = "activityOfferingInfo") ActivityOfferingInfo activityOfferingInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
 970  
 
 971  
     /**
 972  
      * When/for how long does the offering meet in class during the term.
 973  
      * Calculated by system based on meeting times and term length; may be
 974  
      * validated against CLU.
 975  
      *
 976  
      * @param activityOfferingId the Id of the ActivityOffering to be used for contact hour
 977  
      *                           calculation
 978  
      * @param context            Context information containing the principalId and locale
 979  
      *                           information about the caller of service operation
 980  
      * @return in class contact hours for the term
 981  
      * @throws DoesNotExistException     the SeatPoolDefinition does not exist
 982  
      * @throws InvalidParameterException One or more parameters invalid
 983  
      * @throws MissingParameterException One or more parameters missing
 984  
      * @throws OperationFailedException  unable to complete request
 985  
      * @throws PermissionDeniedException authorization failure
 986  
      */
 987  
     public Float calculateInClassContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 988  
 
 989  
     /**
 990  
      * When/for how long does the offering meet out of class during the term.
 991  
      * Calculated by system based on meeting times and term length; may be
 992  
      * validated against CLU.
 993  
      *
 994  
      * @param activityOfferingId the Id of the ActivityOffering to be used for contact hour
 995  
      *                           calculation
 996  
      * @param context            Context information containing the principalId and locale
 997  
      *                           information about the caller of service operation
 998  
      * @return out of class contact hours for the term
 999  
      * @throws DoesNotExistException     the SeatPoolDefinition does not exist
 1000  
      * @throws InvalidParameterException One or more parameters invalid
 1001  
      * @throws MissingParameterException One or more parameters missing
 1002  
      * @throws OperationFailedException  unable to complete request
 1003  
      * @throws PermissionDeniedException authorization failure
 1004  
      */
 1005  
     public Float calculateOutofClassContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1006  
 
 1007  
     /**
 1008  
      * When/for how long does the offering meet in total during the term.
 1009  
      * Calculated by system based on meeting times and term length; may be
 1010  
      * validated against CLU.
 1011  
      *
 1012  
      * @param activityOfferingId the Id of the ActivityOffering to be used for contact hour
 1013  
      *                           calculation
 1014  
      * @param context            Context information containing the principalId and locale
 1015  
      *                           information about the caller of service operation
 1016  
      * @return total class contact hours for the term
 1017  
      * @throws DoesNotExistException     the SeatPoolDefinition does not exist
 1018  
      * @throws InvalidParameterException One or more parameters invalid
 1019  
      * @throws MissingParameterException One or more parameters missing
 1020  
      * @throws OperationFailedException  unable to complete request
 1021  
      * @throws PermissionDeniedException authorization failure
 1022  
      */
 1023  
     public Float calculateTotalContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1024  
 
 1025  
     /**
 1026  
      * Retrieve  a RegistrationGroup   based on id
 1027  
      *
 1028  
      * @param registrationGroupId Unique Id of the RegistrationGroup
 1029  
      * @param context             Context information containing the principalId and locale
 1030  
      *                            information about the caller of service operation
 1031  
      * @return RegistrationGroup associated with the passed in Id
 1032  
      * @throws DoesNotExistException     registrationGroupId not found
 1033  
      * @throws InvalidParameterException invalid registrationGroupId
 1034  
      * @throws MissingParameterException missing registrationGroupId
 1035  
      * @throws OperationFailedException  unable to complete request
 1036  
      * @throws PermissionDeniedException authorization failure
 1037  
      */
 1038  
     public RegistrationGroupInfo getRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1039  
 
 1040  
     /**
 1041  
      * Retrieves a list of registration group by id list.
 1042  
      *
 1043  
      * @param registrationGroupIds List of unique Ids of RegistrationGroup
 1044  
      * @param context              Context information containing the principalId and locale
 1045  
      *                             information about the caller of service operation
 1046  
      * @return Registration Group list
 1047  
      * @throws DoesNotExistException     registrationGroupId in the list not found
 1048  
      * @throws InvalidParameterException invalid registrationGroupIds
 1049  
      * @throws MissingParameterException missing registrationGroupIds
 1050  
      * @throws OperationFailedException  unable to complete request
 1051  
      * @throws PermissionDeniedException authorization failure
 1052  
      */
 1053  
     public List<RegistrationGroupInfo> getRegistrationGroupsByIds(@WebParam(name = "registrationGroupIds") List<String> registrationGroupIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1054  
 
 1055  
     /**
 1056  
      * Retrieves a list of RegistrationGroup records that belongs to a
 1057  
      * CourseOffering
 1058  
      *
 1059  
      * @param courseOfferingId Unique Id of the CourseOffering
 1060  
      * @param context          Context information containing the principalId and locale
 1061  
      *                         information about the caller of service operation
 1062  
      * @return List of RegistrationGroups
 1063  
      * @throws DoesNotExistException     courseOfferingId not found
 1064  
      * @throws InvalidParameterException invalid courseOfferingId
 1065  
      * @throws MissingParameterException missing courseOfferingId
 1066  
      * @throws OperationFailedException  unable to complete request
 1067  
      * @throws PermissionDeniedException authorization failure
 1068  
      */
 1069  
     public List<RegistrationGroupInfo> getRegistrationGroupsForCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1070  
 
 1071  
     /**
 1072  
      *  Retrieves a list of RegistrationGroup records that contain all the activity offerings in the input list
 1073  
      *
 1074  
      * @param activityOfferingIds  List of activityOffering Identifiers
 1075  
      * @param context
 1076  
      * @return
 1077  
      * @throws DoesNotExistException  One or more of the activityOfferingIds doesn't exist
 1078  
      * @throws InvalidParameterException One or more invalid activityOfferingIds
 1079  
      * @throws MissingParameterException Missing activityOfferingIds
 1080  
      * @throws OperationFailedException  unable to complete request
 1081  
      * @throws PermissionDeniedException authorization failure
 1082  
      */
 1083  
     public List<RegistrationGroupInfo> getRegistrationGroupsWithActivityOfferings(@WebParam(name = "activityOfferingIds") List<String> activityOfferingIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1084  
 
 1085  
     /**
 1086  
      * Retrieves a list of RegistrationGroup records that belongs to a
 1087  
      * CourseOffering for a given canonical format type
 1088  
      *
 1089  
      *
 1090  
      * @param formatOfferingId Unique Id of the CourseOffering
 1091  
      * @param context          Context information containing the principalId and locale
 1092  
      *                         information about the caller of service operation
 1093  
      * @return List of RegistrationGroups
 1094  
      * @throws DoesNotExistException     courseOfferingId or formatTypeKey not found
 1095  
      * @throws InvalidParameterException invalid courseOfferingId or formatTypeKey
 1096  
      * @throws MissingParameterException missing courseOfferingId or formatTypeKey
 1097  
      * @throws OperationFailedException  unable to complete request
 1098  
      * @throws PermissionDeniedException authorization failure
 1099  
      */
 1100  
     public List<RegistrationGroupInfo> getRegistrationGroupsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1101  
 
 1102  
     /**
 1103  
      * Creates a new Registration Group
 1104  
      *
 1105  
      * @param formatOfferingId       formatofferingId that the  RegistrationGroup is based on
 1106  
      * @param registrationGroupType      courseOffering Id that the RegistrationGroup will belong to
 1107  
      * @param registrationGroupInfo Details of the RegistrationGroup to be created
 1108  
      * @param context               Context information containing the principalId and locale
 1109  
      *                              information about the caller of service operation
 1110  
      * @return newly created registrationGroup
 1111  
      * @throws DoesNotExistException        courseOfferingId not found
 1112  
      * @throws DataValidationErrorException One or more values invalid for this operation
 1113  
      * @throws InvalidParameterException    One or more parameters invalid
 1114  
      * @throws MissingParameterException    One or more parameters missing
 1115  
      * @throws OperationFailedException     unable to complete request
 1116  
      * @throws PermissionDeniedException    authorization failure
 1117  
      */
 1118  
     public RegistrationGroupInfo createRegistrationGroup(@WebParam(name = "formatOfferingId") String formatOfferingId , @WebParam(name = "registrationGroupType") String registrationGroupType, @WebParam(name = "registrationGroupInfo") RegistrationGroupInfo registrationGroupInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 1119  
 
 1120  
     /**
 1121  
      * Generates all possible registration groups needed (not already in a regGroup) for the given format
 1122  
      * Offering  if there are no reg group templates for the  Format Offering ;
 1123  
      * else generate by constraints in the reg group template.
 1124  
      *
 1125  
      * @param formatOfferingId    identifier of the activity offering
 1126  
      * @param context
 1127  
      * @return
 1128  
      * @throws InvalidParameterException    One or more parameters invalid
 1129  
      * @throws MissingParameterException    One or more parameters missing
 1130  
      * @throws OperationFailedException     unable to complete request
 1131  
      * @throws PermissionDeniedException    authorization failure
 1132  
      */
 1133  
     public List<RegistrationGroupInfo> generateRegistrationGroupsForFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1134  
 
 1135  
     /**
 1136  
      * Updates an existing RegistrationGroup.
 1137  
      *
 1138  
      * @param registrationGroupId   Id of RegistrationGroup to be updated
 1139  
      * @param registrationGroupInfo Details of updates to the RegistrationGroup
 1140  
      * @param context               Context information containing the principalId and locale
 1141  
      *                              information about the caller of service operation
 1142  
      * @return updated RegistrationGroup
 1143  
      * @throws DataValidationErrorException One or more values invalid for this operation
 1144  
      * @throws DoesNotExistException        the RegistrationGroup does not exist
 1145  
      * @throws InvalidParameterException    One or more parameters invalid
 1146  
      * @throws MissingParameterException    One or more parameters missing
 1147  
      * @throws OperationFailedException     unable to complete request
 1148  
      * @throws PermissionDeniedException    authorization failure
 1149  
      * @throws VersionMismatchException     The action was attempted on an out of date version.
 1150  
      */
 1151  
     public RegistrationGroupInfo updateRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "registrationGroupInfo") RegistrationGroupInfo registrationGroupInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 1152  
 
 1153  
     /**
 1154  
      * Deletes an existing Registration Group. Removes the relationship to the
 1155  
      * course offering and activity offering. The activity offerings are not
 1156  
      * automatically deleted
 1157  
      *
 1158  
      * @param registrationGroupId the Id of the RegistrationGroup to be deleted
 1159  
      * @param context             Context information containing the principalId and locale
 1160  
      *                            information about the caller of service operation
 1161  
      * @throws DoesNotExistException     the RegistrationGroup does not exist
 1162  
      * @throws InvalidParameterException One or more parameters invalid
 1163  
      * @throws MissingParameterException One or more parameters missing
 1164  
      * @throws OperationFailedException  unable to complete request
 1165  
      * @throws PermissionDeniedException authorization failure
 1166  
      */
 1167  
     public StatusInfo deleteRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1168  
 
 1169  
     /**
 1170  
      * Validates a registration group. Depending on the value of validationType,
 1171  
      * this validation could be limited to tests on just the current object and
 1172  
      * its directly contained subobjects or expanded to perform all tests
 1173  
      * related to this object. If an identifier is present for the academic
 1174  
      * calendar and a record is found for that identifier, the validation checks
 1175  
      * if the academic calendar can be shifted to the new values. If a record
 1176  
      * cannot be found for the identifier, it is assumed that the record does
 1177  
      * not exist and as such, the checks performed will be much shallower,
 1178  
      * typically mimicking those performed by setting the validationType to the
 1179  
      * current object. This is a slightly different pattern from the standard
 1180  
      * validation as the caller provides the identifier in the create statement
 1181  
      * instead of the server assigning an identifier.
 1182  
      *
 1183  
      * @param validationType        Identifier of the extent of validation
 1184  
      * @param registrationGroupInfo the registrationGroup information to be tested.
 1185  
      * @param context               Context information containing the principalId and locale
 1186  
      *                              information about the caller of service operation
 1187  
      * @throws DoesNotExistException     validationTypeKey not found
 1188  
      * @throws InvalidParameterException invalid validationTypeKey, academicCalendarInfo
 1189  
      * @throws MissingParameterException missing validationTypeKey, academicCalendarInfo
 1190  
      * @throws OperationFailedException  unable to complete request
 1191  
      */
 1192  
     public List<ValidationResultInfo> validateRegistrationGroup(@WebParam(name = "validationType") String validationType, @WebParam(name = "registrationGroupInfo") RegistrationGroupInfo registrationGroupInfo, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
 1193  
 
 1194  
     /**
 1195  
      * Gets a registration group template based on the Identifier
 1196  
      * 
 1197  
      * @param registrationGroupTemplateId Identifier of the Reg Group template
 1198  
      * @param context
 1199  
      * @throws DoesNotExistException  registrationGroupTemplateId doesn't exist
 1200  
      * @throws InvalidParameterException  Invalid registrationGroupTemplateId
 1201  
      * @throws MissingParameterException  Missing registrationGroupTemplateId in the input
 1202  
      * @throws OperationFailedException  unable to complete request
 1203  
      * @throws PermissionDeniedException authorization failure
 1204  
      */
 1205  
     public RegistrationGroupTemplateInfo getRegistrationGroupTemplate(@WebParam(name = "registrationGroupTemplateId") String registrationGroupTemplateId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1206  
 
 1207  
     /**
 1208  
      * Updates a registration Group template based on the info object
 1209  
      *
 1210  
      * @param registrationGroupTemplateId  Identifier of the reg group template
 1211  
      * @param registrationGroupTemplateInfo
 1212  
      * @param context
 1213  
      * @return
 1214  
      * @throws DataValidationErrorException  registrationGroupTemplateInfo not valid
 1215  
      * @throws DoesNotExistException  registrationGroupTemplateId does not exist
 1216  
      * @throws InvalidParameterException    Invalid registrationGroupTemplateInfo
 1217  
      * @throws MissingParameterException    Missing registrationGroupTemplateInfo
 1218  
      * @throws OperationFailedException  unable to complete request
 1219  
      * @throws PermissionDeniedException
 1220  
      * @throws VersionMismatchException
 1221  
      */
 1222  
     public RegistrationGroupTemplateInfo updateRegistrationGroupTemplate(@WebParam(name = "registrationGroupTemplateId") String registrationGroupTemplateId, @WebParam(name = "registrationGroupTemplateInfo") RegistrationGroupTemplateInfo registrationGroupTemplateInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 1223  
 
 1224  
     /**
 1225  
      * Deletes a registration group template based on the identifier
 1226  
      *
 1227  
      * @param registrationGroupTemplateId  Identifier of the reg group template
 1228  
      * @param context
 1229  
      * @return
 1230  
      * @throws DoesNotExistException  registrationGroupTemplateId does not exist
 1231  
      * @throws InvalidParameterException   Invalid registrationGroupTemplateId
 1232  
      * @throws MissingParameterException  Missing registrationGroupTemplateId in the input
 1233  
      * @throws OperationFailedException  unable to complete request
 1234  
      * @throws PermissionDeniedException
 1235  
      */
 1236  
     public StatusInfo deleteRegistrationGroupTemplate(@WebParam(name = "registrationGroupTemplateId") String registrationGroupTemplateId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1237  
 
 1238  
     /**
 1239  
      * Retrieve information about a SeatPoolDefinition
 1240  
      *
 1241  
      * @param seatPoolDefinitionId Unique Id of the SeatPoolDefinition
 1242  
      * @param context              Context information containing the principalId and locale
 1243  
      *                             information about the caller of service operation
 1244  
      * @return SeatPoolDefinition associated with the passed in Id
 1245  
      * @throws DoesNotExistException     seatPoolDefinitionId not found
 1246  
      * @throws InvalidParameterException invalid seatPoolDefinitionId
 1247  
      * @throws MissingParameterException missing seatPoolDefinitionId
 1248  
      * @throws OperationFailedException  unable to complete request
 1249  
      * @throws PermissionDeniedException authorization failure
 1250  
      */
 1251  
     public SeatPoolDefinitionInfo getSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1252  
 
 1253  
     /**
 1254  
      * Retrieves a list of SeatPoolDefinitions records that belongs to a
 1255  
      * CourseOffering. This should return SeatPoolDefinitions that apply
 1256  
      * globally across all RegistrationGroup in the CourseOffering
 1257  
      *
 1258  
      * @param courseOfferingId Unique Id of the CourseOffering
 1259  
      * @param context          Context information containing the principalId and locale
 1260  
      *                         information about the caller of service operation
 1261  
      * @return List of SeatPoolDefinitions
 1262  
      * @throws DoesNotExistException     courseOfferingId not found
 1263  
      * @throws InvalidParameterException invalid courseOfferingId
 1264  
      * @throws MissingParameterException missing courseOfferingId
 1265  
      * @throws OperationFailedException  unable to complete request
 1266  
      * @throws PermissionDeniedException authorization failure
 1267  
      */
 1268  
     public List<SeatPoolDefinitionInfo> getSeatPoolDefinitionsForCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1269  
 
 1270  
     /**
 1271  
      * Retrieves a list of SeatPoolDefinitions records that belongs to a
 1272  
      * RegistrationGroup.
 1273  
      *
 1274  
      * @param registrationGroupId Unique Id of the RegistrationGroup
 1275  
      * @param context             Context information containing the principalId and locale
 1276  
      *                            information about the caller of service operation
 1277  
      * @return List of SeatPoolDefinitions
 1278  
      * @throws DoesNotExistException     registrationGroupId not found
 1279  
      * @throws InvalidParameterException invalid registrationGroupId
 1280  
      * @throws MissingParameterException missing registrationGroupId
 1281  
      * @throws OperationFailedException  unable to complete request
 1282  
      * @throws PermissionDeniedException authorization failure
 1283  
      */
 1284  
     public List<SeatPoolDefinitionInfo> getSeatPoolDefinitionsForRegGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1285  
 
 1286  
     /**
 1287  
      * Creates a new Seat Pool
 1288  
      *
 1289  
      * @param seatPoolDefinitionInfo Details of the SeatPoolDefinition to be created
 1290  
      * @param context                Context information containing the principalId and locale
 1291  
      *                               information about the caller of service operation
 1292  
      * @return newly created SeatPoolDefinition
 1293  
      * @throws DataValidationErrorException One or more values invalid for this operation
 1294  
      * @throws InvalidParameterException    One or more parameters invalid
 1295  
      * @throws MissingParameterException    One or more parameters missing
 1296  
      * @throws OperationFailedException     unable to complete request
 1297  
      * @throws PermissionDeniedException    authorization failure
 1298  
      */
 1299  
     public SeatPoolDefinitionInfo createSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionInfo") SeatPoolDefinitionInfo seatPoolDefinitionInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
 1300  
 
 1301  
     /**
 1302  
      * Updates an existing SeatPoolDefinition.
 1303  
      *
 1304  
      * @param seatPoolDefinitionId   Id of SeatPoolDefinition to be updated
 1305  
      * @param seatPoolDefinitionInfo Details of updates to the SeatPoolDefinition
 1306  
      * @param context                Context information containing the principalId and locale
 1307  
      *                               information about the caller of service operation
 1308  
      * @return updated SeatPoolDefinition
 1309  
      * @throws DataValidationErrorException One or more values invalid for this operation
 1310  
      * @throws DoesNotExistException        the SeatPoolDefinition does not exist
 1311  
      * @throws InvalidParameterException    One or more parameters invalid
 1312  
      * @throws MissingParameterException    One or more parameters missing
 1313  
      * @throws OperationFailedException     unable to complete request
 1314  
      * @throws PermissionDeniedException    authorization failure
 1315  
      * @throws VersionMismatchException     The action was attempted on an out of date version.
 1316  
      */
 1317  
     public SeatPoolDefinitionInfo updateSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "seatPoolDefinitionInfo") SeatPoolDefinitionInfo seatPoolDefinitionInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
 1318  
 
 1319  
     /**
 1320  
      * Validate a seat pool definition
 1321  
      * 
 1322  
      * @param validationTypeKey
 1323  
      * @param seatPoolDefinitionInfo
 1324  
      * @param context
 1325  
      * @throws DataValidationErrorException
 1326  
      * @throws DoesNotExistException
 1327  
      * @throws InvalidParameterException
 1328  
      * @throws MissingParameterException
 1329  
      * @throws OperationFailedException
 1330  
      * @throws PermissionDeniedException
 1331  
      * @throws VersionMismatchException
 1332  
      */
 1333  
     public List<ValidationResultInfo> validateSeatPoolDefinition(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "seatPoolDefinitionInfo") SeatPoolDefinitionInfo seatPoolDefinitionInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException;
 1334  
 
 1335  
     /**
 1336  
      * Deletes an existing SeatPoolDefinition.
 1337  
      *
 1338  
      * @param seatPoolDefinitionId the Id of the SeatPoolDefinition to be deleted
 1339  
      * @param context              Context information containing the principalId and locale
 1340  
      *                             information about the caller of service operation
 1341  
      * @throws DoesNotExistException     the SeatPoolDefinition does not exist
 1342  
      * @throws InvalidParameterException One or more parameters invalid
 1343  
      * @throws MissingParameterException One or more parameters missing
 1344  
      * @throws OperationFailedException  unable to complete request
 1345  
      * @throws PermissionDeniedException authorization failure
 1346  
      */
 1347  
     public StatusInfo deleteSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1348  
 
 1349  
     /**
 1350  
      * Searches for course offerings using a free form search criteria
 1351  
      *
 1352  
      * @param criteria
 1353  
      * @param context
 1354  
      * @return
 1355  
      * @throws InvalidParameterException
 1356  
      * @throws MissingParameterException
 1357  
      * @throws OperationFailedException
 1358  
      * @throws PermissionDeniedException
 1359  
      */
 1360  
     public List<CourseOfferingInfo> searchForCourseOfferings(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1361  
 
 1362  
     /**
 1363  
      * Searches for course offering ids using a free form search criteria
 1364  
      *
 1365  
      * @param criteria
 1366  
      * @param context
 1367  
      * @return
 1368  
      * @throws InvalidParameterException
 1369  
      * @throws MissingParameterException
 1370  
      * @throws OperationFailedException
 1371  
      * @throws PermissionDeniedException
 1372  
      */
 1373  
     public List<String> searchForCourseOfferingIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1374  
 
 1375  
     /**
 1376  
      * Searches for activity offerings using a free form search criteria
 1377  
      *
 1378  
      * @param criteria
 1379  
      * @param context
 1380  
      * @return
 1381  
      * @throws InvalidParameterException
 1382  
      * @throws MissingParameterException
 1383  
      * @throws OperationFailedException
 1384  
      * @throws PermissionDeniedException
 1385  
      */
 1386  
     public List<ActivityOfferingInfo> searchForActivityOfferings(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1387  
 
 1388  
     /**
 1389  
      * Searches for activity offering ids using a free form search criteria
 1390  
      *
 1391  
      * @param criteria
 1392  
      * @param context
 1393  
      * @return
 1394  
      * @throws InvalidParameterException
 1395  
      * @throws MissingParameterException
 1396  
      * @throws OperationFailedException
 1397  
      * @throws PermissionDeniedException
 1398  
      */
 1399  
     public List<String> searchForActivityOfferingIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1400  
 
 1401  
     /**
 1402  
      * Searches for registration group ids using a free form search criteria
 1403  
      * 
 1404  
      * @param criteria
 1405  
      * @param context
 1406  
      * @throws InvalidParameterException
 1407  
      * @throws MissingParameterException
 1408  
      * @throws OperationFailedException
 1409  
      * @throws PermissionDeniedException
 1410  
      */
 1411  
     public List<RegistrationGroupInfo> searchForRegistrationGroups(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1412  
 
 1413  
     /**
 1414  
      * Searches for registration group ids using a free form search criteria.
 1415  
      *
 1416  
      * @param criteria
 1417  
      * @param context
 1418  
      * @return
 1419  
      * @throws InvalidParameterException
 1420  
      * @throws MissingParameterException
 1421  
      * @throws OperationFailedException
 1422  
      * @throws PermissionDeniedException
 1423  
      */
 1424  
     public List<String> searchForRegistrationGroupIds(@WebParam(name = "criteria") QueryByCriteria criteria,@WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1425  
 
 1426  
     /**
 1427  
      * Searches for seat pool definition ids using a free form search criteria
 1428  
      *
 1429  
      * @param criteria
 1430  
      * @param context
 1431  
      * @throws InvalidParameterException
 1432  
      * @throws MissingParameterException
 1433  
      * @throws OperationFailedException
 1434  
      * @throws PermissionDeniedException
 1435  
      */
 1436  
     public List<SeatPoolDefinitionInfo> searchForSeatpoolDefintions(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context)  throws InvalidParameterException, MissingParameterException, OperationFailedException,PermissionDeniedException;
 1437  
 
 1438  
     /**
 1439  
      * Searches for seat pool definition ids using a free form search criteria
 1440  
      *
 1441  
      * @param criteria
 1442  
      * @param context
 1443  
      * @throws InvalidParameterException
 1444  
      * @throws MissingParameterException
 1445  
      * @throws OperationFailedException
 1446  
      * @throws PermissionDeniedException
 1447  
      */
 1448  
     public List<String> searchForSeatpoolDefintionIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
 1449  
 }