1 /** 2 * Copyright 2013 The Kuali Foundation Licensed under the 3 * Educational Community License, Version 2.0 (the "License"); you may 4 * not use this file except in compliance with the License. You may 5 * obtain a copy of the License at 6 * 7 * http://www.osedu.org/licenses/ECL-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, 10 * software distributed under the License is distributed on an "AS IS" 11 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 12 * or implied. See the License for the specific language governing 13 * permissions and limitations under the License. 14 * 15 * Created by Mezba Mahtab (mezba.mahtab@utoronto.ca) on 2/15/13 16 */ 17 package org.kuali.student.enrollment.examoffering.service; 18 19 import org.kuali.rice.core.api.criteria.QueryByCriteria; 20 import org.kuali.student.enrollment.examoffering.dto.ExamOfferingInfo; 21 import org.kuali.student.enrollment.examoffering.dto.ExamOfferingRelationInfo; 22 import org.kuali.student.r2.common.dto.ContextInfo; 23 import org.kuali.student.r2.common.dto.StatusInfo; 24 import org.kuali.student.r2.common.dto.ValidationResultInfo; 25 import org.kuali.student.r2.common.exceptions.*; 26 import org.kuali.student.r2.common.util.constants.ExamOfferingServiceConstants; 27 28 import javax.jws.WebParam; 29 import javax.jws.WebService; 30 import javax.jws.soap.SOAPBinding; 31 import java.util.List; 32 33 /** 34 * This class represents a service to manage an offering of an exam. 35 * 36 * @author Mezba Mahtab (mezba.mahtab@utoronto.ca) 37 */ 38 @WebService(name = "ExamOfferingService", serviceName = "ExamOfferingService", portName = "ExamOfferingService", targetNamespace = ExamOfferingServiceConstants.NAMESPACE) 39 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) 40 public interface ExamOfferingService { 41 42 /** 43 * Retrieves information about an exam offering. 44 * 45 * @param examOfferingId the id of the exam 46 * @param contextInfo Context information containing the principalId and locale 47 * information about the caller of service operation 48 * @return an exam offering whose id matches the given id 49 * @throws DoesNotExistException if the exam offering does not exist 50 * @throws InvalidParameterException contextInfo is invalid 51 * @throws MissingParameterException examOfferingId or contextInfo are absent (missing or null) 52 * @throws OperationFailedException unable to complete request 53 * @throws PermissionDeniedException an authorization failure occured 54 */ 55 public ExamOfferingInfo getExamOffering(@WebParam(name = "examOfferingId") String examOfferingId, 56 @WebParam(name = "contextInfo") ContextInfo contextInfo) 57 throws DoesNotExistException, 58 InvalidParameterException, 59 MissingParameterException, 60 OperationFailedException, 61 PermissionDeniedException; 62 63 /** 64 * Retrieves the information for the specified list of ExamOfferings (that match the given Ids). 65 * 66 * @param examOfferingIds List of identifiers for exam offerings 67 * @param contextInfo Context information containing the principalId and locale 68 * information about the caller of service operation 69 * @return List of exam offerings matching the given ids 70 * @throws DoesNotExistException One or more examOfferingIds not found 71 * @throws InvalidParameterException contextInfo is invalid 72 * @throws MissingParameterException examOfferingIds or contextInfo are absent (missing or null) 73 * @throws OperationFailedException unable to complete request 74 * @throws PermissionDeniedException authorization failure 75 */ 76 public List<ExamOfferingInfo> getExamOfferingsByIds (@WebParam(name = "examOfferingIds") List<String> examOfferingIds, 77 @WebParam(name = "contextInfo") ContextInfo contextInfo) 78 throws DoesNotExistException, 79 InvalidParameterException, 80 MissingParameterException, 81 OperationFailedException, 82 PermissionDeniedException; 83 84 /** 85 * Retrieve a list of ExamOffering Ids by Exam Type. 86 * 87 * @param examTypeKey the identifier for an exam Type 88 * @param contextInfo information containing the principalId and 89 * locale information about the caller of 90 * service operation 91 * @return a list of exam offering identifiers matching 92 * examTypeKey or an empty list if none found 93 * @throws InvalidParameterException contextInfo is not valid 94 * @throws MissingParameterException examTypeKey or contextInfo is 95 * missing or null 96 * @throws OperationFailedException unable to complete request 97 * @throws PermissionDeniedException an authorization failure occurred 98 */ 99 public List<String> getExamOfferingIdsByType(@WebParam(name = "examTypeKey") String examTypeKey, 100 @WebParam(name = "contextInfo") ContextInfo contextInfo) 101 throws InvalidParameterException, 102 MissingParameterException, 103 OperationFailedException, 104 PermissionDeniedException; 105 106 /** 107 * Searches for ExamOfferings that meet the given search criteria. 108 * 109 * @param criteria the search criteria 110 * @param contextInfo information containing the principalId and locale 111 * information about the caller of service operation 112 * @return a list of ExamOffering Ids matching the criteria 113 * @throws InvalidParameterException criteria or contextInfo is not valid 114 * @throws MissingParameterException criteria or contextInfo is missing or 115 * null 116 * @throws OperationFailedException unable to complete request 117 * @throws PermissionDeniedException an authorization failure occurred 118 */ 119 public List<String> searchForExamOfferingIds(@WebParam(name = "criteria") QueryByCriteria criteria, 120 @WebParam(name = "contextInfo") ContextInfo contextInfo) 121 throws InvalidParameterException, 122 MissingParameterException, 123 OperationFailedException, 124 PermissionDeniedException; 125 126 /** 127 * Searches for ExamOfferings that meet the given search criteria. 128 * 129 * @param criteria the search criteria 130 * @param contextInfo information containing the principalId and locale 131 * information about the caller of service operation 132 * @return a list of ExamOfferings matching the criteria 133 * @throws InvalidParameterException criteria or contextInfo is not valid 134 * @throws MissingParameterException criteria or contextInfo is missing or 135 * null 136 * @throws OperationFailedException unable to complete request 137 * @throws PermissionDeniedException an authorization failure occurred 138 */ 139 public List<ExamOfferingInfo> searchForExamOfferings (@WebParam(name = "criteria") QueryByCriteria criteria, 140 @WebParam(name = "contextInfo") ContextInfo contextInfo) 141 throws InvalidParameterException, 142 MissingParameterException, 143 OperationFailedException, 144 PermissionDeniedException; 145 146 /** 147 * Validates an ExamOffering. Depending on the value of validationType, 148 * this validation could be limited to tests on just the current 149 * exam offering and its directly contained sub-objects or expanded to 150 * perform all tests related to this exam offering. If an identifier is 151 * present for the exam offering and a record is found for that identifier, the validation 152 * checks if the exam can be updated to the new values. If an identifier is not 153 * present or a record does not exist, the validation checks if the object 154 * with the given data can be created. 155 * 156 * @param termId Unique key of the term for which the exam offering is being 157 * validated 158 * @param examId Unique key of the canonical exam for which the exam offering is being 159 * validated 160 * @param examTypeKey the identifier for the exam type to be validated 161 * @param validationTypeKey the identifier for the validation Type 162 * @param examOfferingInfo the exam offering to be validated 163 * @param contextInfo information containing the principalId and 164 * locale information about the caller of 165 * service operation 166 * @return a list of validation results or an empty list if validation 167 * succeeded 168 * @throws DoesNotExistException validationTypeKey or examTypeKey is not found 169 * @throws InvalidParameterException examOfferingInfo or contextInfo is not valid 170 * @throws MissingParameterException validationTypeKey, examTypeKey, examOfferingInfo, or 171 * contextInfo is missing or null 172 * @throws OperationFailedException unable to complete request 173 * @throws PermissionDeniedException authorization failure 174 */ 175 public List<ValidationResultInfo> validateExamOffering(@WebParam(name = "termId") String termId, 176 @WebParam(name = "examId") String examId, 177 @WebParam(name = "examTypeKey") String examTypeKey, 178 @WebParam(name = "validationTypeKey") String validationTypeKey, 179 @WebParam(name = "examOfferingInfo") ExamOfferingInfo examOfferingInfo, 180 @WebParam(name = "contextInfo") ContextInfo contextInfo) 181 throws DoesNotExistException, 182 InvalidParameterException, 183 MissingParameterException, 184 OperationFailedException, 185 PermissionDeniedException; 186 187 /** 188 * Creates a new Exam Offering. 189 * 190 * @param termId Unique key of the term for which the exam offering is being 191 * created 192 * @param examId Unique key of the canonical exam for which the exam offering is being 193 * created 194 * @param examTypeKey a unique identifier for the Type of the new exam 195 * @param examOfferingInfo the data with which to create the exam 196 * @param contextInfo information containing the principalId and locale 197 * information about the caller of service operation 198 * @return the new exam offering created 199 * @throws DataValidationErrorException supplied data is invalid 200 * @throws DoesNotExistException examTypeKey does not exist or is not supported 201 * @throws InvalidParameterException examOfferingInfo or contextInfo is not valid 202 * @throws MissingParameterException examTypeKey, examOfferingInfo, or 203 * contextInfo is missing or null 204 * @throws OperationFailedException unable to complete request 205 * @throws PermissionDeniedException an authorization failure occurred 206 * @throws ReadOnlyException an attempt at supplying information designated as read only 207 */ 208 public ExamOfferingInfo createExamOffering(@WebParam(name = "termId") String termId, 209 @WebParam(name = "examId") String examId, 210 @WebParam(name = "examTypeKey") String examTypeKey, 211 @WebParam(name = "examOfferingInfo") ExamOfferingInfo examOfferingInfo, 212 @WebParam(name = "contextInfo") ContextInfo contextInfo) 213 throws DataValidationErrorException, 214 DoesNotExistException, 215 InvalidParameterException, 216 MissingParameterException, 217 OperationFailedException, 218 PermissionDeniedException, 219 ReadOnlyException; 220 221 /** 222 * Updates an existing exam offering. 223 * 224 * @param examOfferingId the identifier for the exam offering to be updated 225 * @param examOfferingInfo the new data for the exam offering 226 * @param contextInfo information containing the principalId and locale 227 * information about the caller of service operation 228 * @return the updated object 229 * @throws DataValidationErrorException supplied data is invalid (xml) 230 * @throws DoesNotExistException examOfferingId is not found 231 * @throws InvalidParameterException examOfferingInfo or contextInfo is not valid 232 * @throws MissingParameterException examOfferingId, examOfferingInfo or 233 * contextInfo is missing or null 234 * @throws OperationFailedException unable to complete request 235 * @throws PermissionDeniedException an authorization failure occurred 236 * @throws ReadOnlyException an attempt was made to change information designated as read only 237 * @throws VersionMismatchException an optimistic locking failure or the action was attempted on an out 238 * of data version 239 */ 240 public ExamOfferingInfo updateExamOffering (@WebParam(name = "examOfferingId") String examOfferingId, 241 @WebParam(name = "examOfferingInfo") ExamOfferingInfo examOfferingInfo, 242 @WebParam(name = "contextInfo") ContextInfo contextInfo) 243 throws DataValidationErrorException, 244 DoesNotExistException, 245 InvalidParameterException, 246 MissingParameterException, 247 OperationFailedException, 248 PermissionDeniedException, 249 ReadOnlyException, 250 VersionMismatchException; 251 252 /** 253 * Deletes an existing exam offering. 254 * 255 * @param examOfferingId the identifier for the exam offering to be deleted 256 * @param contextInfo information containing the principalId and locale 257 * information about the caller of service operation 258 * @return the status of the operation 259 260 * @throws DoesNotExistException examOfferingId is not found 261 * @throws InvalidParameterException contextInfo is not valid 262 * @throws MissingParameterException examOfferingId, or 263 * contextInfo is missing or null 264 * @throws OperationFailedException unable to complete request 265 * @throws PermissionDeniedException an authorization failure occurred 266 */ 267 public StatusInfo deleteExamOffering(@WebParam(name = "examOfferingId") String examOfferingId, 268 @WebParam(name = "contextInfo") ContextInfo contextInfo) 269 throws DoesNotExistException, 270 InvalidParameterException, 271 MissingParameterException, 272 OperationFailedException, 273 PermissionDeniedException; 274 275 /** 276 * Change the state of an exam offering. 277 * 278 * @param examOfferingId the identifier for the exam offering whose state is to be changed 279 * @param stateKey the state to change to 280 * @param contextInfo information containing the principalId and locale 281 * information about the caller of service operation 282 * @return the status of the operation 283 284 * @throws DoesNotExistException examOfferingId is not found 285 * @throws InvalidParameterException contextInfo is not valid 286 * @throws MissingParameterException examOfferingId, or 287 * contextInfo is missing or null 288 * @throws OperationFailedException unable to complete request 289 * @throws PermissionDeniedException an authorization failure occurred 290 */ 291 public StatusInfo changeExamOfferingState(@WebParam(name = "examOfferingId") String examOfferingId, 292 @WebParam(name = "stateKey") String stateKey, 293 @WebParam(name = "contextInfo") ContextInfo contextInfo) 294 throws DoesNotExistException, 295 InvalidParameterException, 296 MissingParameterException, 297 OperationFailedException, 298 PermissionDeniedException; 299 300 /** 301 * Retrieves a list of ExamOfferings that are associated with a specified ExamPeriod id. 302 * 303 * @param examPeriodId The id of the ExamPeriod these ExamOfferings are associated with 304 * @param contextInfo Context information containing the principalId and locale 305 * information about the caller of service operation 306 * @return List of exam offerings associated with the ExamPeriod that match the given examPeriodId 307 * @throws DoesNotExistException One or more examOfferingIds not found 308 * @throws InvalidParameterException contextInfo is invalid 309 * @throws MissingParameterException examPeriodId or contextInfo are absent (missing or null) 310 * @throws OperationFailedException unable to complete request 311 * @throws PermissionDeniedException authorization failure 312 */ 313 public List<ExamOfferingInfo> getExamOfferingsByExamPeriod (@WebParam(name = "examPeriodId") String examPeriodId, 314 @WebParam(name = "contextInfo") ContextInfo contextInfo) 315 throws DoesNotExistException, 316 InvalidParameterException, 317 MissingParameterException, 318 OperationFailedException, 319 PermissionDeniedException; 320 321 /** 322 * Validates an ExamOfferingRelation. 323 * 324 * @param formatOfferingId Unique key of the FormatOffering for which the relation is being validated 325 * @param examOfferingId Unique key of the ExamOffering for which the relation is being validated 326 * @param examOfferingTypeKey the identifier of the ExamOfferingRelation type to be validated 327 * @param validationTypeKey the identifier for the validation Type 328 * @param examOfferingRelationInfo the ExamOfferingRelation record to be validated 329 * @param contextInfo information containing the principalId and 330 * locale information about the caller of 331 * service operation 332 * @return a list of validation results or an empty list if validation succeeded 333 * @throws DoesNotExistException validationTypeKey or examOfferingTypeKey is not found 334 * @throws InvalidParameterException examOfferingRelationInfo or contextInfo is not valid 335 * @throws MissingParameterException validationTypeKey, examOfferingTypeKey, examOfferingRelationInfo, or 336 * contextInfo is missing or null 337 * @throws OperationFailedException unable to complete request 338 * @throws PermissionDeniedException authorization failure 339 */ 340 public List<ValidationResultInfo> validateExamOfferingRelation(@WebParam(name = "formatOfferingId") String formatOfferingId, 341 @WebParam(name = "examOfferingId") String examOfferingId, 342 @WebParam(name = "examOfferingTypeKey") String examOfferingTypeKey, 343 @WebParam(name = "validationTypeKey") String validationTypeKey, 344 @WebParam(name = "examOfferingRelationInfo") ExamOfferingRelationInfo examOfferingRelationInfo, 345 @WebParam(name = "contextInfo") ContextInfo contextInfo) 346 throws DoesNotExistException, 347 InvalidParameterException, 348 MissingParameterException, 349 OperationFailedException, 350 PermissionDeniedException; 351 352 /** 353 * Creates a new ExamOfferingRelation. 354 * 355 * @param formatOfferingId Unique key of the FormatOffering for which the relation is being created 356 * @param examOfferingId Unique key of the ExamOffering for which the relation is being created 357 * @param examOfferingTypeKey a unique identifier for the Type of the new ExamOfferingRelation 358 * @param examOfferingRelationInfo the data with which to create the ExamOfferingRelation 359 * @param contextInfo information containing the principalId and locale 360 * information about the caller of service operation 361 * @return the new ExamOfferingRelation created 362 * @throws DataValidationErrorException supplied data is invalid 363 * @throws DoesNotExistException examOfferingTypeKey does not exist or is not supported 364 * @throws InvalidParameterException examOfferingRelationInfo or contextInfo is not valid 365 * @throws MissingParameterException examOfferingTypeKey, examOfferingRelationInfo, or 366 * contextInfo is missing or null 367 * @throws OperationFailedException unable to complete request 368 * @throws PermissionDeniedException an authorization failure occurred 369 * @throws ReadOnlyException an attempt at supplying information designated as read only 370 */ 371 public ExamOfferingRelationInfo createExamOfferingRelation(@WebParam(name = "formatOfferingId") String formatOfferingId, 372 @WebParam(name = "examOfferingId") String examOfferingId, 373 @WebParam(name = "examOfferingTypeKey") String examOfferingTypeKey, 374 @WebParam(name = "examOfferingRelationInfo") ExamOfferingRelationInfo examOfferingRelationInfo, 375 @WebParam(name = "contextInfo") ContextInfo contextInfo) 376 throws DataValidationErrorException, 377 DoesNotExistException, 378 InvalidParameterException, 379 MissingParameterException, 380 OperationFailedException, 381 PermissionDeniedException, 382 ReadOnlyException; 383 384 /** 385 * Updates an existing ExamOfferingRelation. 386 * 387 * @param examOfferingRelationId the identifier for the ExamOfferingRelation to be updated 388 * @param examOfferingRelationInfo the new data for the ExamOffering 389 * @param contextInfo information containing the principalId and locale 390 * information about the caller of service operation 391 * @return the updated object 392 * @throws DataValidationErrorException supplied data is invalid (xml) 393 * @throws DoesNotExistException examOfferingRelationId is not found 394 * @throws InvalidParameterException examOfferingRelationInfo or contextInfo is not valid 395 * @throws MissingParameterException examOfferingRelationId, examOfferingRelationInfo or 396 * contextInfo is missing or null 397 * @throws OperationFailedException unable to complete request 398 * @throws PermissionDeniedException an authorization failure occurred 399 * @throws ReadOnlyException an attempt was made to change information designated as read only 400 * @throws VersionMismatchException an optimistic locking failure or the action was attempted on an out 401 * of data version 402 */ 403 public ExamOfferingRelationInfo updateExamOfferingRelation (@WebParam(name = "examOfferingRelationId") String examOfferingRelationId, 404 @WebParam(name = "examOfferingRelationInfo") ExamOfferingRelationInfo examOfferingRelationInfo, 405 @WebParam(name = "contextInfo") ContextInfo contextInfo) 406 throws DataValidationErrorException, 407 DoesNotExistException, 408 InvalidParameterException, 409 MissingParameterException, 410 OperationFailedException, 411 PermissionDeniedException, 412 ReadOnlyException, 413 VersionMismatchException; 414 415 /** 416 * Deletes an existing ExamOfferingRelation. 417 * 418 * @param examOfferingRelationId the identifier for the ExamOfferingRelation to be deleted 419 * @param contextInfo information containing the principalId and locale 420 * information about the caller of service operation 421 * @return the status of the operation 422 * 423 * @throws DoesNotExistException examId is not found 424 * @throws InvalidParameterException contextInfo is not valid 425 * @throws MissingParameterException examOfferingRelationId, or 426 * contextInfo is missing or null 427 * @throws OperationFailedException unable to complete request 428 * @throws PermissionDeniedException an authorization failure occurred 429 */ 430 public StatusInfo deleteExamOfferingRelation(@WebParam(name = "examOfferingRelationId") String examOfferingRelationId, 431 @WebParam(name = "contextInfo") ContextInfo contextInfo) 432 throws DoesNotExistException, 433 InvalidParameterException, 434 MissingParameterException, 435 OperationFailedException, 436 PermissionDeniedException; 437 438 /** 439 * Retrieves information about a ExamOfferingRelation relationship object. 440 * 441 * @param examOfferingRelationId the id of the relationship. 442 * @param contextInfo Context information containing the principalId and locale 443 * information about the caller of service operation 444 * @return a ExamOfferingRelation relationship whose id matches the given id 445 * @throws DoesNotExistException if the relationship does not exist 446 * @throws InvalidParameterException contextInfo is invalid 447 * @throws MissingParameterException examOfferingRelationId or contextInfo are absent 448 * (missing or null) 449 * @throws OperationFailedException unable to complete request 450 * @throws PermissionDeniedException an authorization failure occurred 451 */ 452 public ExamOfferingRelationInfo getExamOfferingRelation(@WebParam(name = "examOfferingRelationId") String examOfferingRelationId, 453 @WebParam(name = "contextInfo") ContextInfo contextInfo) 454 throws DoesNotExistException, 455 InvalidParameterException, 456 MissingParameterException, 457 OperationFailedException, 458 PermissionDeniedException; 459 460 /** 461 * Retrieves a list of ExamOfferingRelations from a list of ids. The returned list may be in any order and 462 * if duplicates ids are supplied, a unique set may or may not be returned. 463 * 464 * @param examOfferingRelationIds the relationship ids. 465 * @param contextInfo Context information containing the principalId and locale 466 * information about the caller of service operation 467 * @return a list of ExamOfferingRelations 468 * @throws DoesNotExistException a relationshipId in the list was not found 469 * @throws InvalidParameterException contextInfo is invalid 470 * @throws MissingParameterException relationshipIds, a relationshipId in the relationshipIds, or 471 * contextInfo is missing or null 472 * @throws OperationFailedException unable to complete request 473 * @throws PermissionDeniedException an authorization failure occurred 474 */ 475 public List<ExamOfferingRelationInfo> getExamOfferingRelationsByIds(@WebParam(name = "examOfferingRelationIds") List<String> examOfferingRelationIds, 476 @WebParam(name = "contextInfo") ContextInfo contextInfo) 477 throws DoesNotExistException, 478 InvalidParameterException, 479 MissingParameterException, 480 OperationFailedException, 481 PermissionDeniedException; 482 483 /** 484 * Retrieves a list of ExamOfferingRelation Ids by relation type. 485 * 486 * @param relationshipTypeKey an identifier for a ExamOfferingRelation Type 487 * @param contextInfo Context information containing the principalId and locale 488 * information about the caller of service operation 489 * @return a list of ExamOfferingRelation identifiers matching relationshipTypeKey or an empty list if none found 490 * @throws InvalidParameterException contextInfo is invalid 491 * @throws MissingParameterException relationshipTypeKey or contextInfo is missing or null 492 * @throws OperationFailedException unable to complete request 493 * @throws PermissionDeniedException an authorization failure occurred 494 */ 495 public List<String> getExamOfferingRelationIdsByType(@WebParam(name = "relationshipTypeKey") String relationshipTypeKey, 496 @WebParam(name = "contextInfo") ContextInfo contextInfo) 497 throws InvalidParameterException, 498 MissingParameterException, 499 OperationFailedException, 500 PermissionDeniedException; 501 502 /** 503 * Retrieves a list of ExamOfferingRelations to the given FormatOffering. 504 * 505 * @param formatOfferingId the identifier for the FormatOffering 506 * @param contextInfo Context information containing the principalId and locale information about the caller of service operation 507 * @return the ExamOfferingRelations to the given FormatOffering or an empty list if none found 508 * @throws InvalidParameterException contextInfo is invalid 509 * @throws MissingParameterException formatOfferingId or contextInfo is missing or null 510 * @throws OperationFailedException unable to complete request 511 * @throws PermissionDeniedException an authorization failure occurred 512 */ 513 public List<ExamOfferingRelationInfo> getExamOfferingRelationsByFormatOffering(@WebParam(name = "formatOfferingId") String formatOfferingId, 514 @WebParam(name = "contextInfo") ContextInfo contextInfo) 515 throws InvalidParameterException, 516 MissingParameterException, 517 OperationFailedException, 518 PermissionDeniedException; 519 520 /** 521 * Retrieves a list of ExamOfferingRelations to the given ExamOffering. 522 * 523 * @param examOfferingId the identifier for the ExamOffering 524 * @param contextInfo Context information containing the principalId and locale information about the caller of service operation 525 * @return the ExamOfferingRelations to the given ExamOffering or an empty list if none found 526 * @throws InvalidParameterException contextInfo is invalid 527 * @throws MissingParameterException examOfferingId or contextInfo is missing or null 528 * @throws OperationFailedException unable to complete request 529 * @throws PermissionDeniedException an authorization failure occurred 530 */ 531 public List<ExamOfferingRelationInfo> getExamOfferingRelationsByExamOffering(@WebParam(name = "examOfferingId") String examOfferingId, 532 @WebParam(name = "contextInfo") ContextInfo contextInfo) 533 throws InvalidParameterException, 534 MissingParameterException, 535 OperationFailedException, 536 PermissionDeniedException; 537 538 /** 539 * Retrieves a list of ExamOfferingRelations Ids that are associated with an ActivityOffering id. 540 * 541 * @param activityOfferingId the identifier for the ActivityOffering 542 * @param contextInfo Context information containing the principalId and locale information about the caller of service operation 543 * @return the Ids of the ExamOfferingRelations for the given ActivityOffering Id or an empty list if none found 544 * @throws InvalidParameterException contextInfo is invalid 545 * @throws MissingParameterException activityOfferingId or contextInfo is missing or null 546 * @throws OperationFailedException unable to complete request 547 * @throws PermissionDeniedException an authorization failure occurred 548 */ 549 public List<String> getExamOfferingRelationIdsByActivityOffering(@WebParam(name = "activityOfferingId") String activityOfferingId, 550 @WebParam(name = "contextInfo") ContextInfo contextInfo) 551 throws InvalidParameterException, 552 MissingParameterException, 553 OperationFailedException, 554 PermissionDeniedException; 555 556 /** 557 * Searches for ExamOfferingRelations that meet the given search criteria. 558 * 559 * @param criteria the search criteria 560 * @param contextInfo information containing the principalId and locale 561 * information about the caller of service operation 562 * @return a list of ExamOfferingRelation Ids matching the criteria 563 * @throws InvalidParameterException criteria or contextInfo is not valid 564 * @throws MissingParameterException criteria or contextInfo is missing or 565 * null 566 * @throws OperationFailedException unable to complete request 567 * @throws PermissionDeniedException an authorization failure occurred 568 */ 569 public List<String> searchForExamOfferingRelationIds(@WebParam(name = "criteria") QueryByCriteria criteria, 570 @WebParam(name = "contextInfo") ContextInfo contextInfo) 571 throws InvalidParameterException, 572 MissingParameterException, 573 OperationFailedException, 574 PermissionDeniedException; 575 576 /** 577 * Searches for ExamOfferingRelations that meet the given search criteria. 578 * 579 * @param criteria the search criteria 580 * @param contextInfo information containing the principalId and locale 581 * information about the caller of service operation 582 * @return a list of ExamOfferingRelations matching the criteria 583 * @throws InvalidParameterException criteria or contextInfo is not valid 584 * @throws MissingParameterException criteria or contextInfo is missing or 585 * null 586 * @throws OperationFailedException unable to complete request 587 * @throws PermissionDeniedException an authorization failure occurred 588 */ 589 public List<ExamOfferingRelationInfo> searchForExamOfferingRelations (@WebParam(name = "criteria") QueryByCriteria criteria, 590 @WebParam(name = "contextInfo") ContextInfo contextInfo) 591 throws InvalidParameterException, 592 MissingParameterException, 593 OperationFailedException, 594 PermissionDeniedException; 595 596 }