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 13 * implied. See the License for the specific language governing 14 * permissions and limitations under the License. 15 */ 16 17 package org.kuali.student.enrollment.courseoffering.service; 18 19 import org.kuali.rice.core.api.criteria.QueryByCriteria; 20 import org.kuali.student.enrollment.courseoffering.dto.AOClusterVerifyResultsInfo; 21 import org.kuali.student.enrollment.courseoffering.dto.ActivityOfferingClusterInfo; 22 import org.kuali.student.enrollment.courseoffering.dto.ActivityOfferingDisplayInfo; 23 import org.kuali.student.enrollment.courseoffering.dto.ActivityOfferingInfo; 24 import org.kuali.student.enrollment.courseoffering.dto.CourseOfferingDisplayInfo; 25 import org.kuali.student.enrollment.courseoffering.dto.CourseOfferingInfo; 26 import org.kuali.student.enrollment.courseoffering.dto.FormatOfferingInfo; 27 import org.kuali.student.enrollment.courseoffering.dto.RegistrationGroupInfo; 28 import org.kuali.student.enrollment.courseoffering.dto.SeatPoolDefinitionInfo; 29 import org.kuali.student.enrollment.courseofferingset.dto.SocRolloverResultItemInfo; 30 import org.kuali.student.r2.common.dto.BulkStatusInfo; 31 import org.kuali.student.r2.common.dto.ContextInfo; 32 import org.kuali.student.r2.common.dto.StatusInfo; 33 import org.kuali.student.r2.common.dto.TimeOfDayInfo; 34 import org.kuali.student.r2.common.dto.ValidationResultInfo; 35 import org.kuali.student.r2.common.exceptions.AlreadyExistsException; 36 import org.kuali.student.r2.common.exceptions.DataValidationErrorException; 37 import org.kuali.student.r2.common.exceptions.DependentObjectsExistException; 38 import org.kuali.student.r2.common.exceptions.DoesNotExistException; 39 import org.kuali.student.r2.common.exceptions.InvalidParameterException; 40 import org.kuali.student.r2.common.exceptions.MissingParameterException; 41 import org.kuali.student.r2.common.exceptions.OperationFailedException; 42 import org.kuali.student.r2.common.exceptions.PermissionDeniedException; 43 import org.kuali.student.r2.common.exceptions.ReadOnlyException; 44 import org.kuali.student.r2.common.exceptions.VersionMismatchException; 45 import org.kuali.student.r2.common.util.constants.CourseOfferingServiceConstants; 46 import org.kuali.student.r2.core.class1.type.dto.TypeInfo; 47 import org.kuali.student.r2.core.scheduling.dto.TimeSlotInfo; 48 49 import javax.jws.WebParam; 50 import javax.jws.WebService; 51 import javax.jws.soap.SOAPBinding; 52 import java.util.List; 53 54 /** 55 * Course Offering is a class II service supporting the process of offering 56 * courses for student registration. 57 * <p/> 58 * Courses are offered for a specific term which is associated with a specific 59 * Academic Calendar. At the canonical level a course is defined by formats for 60 * which the course will be offered. Each format describes the activity types 61 * that comprise that format, e.g., lecture and lab. 62 * <p/> 63 * The purpose of multiple formats is to support different formats based on a 64 * term type, e.g., Fall versus Spring offering, or to offer multiple formats in 65 * the same term, e.g., in person (traditional) versus online. Offering a course 66 * is the process of creating specific instances of the course, and for each 67 * format to be offered in the selected term, creating a specified number of 68 * each activity type that comprises the format, e.g. five (5) lectures and ten 69 * (10) labs of Biology 101. 70 * <p/> 71 * Individual activity offerings correspond to events in a scheduling system, 72 * each with a meeting pattern. The term 'section' varies by institution, but 73 * refers to either the individual activity offering, or it refers to the 74 * combination of activity offerings, when the course has more than one activity 75 * type, that the student registers in as part of that course. 76 * <p/> 77 * To avoid confusion, this service introduces a new entity to capture the 78 * second definition of section. A registration group represents a valid 79 * combination of activity offerings, even if the number is one, in which a 80 * student registers. The design supports unrestricted matching, e.g., any 81 * lecture with any lab, as well as specific matching, e.g., lecture 1 with lab 82 * A or B, and lecture 2 with lab C or D. 83 * <p/> 84 * @version: 0.0.7 85 * 86 * @author Kuali Student Team (Kamal) 87 */ 88 89 @WebService(name = "CourseOfferingService", serviceName = "CourseOfferingService", portName = "CourseOfferingService", targetNamespace = CourseOfferingServiceConstants.NAMESPACE) 90 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) 91 92 public interface CourseOfferingService 93 extends CourseOfferingServiceBusinessLogic { 94 95 96 /** 97 * This method returns the TypeInfo for a given course offering type key. 98 * 99 * @param courseOfferingTypeKey the unique identifier for the type 100 * @param contextInfo information containing the principalId and 101 * locale information about the caller of 102 * service operation 103 * @return the type requested 104 * @throws DoesNotExistException courseOfferingTypeKey is not found 105 * @throws InvalidParameterException contextInfo is not valid 106 * @throws MissingParameterException courseOfferingTypeKey or contextInfo is 107 * missing or null 108 * @throws OperationFailedException unable to complete request 109 * @throws PermissionDeniedException an authorization failure occurred 110 */ 111 public TypeInfo getCourseOfferingType(@WebParam(name = "courseOfferingTypeKey") String courseOfferingTypeKey, 112 @WebParam(name = "contextInfo") ContextInfo contextInfo) 113 throws DoesNotExistException, 114 InvalidParameterException, 115 MissingParameterException, 116 OperationFailedException, 117 PermissionDeniedException; 118 119 /** 120 * This method returns the valid course offering types. 121 * 122 * @param contextInfo information containing the principalId and locale 123 * information about the caller of service operation 124 * @return a list of valid CourseOffering Types 125 * @throws InvalidParameterException contextInfo is not valid 126 * @throws MissingParameterException contextInfo is missing or null 127 * @throws OperationFailedException unable to complete request 128 * @throws PermissionDeniedException an authorization failure occurred 129 */ 130 public List<TypeInfo> getCourseOfferingTypes(@WebParam(name = "contextInfo") ContextInfo contextInfo) 131 throws InvalidParameterException, 132 MissingParameterException, 133 OperationFailedException, 134 PermissionDeniedException; 135 136 /** 137 * This method returns the valid instructor (LPR) types for a CourseOffering 138 * type. 139 * 140 * @param courseOfferingTypeKey a unqiue identifier for a CourseOffering 141 * type 142 * @param contextInfo information containing the principalId and 143 * locale information about the caller of 144 * service operation 145 * @return a list of valid instructor types 146 * @throws DoesNotExistException deprecated 147 * @throws InvalidParameterException contextInfo is not valid 148 * @throws MissingParameterException courseOfferingTypeKey or contextInfo is 149 * missing or null 150 * @throws OperationFailedException unable to complete request 151 * @throws PermissionDeniedException an authorization failure occurred 152 */ 153 public List<TypeInfo> getInstructorTypesForCourseOfferingType(@WebParam(name = "courseOfferingTypeKey") String courseOfferingTypeKey, 154 @WebParam(name = "contextInfo") ContextInfo contextInfo) 155 throws DoesNotExistException, 156 InvalidParameterException, 157 MissingParameterException, 158 OperationFailedException, 159 PermissionDeniedException; 160 161 /** 162 * Retrieves a single CourseOffering by a CourseOffering Id. 163 * 164 * @param courseOfferingId the identifier for the CourseOffering to be 165 * retrieved 166 * @param contextInfo information containing the principalId and locale 167 * information about the caller of service 168 * operation 169 * @throws DoesNotExistException courseOfferingId is not found 170 * @throws InvalidParameterException contextInfo is not valid 171 * @throws MissingParameterException courseOfferingId or contextInfo is 172 * missing or null 173 * @throws OperationFailedException unable to complete request 174 * @throws PermissionDeniedException an authorization failure occurred 175 */ 176 public CourseOfferingInfo getCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, 177 @WebParam(name = "contextInfo") ContextInfo contextInfo) 178 throws DoesNotExistException, 179 InvalidParameterException, 180 MissingParameterException, 181 OperationFailedException, 182 PermissionDeniedException; 183 184 /** 185 * Retrieves a single CourseOfferingDisplayInfo by a CourseOffering Id. 186 * 187 * @param courseOfferingId an identifier for a CourseOffering 188 * @param contextInfo information containing the principalId and locale 189 * information about the caller of service 190 * operation 191 * @return the CourseOfferingDisplay requested 192 * @throws DoesNotExistException courseOfferingId does not exist 193 * @throws InvalidParameterException contextInfo is not valid 194 * @throws MissingParameterException courseOfferingId or contextInfo is 195 * missing or null 196 * @throws OperationFailedException unable to complete request 197 * @throws PermissionDeniedException an authorization failure occurred 198 */ 199 public CourseOfferingDisplayInfo getCourseOfferingDisplay(@WebParam(name = "courseOfferingId") String courseOfferingId, 200 @WebParam(name = "contextInfo") ContextInfo contextInfo) 201 throws DoesNotExistException, 202 InvalidParameterException, 203 MissingParameterException, 204 OperationFailedException, 205 PermissionDeniedException; 206 207 /** 208 * Retrieves a list of CourseOfferings from a list of CourseOffering Ids. 209 * The returned list may be in any order and if duplicate Ids are supplied, 210 * a unique set may or may not be returned. 211 * 212 * @param courseOfferingIds a list of CourseOffering identifiers 213 * @param contextInfo information containing the principalId and 214 * locale information about the caller of service 215 * operation 216 * @throws DoesNotExistException a courseOfferingId in the list is not 217 * found 218 * @throws InvalidParameterException contextInfo is not valid 219 * @throws MissingParameterException courseOfferingIds, an Id in the 220 * courseOfferingIds, or contextInfo is 221 * missing or null 222 * @throws OperationFailedException unable to complete request 223 * @throws PermissionDeniedException an authorization failure occurred 224 */ 225 public List<CourseOfferingInfo> getCourseOfferingsByIds(@WebParam(name = "courseOfferingIds") List<String> courseOfferingIds, 226 @WebParam(name = "contextInfo") ContextInfo contextInfo) 227 throws DoesNotExistException, 228 InvalidParameterException, 229 MissingParameterException, 230 OperationFailedException, 231 PermissionDeniedException; 232 233 /** 234 * Retrieve a list of CourseOfferingDisplays corresponding to a list of 235 * CourseOfferingIds. The returned list may be in any order and if duplicate 236 * Ids are supplied, a unique set may or may not be returned. 237 * 238 * @param courseOfferingIds a list of CourseOffering identifiers 239 * @param contextInfo information containing the principalId and 240 * locale information about the caller of service 241 * operation 242 * @return a list of CourseOfferingDisplays 243 * @throws DoesNotExistException a courseOfferingId in the list not 244 * found 245 * @throws InvalidParameterException contextInfo is not valid 246 * @throws MissingParameterException courseOfferingIds, an Id in 247 * courseOfferingIds, or contextInfo is 248 * missing or null 249 * @throws OperationFailedException unable to complete request 250 * @throws PermissionDeniedException an authorization failure occurred 251 */ 252 public List<CourseOfferingDisplayInfo> getCourseOfferingDisplaysByIds(@WebParam(name = "courseOfferingIds") List<String> courseOfferingIds, 253 @WebParam(name = "contextInfo") ContextInfo contextInfo) 254 throws DoesNotExistException, 255 InvalidParameterException, 256 MissingParameterException, 257 OperationFailedException, 258 PermissionDeniedException; 259 260 /** 261 * Retrieve a list of CourseOffering Ids by CourseOffering Type. 262 * 263 * @param courseOfferingTypeKey the identifier for a CourseOffering Type 264 * @param contextInfo information containing the principalId and 265 * locale information about the caller of 266 * service operation 267 * @return a list of CourseOffering identifiers matching 268 * courseOfferingTypeKey or an empty list if none found 269 * @throws DoesNotExistException deprecated 270 * @throws InvalidParameterException contextInfo is not valid 271 * @throws MissingParameterException courseOfferingTypeKey or contextInfo is 272 * missing or null 273 * @throws OperationFailedException unable to complete request 274 * @throws PermissionDeniedException an authorization failure occurred 275 */ 276 public List<String> getCourseOfferingIdsByType(@WebParam(name = "courseOfferingTypeKey") String courseOfferingTypeKey, 277 @WebParam(name = "contextInfo") ContextInfo contextInfo) 278 throws DoesNotExistException, 279 InvalidParameterException, 280 MissingParameterException, 281 OperationFailedException, 282 PermissionDeniedException; 283 284 /** 285 * Retrieve CourseOfferings by canonical Course Id across all Terms. 286 * 287 * @param courseId the identifier for a Course 288 * @param contextInfo information containing the principalId and locale 289 * information about the caller of service operation 290 * @return a list of CourseOfferings of the given Course or an empty list if 291 * none found 292 * @throws DoesNotExistException courseId is not found 293 * @throws InvalidParameterException contextInfo is not valid 294 * @throws MissingParameterException courseId orcontextInfo is missing or 295 * null 296 * @throws OperationFailedException unable to complete request 297 * @throws PermissionDeniedException an authorization failure occurred 298 */ 299 public List<CourseOfferingInfo> getCourseOfferingsByCourse(@WebParam(name = "courseId") String courseId, 300 @WebParam(name = "contextInfo") ContextInfo contextInfo) 301 throws DoesNotExistException, 302 InvalidParameterException, 303 MissingParameterException, 304 OperationFailedException, 305 PermissionDeniedException; 306 307 /** 308 * Retrieve a list of CourseOfferings by canonical Course Id and Term. There 309 * may be more than one CourseOffering for a Course in a single Term. 310 * 311 * @param courseId the identifier for a Course 312 * @param termId the identifier for a Term 313 * @param contextInfo information containing the principalId and locale 314 * information about the caller of service operation 315 * @return a list of CourseOfferings of the given Course offered in the 316 * given Term or an empty list if none found 317 * @throws DoesNotExistException courseId is not found 318 * @throws InvalidParameterException contextInfo is not valid 319 * @throws MissingParameterException courseId, termId, or contextInfo is 320 * missing or null 321 * @throws OperationFailedException unable to complete request 322 * @throws PermissionDeniedException an authorization failure occured 323 */ 324 public List<CourseOfferingInfo> getCourseOfferingsByCourseAndTerm(@WebParam(name = "courseId") String courseId, 325 @WebParam(name = "termId") String termId, 326 @WebParam(name = "contextInfo") ContextInfo contextInfo) 327 throws DoesNotExistException, 328 InvalidParameterException, 329 MissingParameterException, 330 OperationFailedException, 331 PermissionDeniedException; 332 333 /** 334 * Retrieves a list of CourseOffering Ids for CourseOfferings offered in a 335 * given term. If useIncludedTerms is true, then include any CourseOfferings 336 * offered within child Terms of the given Term. 337 * 338 * @param termId the identifier for a Term 339 * @param useIncludedTerm true to include CourseOfferings of child Terms of 340 * the given Term, false to include only 341 * CourseOfferings offered in the given Term 342 * @param contextInfo information containing the principalId and locale 343 * information about the caller of service operation 344 * @return the list of CourseOffering Ids offered in the given Term or an 345 * empty list if none found 346 * @throws DoesNotExistException deprecated 347 * @throws InvalidParameterException contextInfo is not valid 348 * @throws MissingParameterException termId or contextInfo is missing or 349 * null 350 * @throws OperationFailedException unable to complete request 351 * @throws PermissionDeniedException an authorization failure occurred 352 */ 353 public List<String> getCourseOfferingIdsByTerm(@WebParam(name = "termId") String termId, 354 @WebParam(name = "useIncludedTerm") Boolean useIncludedTerm, 355 @WebParam(name = "contextInfo") ContextInfo contextInfo) 356 throws DoesNotExistException, 357 InvalidParameterException, 358 MissingParameterException, 359 OperationFailedException, 360 PermissionDeniedException; 361 362 /** 363 * Retrieve a list of CourseOffering Ids for CourseOfferings of a given 364 * subject area offered in the given Term. 365 * <p/> 366 * A CourseOffering will have an official and "other" subject areas> 367 * CourseOfferrings with either official or other subject area that match 368 * are returned. 369 * 370 * @param termId the identifier for a Term 371 * @param subjectArea a subject area 372 * @param contextInfo information containing the principalId and locale 373 * information about the caller of service operation 374 * @return a list of CourseOffering Ids for CourseOfferings matching the 375 * give subject area and offered in the given Term or an empty list 376 * if none found 377 * @throws DoesNotExistException deprecated 378 * @throws InvalidParameterException contextInfo is not valid 379 * @throws MissingParameterException termId, subjectArea, or contextInfo is 380 * missing or null 381 * @throws OperationFailedException unable to complete request 382 * @throws PermissionDeniedException an authorization failure occurred 383 */ 384 public List<String> getCourseOfferingIdsByTermAndSubjectArea(@WebParam(name = "termId") String termId, 385 @WebParam(name = "subjectArea") String subjectArea, 386 @WebParam(name = "contextInfo") ContextInfo contextInfo) 387 throws DoesNotExistException, 388 InvalidParameterException, 389 MissingParameterException, 390 OperationFailedException, 391 PermissionDeniedException; 392 393 /** 394 * Retrieves a list of CourseOfferings for a given Term and Instructor. 395 * 396 * @param termId the identifier for a Term 397 * @param instructorId the Person Id for an instructor 398 * @param contextInfo information containing the principalId and locale 399 * information about the caller of service operation 400 * @return a list of CourseOfferings for the given Term and instructor or an 401 * empty list if none found 402 * @throws DoesNotExistException deprecated 403 * @throws InvalidParameterException contextInfo is not valid 404 * @throws MissingParameterException termId, instructorId, or contextInfo is 405 * missing or null 406 * @throws OperationFailedException unable to complete request 407 * @throws PermissionDeniedException an authorization failure occurred 408 */ 409 public List<CourseOfferingInfo> getCourseOfferingsByTermAndInstructor(@WebParam(name = "termId") String termId, 410 @WebParam(name = "instructorId") String instructorId, 411 @WebParam(name = "contextInfo") ContextInfo contextInfo) 412 throws DoesNotExistException, 413 InvalidParameterException, 414 MissingParameterException, 415 OperationFailedException, 416 PermissionDeniedException; 417 418 /** 419 * Retrieves a list of CourseOffering Ids for CourseOfferings offered in a 420 * given Term by a units content owner. 421 * 422 * @param termId the identifier for a Term 423 * @param unitsContentOwnerId the Org Id of the units content owner 424 * @param contextInfo information containing the principalId and 425 * locale information about the caller of service 426 * operation 427 * @return a list of CourseOffering Ids for CourseOfferings offered in the 428 * given Term by the given Org 429 * @throws DoesNotExistException deprecated 430 * @throws InvalidParameterException contextInfo is not valid 431 * @throws MissingParameterException termId, unisContentOwnerId, or 432 * contextInfo is missing or null 433 * @throws OperationFailedException unable to complete request 434 * @throws PermissionDeniedException an authorization failure occurred 435 */ 436 public List<String> getCourseOfferingIdsByTermAndUnitsContentOwner(@WebParam(name = "termId") String termId, 437 @WebParam(name = "unitsContentOwnerId") String unitsContentOwnerId, 438 @WebParam(name = "contextInfo") ContextInfo contextInfo) 439 throws DoesNotExistException, 440 InvalidParameterException, 441 MissingParameterException, 442 OperationFailedException, 443 PermissionDeniedException; 444 445 /** 446 * Searches for CourseOfferings that meet the given search criteria. 447 * 448 * @param criteria the search criteria 449 * @param contextInfo information containing the principalId and locale 450 * information about the caller of service operation 451 * @return a list of CourseOffering Ids matching the criteria 452 * @throws InvalidParameterException criteria or contextInfo is not valid 453 * @throws MissingParameterException criteria or contextInfo is missing or 454 * null 455 * @throws OperationFailedException unable to complete request 456 * @throws PermissionDeniedException an authorization failure occurred 457 */ 458 public List<String> searchForCourseOfferingIds(@WebParam(name = "criteria") QueryByCriteria criteria, 459 @WebParam(name = "contextInfo") ContextInfo contextInfo) 460 throws InvalidParameterException, 461 MissingParameterException, 462 OperationFailedException, 463 PermissionDeniedException; 464 465 /** 466 * Searches for CourseOfferings that meet the given search criteria. 467 * 468 * @param criteria the search criteria 469 * @param contextInfo information containing the principalId and locale 470 * information about the caller of service operation 471 * @return a list of CourseOfferings matching the criteria 472 * @throws InvalidParameterException criteria or contextInfo is not valid 473 * @throws MissingParameterException criteria or contextInfo is missing or 474 * null 475 * @throws OperationFailedException unable to complete request 476 * @throws PermissionDeniedException an authorization failure occurred 477 */ 478 public List<CourseOfferingInfo> searchForCourseOfferings(@WebParam(name = "criteria") QueryByCriteria criteria, 479 @WebParam(name = "contextInfo") ContextInfo contextInfo) 480 throws InvalidParameterException, 481 MissingParameterException, 482 OperationFailedException, 483 PermissionDeniedException; 484 485 /** 486 * Get the valid options that can be specified to control canonical Course 487 * to CourseOffering operations. 488 * <p/> 489 * This can happen in several situations: (1) when creating a CourseOffering 490 * from scratch that copies data from the canonical Course 491 * <p/> 492 * (2) when a Course is rolled over and the "use canonical" option is 493 * specified in a rollover 494 * <p/> 495 * (3) when a CourseOffering is explicitly asked to be updated based on the 496 * canonical Course 497 * <p/> 498 * (4) when a course offering is explicitly asked to be validated against 499 * the canonical Course 500 * <p/> 501 * These may identify fields to be copied or not copied or special checks or 502 * comparisons to be made, such as comparing that the credits of the course 503 * are consistent with the specified classroom hours. 504 * <p/> 505 * TODO: The exact types that can be specified here have not yet been 506 * defined 507 * 508 * @param contextInfo information containing the principalId and locale 509 * information about the caller of service operation 510 * @return list of option keys used to to indicate the options to be used 511 * when copying data 512 * @throws InvalidParameterException contextInfo is not valid 513 * @throws MissingParameterException contextInfo is missing or null 514 * @throws OperationFailedException unable to complete request 515 * @throws PermissionDeniedException an authorization failure occurred 516 */ 517 public List<String> getValidCanonicalCourseToCourseOfferingOptionKeys(@WebParam(name = "contextInfo") ContextInfo contextInfo) 518 throws InvalidParameterException, 519 MissingParameterException, 520 OperationFailedException, 521 PermissionDeniedException, 522 ReadOnlyException; 523 524 /** 525 * Get the valid rollover option keys. 526 * <p/> 527 * This is the list of option keys supported by the rollover operation. Keys 528 * released with kuali student can be found here: https://wiki.kuali.org/display/STUDENT/Course+Offering+Set+Types+and+States#CourseOfferingSetTypesandStates-RolloverOptionKeys 529 * 530 * @param contextInfo information containing the principalId and locale 531 * information about the caller of service operation 532 * @return a list of option keys 533 * @throws InvalidParameterException contextInfo is not valid 534 * @throws MissingParameterException contextInfo is missing or null 535 * @throws OperationFailedException unable to complete request 536 * @throws PermissionDeniedException an authorization failure occurred 537 */ 538 public List<String> getValidRolloverOptionKeys(@WebParam(name = "contextInfo") ContextInfo contextInfo) 539 throws InvalidParameterException, 540 MissingParameterException, 541 OperationFailedException, 542 PermissionDeniedException, 543 ReadOnlyException; 544 545 /** 546 * Validates a CourseOffering. Depending on the value of validationType, 547 * this validation could be limited to tests on just the current 548 * CourseOffering and its directly contained sub-objects or expanded to 549 * perform all tests related to this CourseOffering. If an identifier is 550 * present for the CourseOffering (and/or one of its contained sub-objects) 551 * and a record is found for that identifier, the validation checks if the 552 * CourseOffering can be updated to the new values. If an identifier is not 553 * present or a record does not exist, the validation checks if the object 554 * with the given data can be created. 555 * 556 * @param validationTypeKey the identifier for the validation Type 557 * @param courseOfferingInfo the CourseOffering to be validated 558 * @param contextInfo information containing the principalId and 559 * locale information about the caller of 560 * service operation 561 * @return a list of validation results or an empty list if validation 562 * succeeded 563 * @throws DoesNotExistException validationTypeKey or courseOfferingTypeKey 564 * is not found 565 * @throws InvalidParameterException courseOfferingInfo or contextInfo is 566 * not valid 567 * @throws MissingParameterException validationTypeKey, courseOfferingTypeKey, 568 * courseOfferingInfo, or contextInfo is 569 * missing or null 570 * @throws OperationFailedException unable to complete request 571 * @throws PermissionDeniedException authorization failure 572 */ 573 public List<ValidationResultInfo> validateCourseOffering(@WebParam(name = "validationTypeKey") String validationTypeKey, 574 @WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo, 575 @WebParam(name = "contextInfo") ContextInfo contextInfo) 576 throws DoesNotExistException, 577 InvalidParameterException, 578 MissingParameterException, 579 OperationFailedException, 580 PermissionDeniedException; 581 582 /** 583 * Creates a new course offering from a canonical course. 584 * <p/> 585 * Fields in course offering will be initialized with data from the 586 * canonical. 587 * 588 * @param courseId Canonical course Id of courseOffering Id that the 589 * ActivityOffering will belong to 590 * @param termId Unique key of the term in which the course is being 591 * offered course offering 592 * @param optionKeys options to use when copying data from the canonical 593 * @param context Context information containing the principalId and 594 * locale information about the caller of service 595 * operation 596 * @return newly created CourseOfferingInfo 597 * @throws DoesNotExistException courseId not found 598 * @throws DataValidationErrorException One or more values invalid for this 599 * operation 600 * @throws InvalidParameterException One or more parameters invalid 601 * @throws MissingParameterException One or more parameters missing 602 * @throws OperationFailedException unable to complete request 603 * @throws PermissionDeniedException authorization failure 604 */ 605 public CourseOfferingInfo createCourseOffering(@WebParam(name = "courseId") String courseId, 606 @WebParam(name = "termId") String termId, 607 @WebParam(name = "courseOfferingTypeKey") String courseOfferingTypeKey, 608 @WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo, 609 @WebParam(name = "optionKeys") List<String> optionKeys, 610 @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, 611 DataValidationErrorException, InvalidParameterException, 612 MissingParameterException, OperationFailedException, PermissionDeniedException, 613 ReadOnlyException; 614 615 616 /** 617 * Creates a new course offering based on the source course offering. 618 * <p/> 619 * Fields in course offering will be initialized with data from the source 620 * course offering. . 621 * 622 * @param sourceCourseOfferingId The id of the course offering to be rolled 623 * over. 624 * @param targetTermId Unique key of the term in which the course 625 * is rolled over into 626 * @param optionKeys keys that control optional processing 627 * @param context Context information containing the 628 * principalId and locale information about 629 * the caller of service operation 630 * @return newly created CourseOfferingInfo 631 * @throws DoesNotExistException sourceCoId not found 632 * @throws AlreadyExistsException if the course offering already 633 * exists in the target term and skip 634 * if already exists option is 635 * specified 636 * @throws DataValidationErrorException data in system is not valid or not 637 * valid for an option key specified 638 * @throws InvalidParameterException One or more parameters invalid 639 * @throws MissingParameterException One or more parameters missing 640 * @throws OperationFailedException unable to complete request 641 * @throws PermissionDeniedException authorization failure 642 */ 643 @Override 644 public SocRolloverResultItemInfo rolloverCourseOffering(@WebParam(name = "sourceCourseOfferingId") String sourceCourseOfferingId, @WebParam(name = "targetTermId") String targetTermId, @WebParam(name = "optionKeys") List<String> optionKeys, @WebParam(name = "context") ContextInfo context) throws AlreadyExistsException, 645 DoesNotExistException, DataValidationErrorException, 646 InvalidParameterException, MissingParameterException, 647 OperationFailedException, PermissionDeniedException, ReadOnlyException; 648 649 /** 650 * Updates an existing CourseOffering. 651 * 652 * @param courseOfferingId Id of CourseOffering to be updated 653 * @param courseOfferingInfo Details of updates to the CourseOffering 654 * @param context Context information containing the principalId 655 * and locale information about the caller of 656 * service operation 657 * @return updated CourseOffering 658 * @throws DataValidationErrorException One or more values invalid for this 659 * operation 660 * @throws DoesNotExistException the CourseOffering does not exist 661 * @throws InvalidParameterException One or more parameters invalid 662 * @throws MissingParameterException One or more parameters missing 663 * @throws OperationFailedException unable to complete request 664 * @throws PermissionDeniedException authorization failure 665 * @throws VersionMismatchException The action was attempted on an out 666 * of date version. 667 */ 668 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; 669 670 /** 671 * Changes the state of an existing CourseOffering into another state 672 * provided that it is valid to do so. 673 * 674 * @param courseOfferingId Id of the CourseOffering to be changed. 675 * @param nextStateKey The State Key into which the identified 676 * courseOffering will be placed if the operation 677 * succeeds. 678 * @param contextInfo Context information containing the principalId 679 * and locale information about the caller of 680 * service operation 681 * @return status of the operation (success, failed) 682 * @throws DoesNotExistException the identified CourseOffering does not 683 * exist 684 * @throws InvalidParameterException the contextInfo object is invalid 685 * @throws MissingParameterException One or more parameters missing 686 * @throws OperationFailedException unable to complete request 687 * @throws PermissionDeniedException authorization failure 688 */ 689 public StatusInfo changeCourseOfferingState(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 690 691 /** 692 * Updates an existing CourseOffering from its canonical. This should 693 * reinitialize and overwrite any changes to the course offering that were 694 * made since its creation with the defaults from the canonical course 695 * 696 * @param courseOfferingId Id of CourseOffering to be updated 697 * @param optionKeys options to use when copying data from the 698 * canonical 699 * @param context Context information containing the principalId 700 * and locale information about the caller of 701 * service operation 702 * @return updated CourseOffering 703 * @throws DataValidationErrorException One or more values invalid for this 704 * operation 705 * @throws DoesNotExistException the CourseOffering does not exist 706 * @throws InvalidParameterException One or more parameters invalid 707 * @throws MissingParameterException One or more parameters missing 708 * @throws OperationFailedException unable to complete request 709 * @throws PermissionDeniedException authorization failure 710 * @throws VersionMismatchException The action was attempted on an out 711 * of date version. 712 */ 713 @Override 714 public CourseOfferingInfo updateCourseOfferingFromCanonical(@WebParam(name = "courseOfferingId") String courseOfferingId, 715 @WebParam(name = "optionKeys") List<String> optionKeys, 716 @WebParam(name = "context") ContextInfo context) 717 throws DataValidationErrorException, DoesNotExistException, 718 InvalidParameterException, MissingParameterException, OperationFailedException, 719 PermissionDeniedException, VersionMismatchException; 720 721 /** 722 * Deletes an existing CourseOffering. 723 * 724 * @param courseOfferingId the Id of the ActivityOffering to be deleted 725 * @param context Context information containing the principalId 726 * and locale information about the caller of 727 * service operation 728 * @return status of the operation (success, failed) 729 * @throws DoesNotExistException the CourseOffering does not 730 * exist 731 * @throws InvalidParameterException One or more parameters invalid 732 * @throws MissingParameterException One or more parameters missing 733 * @throws OperationFailedException unable to complete request 734 * @throws PermissionDeniedException authorization failure 735 * @throws DependentObjectsExistException When one or more Format Offering, 736 * Activity Offering, Registration 737 * Group or Seat Pool Definition 738 * exist for course offering. 739 */ 740 public StatusInfo deleteCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException; 741 742 /** 743 * Deletes an existing CourseOffering cascaded style. Deleting a course 744 * offering cascaded style would also delete all the format offering, 745 * activity offerings, registration groups and seat pool definitions within 746 * it. Cross listed course offerings should also be deleted along with 747 * passed in courseOfferingId. 748 * 749 * @param courseOfferingId the Id of the ActivityOffering to be deleted 750 * @param context Context information containing the principalId 751 * and locale information about the caller of 752 * service operation 753 * @return status of the operation (success, failed) 754 * @throws DoesNotExistException the CourseOffering does not exist 755 * @throws InvalidParameterException One or more parameters invalid 756 * @throws MissingParameterException One or more parameters missing 757 * @throws OperationFailedException unable to complete request 758 * @throws PermissionDeniedException authorization failure 759 */ 760 public StatusInfo deleteCourseOfferingCascaded(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException, DataValidationErrorException; 761 762 /** 763 * Validates / Compares a course offering against it's canonical course. 764 * 765 * @param courseOfferingInfo the course offering information to be tested. 766 * @param context Context information containing the principalId 767 * and locale information about the caller of 768 * service operation 769 * @return the results from performing the validation 770 * @throws DoesNotExistException if the course associated with the 771 * course offering does not exist 772 * @throws InvalidParameterException if a parameter is invalid 773 * @throws MissingParameterException if a parameter is missing 774 * @throws OperationFailedException unable to complete request 775 * @throws PermissionDeniedException authorization failure 776 */ 777 @Override 778 public List<ValidationResultInfo> validateCourseOfferingFromCanonical(@WebParam(name = "courseOfferingInfo") CourseOfferingInfo courseOfferingInfo, 779 @WebParam(name = "optionKeys") List<String> optionKeys, 780 @WebParam(name = "context") ContextInfo context) 781 throws DoesNotExistException, 782 InvalidParameterException, 783 MissingParameterException, 784 OperationFailedException, 785 PermissionDeniedException; 786 787 /** 788 * Gets an format offering based on Id. 789 * 790 * @param formatOfferingId The Format Offering identifier 791 * @param context Context information containing the principalId 792 * and locale information about the caller of 793 * service operation 794 * @return the FormatOffering identified by the identifier 795 * @throws DoesNotExistException The Format Offering doesn't exist 796 * @throws InvalidParameterException Invalid formatOfferingId 797 * @throws MissingParameterException Missing formatOfferingId 798 * @throws OperationFailedException unable to complete request 799 */ 800 public FormatOfferingInfo getFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 801 802 /** 803 * Gets a list of format offering by a course offering id they belong to. 804 * 805 * @param courseOfferingId Course offering identifier 806 * @param context Context information containing the principalId 807 * and locale information about the caller of 808 * service operation 809 * @return a list of FormatOffering by course offering 810 * @throws DoesNotExistException The course offering doesn't exist 811 * @throws InvalidParameterException Invalid course offering id 812 * @throws MissingParameterException Missing course offering id 813 * @throws OperationFailedException unable to complete request 814 * @throws PermissionDeniedException authorization failure 815 */ 816 public List<FormatOfferingInfo> getFormatOfferingsByCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 817 818 /** 819 * Creates an Format Offering for a course offering 820 * 821 * @param courseOfferingId Course offering that the Format Offering 822 * belongs to 823 * @param formatId the identifier for the FormatOffering 824 * @param formatOfferingType the type key of the Format Offering template 825 * @param formatOfferingInfo The Format Offering info object 826 * @return the information about the FormatOffering created 827 * @throws DataValidationErrorException 828 * @throws DoesNotExistException if courseOfferingId or formatId does 829 * not exist for the course in the 830 * course offering 831 * @throws InvalidParameterException Invalid course offering id 832 * @throws MissingParameterException Missing course offering id, 833 * formatOfferingTemplate or 834 * formatOfferingType 835 * @throws OperationFailedException unable to complete request 836 * @throws PermissionDeniedException 837 */ 838 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; 839 840 /** 841 * Update a Format Offering 842 * 843 * @param formatOfferingId The Id formatOffering to be updated 844 * @param formatOfferingInfo The new formatOffering Info 845 * @param context Context information containing the principalId 846 * and locale information about the caller of 847 * service operation 848 * @return the updated information about the FormatOffering updated. 849 * @throws DataValidationErrorException One or more values invalid for this 850 * operation 851 * @throws DoesNotExistException The formatOfferingId doesn't exist 852 * @throws InvalidParameterException Invalid formatOfferingId or 853 * formatOffering 854 * @throws MissingParameterException Missing formatOffering or 855 * formatOfferingId 856 * @throws OperationFailedException unable to complete request 857 * @throws PermissionDeniedException authorization failure 858 * @throws VersionMismatchException stale version being updated 859 */ 860 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; 861 862 863 /** 864 * Changes the state of an existing FormatOffering to another state provided 865 * that it is valid to do so. 866 * 867 * @param formatOfferingId Id of the FormatOffering to be changed. 868 * @param nextStateKey The State Key into which the identified 869 * FormatOffering will be placed if the operation 870 * succeeds. 871 * @param contextInfo Context information containing the principalId 872 * and locale information about the caller of 873 * service operation 874 * @return status of the operation (success, failed) 875 * @throws DoesNotExistException the identified FormatOffering does not 876 * exist 877 * @throws InvalidParameterException the contextInfo object is invalid 878 * @throws MissingParameterException One or more parameters missing 879 * @throws OperationFailedException unable to complete request 880 * @throws PermissionDeniedException authorization failure 881 */ 882 public StatusInfo changeFormatOfferingState(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 883 884 /** 885 * Validates a format offering. Depending on the value of validationType, 886 * this validation could be limited to tests on just the current object and 887 * its directly contained sub-objects or expanded to perform all tests 888 * related to this object. 889 * 890 * @param validationType Identifier of the extent of validation 891 * @param formatOfferingInfo the format offering information to be tested. 892 * @param context Context information containing the principalId 893 * and locale information about the caller of 894 * service operation 895 * @return the results from performing the validation 896 * @throws DoesNotExistException validationTypeKey not found 897 * @throws InvalidParameterException invalid validationTypeKey, formatOfferingInfo 898 * @throws MissingParameterException missing validationTypeKey, formatOfferingInfo 899 * @throws OperationFailedException unable to complete request 900 * @throws PermissionDeniedException authorization failure 901 */ 902 public List<ValidationResultInfo> validateFormatOffering(@WebParam(name = "validationType") String validationType, 903 @WebParam(name = "formatOfferingInfo") FormatOfferingInfo formatOfferingInfo, 904 @WebParam(name = "context") ContextInfo context) 905 throws DoesNotExistException, 906 InvalidParameterException, 907 MissingParameterException, 908 OperationFailedException, 909 PermissionDeniedException; 910 911 912 /** 913 * Deletes an Format Offering 914 * 915 * @param formatOfferingId The Id formatOffering to be deleted 916 * @param context Context information containing the principalId 917 * and locale information about the caller of 918 * service operation 919 * @return status of the operation (success, failed) 920 * @throws DoesNotExistException The formatOfferingId doesn't 921 * exist 922 * @throws InvalidParameterException Invalid formatOfferingId 923 * @throws MissingParameterException Missing formatOfferingId 924 * @throws OperationFailedException unable to complete request 925 * @throws PermissionDeniedException authorization failure 926 * @throws DependentObjectsExistException When one or more Activity 927 * Offering, Registration Group or 928 * Seat Pool Definition exist for the 929 * format offering. 930 */ 931 public StatusInfo deleteFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException; 932 933 934 /** 935 * Deletes an Format Offering with dependent Activity Offering and 936 * Registration group 937 * 938 * @param formatOfferingId The Id formatOffering to be deleted 939 * @param context Context information containing the principalId 940 * and locale information about the caller of 941 * service operation 942 * @return the status of the operation (success/fail) 943 * @throws DoesNotExistException The formatOfferingId doesn't exist 944 * @throws InvalidParameterException Invalid formatOfferingId 945 * @throws MissingParameterException Missing formatOfferingId 946 * @throws OperationFailedException unable to complete request 947 * @throws PermissionDeniedException authorization failure 948 */ 949 950 public StatusInfo deleteFormatOfferingCascaded(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException, DataValidationErrorException; 951 952 953 /** 954 * Searches for FormatOfferings that meet the given search criteria. 955 * 956 * @param criteria the search criteria 957 * @param contextInfo information containing the principalId and locale 958 * information about the caller of service operation 959 * @return a list of CourseOffering Ids matching the criteria 960 * @throws InvalidParameterException criteria or contextInfo is not valid 961 * @throws MissingParameterException criteria or contextInfo is missing or 962 * null 963 * @throws OperationFailedException unable to complete request 964 * @throws PermissionDeniedException an authorization failure occurred 965 */ 966 public List<String> searchForFormatOfferingIds(@WebParam(name = "criteria") QueryByCriteria criteria, 967 @WebParam(name = "contextInfo") ContextInfo contextInfo) 968 throws InvalidParameterException, 969 MissingParameterException, 970 OperationFailedException, 971 PermissionDeniedException; 972 973 /** 974 * Searches for FormatOfferings that meet the given search criteria. 975 * 976 * @param criteria the search criteria 977 * @param contextInfo information containing the principalId and locale 978 * information about the caller of service operation 979 * @return a list of CourseOfferings matching the criteria 980 * @throws InvalidParameterException criteria or contextInfo is not valid 981 * @throws MissingParameterException criteria or contextInfo is missing or 982 * null 983 * @throws OperationFailedException unable to complete request 984 * @throws PermissionDeniedException an authorization failure occurred 985 */ 986 public List<FormatOfferingInfo> searchForFormatOfferings(@WebParam(name = "criteria") QueryByCriteria criteria, 987 @WebParam(name = "contextInfo") ContextInfo contextInfo) 988 throws InvalidParameterException, 989 MissingParameterException, 990 OperationFailedException, 991 PermissionDeniedException; 992 993 994 995 /** 996 * This method returns the TypeInfo for a given activity offering type key. 997 * 998 * @param activityOfferingTypeKey Key of the type 999 * @param context Context information containing the 1000 * principalId and locale information about 1001 * the caller of service operation 1002 * @return Information about the Type 1003 * @throws DoesNotExistException activityOfferingTypeKey not found 1004 * @throws InvalidParameterException invalid activityOfferingTypeKey 1005 * @throws MissingParameterException missing activityOfferingTypeKey 1006 * @throws OperationFailedException unable to complete request 1007 * @throws PermissionDeniedException authorization failure 1008 */ 1009 public TypeInfo getActivityOfferingType(@WebParam(name = "activityOfferingTypeKey") String activityOfferingTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1010 1011 /** 1012 * This method returns the valid activity offering types. 1013 * 1014 * @param context Context information containing the principalId and locale 1015 * information about the caller of service operation 1016 * @return a list of valid activity offering Types 1017 * @throws InvalidParameterException invalid context 1018 * @throws MissingParameterException missing context 1019 * @throws OperationFailedException unable to complete request 1020 * @throws PermissionDeniedException authorization failure 1021 */ 1022 public List<TypeInfo> getActivityOfferingTypes(@WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1023 1024 /** 1025 * This method returns the valid activity offering types for a given 1026 * canonical activity type 1027 * 1028 * @param activityTypeKey Key of the canonical activity type 1029 * @param context Context information containing the principalId and 1030 * locale information about the caller of service 1031 * operation 1032 * @return a list of valid activity offering Types 1033 * @throws DoesNotExistException activityOfferingTypeKey not found 1034 * @throws InvalidParameterException invalid context 1035 * @throws MissingParameterException missing context 1036 * @throws OperationFailedException unable to complete request 1037 * @throws PermissionDeniedException authorization failure 1038 */ 1039 public List<TypeInfo> getActivityOfferingTypesForActivityType(@WebParam(name = "activityTypeKey") String activityTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1040 1041 /** 1042 * This method returns the valid instructor (lpr) types for an activity 1043 * offering type. 1044 * 1045 * @param activityOfferingTypeKey a key for an activity offering type 1046 * @param context information containing the principalId and 1047 * locale information about the caller of 1048 * service operation 1049 * @return a list of valid instructor types 1050 * @throws DoesNotExistException activityOfferingTypeKey not found 1051 * @throws InvalidParameterException context is not valud 1052 * @throws MissingParameterException activityOfferingTypeKey or contextInfo 1053 * is missing or null 1054 * @throws OperationFailedException unable to complete request 1055 * @throws PermissionDeniedException an authorization failure occurred 1056 */ 1057 public List<TypeInfo> getInstructorTypesForActivityOfferingType(@WebParam(name = "activityOfferingTypeKey") String activityOfferingTypeKey, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1058 1059 /** 1060 * Retrieve information about an ActivityOffering 1061 * 1062 * @param activityOfferingId Unique Id of the ActivityOffering 1063 * @param context Context information containing the principalId 1064 * and locale information about the caller of 1065 * service operation 1066 * @return ActivityOffering associated with the passed in Id 1067 * @throws DoesNotExistException ActivityOffering with activityOfferingId not found 1068 * @throws InvalidParameterException invalid activityOfferingId 1069 * @throws MissingParameterException missing activityOfferingId 1070 * @throws OperationFailedException unable to complete request 1071 * @throws PermissionDeniedException authorization failure 1072 */ 1073 public ActivityOfferingInfo getActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1074 1075 /** 1076 * Retrieves a single ActivityOfferingDisplay by a ActivityOffering Id. 1077 * 1078 * @param activityOfferingId an identifier for an ActivityOffering 1079 * @param contextInfo information containing the principalId and 1080 * locale information about the caller of service 1081 * operation 1082 * @return the ActivityOfferingDisplay requested 1083 * @throws DoesNotExistException activityOfferingId does not exist 1084 * @throws InvalidParameterException contextInfo is not valid 1085 * @throws MissingParameterException activityOfferingId or contextInfo is 1086 * missing or null 1087 * @throws OperationFailedException unable to complete request 1088 * @throws PermissionDeniedException an authorization failure occurred 1089 */ 1090 public ActivityOfferingDisplayInfo getActivityOfferingDisplay(@WebParam(name = "activityOfferingId") String activityOfferingId, 1091 @WebParam(name = "contextInfo") ContextInfo contextInfo) 1092 throws DoesNotExistException, 1093 InvalidParameterException, 1094 MissingParameterException, 1095 OperationFailedException, 1096 PermissionDeniedException; 1097 1098 /** 1099 * Retrieves a list of activity offerings by id list. 1100 * 1101 * @param activityOfferingIds List of unique Ids of ActivityCourseOffering 1102 * @param context Context information containing the principalId 1103 * and locale information about the caller of 1104 * service operation 1105 * @return Activity offering list 1106 * @throws DoesNotExistException activityOfferingId in the list not 1107 * found 1108 * @throws InvalidParameterException invalid activityOfferingIds 1109 * @throws MissingParameterException missing activityOfferingIds 1110 * @throws OperationFailedException unable to complete request 1111 * @throws PermissionDeniedException authorization failure 1112 */ 1113 public List<ActivityOfferingInfo> getActivityOfferingsByIds(@WebParam(name = "activityOfferingIds") List<String> activityOfferingIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1114 1115 1116 /** 1117 * Retrieve a list of ActivitAOfferingAdminDisplays corresponding to a list 1118 * of ActivityOffering Ids. The returned list may be in any order and if 1119 * duplicate Ids are supplied, a unique set may or may not be returned. 1120 * 1121 * @param activityOfferingIds a list of ActivityOffering identifiers 1122 * @param contextInfo information containing the principalId and 1123 * locale information about the caller of service 1124 * operation 1125 * @return a list of ActivityOfferingDisplays 1126 * @throws DoesNotExistException an activityOfferingId in the list not 1127 * found 1128 * @throws InvalidParameterException contextInfo is not valid 1129 * @throws MissingParameterException activityOfferingIds, an Id in 1130 * activityOfferingId, or contextInfo is 1131 * missing or null 1132 * @throws OperationFailedException unable to complete request 1133 * @throws PermissionDeniedException an authorization failure occurred 1134 */ 1135 public List<ActivityOfferingDisplayInfo> getActivityOfferingDisplaysByIds(@WebParam(name = "activityOfferingIds") List<String> activityOfferingIds, 1136 @WebParam(name = "contextInfo") ContextInfo contextInfo) 1137 throws DoesNotExistException, 1138 InvalidParameterException, 1139 MissingParameterException, 1140 OperationFailedException, 1141 PermissionDeniedException; 1142 1143 /** 1144 * Retrieves a list of ActivityOffering records that belongs to a 1145 * CourseOffering. 1146 * 1147 * @param courseOfferingId Unique Id of the CourseOffering 1148 * @param context Context information containing the principalId 1149 * and locale information about the caller of 1150 * service operation 1151 * @return List of ActivityOffering 1152 * @throws DoesNotExistException courseOfferingId not found 1153 * @throws InvalidParameterException invalid courseOfferingId 1154 * @throws MissingParameterException missing courseOfferingId 1155 * @throws OperationFailedException unable to complete request 1156 * @throws PermissionDeniedException authorization failure 1157 */ 1158 public List<ActivityOfferingInfo> getActivityOfferingsByCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1159 1160 /** 1161 * Retrieve a list of ActivityOfferingDisplays corresponding to a 1162 * CourseOffering Id. Activity Offerings for all FormatOfferings within the 1163 * given CourseOffering are used to assemble this administrative view. 1164 * 1165 * @param courseOfferingId the identifier for a CourseOffering 1166 * @param contextInfo information containing the principalId and locale 1167 * information about the caller of service 1168 * operation 1169 * @return a list of ActivityOfferingDisplayInfos 1170 * @throws DoesNotExistException courseOfferingId is not found 1171 * @throws InvalidParameterException contextInfo is not valid 1172 * @throws MissingParameterException courseOfferingId or contextInfo is 1173 * missing or null 1174 * @throws OperationFailedException unable to complete request 1175 * @throws PermissionDeniedException an authorization failure occurred 1176 */ 1177 public List<ActivityOfferingDisplayInfo> getActivityOfferingDisplaysForCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, 1178 @WebParam(name = "contextInfo") ContextInfo contextInfo) 1179 throws DoesNotExistException, 1180 InvalidParameterException, 1181 MissingParameterException, 1182 OperationFailedException, 1183 PermissionDeniedException; 1184 1185 /** 1186 * Retrieves a list of ActivityOffering records that belongs to an 1187 * ActivityOfferingCluster. 1188 * 1189 * @param activityOfferingClusterId Unique Id of the ActivityOfferingCluster 1190 * @param contextInfo Context information containing the 1191 * principalId and locale information about 1192 * the caller of service operation 1193 * @return List of ActivityOfferings 1194 * @throws DoesNotExistException activityOfferingClusterId not found 1195 * @throws InvalidParameterException invalid contextInfo 1196 * @throws MissingParameterException activityOfferingClusterId or 1197 * contextInfo is missing or null 1198 * @throws OperationFailedException unable to complete request 1199 * @throws PermissionDeniedException authorization failure 1200 */ 1201 public List<ActivityOfferingInfo> getActivityOfferingsByCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1202 1203 /** 1204 * Retrieves a list of ActivityOffering records that belongs to a 1205 * CourseOffering. 1206 * 1207 * @param formatOfferingId Unique Id of the CourseOffering 1208 * @param context Context information containing the principalId 1209 * and locale information about the caller of 1210 * service operation 1211 * @return List of ActivityOffering 1212 * @throws DoesNotExistException formatOfferingId not found 1213 * @throws InvalidParameterException invalid courseOfferingId 1214 * @throws MissingParameterException missing courseOfferingId 1215 * @throws OperationFailedException unable to complete request 1216 * @throws PermissionDeniedException authorization failure 1217 */ 1218 public List<ActivityOfferingInfo> getActivityOfferingsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1219 1220 1221 /** 1222 * Retrieves a list of ActivityOffering records that belongs to a 1223 * FormatOffering that are not associated with a cluster 1224 * 1225 * @param formatOfferingId Id of the CourseOffering 1226 * @param contextInfo Context information containing the principalId 1227 * and locale information about the caller of 1228 * service operation 1229 * @return List of ActivityOfferings without cluster association 1230 * @throws DoesNotExistException formatOfferingId not found 1231 * @throws InvalidParameterException invalid formatOfferingId 1232 * @throws MissingParameterException formatOfferingId or contextInfo is 1233 * missing or null 1234 * @throws OperationFailedException unable to complete request 1235 * @throws PermissionDeniedException an authorization failure occurred 1236 */ 1237 public List<ActivityOfferingInfo> getActivityOfferingsWithoutClusterByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1238 1239 /** 1240 * Retrieves the Activity Offerings by actvity offering template id which 1241 * don't have registration groups created for them yet. 1242 * 1243 * @param formatOfferingId The Id of the format offering 1244 * @param context Context information containing the principalId 1245 * and locale information about the caller of 1246 * service operation 1247 * @return List of ActivityOfferings by format offering that don't have reg groups yet. 1248 * @throws DoesNotExistException The formatOfferingId does not exist 1249 * @throws InvalidParameterException Invalid formatOfferingId 1250 * @throws MissingParameterException Missing formatOfferingId 1251 * @throws OperationFailedException unable to complete request 1252 * @throws PermissionDeniedException authorization failure 1253 */ 1254 public List<ActivityOfferingInfo> getActivityOfferingsByFormatOfferingWithoutRegGroup(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1255 1256 1257 /** 1258 * Retrieves a list of allowed time slots Ids for an activity offering 1259 * 1260 * @param activityOfferingId identifier for an activity offering 1261 * @param contextInfo Context information containing the principalId and 1262 * locale information about the caller of service 1263 * operation 1264 * @return a list of TimeSlots allowed for activityOfferingId or an 1265 * empty list if none found 1266 * @throws DoesNotExistException activityOfferingId does not exist 1267 * @throws InvalidParameterException invalid contextInfo 1268 * @throws MissingParameterException activityOfferingId or contextInfo is 1269 * missing or null 1270 * @throws OperationFailedException unable to complete request 1271 * @throws PermissionDeniedException an authorization failure occurred 1272 */ 1273 public List<String> getAllowedTimeSlotIdsForActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, 1274 @WebParam(name = "contextInfo") ContextInfo contextInfo) 1275 throws DoesNotExistException, 1276 InvalidParameterException, 1277 MissingParameterException, 1278 OperationFailedException, 1279 PermissionDeniedException; 1280 1281 1282 /** 1283 * Retrieves a list of allowed time slots for an activity offering 1284 * 1285 * @param activityOfferingId identifier for an activity offering 1286 * @param contextInfo Context information containing the principalId and 1287 * locale information about the caller of service 1288 * operation 1289 * @return a list of TimeSlots allowed for activityOfferingId or an 1290 * empty list if none found 1291 * @throws DoesNotExistException activityOfferingId does not exist 1292 * @throws InvalidParameterException invalid contextInfo 1293 * @throws MissingParameterException activityOfferingId or contextInfo is 1294 * missing or null 1295 * @throws OperationFailedException unable to complete request 1296 * @throws PermissionDeniedException an authorization failure occurred 1297 */ 1298 public List<TimeSlotInfo> getAllowedTimeSlotsForActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, 1299 @WebParam(name = "contextInfo") ContextInfo contextInfo) 1300 throws DoesNotExistException, 1301 InvalidParameterException, 1302 MissingParameterException, 1303 OperationFailedException, 1304 PermissionDeniedException; 1305 1306 /** 1307 * Retrieves a list of allowed time slots for given days, startTime 1308 * and for an activity offering 1309 * 1310 * @param activityOfferingId identifier for an activity offering 1311 * @param daysOfWeek days of the week of interest 1312 * @param startTime start time of interest 1313 * @param contextInfo Context information containing the principalId and 1314 * locale information about the caller of service 1315 * operation 1316 * @return a list of TimeSlots allowed for activityOfferingId, days, 1317 * startTime or an empty list if none found 1318 * @throws DoesNotExistException activityOfferingId does not exist 1319 * @throws InvalidParameterException invalid daysOfWeek, startTime or contextInfo 1320 * @throws MissingParameterException activityOfferingId, daysOfWeek, startTime or contextInfo is 1321 * missing or null 1322 * @throws OperationFailedException unable to complete request 1323 * @throws PermissionDeniedException an authorization failure occurred 1324 */ 1325 public List<TimeSlotInfo> getAllowedTimeSlotsByDaysAndStartTimeForActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, 1326 @WebParam(name = "daysOfWeek") List<Integer> daysOfWeek, 1327 @WebParam(name = "startTime") TimeOfDayInfo startTime, 1328 @WebParam(name = "contextInfo") ContextInfo contextInfo) 1329 throws DoesNotExistException, 1330 InvalidParameterException, 1331 MissingParameterException, 1332 OperationFailedException, 1333 PermissionDeniedException; 1334 1335 /** 1336 * Searches for ActivityOfferings that meet the given search criteria. 1337 * 1338 * @param criteria the search criteria 1339 * @param contextInfo context information containing the principalId and 1340 * locale information about the caller of service 1341 * operation 1342 * @return a list of ActivityOffering Ids matching the criteria 1343 * @throws InvalidParameterException criteria or contextInfo is not valid 1344 * @throws MissingParameterException criteria or contextInfo is missing or 1345 * null 1346 * @throws OperationFailedException unable to complete request 1347 * @throws PermissionDeniedException an authorization failure occurred 1348 */ 1349 public List<String> searchForActivityOfferingIds(@WebParam(name = "criteria") QueryByCriteria criteria, 1350 @WebParam(name = "contextInfo") ContextInfo contextInfo) 1351 throws InvalidParameterException, 1352 MissingParameterException, 1353 OperationFailedException, 1354 PermissionDeniedException; 1355 1356 /** 1357 * Searches for ActivityOfferings that meet the given search criteria. 1358 * 1359 * @param criteria the search criteria 1360 * @param contextInfo context information containing the principalId and 1361 * locale information about the caller of service 1362 * operation 1363 * @return a list of ActivityOfferings matching the criteria 1364 * @throws InvalidParameterException criteria or contextInfo is not valid 1365 * @throws MissingParameterException criteria or contextInfo is missing or 1366 * null 1367 * @throws OperationFailedException unable to complete request 1368 * @throws PermissionDeniedException an authorization failure occurred 1369 */ 1370 public List<ActivityOfferingInfo> searchForActivityOfferings(@WebParam(name = "criteria") QueryByCriteria criteria, 1371 @WebParam(name = "contextInfo") ContextInfo contextInfo) 1372 throws InvalidParameterException, 1373 MissingParameterException, 1374 OperationFailedException, 1375 PermissionDeniedException; 1376 1377 /** 1378 * Creates a new Activity Offering for a format offering. 1379 * 1380 * @param formatOfferingId courseOffering that the ActivityOffering 1381 * belongs to 1382 * @param activityId the canonical activity this is associated 1383 * with 1384 * @param activityOfferingInfo Details of the ActivityOffering to be 1385 * created 1386 * @param context Context information containing the 1387 * principalId and locale information about the 1388 * caller of service operation 1389 * @return newly created ActivityOffering 1390 * @throws DoesNotExistException if the format offering does not 1391 * exist 1392 * @throws DataValidationErrorException One or more values invalid for this 1393 * operation 1394 * @throws InvalidParameterException One or more parameters invalid 1395 * @throws MissingParameterException One or more parameters missing 1396 * @throws OperationFailedException unable to complete request 1397 * @throws PermissionDeniedException authorization failure 1398 */ 1399 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; 1400 1401 /** 1402 * Creates a new Activity Offering from another activity offering, the 1403 * generated activity offering is the same format offering, type and 1404 * canonical activity as the source activity fofering 1405 * 1406 * @param activityOfferingId the activity offering used as source 1407 * @param context Context information containing the principalId 1408 * and locale information about the caller of 1409 * service operation 1410 * @return newly created ActivityOffering 1411 * @throws DoesNotExistException if the format offering does not 1412 * exist 1413 * @throws DataValidationErrorException One or more values invalid for this 1414 * operation 1415 * @throws InvalidParameterException One or more parameters invalid 1416 * @throws MissingParameterException One or more parameters missing 1417 * @throws OperationFailedException unable to complete request 1418 * @throws PermissionDeniedException authorization failure 1419 */ 1420 public ActivityOfferingInfo copyActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException; 1421 1422 /** 1423 * Generates activity offerings based on a format offering. 1424 * 1425 * @param formatOfferingId the identifier for the FormatOffering. 1426 * @param activityOfferingType a key for an activity offering type 1427 * @param quantity quantity of the activity offerings of that type 1428 * @param context Context information containing the principalId 1429 * and locale information about the caller of 1430 * service operation 1431 * @return activity offerings based on format offering 1432 * @throws InvalidParameterException formatOfferingId invalid 1433 * @throws MissingParameterException Missing formatOfferingId in the input 1434 * @throws OperationFailedException unable to complete request 1435 * @throws PermissionDeniedException authorization failure 1436 */ 1437 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; 1438 1439 /** 1440 * Updates an existing ActivityOffering. 1441 * 1442 * @param activityOfferingId Id of ActivitOffering to be updated 1443 * @param activityOfferingInfo Details of updates to the ActivityOffering 1444 * @param context Context information containing the 1445 * principalId and locale information about the 1446 * caller of service operation 1447 * @return updated ActivityOffering 1448 * @throws DataValidationErrorException One or more values invalid for this 1449 * operation 1450 * @throws DoesNotExistException the ActivityOffering does not exist 1451 * @throws InvalidParameterException One or more parameters invalid 1452 * @throws MissingParameterException One or more parameters missing 1453 * @throws OperationFailedException unable to complete request 1454 * @throws PermissionDeniedException authorization failure 1455 * @throws VersionMismatchException The action was attempted on an out 1456 * of date version. 1457 */ 1458 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; 1459 1460 1461 /** 1462 * Changes the state of an existing ActivityOffering to another state 1463 * provided that it is valid to do so. 1464 * 1465 * @param activityOfferingId Id of the ActivityOffering to be changed. 1466 * @param nextStateKey The State Key into which the identified 1467 * ActivityOffering will be placed if the 1468 * operation succeeds. 1469 * @param contextInfo Context information containing the principalId 1470 * and locale information about the caller of 1471 * service operation 1472 * @return status of the operation (success, failed) 1473 * @throws DoesNotExistException the identified ActivityOffering does 1474 * not exist 1475 * @throws InvalidParameterException the contextInfo object is invalid 1476 * @throws MissingParameterException One or more parameters missing 1477 * @throws OperationFailedException unable to complete request 1478 * @throws PermissionDeniedException authorization failure 1479 */ 1480 public StatusInfo changeActivityOfferingState(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1481 1482 /** 1483 * Deletes an existing ActivityOffering. Deleting an activity will also 1484 * delete any relation it has with course offerings. An activity offering 1485 * cannot be deleted if it is being referenced in a registration group and 1486 * will be DependentObjectsExistException. The registration group needs to 1487 * be updated to drop the activity offering references before the activity 1488 * offering can be deleted. The difference in behavior is because of the 1489 * relationship nature is different between course offering to activity 1490 * offering and registration group to activity offering. Course offering 1491 * contains activity offering, so deleting an activity offering can be 1492 * logically interpreted as removing the containing relationship. 1493 * Registration group only references existing activity offerings and hence 1494 * deleting an activity offering will leave the registration group in 1495 * inconsistent state and updating registration group automatically will 1496 * lead to unintended side effects. 1497 * 1498 * @param activityOfferingId the Id of the ActivityOffering to be deleted 1499 * @param context Context information containing the principalId 1500 * and locale information about the caller of 1501 * service operation 1502 * @return status of the operation (success, failed) 1503 * @throws DoesNotExistException the identified ActivityOffering 1504 * does not exist 1505 * @throws InvalidParameterException One or more parameters invalid 1506 * @throws MissingParameterException One or more parameters missing 1507 * @throws OperationFailedException unable to complete request 1508 * @throws PermissionDeniedException authorization failure 1509 * @throws DependentObjectsExistException when one or more Registration 1510 * Group and/or Seat Pool Definitions 1511 * dependencies exist. 1512 */ 1513 public StatusInfo deleteActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException; 1514 1515 /** 1516 * Deletes an existing ActivityOffering cascaded style. Deleting an activity 1517 * offering cascaded style would also delete all the registration groups and 1518 * seat pools associated with it. 1519 * 1520 * @param activityOfferingId the Id of the ActivityOffering to be deleted 1521 * @param formatOfferingId 1522 * @param context Context information containing the principalId 1523 * and locale information about the caller of 1524 * service operation 1525 * @return status of the operation (success, failed) 1526 * @throws DoesNotExistException the identified Activity o does not 1527 * exist 1528 * @throws InvalidParameterException One or more parameters invalid 1529 * @throws MissingParameterException One or more parameters missing 1530 * @throws OperationFailedException unable to complete request 1531 * @throws PermissionDeniedException authorization failure 1532 */ 1533 public StatusInfo deleteActivityOfferingCascaded(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException, DataValidationErrorException; 1534 1535 /** 1536 * Attempt to schedule a single Activity Offering using the Scheduling 1537 * Service. 1538 * <p/> 1539 * This is designed to be used for one-off scheduling of activity offerings 1540 * created after the mass scheduling event. 1541 * <p/> 1542 * The expectation is that this method is synchronous (i.e. it will block 1543 * until the request is completed or fails). 1544 * <p/> 1545 * We also assume that the underlying scheduling service call will not take 1546 * an unbounded amount of time to solve but rather a quick one-off that will 1547 * return in a short amount of time. 1548 * 1549 * @param activityOfferingId Id of the Activity Offering to be scheduled. 1550 * @param contextInfo Context information containing the principalId 1551 * and locale information about the caller of 1552 * service operation 1553 * @return status of the starting the scheduling process for the 1554 * activityOffering (success, failed) 1555 * @throws DoesNotExistException the identified activity offering does 1556 * not exist. 1557 * @throws InvalidParameterException the contextInfo parameter object is 1558 * invalid. 1559 * @throws MissingParameterException one or more of the method parameter's 1560 * is missing. 1561 * @throws OperationFailedException unable to complete request 1562 * @throws PermissionDeniedException authorization failure 1563 */ 1564 public StatusInfo scheduleActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1565 1566 /** 1567 * Validates an activity offering. Depending on the value of validationType, 1568 * this validation could be limited to tests on just the current object and 1569 * its directly contained sub-objects or expanded to perform all tests 1570 * related to this object. If an identifier is present for the academic 1571 * calendar and a record is found for that identifier, the validation checks 1572 * if the academic calendar can be shifted to the new values. If a record 1573 * cannot be found for the identifier, it is assumed that the record does 1574 * not exist and as such, the checks performed will be much shallower, 1575 * typically mimicking those performed by setting the validationType to the 1576 * current object. This is a slightly different pattern from the standard 1577 * validation as the caller provides the identifier in the create statement 1578 * instead of the server assigning an identifier. 1579 * 1580 * @param validationType Identifier of the extent of validation 1581 * @param activityOfferingInfo the activity offering information to be 1582 * tested. 1583 * @param context Context information containing the 1584 * principalId and locale information about the 1585 * caller of service operation 1586 * @return the results from performing the validation 1587 * @throws DoesNotExistException validationTypeKey not found 1588 * @throws InvalidParameterException invalid validationTypeKey, academicCalendarInfo 1589 * @throws MissingParameterException missing validationTypeKey, academicCalendarInfo 1590 * @throws OperationFailedException unable to complete request 1591 * @throws PermissionDeniedException authorization failure 1592 */ 1593 public List<ValidationResultInfo> validateActivityOffering(@WebParam(name = "validationType") String validationType, 1594 @WebParam(name = "activityOfferingInfo") ActivityOfferingInfo activityOfferingInfo, 1595 @WebParam(name = "context") ContextInfo context) 1596 throws DoesNotExistException, 1597 InvalidParameterException, 1598 MissingParameterException, 1599 OperationFailedException, 1600 PermissionDeniedException; 1601 1602 /** 1603 * When/for how long does the offering meet in class during the term. 1604 * Calculated by system based on meeting times and term length; may be 1605 * validated against CLU. 1606 * 1607 * @param activityOfferingId the Id of the ActivityOffering to be used for 1608 * contact hour calculation 1609 * @param context Context information containing the principalId 1610 * and locale information about the caller of 1611 * service operation 1612 * @return in class contact hours for the term 1613 * @throws DoesNotExistException the ActivityOffering with activityOfferingId does not exist 1614 * @throws InvalidParameterException One or more parameters invalid 1615 * @throws MissingParameterException One or more parameters missing 1616 * @throws OperationFailedException unable to complete request 1617 * @throws PermissionDeniedException authorization failure 1618 */ 1619 public Float calculateInClassContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1620 1621 /** 1622 * When/for how long does the offering meet out of class during the term. 1623 * Calculated by system based on meeting times and term length; may be 1624 * validated against CLU. 1625 * 1626 * @param activityOfferingId the Id of the ActivityOffering to be used for 1627 * contact hour calculation 1628 * @param context Context information containing the principalId 1629 * and locale information about the caller of 1630 * service operation 1631 * @return out of class contact hours for the term 1632 * @throws DoesNotExistException the ActivityOffering with activityOfferingId does not exist 1633 * @throws InvalidParameterException One or more parameters invalid 1634 * @throws MissingParameterException One or more parameters missing 1635 * @throws OperationFailedException unable to complete request 1636 * @throws PermissionDeniedException authorization failure 1637 */ 1638 public Float calculateOutofClassContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1639 1640 /** 1641 * When/for how long does the offering meet in total during the term. 1642 * Calculated by system based on meeting times and term length; may be 1643 * validated against CLU. 1644 * 1645 * @param activityOfferingId the Id of the ActivityOffering to be used for 1646 * contact hour calculation 1647 * @param context Context information containing the principalId 1648 * and locale information about the caller of 1649 * service operation 1650 * @return total class contact hours for the term 1651 * @throws DoesNotExistException the ActivityOffering with activityOfferingId does not exist 1652 * @throws InvalidParameterException One or more parameters invalid 1653 * @throws MissingParameterException One or more parameters missing 1654 * @throws OperationFailedException unable to complete request 1655 * @throws PermissionDeniedException authorization failure 1656 */ 1657 public Float calculateTotalContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1658 1659 /** 1660 * Retrieve a RegistrationGroup based on id 1661 * 1662 * @param registrationGroupId Unique Id of the RegistrationGroup 1663 * @param context Context information containing the principalId 1664 * and locale information about the caller of 1665 * service operation 1666 * @return RegistrationGroup associated with the passed in Id 1667 * @throws DoesNotExistException registrationGroupId not found 1668 * @throws InvalidParameterException invalid registrationGroupId 1669 * @throws MissingParameterException missing registrationGroupId 1670 * @throws OperationFailedException unable to complete request 1671 * @throws PermissionDeniedException authorization failure 1672 */ 1673 public RegistrationGroupInfo getRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1674 1675 /** 1676 * Retrieves a list of registration group by id list. 1677 * 1678 * @param registrationGroupIds List of unique Ids of RegistrationGroup 1679 * @param context Context information containing the 1680 * principalId and locale information about the 1681 * caller of service operation 1682 * @return Registration Group list 1683 * @throws DoesNotExistException registrationGroupId in the list not 1684 * found 1685 * @throws InvalidParameterException invalid registrationGroupIds 1686 * @throws MissingParameterException missing registrationGroupIds 1687 * @throws OperationFailedException unable to complete request 1688 * @throws PermissionDeniedException authorization failure 1689 */ 1690 public List<RegistrationGroupInfo> getRegistrationGroupsByIds(@WebParam(name = "registrationGroupIds") List<String> registrationGroupIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1691 1692 /** 1693 * Retrieves a list of RegistrationGroup records that belongs to a 1694 * CourseOffering 1695 * 1696 * @param courseOfferingId Unique Id of the CourseOffering 1697 * @param context Context information containing the principalId 1698 * and locale information about the caller of 1699 * service operation 1700 * @return List of RegistrationGroups 1701 * @throws DoesNotExistException courseOfferingId not found 1702 * @throws InvalidParameterException invalid courseOfferingId 1703 * @throws MissingParameterException missing courseOfferingId 1704 * @throws OperationFailedException unable to complete request 1705 * @throws PermissionDeniedException authorization failure 1706 */ 1707 public List<RegistrationGroupInfo> getRegistrationGroupsForCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1708 1709 /** 1710 * Retrieves a list of RegistrationGroup records that contain all the 1711 * activity offerings in the input list. 1712 * 1713 * @param activityOfferingIds List of activityOffering Identifiers 1714 * @param context Context information containing the principalId 1715 * and locale information about the caller of 1716 * service operation 1717 * @return a list of RegistrationGroup records that contain all the 1718 * activity offerings in the input list. 1719 * @throws DoesNotExistException One or more of the activityOfferingIds 1720 * doesn't exist 1721 * @throws InvalidParameterException One or more invalid activityOfferingIds 1722 * @throws MissingParameterException Missing activityOfferingIds 1723 * @throws OperationFailedException unable to complete request 1724 * @throws PermissionDeniedException authorization failure 1725 */ 1726 public List<RegistrationGroupInfo> getRegistrationGroupsWithActivityOfferings(@WebParam(name = "activityOfferingIds") List<String> activityOfferingIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1727 1728 /** 1729 * Returns all registration groups that contain activityOfferingId in the list of AOs associated with 1730 * the registration group. A variant of getRegistrationGroupsWithActivityOfferings with only a single 1731 * activity offering. 1732 * @param activityOfferingId An activity offering id. 1733 * @param context Context information containing the principalId 1734 * and locale information about the caller of 1735 * service operation 1736 * @return a list of RegistrationGroup records that contain all the 1737 * activity offerings in the input list. 1738 * @throws DoesNotExistException One or more of the activityOfferingIds 1739 * doesn't exist 1740 * @throws InvalidParameterException One or more invalid activityOfferingIds 1741 * @throws MissingParameterException Missing activityOfferingIds 1742 * @throws OperationFailedException unable to complete request 1743 * @throws PermissionDeniedException authorization failure 1744 */ 1745 public List<RegistrationGroupInfo> getRegistrationGroupsByActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1746 1747 /** 1748 * Retrieves a list of RegistrationGroup records that belongs to a 1749 * CourseOffering for a given canonical format type 1750 * 1751 * @param formatOfferingId Unique Id of the CourseOffering 1752 * @param context information containing the principalId and locale 1753 * information about the caller of service 1754 * operation 1755 * @return List of RegistrationGroups 1756 * @throws DoesNotExistException courseOfferingId or formatTypeKey not 1757 * found 1758 * @throws InvalidParameterException invalid courseOfferingId or 1759 * formatTypeKey 1760 * @throws MissingParameterException missing courseOfferingId or 1761 * formatTypeKey 1762 * @throws OperationFailedException unable to complete request 1763 * @throws PermissionDeniedException authorization failure 1764 */ 1765 public List<RegistrationGroupInfo> getRegistrationGroupsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1766 1767 /** 1768 * Retrieves a list of RegistrationGroup records that belongs to a specified 1769 * ActivityOfferingCluster. 1770 * 1771 * @param activityOfferingClusterId Unique Id of the ActivityOfferingCluster 1772 * @param contextInfo information containing the principalId 1773 * and locale information about the caller 1774 * of service operation 1775 * @return List of RegistrationGroups 1776 * @throws DoesNotExistException No ActivityOfferingCluster exists for 1777 * the specified activityOfferingClusterId. 1778 * @throws InvalidParameterException invalid contextInfo object 1779 * @throws MissingParameterException one or more method parameters are 1780 * missing. 1781 * @throws OperationFailedException unable to complete request 1782 * @throws PermissionDeniedException authorization failure 1783 */ 1784 public List<RegistrationGroupInfo> getRegistrationGroupsByActivityOfferingCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1785 1786 /** 1787 * Searches for RegistrationGroups that meet the given search criteria. 1788 * 1789 * @param criteria the search criteria 1790 * @param contextInfo context information containing the principalId and 1791 * locale information about the caller of service 1792 * operation 1793 * @return a list of RegistrationGroup Ids matching the criteria 1794 * @throws InvalidParameterException criteria or contextInfo is not valid 1795 * @throws MissingParameterException criteria or contextInfo is missing or 1796 * null 1797 * @throws OperationFailedException unable to complete request 1798 * @throws PermissionDeniedException an authorization failure occurred 1799 */ 1800 public List<String> searchForRegistrationGroupIds(@WebParam(name = "criteria") QueryByCriteria criteria, 1801 @WebParam(name = "contextInfo") ContextInfo contextInfo) 1802 throws InvalidParameterException, 1803 MissingParameterException, 1804 OperationFailedException, 1805 PermissionDeniedException; 1806 1807 /** 1808 * Searches for RegistrationGroups that meet the given search criteria. 1809 * 1810 * @param criteria the search criteria 1811 * @param contextInfo context information containing the principalId and 1812 * locale information about the caller of service 1813 * operation 1814 * @return a list of RegistrationGroups matching the criteria 1815 * @throws InvalidParameterException criteria or contextInfo is not valid 1816 * @throws MissingParameterException criteria or contextInfo is missing or 1817 * null 1818 * @throws OperationFailedException unable to complete request 1819 * @throws PermissionDeniedException an authorization failure occurred 1820 */ 1821 public List<RegistrationGroupInfo> searchForRegistrationGroups(@WebParam(name = "criteria") QueryByCriteria criteria, 1822 @WebParam(name = "contextInfo") ContextInfo contextInfo) 1823 throws InvalidParameterException, 1824 MissingParameterException, 1825 OperationFailedException, 1826 PermissionDeniedException; 1827 1828 /** 1829 * Validates a registration group. Depending on the value of validationType, 1830 * this validation could be limited to tests on just the current object and 1831 * its directly contained subobjects or expanded to perform all tests 1832 * related to this object. If an identifier is present for the academic 1833 * calendar and a record is found for that identifier, the validation checks 1834 * if the academic calendar can be shifted to the new values. If a record 1835 * cannot be found for the identifier, it is assumed that the record does 1836 * not exist and as such, the checks performed will be much shallower, 1837 * typically mimicking those performed by setting the validationType to the 1838 * current object. This is a slightly different pattern from the standard 1839 * validation as the caller provides the identifier in the create statement 1840 * instead of the server assigning an identifier. 1841 * 1842 * @param validationType Identifier of the extent of validation 1843 * @param activityOfferingClusterId Unique Id of the ActivityOfferingCluster 1844 * @param registrationGroupType the identifier for the RegistrationGroup 1845 * type 1846 * @param registrationGroupInfo the registrationGroup information to be 1847 * tested. 1848 * @param contextInfo Context information containing the 1849 * principalId and locale information about 1850 * the caller of service operation 1851 * @return a list of validation results or an empty list if validation 1852 * succeeded 1853 * @throws DoesNotExistException validationTypeKey not found 1854 * @throws InvalidParameterException invalid validationTypeKey, academicCalendarInfo 1855 * @throws MissingParameterException missing validationTypeKey, academicCalendarInfo 1856 * @throws OperationFailedException unable to complete request 1857 * @throws PermissionDeniedException authorization failure 1858 */ 1859 public List<ValidationResultInfo> validateRegistrationGroup(@WebParam(name = "validationType") String validationType, 1860 @WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, 1861 @WebParam(name = "registrationGroupType") String registrationGroupType, 1862 @WebParam(name = "registrationGroupInfo") RegistrationGroupInfo registrationGroupInfo, 1863 @WebParam(name = "contextInfo") ContextInfo contextInfo) 1864 throws DoesNotExistException, 1865 InvalidParameterException, 1866 MissingParameterException, 1867 OperationFailedException, 1868 PermissionDeniedException; 1869 1870 /** 1871 * Creates a new Registration Group. 1872 * 1873 * @param formatOfferingId formatOfferingId that the RegistrationGroup 1874 * is based on 1875 * @param activityOfferingClusterId Unique Id of the ActivityOfferingCluster 1876 * @param registrationGroupType the identifier for the RegistrationGroup 1877 * type 1878 * @param registrationGroupInfo Details of the RegistrationGroup to be 1879 * created 1880 * @param context Context information containing the 1881 * principalId and locale information about 1882 * the caller of service operation 1883 * @return newly created registrationGroup 1884 * @throws DoesNotExistException courseOfferingId not found 1885 * @throws DataValidationErrorException One or more values invalid for this 1886 * operation 1887 * @throws InvalidParameterException One or more parameters invalid 1888 * @throws MissingParameterException One or more parameters missing 1889 * @throws OperationFailedException unable to complete request 1890 * @throws PermissionDeniedException authorization failure 1891 */ 1892 public RegistrationGroupInfo createRegistrationGroup(@WebParam(name = "formatOfferingId") String formatOfferingId, 1893 @WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, 1894 @WebParam(name = "registrationGroupType") String registrationGroupType, 1895 @WebParam(name = "registrationGroupInfo") RegistrationGroupInfo registrationGroupInfo, 1896 @WebParam(name = "context") ContextInfo context) 1897 throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException; 1898 1899 /** 1900 * Updates an existing RegistrationGroup. 1901 * 1902 * @param registrationGroupId Id of RegistrationGroup to be updated 1903 * @param registrationGroupInfo Details of updates to the RegistrationGroup 1904 * @param context Context information containing the 1905 * principalId and locale information about the 1906 * caller of service operation 1907 * @return updated RegistrationGroup 1908 * @throws DataValidationErrorException One or more values invalid for this 1909 * operation 1910 * @throws DoesNotExistException the registrationGroupId does not 1911 * exist 1912 * @throws InvalidParameterException One or more parameters invalid 1913 * @throws MissingParameterException One or more parameters missing 1914 * @throws OperationFailedException unable to complete request 1915 * @throws PermissionDeniedException authorization failure 1916 * @throws VersionMismatchException The action was attempted on an out 1917 * of date version. 1918 */ 1919 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; 1920 1921 /** 1922 * Changes the state of an existing RegistrationGroup to another state 1923 * provided that it is valid to do so. 1924 * 1925 * @param registrationGroupId Id of the RegistrationGroup to be changed. 1926 * @param nextStateKey The State Key into which the identified 1927 * RegistrationGroup will be placed if the 1928 * operation succeeds. 1929 * @param contextInfo Context information containing the principalId 1930 * and locale information about the caller of 1931 * service operation 1932 * @return status of the operation (success, failed) 1933 * @throws DoesNotExistException the identified RegsitrationGroup does 1934 * not exist 1935 * @throws InvalidParameterException the contextInfo object is invalid 1936 * @throws MissingParameterException One or more parameters missing 1937 * @throws OperationFailedException unable to complete request 1938 * @throws PermissionDeniedException authorization failure 1939 */ 1940 public StatusInfo changeRegistrationGroupState(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1941 1942 /** 1943 * Deletes an existing Registration Group. Removes the relationship to the 1944 * course offering and activity offering. The activity offerings are not 1945 * automatically deleted 1946 * 1947 * @param registrationGroupId the Id of the RegistrationGroup to be deleted 1948 * @param context Context information containing the principalId 1949 * and locale information about the caller of 1950 * service operation 1951 * @throws DoesNotExistException the RegistrationGroup does not exist 1952 * @throws InvalidParameterException One or more parameters invalid 1953 * @throws MissingParameterException One or more parameters missing 1954 * @throws OperationFailedException unable to complete request 1955 * @throws PermissionDeniedException authorization failure 1956 */ 1957 public StatusInfo deleteRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1958 1959 /** 1960 * Deletes all Registration Groups for a Format Offering. 1961 * 1962 * @param formatOfferingId the Id of the FormatOffering 1963 * @param context Context information containing the principalId 1964 * and locale information about the caller of 1965 * service operation 1966 * @throws InvalidParameterException One or more parameters invalid 1967 * @throws MissingParameterException One or more parameters missing 1968 * @throws OperationFailedException unable to complete request 1969 * @throws PermissionDeniedException authorization failure 1970 */ 1971 public List<BulkStatusInfo> deleteRegistrationGroupsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1972 1973 /** 1974 * Deletes all generated Registration Groups for a Format Offering. A 1975 * generated registration group is one whose isGenerated() flag is true. 1976 * 1977 * @param formatOfferingId the Id of the FormatOffering 1978 * @param context Context information containing the principalId 1979 * and locale information about the caller of 1980 * service operation 1981 * @throws InvalidParameterException One or more parameters invalid 1982 * @throws MissingParameterException One or more parameters missing 1983 * @throws OperationFailedException unable to complete request 1984 * @throws PermissionDeniedException authorization failure 1985 */ 1986 public List<BulkStatusInfo> deleteGeneratedRegistrationGroupsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1987 1988 /** 1989 * Deletes all Registration Groups associated with an Activity Offering 1990 * Cluster 1991 * 1992 * @param activityOfferingClusterId the Id of the FormatOffering 1993 * @param contextInfo Context information containing the 1994 * principalId and locale information about 1995 * the caller of service operation 1996 * @return status of the operation (success, failed) 1997 * @throws InvalidParameterException invalid contextInfo 1998 * @throws MissingParameterException activityOfferingClusterId or 1999 * contextInfo is missing or null 2000 * @throws OperationFailedException unable to complete request 2001 * @throws PermissionDeniedException an authorization failure has occurred 2002 */ 2003 public List<BulkStatusInfo> deleteRegistrationGroupsForCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2004 2005 /** 2006 * Verifies a Registration Group applying rules such as: 2007 * <ol> 2008 * <li>Registration Group has one ActivityOffering for each Format Offering 2009 * activityOfferingType</li> 2010 * <li>ActivityOffering's don't have any time conflicts (if scheduling 2011 * has already happened)</li> 2012 * <li>ActivityOffering's are all offered at the same campus</li> 2013 * <li>ActivityOffering's don't have conflicting seatpool/enrollment 2014 * restrictions</li> 2015 * </ol> 2016 * <p></p> 2017 * The distinction between <b>validateRegistrationGroup</b> and this 2018 * method is that <b>validate</b> checks if its OK to save the object where 2019 * as <b>verify</b> checks a saved object and its relation to other saved objects. 2020 * <p></p> 2021 * <b>validate</b> is called for every <b>create</b> and <b>update</b> and 2022 * needs to execute quickly where as this method can take longer to 2023 * accurately evaluate the specified RegistrationGroup. 2024 * 2025 * @param registrationGroupId the registrationGroup information to be 2026 * tested. 2027 * @param contextInfo Context information containing the principalId 2028 * and locale information about the caller of 2029 * service operation 2030 * @return a list of validation results or an empty list if validation 2031 * succeeded 2032 * @throws DoesNotExistException contextInfo not found 2033 * @throws InvalidParameterException invalid registrationGroupId or 2034 * contextInfo 2035 * @throws MissingParameterException registrationGroupId or contextInfo is 2036 * missing or null 2037 * @throws OperationFailedException unable to complete request 2038 */ 2039 public List<ValidationResultInfo> verifyRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 2040 2041 2042 /** 2043 * Gets an Activity Offering Cluster based on the Identifier 2044 * 2045 * @param activityOfferingClusterId Identifier of the Activity Offering 2046 * Cluster 2047 * @param contextInfo Context information containing the 2048 * principalId and locale information about 2049 * the caller of service operation 2050 * @return ActivityOfferingCluster 2051 * @throws DoesNotExistException activityOfferingClusterId does not 2052 * exist 2053 * @throws InvalidParameterException Invalid contextInfo 2054 * @throws MissingParameterException activityOfferingClusterId or 2055 * contextInfo is missing or null 2056 * @throws OperationFailedException unable to complete request 2057 * @throws PermissionDeniedException an authorization failure occurred 2058 */ 2059 public ActivityOfferingClusterInfo getActivityOfferingCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2060 2061 2062 /** 2063 * Retrieves a list of activity offering clusters using the given id list. 2064 * The returned list may be in any order and if duplicate Ids are supplied, a unique set may or may not be returned. 2065 * 2066 * @param activityOfferingClusterIds List of unique Ids of ActivityOfferingClusters 2067 * @param contextInfo Context information containing the principalId 2068 * and locale information about the caller of 2069 * service operation 2070 * @return Activity offering cluster list 2071 * @throws DoesNotExistException activityOfferingClusterId in the list not 2072 * found 2073 * @throws InvalidParameterException invalid activityOfferingClusterIds 2074 * @throws MissingParameterException missing activityOfferingClusterIds 2075 * @throws OperationFailedException unable to complete request 2076 * @throws PermissionDeniedException authorization failure 2077 */ 2078 public List<ActivityOfferingClusterInfo> getActivityOfferingClustersByIds(@WebParam(name = "activityOfferingClusterIds") List<String> activityOfferingClusterIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2079 2080 /** 2081 * Retrieves a list of ActivityOfferingClusters associated with a 2082 * FormatOffering 2083 * 2084 * @param formatOfferingId Id of the FormatOffering 2085 * @param contextInfo Context information containing the principalId 2086 * and locale information about the caller of 2087 * service operation 2088 * @return List of ActivityOffering 2089 * @throws DoesNotExistException courseOfferingId not found 2090 * @throws InvalidParameterException invalid contextInfo 2091 * @throws MissingParameterException formatOfferingId or contextInfo is 2092 * missing or null 2093 * @throws OperationFailedException unable to complete request 2094 * @throws PermissionDeniedException an authorization failure occurred 2095 */ 2096 public List<ActivityOfferingClusterInfo> getActivityOfferingClustersByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2097 2098 /** 2099 * Retrieves a list of ActivityOfferingCluster Id's associated with a 2100 * FormatOffering 2101 * 2102 * @param formatOfferingId Id of the FormatOffering 2103 * @param contextInfo Context information containing the principalId 2104 * and locale information about the caller of 2105 * service operation 2106 * @return List of ActivityOffering Id's 2107 * @throws DoesNotExistException courseOfferingId not found 2108 * @throws InvalidParameterException invalid contextInfo 2109 * @throws MissingParameterException formatOfferingId or contextInfo is 2110 * missing or null 2111 * @throws OperationFailedException unable to complete request 2112 * @throws PermissionDeniedException an authorization failure occurred 2113 */ 2114 public List<String> getActivityOfferingClustersIdsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2115 2116 /** 2117 * Validates an Activity Offering Cluster. Depending on the value of 2118 * validationTypeKey, this validation could be limited to tests on just the 2119 * current object and its directly contained sub-objects or expanded to 2120 * perform all tests related to this object. If an identifier is present for 2121 * the academic calendar and a record is found for that identifier, the 2122 * validation checks if the academic calendar can be shifted to the new 2123 * values. If a record cannot be found for the identifier, it is assumed 2124 * that the record does not exist and as such, the checks performed will be 2125 * much shallower, typically mimicking those performed by setting the 2126 * validationTypeKey to the current object. This is a slightly different 2127 * pattern from the standard validation as the caller provides the 2128 * identifier in the create statement instead of the server assigning an 2129 * identifier. 2130 * 2131 * @param validationTypeKey Identifier of the extent of 2132 * validation 2133 * @param formatOfferingId Format Offering identifier 2134 * @param activityOfferingClusterInfo the Activity Offering Cluster 2135 * information to be validated. 2136 * @param contextInfo Context information containing the 2137 * principalId and locale information 2138 * about the caller of service operation 2139 * @return the results from performing the validation 2140 * @throws DoesNotExistException validationTypeKey or activityOfferingClusterTypeKey 2141 * not found 2142 * @throws InvalidParameterException invalid activityOfferingClusterInfo or 2143 * contextInfo 2144 * @throws MissingParameterException validationTypeKey, activityOfferingClusterTypeKey, 2145 * activityOfferingClusterInfo or 2146 * contextInfo is missing or null 2147 * @throws OperationFailedException unable to complete request 2148 * @throws PermissionDeniedException authorization failure 2149 */ 2150 public List<ValidationResultInfo> validateActivityOfferingCluster(@WebParam(name = "validationTypeKey") String validationTypeKey, 2151 @WebParam(name = "formatOfferingId") String formatOfferingId, 2152 @WebParam(name = "activityOfferingClusterInfo") ActivityOfferingClusterInfo activityOfferingClusterInfo, 2153 @WebParam(name = "contextInfo") ContextInfo contextInfo) 2154 throws DoesNotExistException, 2155 InvalidParameterException, 2156 MissingParameterException, 2157 OperationFailedException, 2158 PermissionDeniedException; 2159 2160 /** 2161 * Creates a new Activity Offering Cluster from the given Format Offering 2162 * 2163 * @param formatOfferingId Format Offering identifier 2164 * @param activityOfferingClusterTypeKey Activity Offering Cluster type 2165 * @param activityOfferingClusterInfo Details of the ActivityOfferingCluster 2166 * to be created 2167 * @param contextInfo Context information containing the 2168 * principalId and locale information 2169 * about the caller of service 2170 * operation 2171 * @return newly created ActivityOfferingCluster 2172 * @throws DataValidationErrorException supplied data is invalid 2173 * @throws DoesNotExistException validationTypeKey or activityOfferingClusterTypeKey 2174 * not found 2175 * @throws InvalidParameterException invalid activityOfferingClusterInfo 2176 * or contextInfo 2177 * @throws MissingParameterException validationTypeKey, activityOfferingClusterTypeKey 2178 * or activityOfferingClusterInfo is 2179 * missing or null 2180 * @throws OperationFailedException unable to complete request 2181 * @throws PermissionDeniedException an authorization failure has 2182 * occurred 2183 * @throws ReadOnlyException an attempt at supplying information 2184 * designated as read only 2185 */ 2186 public ActivityOfferingClusterInfo createActivityOfferingCluster(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "activityOfferingClusterTypeKey") String activityOfferingClusterTypeKey, @WebParam(name = "activityOfferingClusterInfo") ActivityOfferingClusterInfo activityOfferingClusterInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException; 2187 2188 /** 2189 * Updates an ActivityOfferingCluster based on the info object 2190 * 2191 * @param formatOfferingId Format Offering identifier 2192 * @param activityOfferingClusterId Identifier of the Activity Offering 2193 * Cluster 2194 * @param activityOfferingClusterInfo ActivityOfferingCluster with new 2195 * information 2196 * @param contextInfo Context information containing the 2197 * principalId and locale information 2198 * about the caller of service operation 2199 * @return updated ActivityOfferingCluster 2200 * @throws DataValidationErrorException supplied data is invalid 2201 * @throws DoesNotExistException activityOfferingClusterId does not 2202 * exist 2203 * @throws InvalidParameterException Invalid activityOfferingClusterInfo 2204 * @throws MissingParameterException activityOfferingClusterId or 2205 * activityOfferingClusterInfo is 2206 * missing or null 2207 * @throws OperationFailedException unable to complete request 2208 * @throws PermissionDeniedException an authorization failure has 2209 * occurred 2210 * @throws ReadOnlyException an attempt at supplying information 2211 * designated as read only 2212 * @throws VersionMismatchException optimistic locking failure or the 2213 * action was attempted on an out of 2214 * date version 2215 */ 2216 public ActivityOfferingClusterInfo updateActivityOfferingCluster(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "activityOfferingClusterInfo") ActivityOfferingClusterInfo activityOfferingClusterInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException; 2217 2218 /** 2219 * Changes the state of an existing ActivityOfferingCluster to another state 2220 * provided that it is valid to do so. 2221 * 2222 * @param activityOfferingClusterId Id of the ActivityOfferingCluster to be 2223 * changed. 2224 * @param nextStateKey The State Key into which the identified 2225 * ActivityOfferingCluster will be placed 2226 * if the operation succeeds. 2227 * @param contextInfo Context information containing the 2228 * principalId and locale information about 2229 * the caller of service operation 2230 * @return status of the operation (success, failed) 2231 * @throws DoesNotExistException the identified ActivityOfferingCluster 2232 * does not exist 2233 * @throws InvalidParameterException the contextInfo object is invalid 2234 * @throws MissingParameterException One or more parameters missing 2235 * @throws OperationFailedException unable to complete request 2236 * @throws PermissionDeniedException authorization failure 2237 */ 2238 public StatusInfo changeActivityOfferingClusterState(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2239 2240 /** 2241 * Deletes an activity offering cluster based on the identifier 2242 * 2243 * @param activityOfferingClusterId Identifier of the Activity Offering 2244 * Cluster 2245 * @param contextInfo Context information containing the 2246 * principalId and locale information about 2247 * the caller of service operation 2248 * @return status of the operation (success, failed) 2249 * @throws DoesNotExistException activityOfferingClusterId does not 2250 * exist 2251 * @throws InvalidParameterException Invalid contextInfo 2252 * @throws MissingParameterException activityOfferingClusterId or 2253 * contextInfo is missing or null 2254 * @throws OperationFailedException unable to complete request 2255 * @throws PermissionDeniedException an authorization failure has 2256 * occurred 2257 * @throws DependentObjectsExistException Registration Groups exist for this 2258 * cluster which prevents the delete 2259 * from occuring. 2260 */ 2261 public StatusInfo deleteActivityOfferingCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException; 2262 2263 /** 2264 * Deletes an existing ActivityOfferingCluster cascaded style. Deleting an 2265 * activity offering cluster cascaded style would also delete all the 2266 * registration groups associated with it. 2267 * 2268 * @param activityOfferingClusterId the Id of the ActivityOfferingCluster to 2269 * be deleted 2270 * @param contextInfo Context information containing the 2271 * principalId and locale information about 2272 * the caller of service operation 2273 * @return status of the operation (success, failed) 2274 * @throws DoesNotExistException the identified Activity o does not 2275 * exist 2276 * @throws InvalidParameterException One or more parameters invalid 2277 * @throws MissingParameterException One or more parameters missing 2278 * @throws OperationFailedException unable to complete request 2279 * @throws PermissionDeniedException authorization failure 2280 */ 2281 public StatusInfo deleteActivityOfferingClusterCascaded(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2282 2283 /** 2284 * Verifies an Activity Offering Cluster's completeness for the generation 2285 * of Registration Group's. 2286 * 2287 * The distinction between <b>validateActivityOfferingCluster</b> and this 2288 * method is that <b>validate</b> checks if its OK to save the object where 2289 * as <b>verify</b> checks a saved object in relation to other saved objects. 2290 * 2291 * <p></p> 2292 * <b>validate</b> is called for every <b>create</b> and <b>update</b> and 2293 * needs to execute quickly where as this method can take longer to 2294 * accurately evaluate the specified Activity Offering Cluster. 2295 * 2296 * @param activityOfferingClusterId Activity Offering Cluster to be 2297 * verified 2298 * @param contextInfo Context information containing the 2299 * principalId and locale information about 2300 * the caller of service operation 2301 * @return Information gleaned from verifying the ActivityOfferingCluster 2302 * @throws DoesNotExistException activityOfferingClusterId not found 2303 * @throws InvalidParameterException invalid contextInfo 2304 * @throws MissingParameterException activityOfferingClusterId or 2305 * contextInfo is missing or null 2306 * @throws OperationFailedException unable to complete request 2307 * @throws PermissionDeniedException authorization failure 2308 * @impl See https://wiki.kuali.org/display/STUDENT/Reg+Group+Verification 2309 */ 2310 public AOClusterVerifyResultsInfo verifyActivityOfferingClusterForGeneration(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2311 2312 /** 2313 * Searches for Activity Offering Clusters that meet the given search criteria. 2314 * 2315 * @param criteria the search criteria 2316 * @param contextInfo information containing the principalId and locale 2317 * information about the caller of service operation 2318 * @return a list of CourseOffering Ids matching the criteria 2319 * @throws InvalidParameterException criteria or contextInfo is not valid 2320 * @throws MissingParameterException criteria or contextInfo is missing or 2321 * null 2322 * @throws OperationFailedException unable to complete request 2323 * @throws PermissionDeniedException an authorization failure occurred 2324 */ 2325 public List<String> searchForActivityOfferingClusterIds(@WebParam(name = "criteria") QueryByCriteria criteria, 2326 @WebParam(name = "contextInfo") ContextInfo contextInfo) 2327 throws InvalidParameterException, 2328 MissingParameterException, 2329 OperationFailedException, 2330 PermissionDeniedException; 2331 2332 /** 2333 * Searches for Activity Offering Clusters that meet the given search criteria. 2334 * 2335 * @param criteria the search criteria 2336 * @param contextInfo information containing the principalId and locale 2337 * information about the caller of service operation 2338 * @return a list of CourseOfferings matching the criteria 2339 * @throws InvalidParameterException criteria or contextInfo is not valid 2340 * @throws MissingParameterException criteria or contextInfo is missing or 2341 * null 2342 * @throws OperationFailedException unable to complete request 2343 * @throws PermissionDeniedException an authorization failure occurred 2344 */ 2345 public List<ActivityOfferingClusterInfo> searchForActivityOfferingClusters(@WebParam(name = "criteria") QueryByCriteria criteria, 2346 @WebParam(name = "contextInfo") ContextInfo contextInfo) 2347 throws InvalidParameterException, 2348 MissingParameterException, 2349 OperationFailedException, 2350 PermissionDeniedException; 2351 2352 /** 2353 * Retrieve information about a SeatPoolDefinition 2354 * 2355 * @param seatPoolDefinitionId Unique Id of the SeatPoolDefinition 2356 * @param context Context information containing the 2357 * principalId and locale information about the 2358 * caller of service operation 2359 * @return SeatPoolDefinition associated with the passed in Id 2360 * @throws DoesNotExistException seatPoolDefinitionId not found 2361 * @throws InvalidParameterException invalid seatPoolDefinitionId 2362 * @throws MissingParameterException missing seatPoolDefinitionId 2363 * @throws OperationFailedException unable to complete request 2364 * @throws PermissionDeniedException authorization failure 2365 */ 2366 public SeatPoolDefinitionInfo getSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2367 2368 /** 2369 * Retrieves a list of SeatPoolDefinitions records that belongs to an 2370 * ActivityOffering. This should return SeatPoolDefinitions that apply 2371 * globally across all RegistrationGroups in the ActivityOffering. 2372 * 2373 * @param activityOfferingId Unique Id of the ActivityOffering 2374 * @param context Context information containing the principalId 2375 * and locale information about the caller of 2376 * service operation 2377 * @return List of SeatPoolDefinitions 2378 * @throws DoesNotExistException No ActivityOffering found for the specified activityOfferingId 2379 * @throws InvalidParameterException context is null 2380 * @throws MissingParameterException one or more missing parameters 2381 * @throws OperationFailedException unable to complete request 2382 * @throws PermissionDeniedException authorization failure 2383 */ 2384 public List<SeatPoolDefinitionInfo> getSeatPoolDefinitionsForActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2385 2386 /** 2387 * Retrieves a list of ActivityOffering records that are associated to a specific 2388 * SeatPoolDefinition. 2389 * 2390 * @param seatPoolDefinitionId Unique Id of the SeatPoolDefinition 2391 * @param context Context information containing the principalId 2392 * and locale information about the caller of 2393 * service operation 2394 * @return List of ActivityOfferings 2395 * @throws DoesNotExistException no seat pool exists for seatPoolDefinitionId 2396 * @throws InvalidParameterException contextInfo is null. 2397 * @throws MissingParameterException missing seatPoolDefinitionId 2398 * @throws OperationFailedException unable to complete request 2399 * @throws PermissionDeniedException authorization failure 2400 */ 2401 public List<ActivityOfferingInfo> getActivityOfferingsForSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2402 2403 /** 2404 * Searches for SeatPoolDefinitions that meet the given search criteria. 2405 * 2406 * @param criteria the search criteria 2407 * @param contextInfo context information containing the principalId and 2408 * locale information about the caller of service 2409 * operation 2410 * @return a list of SeatPoolDefinition Ids matching the criteria 2411 * @throws InvalidParameterException criteria or contextInfo is not valid 2412 * @throws MissingParameterException criteria or contextInfo is missing or 2413 * null 2414 * @throws OperationFailedException unable to complete request 2415 * @throws PermissionDeniedException an authorization failure occurred 2416 */ 2417 public List<String> searchForSeatpoolDefinitionIds(@WebParam(name = "criteria") QueryByCriteria criteria, 2418 @WebParam(name = "contextInfo") ContextInfo contextInfo) 2419 throws InvalidParameterException, 2420 MissingParameterException, 2421 OperationFailedException, 2422 PermissionDeniedException; 2423 2424 /** 2425 * Searches for SeatPoolDefinitions that meet the given search criteria. 2426 * 2427 * @param criteria the search criteria 2428 * @param contextInfo context information containing the principalId and 2429 * locale information about the caller of service 2430 * operation 2431 * @return a list of SeatPoolDefinitions matching the criteria 2432 * @throws InvalidParameterException criteria or contextInfo is not valid 2433 * @throws MissingParameterException criteria or contextInfo is missing or 2434 * null 2435 * @throws OperationFailedException unable to complete request 2436 * @throws PermissionDeniedException an authorization failure occurred 2437 */ 2438 public List<SeatPoolDefinitionInfo> searchForSeatpoolDefinitions(@WebParam(name = "criteria") QueryByCriteria criteria, 2439 @WebParam(name = "contextInfo") ContextInfo contextInfo) 2440 throws InvalidParameterException, 2441 MissingParameterException, 2442 OperationFailedException, 2443 PermissionDeniedException; 2444 2445 /** 2446 * Creates a new Seat Pool 2447 * 2448 * @param seatPoolDefinitionInfo Details of the SeatPoolDefinition to be 2449 * created 2450 * @param context Context information containing the 2451 * principalId and locale information about 2452 * the caller of service operation 2453 * @return newly created SeatPoolDefinition 2454 * @throws DataValidationErrorException One or more values invalid for this 2455 * operation 2456 * @throws InvalidParameterException One or more parameters invalid 2457 * @throws MissingParameterException One or more parameters missing 2458 * @throws OperationFailedException unable to complete request 2459 * @throws PermissionDeniedException authorization failure 2460 */ 2461 public SeatPoolDefinitionInfo createSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionInfo") SeatPoolDefinitionInfo seatPoolDefinitionInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException; 2462 2463 /** 2464 * Updates an existing SeatPoolDefinition. 2465 * 2466 * @param seatPoolDefinitionId Id of SeatPoolDefinition to be updated 2467 * @param seatPoolDefinitionInfo Details of updates to the SeatPoolDefinition 2468 * @param context Context information containing the 2469 * principalId and locale information about 2470 * the caller of service operation 2471 * @return updated SeatPoolDefinition 2472 * @throws DataValidationErrorException One or more values invalid for this 2473 * operation 2474 * @throws DoesNotExistException the SeatPoolDefinition does not 2475 * exist 2476 * @throws InvalidParameterException One or more parameters invalid 2477 * @throws MissingParameterException One or more parameters missing 2478 * @throws OperationFailedException unable to complete request 2479 * @throws PermissionDeniedException authorization failure 2480 * @throws VersionMismatchException The action was attempted on an out 2481 * of date version. 2482 */ 2483 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; 2484 2485 /** 2486 * Changes the state of an existing SeatPoolDefinition to another state 2487 * provided that it is valid to do so. 2488 * 2489 * @param seatPoolDefinitionId Id of the SeatPoolDefinition to be changed. 2490 * @param nextStateKey The State Key into which the identified 2491 * SeatPoolDefinition will be placed if the 2492 * operation succeeds. 2493 * @param contextInfo Context information containing the 2494 * principalId and locale information about the 2495 * caller of service operation 2496 * @return status of the operation (success, failed) 2497 * @throws DoesNotExistException the identified SeatPoolDefinition does 2498 * not exist 2499 * @throws InvalidParameterException the contextInfo object is invalid 2500 * @throws MissingParameterException One or more parameters missing 2501 * @throws OperationFailedException unable to complete request 2502 * @throws PermissionDeniedException authorization failure 2503 */ 2504 public StatusInfo changeSeatPoolDefinitionState(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2505 2506 /** 2507 * Validate a seat pool definition 2508 * 2509 * @param validationTypeKey * @param seatPoolDefinitionInfo 2510 * @param context Context information containing the 2511 * principalId and locale information about the 2512 * caller of service operation 2513 * @throws DoesNotExistException if validation type key is not found 2514 * @throws InvalidParameterException the context or object is invalid 2515 * @throws MissingParameterException One or more parameters missing 2516 * @throws OperationFailedException unable to complete request 2517 * @throws PermissionDeniedException authorization failure 2518 */ 2519 public List<ValidationResultInfo> validateSeatPoolDefinition(@WebParam(name = "validationTypeKey") String validationTypeKey, 2520 @WebParam(name = "seatPoolDefinitionInfo") SeatPoolDefinitionInfo seatPoolDefinitionInfo, 2521 @WebParam(name = "context") ContextInfo context) 2522 throws DoesNotExistException, 2523 InvalidParameterException, 2524 MissingParameterException, 2525 OperationFailedException, 2526 PermissionDeniedException; 2527 2528 /** 2529 * Deletes an existing SeatPoolDefinition. 2530 * 2531 * @param seatPoolDefinitionId the Id of the SeatPoolDefinition to be 2532 * deleted 2533 * @param context Context information containing the 2534 * principalId and locale information about the 2535 * caller of service operation 2536 * @throws DoesNotExistException the SeatPoolDefinition does not exist 2537 * @throws InvalidParameterException One or more parameters invalid 2538 * @throws MissingParameterException One or more parameters missing 2539 * @throws OperationFailedException unable to complete request 2540 * @throws PermissionDeniedException authorization failure 2541 */ 2542 public StatusInfo deleteSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2543 2544 /** 2545 * Add a SeatPoolDefinition to an ActivityOffering 2546 * 2547 * @param seatPoolDefinitionId a unique identifier for a SeatPoolDefinition 2548 * @param activityOfferingId a unique identifier for an ActivityOffering 2549 * @param contextInfo Context information containing the 2550 * principalId and locale information about the 2551 * caller of service operation 2552 * @return status 2553 * @throws AlreadyExistsException seatPoolDefinitionId already related to 2554 * activityOfferingId 2555 * @throws DoesNotExistException seatPoolDefinitionId or activityOfferingId 2556 * not found 2557 * @throws InvalidParameterException invalid seatPoolDefinitionId, 2558 * activityOfferingId, or contextInfo 2559 * @throws MissingParameterException missing seatPoolDefinitionId, 2560 * activityOfferingId, or contextInfo 2561 * @throws OperationFailedException unable to complete request 2562 * @throws PermissionDeniedException authorization failure 2563 */ 2564 public StatusInfo addSeatPoolDefinitionToActivityOffering(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, 2565 @WebParam(name = "activityOfferingId") String activityOfferingId, 2566 @WebParam(name = "contextInfo") ContextInfo contextInfo) 2567 throws AlreadyExistsException, 2568 DoesNotExistException, 2569 InvalidParameterException, 2570 MissingParameterException, 2571 OperationFailedException, 2572 PermissionDeniedException; 2573 2574 /** 2575 * Removes a SeatPoolDefinition from an ActivityOffering. 2576 * 2577 * @param seatPoolDefinitionId a unique identifier for a SeatPoolDefinition 2578 * @param activityOfferingId a unique identifier for an ActivityOffering 2579 * @param contextInfo Context information containing the 2580 * principalId and locale information about the 2581 * caller of service operation 2582 * @return status 2583 * @throws DoesNotExistException seatPoolDefinitionId or activityOfferingId 2584 * not found 2585 * @throws InvalidParameterException invalid seatPoolDefinitionId, 2586 * activityOfferingId, or contextInfo 2587 * @throws MissingParameterException missing seatPoolDefinitionId, 2588 * activityOfferingId, or contextInfo 2589 * @throws OperationFailedException unable to complete request 2590 * @throws PermissionDeniedException authorization failure 2591 */ 2592 public StatusInfo removeSeatPoolDefinitionFromActivityOffering(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, 2593 @WebParam(name = "activityOfferingId") String activityOfferingId, 2594 @WebParam(name = "contextInfo") ContextInfo contextInfo) 2595 throws DoesNotExistException, 2596 InvalidParameterException, 2597 MissingParameterException, 2598 OperationFailedException, 2599 PermissionDeniedException; 2600 2601 2602 2603 /** 2604 * This is a bulk create method for generateRegistrationGroupsForAOC(). Instead of working on a single Activity Offering Cluster it will 2605 * work on all of the AOC's of the format offering specified. 2606 * 2607 * @param formatOfferingId The identifier of the format offering to generate registration groups for. 2608 * @param contextInfo Context information containing the principalId and locale information about the caller of service operation 2609 * @return status of the operation (success, failed) for each Registration Group created. 2610 * @throws DoesNotExistException The formatOfferingId does not refer to an existing FormatOffering. 2611 * @throws InvalidParameterException The formatOfferingId or context is invalid. 2612 * @throws MissingParameterException the formatOfferingId or context is missing. 2613 * @throws OperationFailedException unable to complete request, can also occur when verification of any AOC in the format offering fails. 2614 * @throws PermissionDeniedException authorization failure 2615 * @throws DataValidationErrorException verification of any of the underlying Activity Offering Cluster's failed. 2616 */ 2617 public List<BulkStatusInfo> generateRegistrationGroupsForFormatOffering(@WebParam (name="formatOfferingId") 2618 String formatOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) 2619 throws DoesNotExistException, InvalidParameterException, 2620 MissingParameterException, OperationFailedException, 2621 PermissionDeniedException, DataValidationErrorException; 2622 2623 /** 2624 * Generates all possible registration groups for the Activity Offering 2625 * Cluster 2626 * 2627 * @param activityOfferingClusterId identifier of the Activity Offering 2628 * Cluster 2629 * @param contextInfo Context information containing the 2630 * principalId and locale information about 2631 * the caller of service operation 2632 * @return status of the operation (success, failed) for each Registration Group created. 2633 * @throws DoesNotExistException activityOfferingClusterId does not 2634 * exist 2635 * @throws DataValidationErrorException verification of the Activity Offering Cluster failed. 2636 * @throws InvalidParameterException invalid contextInfo 2637 * @throws MissingParameterException activityOfferingClusterId or 2638 * contextInfo is missing or null 2639 * @throws OperationFailedException unable to complete request 2640 * @throws PermissionDeniedException an authorization failure has occurred 2641 * @impl Does 'delta' generation: Creates only new RGs 2642 */ 2643 public List<BulkStatusInfo> generateRegistrationGroupsForCluster( @WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2644 2645 }