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; 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; 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 context Context information containing the principalId 1522 * and locale information about the caller of 1523 * service operation 1524 * @return status of the operation (success, failed) 1525 * @throws DoesNotExistException the identified Activity o does not 1526 * exist 1527 * @throws InvalidParameterException One or more parameters invalid 1528 * @throws MissingParameterException One or more parameters missing 1529 * @throws OperationFailedException unable to complete request 1530 * @throws PermissionDeniedException authorization failure 1531 */ 1532 public StatusInfo deleteActivityOfferingCascaded(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1533 1534 /** 1535 * Attempt to schedule a single Activity Offering using the Scheduling 1536 * Service. 1537 * <p/> 1538 * This is designed to be used for one-off scheduling of activity offerings 1539 * created after the mass scheduling event. 1540 * <p/> 1541 * The expectation is that this method is synchronous (i.e. it will block 1542 * until the request is completed or fails). 1543 * <p/> 1544 * We also assume that the underlying scheduling service call will not take 1545 * an unbounded amount of time to solve but rather a quick one-off that will 1546 * return in a short amount of time. 1547 * 1548 * @param activityOfferingId Id of the Activity Offering to be scheduled. 1549 * @param contextInfo Context information containing the principalId 1550 * and locale information about the caller of 1551 * service operation 1552 * @return status of the starting the scheduling process for the 1553 * activityOffering (success, failed) 1554 * @throws DoesNotExistException the identified activity offering does 1555 * not exist. 1556 * @throws InvalidParameterException the contextInfo parameter object is 1557 * invalid. 1558 * @throws MissingParameterException one or more of the method parameter's 1559 * is missing. 1560 * @throws OperationFailedException unable to complete request 1561 * @throws PermissionDeniedException authorization failure 1562 */ 1563 public StatusInfo scheduleActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1564 1565 /** 1566 * Validates an activity offering. Depending on the value of validationType, 1567 * this validation could be limited to tests on just the current object and 1568 * its directly contained sub-objects or expanded to perform all tests 1569 * related to this object. If an identifier is present for the academic 1570 * calendar and a record is found for that identifier, the validation checks 1571 * if the academic calendar can be shifted to the new values. If a record 1572 * cannot be found for the identifier, it is assumed that the record does 1573 * not exist and as such, the checks performed will be much shallower, 1574 * typically mimicking those performed by setting the validationType to the 1575 * current object. This is a slightly different pattern from the standard 1576 * validation as the caller provides the identifier in the create statement 1577 * instead of the server assigning an identifier. 1578 * 1579 * @param validationType Identifier of the extent of validation 1580 * @param activityOfferingInfo the activity offering information to be 1581 * tested. 1582 * @param context Context information containing the 1583 * principalId and locale information about the 1584 * caller of service operation 1585 * @return the results from performing the validation 1586 * @throws DoesNotExistException validationTypeKey not found 1587 * @throws InvalidParameterException invalid validationTypeKey, academicCalendarInfo 1588 * @throws MissingParameterException missing validationTypeKey, academicCalendarInfo 1589 * @throws OperationFailedException unable to complete request 1590 * @throws PermissionDeniedException authorization failure 1591 */ 1592 public List<ValidationResultInfo> validateActivityOffering(@WebParam(name = "validationType") String validationType, 1593 @WebParam(name = "activityOfferingInfo") ActivityOfferingInfo activityOfferingInfo, 1594 @WebParam(name = "context") ContextInfo context) 1595 throws DoesNotExistException, 1596 InvalidParameterException, 1597 MissingParameterException, 1598 OperationFailedException, 1599 PermissionDeniedException; 1600 1601 /** 1602 * When/for how long does the offering meet in class during the term. 1603 * Calculated by system based on meeting times and term length; may be 1604 * validated against CLU. 1605 * 1606 * @param activityOfferingId the Id of the ActivityOffering to be used for 1607 * contact hour calculation 1608 * @param context Context information containing the principalId 1609 * and locale information about the caller of 1610 * service operation 1611 * @return in class contact hours for the term 1612 * @throws DoesNotExistException the ActivityOffering with activityOfferingId does not exist 1613 * @throws InvalidParameterException One or more parameters invalid 1614 * @throws MissingParameterException One or more parameters missing 1615 * @throws OperationFailedException unable to complete request 1616 * @throws PermissionDeniedException authorization failure 1617 */ 1618 public Float calculateInClassContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1619 1620 /** 1621 * When/for how long does the offering meet out of class during the term. 1622 * Calculated by system based on meeting times and term length; may be 1623 * validated against CLU. 1624 * 1625 * @param activityOfferingId the Id of the ActivityOffering to be used for 1626 * contact hour calculation 1627 * @param context Context information containing the principalId 1628 * and locale information about the caller of 1629 * service operation 1630 * @return out of class contact hours for the term 1631 * @throws DoesNotExistException the ActivityOffering with activityOfferingId does not exist 1632 * @throws InvalidParameterException One or more parameters invalid 1633 * @throws MissingParameterException One or more parameters missing 1634 * @throws OperationFailedException unable to complete request 1635 * @throws PermissionDeniedException authorization failure 1636 */ 1637 public Float calculateOutofClassContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1638 1639 /** 1640 * When/for how long does the offering meet in total during the term. 1641 * Calculated by system based on meeting times and term length; may be 1642 * validated against CLU. 1643 * 1644 * @param activityOfferingId the Id of the ActivityOffering to be used for 1645 * contact hour calculation 1646 * @param context Context information containing the principalId 1647 * and locale information about the caller of 1648 * service operation 1649 * @return total class contact hours for the term 1650 * @throws DoesNotExistException the ActivityOffering with activityOfferingId does not exist 1651 * @throws InvalidParameterException One or more parameters invalid 1652 * @throws MissingParameterException One or more parameters missing 1653 * @throws OperationFailedException unable to complete request 1654 * @throws PermissionDeniedException authorization failure 1655 */ 1656 public Float calculateTotalContactHoursForTerm(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1657 1658 /** 1659 * Retrieve a RegistrationGroup based on id 1660 * 1661 * @param registrationGroupId Unique Id of the RegistrationGroup 1662 * @param context Context information containing the principalId 1663 * and locale information about the caller of 1664 * service operation 1665 * @return RegistrationGroup associated with the passed in Id 1666 * @throws DoesNotExistException registrationGroupId not found 1667 * @throws InvalidParameterException invalid registrationGroupId 1668 * @throws MissingParameterException missing registrationGroupId 1669 * @throws OperationFailedException unable to complete request 1670 * @throws PermissionDeniedException authorization failure 1671 */ 1672 public RegistrationGroupInfo getRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1673 1674 /** 1675 * Retrieves a list of registration group by id list. 1676 * 1677 * @param registrationGroupIds List of unique Ids of RegistrationGroup 1678 * @param context Context information containing the 1679 * principalId and locale information about the 1680 * caller of service operation 1681 * @return Registration Group list 1682 * @throws DoesNotExistException registrationGroupId in the list not 1683 * found 1684 * @throws InvalidParameterException invalid registrationGroupIds 1685 * @throws MissingParameterException missing registrationGroupIds 1686 * @throws OperationFailedException unable to complete request 1687 * @throws PermissionDeniedException authorization failure 1688 */ 1689 public List<RegistrationGroupInfo> getRegistrationGroupsByIds(@WebParam(name = "registrationGroupIds") List<String> registrationGroupIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1690 1691 /** 1692 * Retrieves a list of RegistrationGroup records that belongs to a 1693 * CourseOffering 1694 * 1695 * @param courseOfferingId Unique Id of the CourseOffering 1696 * @param context Context information containing the principalId 1697 * and locale information about the caller of 1698 * service operation 1699 * @return List of RegistrationGroups 1700 * @throws DoesNotExistException courseOfferingId not found 1701 * @throws InvalidParameterException invalid courseOfferingId 1702 * @throws MissingParameterException missing courseOfferingId 1703 * @throws OperationFailedException unable to complete request 1704 * @throws PermissionDeniedException authorization failure 1705 */ 1706 public List<RegistrationGroupInfo> getRegistrationGroupsForCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1707 1708 /** 1709 * Retrieves a list of RegistrationGroup records that contain all the 1710 * activity offerings in the input list. 1711 * 1712 * @param activityOfferingIds List of activityOffering Identifiers 1713 * @param context Context information containing the principalId 1714 * and locale information about the caller of 1715 * service operation 1716 * @return a list of RegistrationGroup records that contain all the 1717 * activity offerings in the input list. 1718 * @throws DoesNotExistException One or more of the activityOfferingIds 1719 * doesn't exist 1720 * @throws InvalidParameterException One or more invalid activityOfferingIds 1721 * @throws MissingParameterException Missing activityOfferingIds 1722 * @throws OperationFailedException unable to complete request 1723 * @throws PermissionDeniedException authorization failure 1724 */ 1725 public List<RegistrationGroupInfo> getRegistrationGroupsWithActivityOfferings(@WebParam(name = "activityOfferingIds") List<String> activityOfferingIds, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1726 1727 /** 1728 * Returns all registration groups that contain activityOfferingId in the list of AOs associated with 1729 * the registration group. A variant of getRegistrationGroupsWithActivityOfferings with only a single 1730 * activity offering. 1731 * @param activityOfferingId An activity offering id. 1732 * @param context Context information containing the principalId 1733 * and locale information about the caller of 1734 * service operation 1735 * @return a list of RegistrationGroup records that contain all the 1736 * activity offerings in the input list. 1737 * @throws DoesNotExistException One or more of the activityOfferingIds 1738 * doesn't exist 1739 * @throws InvalidParameterException One or more invalid activityOfferingIds 1740 * @throws MissingParameterException Missing activityOfferingIds 1741 * @throws OperationFailedException unable to complete request 1742 * @throws PermissionDeniedException authorization failure 1743 */ 1744 public List<RegistrationGroupInfo> getRegistrationGroupsByActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1745 1746 /** 1747 * Retrieves a list of RegistrationGroup records that belongs to a 1748 * CourseOffering for a given canonical format type 1749 * 1750 * @param formatOfferingId Unique Id of the CourseOffering 1751 * @param context information containing the principalId and locale 1752 * information about the caller of service 1753 * operation 1754 * @return List of RegistrationGroups 1755 * @throws DoesNotExistException courseOfferingId or formatTypeKey not 1756 * found 1757 * @throws InvalidParameterException invalid courseOfferingId or 1758 * formatTypeKey 1759 * @throws MissingParameterException missing courseOfferingId or 1760 * formatTypeKey 1761 * @throws OperationFailedException unable to complete request 1762 * @throws PermissionDeniedException authorization failure 1763 */ 1764 public List<RegistrationGroupInfo> getRegistrationGroupsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1765 1766 /** 1767 * Retrieves a list of RegistrationGroup records that belongs to a specified 1768 * ActivityOfferingCluster. 1769 * 1770 * @param activityOfferingClusterId Unique Id of the ActivityOfferingCluster 1771 * @param contextInfo information containing the principalId 1772 * and locale information about the caller 1773 * of service operation 1774 * @return List of RegistrationGroups 1775 * @throws DoesNotExistException No ActivityOfferingCluster exists for 1776 * the specified activityOfferingClusterId. 1777 * @throws InvalidParameterException invalid contextInfo object 1778 * @throws MissingParameterException one or more method parameters are 1779 * missing. 1780 * @throws OperationFailedException unable to complete request 1781 * @throws PermissionDeniedException authorization failure 1782 */ 1783 public List<RegistrationGroupInfo> getRegistrationGroupsByActivityOfferingCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1784 1785 /** 1786 * Searches for RegistrationGroups that meet the given search criteria. 1787 * 1788 * @param criteria the search criteria 1789 * @param contextInfo context information containing the principalId and 1790 * locale information about the caller of service 1791 * operation 1792 * @return a list of RegistrationGroup Ids matching the criteria 1793 * @throws InvalidParameterException criteria or contextInfo is not valid 1794 * @throws MissingParameterException criteria or contextInfo is missing or 1795 * null 1796 * @throws OperationFailedException unable to complete request 1797 * @throws PermissionDeniedException an authorization failure occurred 1798 */ 1799 public List<String> searchForRegistrationGroupIds(@WebParam(name = "criteria") QueryByCriteria criteria, 1800 @WebParam(name = "contextInfo") ContextInfo contextInfo) 1801 throws InvalidParameterException, 1802 MissingParameterException, 1803 OperationFailedException, 1804 PermissionDeniedException; 1805 1806 /** 1807 * Searches for RegistrationGroups that meet the given search criteria. 1808 * 1809 * @param criteria the search criteria 1810 * @param contextInfo context information containing the principalId and 1811 * locale information about the caller of service 1812 * operation 1813 * @return a list of RegistrationGroups matching the criteria 1814 * @throws InvalidParameterException criteria or contextInfo is not valid 1815 * @throws MissingParameterException criteria or contextInfo is missing or 1816 * null 1817 * @throws OperationFailedException unable to complete request 1818 * @throws PermissionDeniedException an authorization failure occurred 1819 */ 1820 public List<RegistrationGroupInfo> searchForRegistrationGroups(@WebParam(name = "criteria") QueryByCriteria criteria, 1821 @WebParam(name = "contextInfo") ContextInfo contextInfo) 1822 throws InvalidParameterException, 1823 MissingParameterException, 1824 OperationFailedException, 1825 PermissionDeniedException; 1826 1827 /** 1828 * Validates a registration group. Depending on the value of validationType, 1829 * this validation could be limited to tests on just the current object and 1830 * its directly contained subobjects or expanded to perform all tests 1831 * related to this object. If an identifier is present for the academic 1832 * calendar and a record is found for that identifier, the validation checks 1833 * if the academic calendar can be shifted to the new values. If a record 1834 * cannot be found for the identifier, it is assumed that the record does 1835 * not exist and as such, the checks performed will be much shallower, 1836 * typically mimicking those performed by setting the validationType to the 1837 * current object. This is a slightly different pattern from the standard 1838 * validation as the caller provides the identifier in the create statement 1839 * instead of the server assigning an identifier. 1840 * 1841 * @param validationType Identifier of the extent of validation 1842 * @param activityOfferingClusterId Unique Id of the ActivityOfferingCluster 1843 * @param registrationGroupType the identifier for the RegistrationGroup 1844 * type 1845 * @param registrationGroupInfo the registrationGroup information to be 1846 * tested. 1847 * @param contextInfo Context information containing the 1848 * principalId and locale information about 1849 * the caller of service operation 1850 * @return a list of validation results or an empty list if validation 1851 * succeeded 1852 * @throws DoesNotExistException validationTypeKey not found 1853 * @throws InvalidParameterException invalid validationTypeKey, academicCalendarInfo 1854 * @throws MissingParameterException missing validationTypeKey, academicCalendarInfo 1855 * @throws OperationFailedException unable to complete request 1856 * @throws PermissionDeniedException authorization failure 1857 */ 1858 public List<ValidationResultInfo> validateRegistrationGroup(@WebParam(name = "validationType") String validationType, 1859 @WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, 1860 @WebParam(name = "registrationGroupType") String registrationGroupType, 1861 @WebParam(name = "registrationGroupInfo") RegistrationGroupInfo registrationGroupInfo, 1862 @WebParam(name = "contextInfo") ContextInfo contextInfo) 1863 throws DoesNotExistException, 1864 InvalidParameterException, 1865 MissingParameterException, 1866 OperationFailedException, 1867 PermissionDeniedException; 1868 1869 /** 1870 * Creates a new Registration Group. 1871 * 1872 * @param formatOfferingId formatOfferingId that the RegistrationGroup 1873 * is based on 1874 * @param activityOfferingClusterId Unique Id of the ActivityOfferingCluster 1875 * @param registrationGroupType the identifier for the RegistrationGroup 1876 * type 1877 * @param registrationGroupInfo Details of the RegistrationGroup to be 1878 * created 1879 * @param context Context information containing the 1880 * principalId and locale information about 1881 * the caller of service operation 1882 * @return newly created registrationGroup 1883 * @throws DoesNotExistException courseOfferingId not found 1884 * @throws DataValidationErrorException One or more values invalid for this 1885 * operation 1886 * @throws InvalidParameterException One or more parameters invalid 1887 * @throws MissingParameterException One or more parameters missing 1888 * @throws OperationFailedException unable to complete request 1889 * @throws PermissionDeniedException authorization failure 1890 */ 1891 public RegistrationGroupInfo createRegistrationGroup(@WebParam(name = "formatOfferingId") String formatOfferingId, 1892 @WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, 1893 @WebParam(name = "registrationGroupType") String registrationGroupType, 1894 @WebParam(name = "registrationGroupInfo") RegistrationGroupInfo registrationGroupInfo, 1895 @WebParam(name = "context") ContextInfo context) 1896 throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException; 1897 1898 /** 1899 * Updates an existing RegistrationGroup. 1900 * 1901 * @param registrationGroupId Id of RegistrationGroup to be updated 1902 * @param registrationGroupInfo Details of updates to the RegistrationGroup 1903 * @param context Context information containing the 1904 * principalId and locale information about the 1905 * caller of service operation 1906 * @return updated RegistrationGroup 1907 * @throws DataValidationErrorException One or more values invalid for this 1908 * operation 1909 * @throws DoesNotExistException the registrationGroupId does not 1910 * exist 1911 * @throws InvalidParameterException One or more parameters invalid 1912 * @throws MissingParameterException One or more parameters missing 1913 * @throws OperationFailedException unable to complete request 1914 * @throws PermissionDeniedException authorization failure 1915 * @throws VersionMismatchException The action was attempted on an out 1916 * of date version. 1917 */ 1918 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; 1919 1920 /** 1921 * Changes the state of an existing RegistrationGroup to another state 1922 * provided that it is valid to do so. 1923 * 1924 * @param registrationGroupId Id of the RegistrationGroup to be changed. 1925 * @param nextStateKey The State Key into which the identified 1926 * RegistrationGroup will be placed if the 1927 * operation succeeds. 1928 * @param contextInfo Context information containing the principalId 1929 * and locale information about the caller of 1930 * service operation 1931 * @return status of the operation (success, failed) 1932 * @throws DoesNotExistException the identified RegsitrationGroup does 1933 * not exist 1934 * @throws InvalidParameterException the contextInfo object is invalid 1935 * @throws MissingParameterException One or more parameters missing 1936 * @throws OperationFailedException unable to complete request 1937 * @throws PermissionDeniedException authorization failure 1938 */ 1939 public StatusInfo changeRegistrationGroupState(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1940 1941 /** 1942 * Deletes an existing Registration Group. Removes the relationship to the 1943 * course offering and activity offering. The activity offerings are not 1944 * automatically deleted 1945 * 1946 * @param registrationGroupId the Id of the RegistrationGroup to be deleted 1947 * @param context Context information containing the principalId 1948 * and locale information about the caller of 1949 * service operation 1950 * @throws DoesNotExistException the RegistrationGroup does not exist 1951 * @throws InvalidParameterException One or more parameters invalid 1952 * @throws MissingParameterException One or more parameters missing 1953 * @throws OperationFailedException unable to complete request 1954 * @throws PermissionDeniedException authorization failure 1955 */ 1956 public StatusInfo deleteRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1957 1958 /** 1959 * Deletes all Registration Groups for a Format Offering. 1960 * 1961 * @param formatOfferingId the Id of the FormatOffering 1962 * @param context Context information containing the principalId 1963 * and locale information about the caller of 1964 * service operation 1965 * @throws InvalidParameterException One or more parameters invalid 1966 * @throws MissingParameterException One or more parameters missing 1967 * @throws OperationFailedException unable to complete request 1968 * @throws PermissionDeniedException authorization failure 1969 */ 1970 public List<BulkStatusInfo> deleteRegistrationGroupsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1971 1972 /** 1973 * Deletes all generated Registration Groups for a Format Offering. A 1974 * generated registration group is one whose isGenerated() flag is true. 1975 * 1976 * @param formatOfferingId the Id of the FormatOffering 1977 * @param context Context information containing the principalId 1978 * and locale information about the caller of 1979 * service operation 1980 * @throws InvalidParameterException One or more parameters invalid 1981 * @throws MissingParameterException One or more parameters missing 1982 * @throws OperationFailedException unable to complete request 1983 * @throws PermissionDeniedException authorization failure 1984 */ 1985 public List<BulkStatusInfo> deleteGeneratedRegistrationGroupsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 1986 1987 /** 1988 * Deletes all Registration Groups associated with an Activity Offering 1989 * Cluster 1990 * 1991 * @param activityOfferingClusterId the Id of the FormatOffering 1992 * @param contextInfo Context information containing the 1993 * principalId and locale information about 1994 * the caller of service operation 1995 * @return status of the operation (success, failed) 1996 * @throws InvalidParameterException invalid contextInfo 1997 * @throws MissingParameterException activityOfferingClusterId or 1998 * contextInfo is missing or null 1999 * @throws OperationFailedException unable to complete request 2000 * @throws PermissionDeniedException an authorization failure has occurred 2001 */ 2002 public List<BulkStatusInfo> deleteRegistrationGroupsForCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2003 2004 /** 2005 * Verifies a Registration Group applying rules such as: 2006 * <ol> 2007 * <li>Registration Group has one ActivityOffering for each Format Offering 2008 * activityOfferingType</li> 2009 * <li>ActivityOffering's don't have any time conflicts (if scheduling 2010 * has already happened)</li> 2011 * <li>ActivityOffering's are all offered at the same campus</li> 2012 * <li>ActivityOffering's don't have conflicting seatpool/enrollment 2013 * restrictions</li> 2014 * </ol> 2015 * <p></p> 2016 * The distinction between <b>validateRegistrationGroup</b> and this 2017 * method is that <b>validate</b> checks if its OK to save the object where 2018 * as <b>verify</b> checks a saved object and its relation to other saved objects. 2019 * <p></p> 2020 * <b>validate</b> is called for every <b>create</b> and <b>update</b> and 2021 * needs to execute quickly where as this method can take longer to 2022 * accurately evaluate the specified RegistrationGroup. 2023 * 2024 * @param registrationGroupId the registrationGroup information to be 2025 * tested. 2026 * @param contextInfo Context information containing the principalId 2027 * and locale information about the caller of 2028 * service operation 2029 * @return a list of validation results or an empty list if validation 2030 * succeeded 2031 * @throws DoesNotExistException contextInfo not found 2032 * @throws InvalidParameterException invalid registrationGroupId or 2033 * contextInfo 2034 * @throws MissingParameterException registrationGroupId or contextInfo is 2035 * missing or null 2036 * @throws OperationFailedException unable to complete request 2037 */ 2038 public List<ValidationResultInfo> verifyRegistrationGroup(@WebParam(name = "registrationGroupId") String registrationGroupId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 2039 2040 2041 /** 2042 * Gets an Activity Offering Cluster based on the Identifier 2043 * 2044 * @param activityOfferingClusterId Identifier of the Activity Offering 2045 * Cluster 2046 * @param contextInfo Context information containing the 2047 * principalId and locale information about 2048 * the caller of service operation 2049 * @return ActivityOfferingCluster 2050 * @throws DoesNotExistException activityOfferingClusterId does not 2051 * exist 2052 * @throws InvalidParameterException Invalid contextInfo 2053 * @throws MissingParameterException activityOfferingClusterId or 2054 * contextInfo is missing or null 2055 * @throws OperationFailedException unable to complete request 2056 * @throws PermissionDeniedException an authorization failure occurred 2057 */ 2058 public ActivityOfferingClusterInfo getActivityOfferingCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2059 2060 2061 /** 2062 * Retrieves a list of activity offering clusters using the given id list. 2063 * The returned list may be in any order and if duplicate Ids are supplied, a unique set may or may not be returned. 2064 * 2065 * @param activityOfferingClusterIds List of unique Ids of ActivityOfferingClusters 2066 * @param contextInfo Context information containing the principalId 2067 * and locale information about the caller of 2068 * service operation 2069 * @return Activity offering cluster list 2070 * @throws DoesNotExistException activityOfferingClusterId in the list not 2071 * found 2072 * @throws InvalidParameterException invalid activityOfferingClusterIds 2073 * @throws MissingParameterException missing activityOfferingClusterIds 2074 * @throws OperationFailedException unable to complete request 2075 * @throws PermissionDeniedException authorization failure 2076 */ 2077 public List<ActivityOfferingClusterInfo> getActivityOfferingClustersByIds(@WebParam(name = "activityOfferingClusterIds") List<String> activityOfferingClusterIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2078 2079 /** 2080 * Retrieves a list of ActivityOfferingClusters associated with a 2081 * FormatOffering 2082 * 2083 * @param formatOfferingId Id of the FormatOffering 2084 * @param contextInfo Context information containing the principalId 2085 * and locale information about the caller of 2086 * service operation 2087 * @return List of ActivityOffering 2088 * @throws DoesNotExistException courseOfferingId not found 2089 * @throws InvalidParameterException invalid contextInfo 2090 * @throws MissingParameterException formatOfferingId or contextInfo is 2091 * missing or null 2092 * @throws OperationFailedException unable to complete request 2093 * @throws PermissionDeniedException an authorization failure occurred 2094 */ 2095 public List<ActivityOfferingClusterInfo> getActivityOfferingClustersByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2096 2097 /** 2098 * Retrieves a list of ActivityOfferingCluster Id's associated with a 2099 * FormatOffering 2100 * 2101 * @param formatOfferingId Id of the FormatOffering 2102 * @param contextInfo Context information containing the principalId 2103 * and locale information about the caller of 2104 * service operation 2105 * @return List of ActivityOffering Id's 2106 * @throws DoesNotExistException courseOfferingId not found 2107 * @throws InvalidParameterException invalid contextInfo 2108 * @throws MissingParameterException formatOfferingId or contextInfo is 2109 * missing or null 2110 * @throws OperationFailedException unable to complete request 2111 * @throws PermissionDeniedException an authorization failure occurred 2112 */ 2113 public List<String> getActivityOfferingClustersIdsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2114 2115 /** 2116 * Validates an Activity Offering Cluster. Depending on the value of 2117 * validationTypeKey, this validation could be limited to tests on just the 2118 * current object and its directly contained sub-objects or expanded to 2119 * perform all tests related to this object. If an identifier is present for 2120 * the academic calendar and a record is found for that identifier, the 2121 * validation checks if the academic calendar can be shifted to the new 2122 * values. If a record cannot be found for the identifier, it is assumed 2123 * that the record does not exist and as such, the checks performed will be 2124 * much shallower, typically mimicking those performed by setting the 2125 * validationTypeKey to the current object. This is a slightly different 2126 * pattern from the standard validation as the caller provides the 2127 * identifier in the create statement instead of the server assigning an 2128 * identifier. 2129 * 2130 * @param validationTypeKey Identifier of the extent of 2131 * validation 2132 * @param formatOfferingId Format Offering identifier 2133 * @param activityOfferingClusterInfo the Activity Offering Cluster 2134 * information to be validated. 2135 * @param contextInfo Context information containing the 2136 * principalId and locale information 2137 * about the caller of service operation 2138 * @return the results from performing the validation 2139 * @throws DoesNotExistException validationTypeKey or activityOfferingClusterTypeKey 2140 * not found 2141 * @throws InvalidParameterException invalid activityOfferingClusterInfo or 2142 * contextInfo 2143 * @throws MissingParameterException validationTypeKey, activityOfferingClusterTypeKey, 2144 * activityOfferingClusterInfo or 2145 * contextInfo is missing or null 2146 * @throws OperationFailedException unable to complete request 2147 * @throws PermissionDeniedException authorization failure 2148 */ 2149 public List<ValidationResultInfo> validateActivityOfferingCluster(@WebParam(name = "validationTypeKey") String validationTypeKey, 2150 @WebParam(name = "formatOfferingId") String formatOfferingId, 2151 @WebParam(name = "activityOfferingClusterInfo") ActivityOfferingClusterInfo activityOfferingClusterInfo, 2152 @WebParam(name = "contextInfo") ContextInfo contextInfo) 2153 throws DoesNotExistException, 2154 InvalidParameterException, 2155 MissingParameterException, 2156 OperationFailedException, 2157 PermissionDeniedException; 2158 2159 /** 2160 * Creates a new Activity Offering Cluster from the given Format Offering 2161 * 2162 * @param formatOfferingId Format Offering identifier 2163 * @param activityOfferingClusterTypeKey Activity Offering Cluster type 2164 * @param activityOfferingClusterInfo Details of the ActivityOfferingCluster 2165 * to be created 2166 * @param contextInfo Context information containing the 2167 * principalId and locale information 2168 * about the caller of service 2169 * operation 2170 * @return newly created ActivityOfferingCluster 2171 * @throws DataValidationErrorException supplied data is invalid 2172 * @throws DoesNotExistException validationTypeKey or activityOfferingClusterTypeKey 2173 * not found 2174 * @throws InvalidParameterException invalid activityOfferingClusterInfo 2175 * or contextInfo 2176 * @throws MissingParameterException validationTypeKey, activityOfferingClusterTypeKey 2177 * or activityOfferingClusterInfo is 2178 * missing or null 2179 * @throws OperationFailedException unable to complete request 2180 * @throws PermissionDeniedException an authorization failure has 2181 * occurred 2182 * @throws ReadOnlyException an attempt at supplying information 2183 * designated as read only 2184 */ 2185 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; 2186 2187 /** 2188 * Updates an ActivityOfferingCluster based on the info object 2189 * 2190 * @param formatOfferingId Format Offering identifier 2191 * @param activityOfferingClusterId Identifier of the Activity Offering 2192 * Cluster 2193 * @param activityOfferingClusterInfo ActivityOfferingCluster with new 2194 * information 2195 * @param contextInfo Context information containing the 2196 * principalId and locale information 2197 * about the caller of service operation 2198 * @return updated ActivityOfferingCluster 2199 * @throws DataValidationErrorException supplied data is invalid 2200 * @throws DoesNotExistException activityOfferingClusterId does not 2201 * exist 2202 * @throws InvalidParameterException Invalid activityOfferingClusterInfo 2203 * @throws MissingParameterException activityOfferingClusterId or 2204 * activityOfferingClusterInfo is 2205 * missing or null 2206 * @throws OperationFailedException unable to complete request 2207 * @throws PermissionDeniedException an authorization failure has 2208 * occurred 2209 * @throws ReadOnlyException an attempt at supplying information 2210 * designated as read only 2211 * @throws VersionMismatchException optimistic locking failure or the 2212 * action was attempted on an out of 2213 * date version 2214 */ 2215 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; 2216 2217 /** 2218 * Changes the state of an existing ActivityOfferingCluster to another state 2219 * provided that it is valid to do so. 2220 * 2221 * @param activityOfferingClusterId Id of the ActivityOfferingCluster to be 2222 * changed. 2223 * @param nextStateKey The State Key into which the identified 2224 * ActivityOfferingCluster will be placed 2225 * if the operation succeeds. 2226 * @param contextInfo Context information containing the 2227 * principalId and locale information about 2228 * the caller of service operation 2229 * @return status of the operation (success, failed) 2230 * @throws DoesNotExistException the identified ActivityOfferingCluster 2231 * does not exist 2232 * @throws InvalidParameterException the contextInfo object is invalid 2233 * @throws MissingParameterException One or more parameters missing 2234 * @throws OperationFailedException unable to complete request 2235 * @throws PermissionDeniedException authorization failure 2236 */ 2237 public StatusInfo changeActivityOfferingClusterState(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2238 2239 /** 2240 * Deletes an activity offering cluster based on the identifier 2241 * 2242 * @param activityOfferingClusterId Identifier of the Activity Offering 2243 * Cluster 2244 * @param contextInfo Context information containing the 2245 * principalId and locale information about 2246 * the caller of service operation 2247 * @return status of the operation (success, failed) 2248 * @throws DoesNotExistException activityOfferingClusterId does not 2249 * exist 2250 * @throws InvalidParameterException Invalid contextInfo 2251 * @throws MissingParameterException activityOfferingClusterId or 2252 * contextInfo is missing or null 2253 * @throws OperationFailedException unable to complete request 2254 * @throws PermissionDeniedException an authorization failure has 2255 * occurred 2256 * @throws DependentObjectsExistException Registration Groups exist for this 2257 * cluster which prevents the delete 2258 * from occuring. 2259 */ 2260 public StatusInfo deleteActivityOfferingCluster(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException; 2261 2262 /** 2263 * Deletes an existing ActivityOfferingCluster cascaded style. Deleting an 2264 * activity offering cluster cascaded style would also delete all the 2265 * registration groups associated with it. 2266 * 2267 * @param activityOfferingClusterId the Id of the ActivityOfferingCluster to 2268 * be deleted 2269 * @param contextInfo Context information containing the 2270 * principalId and locale information about 2271 * the caller of service operation 2272 * @return status of the operation (success, failed) 2273 * @throws DoesNotExistException the identified Activity o does not 2274 * exist 2275 * @throws InvalidParameterException One or more parameters invalid 2276 * @throws MissingParameterException One or more parameters missing 2277 * @throws OperationFailedException unable to complete request 2278 * @throws PermissionDeniedException authorization failure 2279 */ 2280 public StatusInfo deleteActivityOfferingClusterCascaded(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2281 2282 /** 2283 * Verifies an Activity Offering Cluster's completeness for the generation 2284 * of Registration Group's. 2285 * 2286 * The distinction between <b>validateActivityOfferingCluster</b> and this 2287 * method is that <b>validate</b> checks if its OK to save the object where 2288 * as <b>verify</b> checks a saved object in relation to other saved objects. 2289 * 2290 * <p></p> 2291 * <b>validate</b> is called for every <b>create</b> and <b>update</b> and 2292 * needs to execute quickly where as this method can take longer to 2293 * accurately evaluate the specified Activity Offering Cluster. 2294 * 2295 * @param activityOfferingClusterId Activity Offering Cluster to be 2296 * verified 2297 * @param contextInfo Context information containing the 2298 * principalId and locale information about 2299 * the caller of service operation 2300 * @return Information gleaned from verifying the ActivityOfferingCluster 2301 * @throws DoesNotExistException activityOfferingClusterId not found 2302 * @throws InvalidParameterException invalid contextInfo 2303 * @throws MissingParameterException activityOfferingClusterId or 2304 * contextInfo is missing or null 2305 * @throws OperationFailedException unable to complete request 2306 * @throws PermissionDeniedException authorization failure 2307 * @impl See https://wiki.kuali.org/display/STUDENT/Reg+Group+Verification 2308 */ 2309 public AOClusterVerifyResultsInfo verifyActivityOfferingClusterForGeneration(@WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2310 2311 /** 2312 * Searches for Activity Offering Clusters that meet the given search criteria. 2313 * 2314 * @param criteria the search criteria 2315 * @param contextInfo information containing the principalId and locale 2316 * information about the caller of service operation 2317 * @return a list of CourseOffering Ids matching the criteria 2318 * @throws InvalidParameterException criteria or contextInfo is not valid 2319 * @throws MissingParameterException criteria or contextInfo is missing or 2320 * null 2321 * @throws OperationFailedException unable to complete request 2322 * @throws PermissionDeniedException an authorization failure occurred 2323 */ 2324 public List<String> searchForActivityOfferingClusterIds(@WebParam(name = "criteria") QueryByCriteria criteria, 2325 @WebParam(name = "contextInfo") ContextInfo contextInfo) 2326 throws InvalidParameterException, 2327 MissingParameterException, 2328 OperationFailedException, 2329 PermissionDeniedException; 2330 2331 /** 2332 * Searches for Activity Offering Clusters that meet the given search criteria. 2333 * 2334 * @param criteria the search criteria 2335 * @param contextInfo information containing the principalId and locale 2336 * information about the caller of service operation 2337 * @return a list of CourseOfferings matching the criteria 2338 * @throws InvalidParameterException criteria or contextInfo is not valid 2339 * @throws MissingParameterException criteria or contextInfo is missing or 2340 * null 2341 * @throws OperationFailedException unable to complete request 2342 * @throws PermissionDeniedException an authorization failure occurred 2343 */ 2344 public List<ActivityOfferingClusterInfo> searchForActivityOfferingClusters(@WebParam(name = "criteria") QueryByCriteria criteria, 2345 @WebParam(name = "contextInfo") ContextInfo contextInfo) 2346 throws InvalidParameterException, 2347 MissingParameterException, 2348 OperationFailedException, 2349 PermissionDeniedException; 2350 2351 /** 2352 * Retrieve information about a SeatPoolDefinition 2353 * 2354 * @param seatPoolDefinitionId Unique Id of the SeatPoolDefinition 2355 * @param context Context information containing the 2356 * principalId and locale information about the 2357 * caller of service operation 2358 * @return SeatPoolDefinition associated with the passed in Id 2359 * @throws DoesNotExistException seatPoolDefinitionId not found 2360 * @throws InvalidParameterException invalid seatPoolDefinitionId 2361 * @throws MissingParameterException missing seatPoolDefinitionId 2362 * @throws OperationFailedException unable to complete request 2363 * @throws PermissionDeniedException authorization failure 2364 */ 2365 public SeatPoolDefinitionInfo getSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2366 2367 /** 2368 * Retrieves a list of SeatPoolDefinitions records that belongs to an 2369 * ActivityOffering. This should return SeatPoolDefinitions that apply 2370 * globally across all RegistrationGroups in the ActivityOffering. 2371 * 2372 * @param activityOfferingId Unique Id of the ActivityOffering 2373 * @param context Context information containing the principalId 2374 * and locale information about the caller of 2375 * service operation 2376 * @return List of SeatPoolDefinitions 2377 * @throws DoesNotExistException No ActivityOffering found for the specified activityOfferingId 2378 * @throws InvalidParameterException context is null 2379 * @throws MissingParameterException one or more missing parameters 2380 * @throws OperationFailedException unable to complete request 2381 * @throws PermissionDeniedException authorization failure 2382 */ 2383 public List<SeatPoolDefinitionInfo> getSeatPoolDefinitionsForActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2384 2385 /** 2386 * Retrieves a list of ActivityOffering records that are associated to a specific 2387 * SeatPoolDefinition. 2388 * 2389 * @param seatPoolDefinitionId Unique Id of the SeatPoolDefinition 2390 * @param context Context information containing the principalId 2391 * and locale information about the caller of 2392 * service operation 2393 * @return List of ActivityOfferings 2394 * @throws DoesNotExistException no seat pool exists for seatPoolDefinitionId 2395 * @throws InvalidParameterException contextInfo is null. 2396 * @throws MissingParameterException missing seatPoolDefinitionId 2397 * @throws OperationFailedException unable to complete request 2398 * @throws PermissionDeniedException authorization failure 2399 */ 2400 public List<ActivityOfferingInfo> getActivityOfferingsForSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2401 2402 /** 2403 * Searches for SeatPoolDefinitions that meet the given search criteria. 2404 * 2405 * @param criteria the search criteria 2406 * @param contextInfo context information containing the principalId and 2407 * locale information about the caller of service 2408 * operation 2409 * @return a list of SeatPoolDefinition Ids matching the criteria 2410 * @throws InvalidParameterException criteria or contextInfo is not valid 2411 * @throws MissingParameterException criteria or contextInfo is missing or 2412 * null 2413 * @throws OperationFailedException unable to complete request 2414 * @throws PermissionDeniedException an authorization failure occurred 2415 */ 2416 public List<String> searchForSeatpoolDefinitionIds(@WebParam(name = "criteria") QueryByCriteria criteria, 2417 @WebParam(name = "contextInfo") ContextInfo contextInfo) 2418 throws InvalidParameterException, 2419 MissingParameterException, 2420 OperationFailedException, 2421 PermissionDeniedException; 2422 2423 /** 2424 * Searches for SeatPoolDefinitions that meet the given search criteria. 2425 * 2426 * @param criteria the search criteria 2427 * @param contextInfo context information containing the principalId and 2428 * locale information about the caller of service 2429 * operation 2430 * @return a list of SeatPoolDefinitions matching the criteria 2431 * @throws InvalidParameterException criteria or contextInfo is not valid 2432 * @throws MissingParameterException criteria or contextInfo is missing or 2433 * null 2434 * @throws OperationFailedException unable to complete request 2435 * @throws PermissionDeniedException an authorization failure occurred 2436 */ 2437 public List<SeatPoolDefinitionInfo> searchForSeatpoolDefinitions(@WebParam(name = "criteria") QueryByCriteria criteria, 2438 @WebParam(name = "contextInfo") ContextInfo contextInfo) 2439 throws InvalidParameterException, 2440 MissingParameterException, 2441 OperationFailedException, 2442 PermissionDeniedException; 2443 2444 /** 2445 * Creates a new Seat Pool 2446 * 2447 * @param seatPoolDefinitionInfo Details of the SeatPoolDefinition to be 2448 * created 2449 * @param context Context information containing the 2450 * principalId and locale information about 2451 * the caller of service operation 2452 * @return newly created SeatPoolDefinition 2453 * @throws DataValidationErrorException One or more values invalid for this 2454 * operation 2455 * @throws InvalidParameterException One or more parameters invalid 2456 * @throws MissingParameterException One or more parameters missing 2457 * @throws OperationFailedException unable to complete request 2458 * @throws PermissionDeniedException authorization failure 2459 */ 2460 public SeatPoolDefinitionInfo createSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionInfo") SeatPoolDefinitionInfo seatPoolDefinitionInfo, @WebParam(name = "context") ContextInfo context) throws DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException; 2461 2462 /** 2463 * Updates an existing SeatPoolDefinition. 2464 * 2465 * @param seatPoolDefinitionId Id of SeatPoolDefinition to be updated 2466 * @param seatPoolDefinitionInfo Details of updates to the SeatPoolDefinition 2467 * @param context Context information containing the 2468 * principalId and locale information about 2469 * the caller of service operation 2470 * @return updated SeatPoolDefinition 2471 * @throws DataValidationErrorException One or more values invalid for this 2472 * operation 2473 * @throws DoesNotExistException the SeatPoolDefinition does not 2474 * exist 2475 * @throws InvalidParameterException One or more parameters invalid 2476 * @throws MissingParameterException One or more parameters missing 2477 * @throws OperationFailedException unable to complete request 2478 * @throws PermissionDeniedException authorization failure 2479 * @throws VersionMismatchException The action was attempted on an out 2480 * of date version. 2481 */ 2482 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; 2483 2484 /** 2485 * Changes the state of an existing SeatPoolDefinition to another state 2486 * provided that it is valid to do so. 2487 * 2488 * @param seatPoolDefinitionId Id of the SeatPoolDefinition to be changed. 2489 * @param nextStateKey The State Key into which the identified 2490 * SeatPoolDefinition will be placed if the 2491 * operation succeeds. 2492 * @param contextInfo Context information containing the 2493 * principalId and locale information about the 2494 * caller of service operation 2495 * @return status of the operation (success, failed) 2496 * @throws DoesNotExistException the identified SeatPoolDefinition does 2497 * not exist 2498 * @throws InvalidParameterException the contextInfo object is invalid 2499 * @throws MissingParameterException One or more parameters missing 2500 * @throws OperationFailedException unable to complete request 2501 * @throws PermissionDeniedException authorization failure 2502 */ 2503 public StatusInfo changeSeatPoolDefinitionState(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2504 2505 /** 2506 * Validate a seat pool definition 2507 * 2508 * @param validationTypeKey * @param seatPoolDefinitionInfo 2509 * @param context Context information containing the 2510 * principalId and locale information about the 2511 * caller of service operation 2512 * @throws DoesNotExistException if validation type key is not found 2513 * @throws InvalidParameterException the context or object is invalid 2514 * @throws MissingParameterException One or more parameters missing 2515 * @throws OperationFailedException unable to complete request 2516 * @throws PermissionDeniedException authorization failure 2517 */ 2518 public List<ValidationResultInfo> validateSeatPoolDefinition(@WebParam(name = "validationTypeKey") String validationTypeKey, 2519 @WebParam(name = "seatPoolDefinitionInfo") SeatPoolDefinitionInfo seatPoolDefinitionInfo, 2520 @WebParam(name = "context") ContextInfo context) 2521 throws DoesNotExistException, 2522 InvalidParameterException, 2523 MissingParameterException, 2524 OperationFailedException, 2525 PermissionDeniedException; 2526 2527 /** 2528 * Deletes an existing SeatPoolDefinition. 2529 * 2530 * @param seatPoolDefinitionId the Id of the SeatPoolDefinition to be 2531 * deleted 2532 * @param context Context information containing the 2533 * principalId and locale information about the 2534 * caller of service operation 2535 * @throws DoesNotExistException the SeatPoolDefinition does not exist 2536 * @throws InvalidParameterException One or more parameters invalid 2537 * @throws MissingParameterException One or more parameters missing 2538 * @throws OperationFailedException unable to complete request 2539 * @throws PermissionDeniedException authorization failure 2540 */ 2541 public StatusInfo deleteSeatPoolDefinition(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2542 2543 /** 2544 * Add a SeatPoolDefinition to an ActivityOffering 2545 * 2546 * @param seatPoolDefinitionId a unique identifier for a SeatPoolDefinition 2547 * @param activityOfferingId a unique identifier for an ActivityOffering 2548 * @param contextInfo Context information containing the 2549 * principalId and locale information about the 2550 * caller of service operation 2551 * @return status 2552 * @throws AlreadyExistsException seatPoolDefinitionId already related to 2553 * activityOfferingId 2554 * @throws DoesNotExistException seatPoolDefinitionId or activityOfferingId 2555 * not found 2556 * @throws InvalidParameterException invalid seatPoolDefinitionId, 2557 * activityOfferingId, or contextInfo 2558 * @throws MissingParameterException missing seatPoolDefinitionId, 2559 * activityOfferingId, or contextInfo 2560 * @throws OperationFailedException unable to complete request 2561 * @throws PermissionDeniedException authorization failure 2562 */ 2563 public StatusInfo addSeatPoolDefinitionToActivityOffering(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, 2564 @WebParam(name = "activityOfferingId") String activityOfferingId, 2565 @WebParam(name = "contextInfo") ContextInfo contextInfo) 2566 throws AlreadyExistsException, 2567 DoesNotExistException, 2568 InvalidParameterException, 2569 MissingParameterException, 2570 OperationFailedException, 2571 PermissionDeniedException; 2572 2573 /** 2574 * Removes a SeatPoolDefinition from an ActivityOffering. 2575 * 2576 * @param seatPoolDefinitionId a unique identifier for a SeatPoolDefinition 2577 * @param activityOfferingId a unique identifier for an ActivityOffering 2578 * @param contextInfo Context information containing the 2579 * principalId and locale information about the 2580 * caller of service operation 2581 * @return status 2582 * @throws DoesNotExistException seatPoolDefinitionId or activityOfferingId 2583 * not found 2584 * @throws InvalidParameterException invalid seatPoolDefinitionId, 2585 * activityOfferingId, or contextInfo 2586 * @throws MissingParameterException missing seatPoolDefinitionId, 2587 * activityOfferingId, or contextInfo 2588 * @throws OperationFailedException unable to complete request 2589 * @throws PermissionDeniedException authorization failure 2590 */ 2591 public StatusInfo removeSeatPoolDefinitionFromActivityOffering(@WebParam(name = "seatPoolDefinitionId") String seatPoolDefinitionId, 2592 @WebParam(name = "activityOfferingId") String activityOfferingId, 2593 @WebParam(name = "contextInfo") ContextInfo contextInfo) 2594 throws DoesNotExistException, 2595 InvalidParameterException, 2596 MissingParameterException, 2597 OperationFailedException, 2598 PermissionDeniedException; 2599 2600 2601 2602 /** 2603 * This is a bulk create method for generateRegistrationGroupsForAOC(). Instead of working on a single Activity Offering Cluster it will 2604 * work on all of the AOC's of the format offering specified. 2605 * 2606 * @param formatOfferingId The identifier of the format offering to generate registration groups for. 2607 * @param contextInfo Context information containing the principalId and locale information about the caller of service operation 2608 * @return status of the operation (success, failed) for each Registration Group created. 2609 * @throws DoesNotExistException The formatOfferingId does not refer to an existing FormatOffering. 2610 * @throws InvalidParameterException The formatOfferingId or context is invalid. 2611 * @throws MissingParameterException the formatOfferingId or context is missing. 2612 * @throws OperationFailedException unable to complete request, can also occur when verification of any AOC in the format offering fails. 2613 * @throws PermissionDeniedException authorization failure 2614 * @throws DataValidationErrorException verification of any of the underlying Activity Offering Cluster's failed. 2615 */ 2616 public List<BulkStatusInfo> generateRegistrationGroupsForFormatOffering(@WebParam (name="formatOfferingId") 2617 String formatOfferingId, @WebParam(name = "contextInfo") ContextInfo contextInfo) 2618 throws DoesNotExistException, InvalidParameterException, 2619 MissingParameterException, OperationFailedException, 2620 PermissionDeniedException, DataValidationErrorException; 2621 2622 /** 2623 * Generates all possible registration groups for the Activity Offering 2624 * Cluster 2625 * 2626 * @param activityOfferingClusterId identifier of the Activity Offering 2627 * Cluster 2628 * @param contextInfo Context information containing the 2629 * principalId and locale information about 2630 * the caller of service operation 2631 * @return status of the operation (success, failed) for each Registration Group created. 2632 * @throws DoesNotExistException activityOfferingClusterId does not 2633 * exist 2634 * @throws DataValidationErrorException verification of the Activity Offering Cluster failed. 2635 * @throws InvalidParameterException invalid contextInfo 2636 * @throws MissingParameterException activityOfferingClusterId or 2637 * contextInfo is missing or null 2638 * @throws OperationFailedException unable to complete request 2639 * @throws PermissionDeniedException an authorization failure has occurred 2640 * @impl Does 'delta' generation: Creates only new RGs 2641 */ 2642 public List<BulkStatusInfo> generateRegistrationGroupsForCluster( @WebParam(name = "activityOfferingClusterId") String activityOfferingClusterId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 2643 2644 }