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