1 /* 2 * Copyright 2009 The Kuali Foundation Licensed under the Educational Community 3 * License, Version 1.0 (the "License"); you may not use this file except in 4 * compliance with the License. You may obtain a copy of the License at 5 * http://www.opensource.org/licenses/ecl1.php Unless required by applicable law 6 * or agreed to in writing, software distributed under the License is 7 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 8 * KIND, either express or implied. See the License for the specific language 9 * governing permissions and limitations under the License. 10 */ 11 package org.kuali.student.r2.lum.program.service; 12 13 import java.util.Date; 14 import java.util.List; 15 16 import javax.jws.WebParam; 17 import javax.jws.WebService; 18 import javax.jws.soap.SOAPBinding; 19 20 21 import org.kuali.student.r1.common.dictionary.service.DictionaryService; 22 import org.kuali.student.r2.core.search.service.SearchService; 23 import org.kuali.student.r2.common.dto.ContextInfo; 24 import org.kuali.student.r2.common.dto.StatusInfo; 25 import org.kuali.student.r2.common.dto.ValidationResultInfo; 26 import org.kuali.student.r2.common.exceptions.AlreadyExistsException; 27 import org.kuali.student.r2.common.exceptions.DataValidationErrorException; 28 import org.kuali.student.r2.common.exceptions.DoesNotExistException; 29 import org.kuali.student.r2.common.exceptions.IllegalVersionSequencingException; 30 import org.kuali.student.r2.common.exceptions.InvalidParameterException; 31 import org.kuali.student.r2.common.exceptions.MissingParameterException; 32 import org.kuali.student.r2.common.exceptions.OperationFailedException; 33 import org.kuali.student.r2.common.exceptions.PermissionDeniedException; 34 import org.kuali.student.r2.common.exceptions.ReadOnlyException; 35 import org.kuali.student.r2.common.exceptions.VersionMismatchException; 36 37 import org.kuali.student.r2.common.util.constants.ProgramServiceConstants; 38 import org.kuali.student.r2.core.versionmanagement.service.VersionManagementService; 39 import org.kuali.student.r2.lum.program.dto.CredentialProgramInfo; 40 import org.kuali.student.r2.lum.program.dto.HonorsProgramInfo; 41 import org.kuali.student.r2.lum.program.dto.MajorDisciplineInfo; 42 import org.kuali.student.r2.lum.program.dto.MinorDisciplineInfo; 43 44 import org.kuali.student.r2.lum.program.dto.CoreProgramInfo; 45 import org.kuali.student.r2.lum.program.dto.ProgramRequirementInfo; 46 import org.kuali.student.r2.lum.program.dto.ProgramVariationInfo; 47 48 /** 49 * The Program Service allows for the creation and management of programs. 50 * 51 * @version 2.0 52 * @Author sambitpa@usc.edu 53 */ 54 @WebService(name = "ProgramService", targetNamespace = ProgramServiceConstants.PROGRAM_NAMESPACE) 55 // TODO CHECK THESE VALUES 56 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) 57 public interface ProgramService extends SearchService, VersionManagementService, DictionaryService 58 { 59 60 /** 61 * Retrieves a CredentialProgram 62 * 63 * @param credentialProgramId Unique Id of the CredentialProgram. Maps to 64 * cluId 65 * @return the created Credential Program 66 * @throws DoesNotExistException CredentialProgram does not exist 67 * @throws InvalidParameterException invalid Credential Program 68 * @throws MissingParameterException missing Credential Program 69 * @throws OperationFailedException unable to complete request 70 * @throws PermissionDeniedException authorization failure 71 * @throws org.kuali.student.r2.common.exceptions.OperationFailedException 72 * @throws org.kuali.student.r2.common.exceptions.PermissionDeniedException 73 */ 74 public CredentialProgramInfo getCredentialProgram(@WebParam(name = "credentialProgramId") String credentialProgramId, @WebParam(name = "contextInfo") ContextInfo contextInfo) 75 throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 76 77 /** 78 * Retrieves a list of CredentialPrograms corresponding to the given list of 79 * CredentialProgram Ids 80 * 81 * @param credentialProgramIds list of CredentialPrograms to be retrieved 82 * @param contextInfo Context information containing the principalId and 83 * locale information about the caller of service operation 84 * @return list of CredentialProgram 85 * @throws DoesNotExistException an commentKey in list not found 86 * @throws InvalidParameterException invalid commentKey 87 * @throws MissingParameterException commentIds, contextInfo not specified 88 * @throws OperationFailedException unable to complete request 89 * @throws PermissionDeniedException authorization failure 90 */ 91 public List<CredentialProgramInfo> getCredentialProgramsByIds(@WebParam(name = "credentialProgramIds") List<String> credentialProgramIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) 92 throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 93 94 /** 95 * Validates a Credential Program against its data dictionary 96 * 97 * @param validationType identifier of the extent of validation 98 * @param credentialProgramInfo Credential Program information to be tested 99 * @return results from performing the validation 100 * @throws InvalidParameterException invalid validationTypeKey, cluInfo 101 * @throws MissingParameterException missing validationTypeKey, cluInfo 102 * @throws OperationFailedException unable to complete request 103 */ 104 public List<ValidationResultInfo> validateCredentialProgram(@WebParam(name = "validationType") String validationType, 105 @WebParam(name = "credentialProgramInfo") CredentialProgramInfo credentialProgramInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, 106 MissingParameterException, OperationFailedException; 107 108 /** 109 * Creates a Credential Program 110 * 111 * @param credentialProgramInfo credentialProgramInfo 112 * @return the created Credential Program 113 * @throws AlreadyExistsException The Credential Program already exists 114 * @throws DataValidationErrorException One or more values invalid for this 115 * operation 116 * @throws InvalidParameterException invalid Credential Program 117 * @throws MissingParameterException missing Credential Program 118 * @throws OperationFailedException unable to complete request 119 * @throws PermissionDeniedException authorization failure 120 */ 121 public CredentialProgramInfo createCredentialProgram(@WebParam(name = "credentialProgramTypeKey") String credentialProgramTypeKey, 122 @WebParam(name = "credentialProgramInfo") CredentialProgramInfo credentialProgramInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, 123 DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 124 125 /** 126 * Creates a new Credential Program version based on the current Credential 127 * Program 128 * 129 * @param credentialProgramId identifier for the Credential Program to be 130 * versioned 131 * @param versionComment comment for the current version 132 * @return the new versioned Credential Program information 133 * @throws DoesNotExistException Credential Program does not exist 134 * @throws InvalidParameterException invalid credentialProgramId 135 * @throws MissingParameterException invalid credentialProgramId 136 * @throws OperationFailedException unable to complete request 137 * @throws PermissionDeniedException authorization failure 138 * @throws VersionMismatchException The action was attempted on an out of 139 * date version 140 * @throws DataValidationErrorException 141 * @throws ReadOnlyException 142 */ 143 public CredentialProgramInfo createNewCredentialProgramVersion(@WebParam(name = "credentialProgramId") String credentialProgramId, @WebParam(name = "versionComment") String versionComment, 144 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, 145 PermissionDeniedException, VersionMismatchException, DataValidationErrorException, ReadOnlyException; 146 147 /** 148 * Sets a specific version of the Credential Program as current. The 149 * sequence number must be greater than the existing current Credential 150 * Program version. This will truncate the current version's end date to the 151 * currentVersionStart param. If a Major exists which is set to become 152 * current in the future, that Major's currentVersionStart and 153 * CurrentVersionEnd will be nullified. The currentVersionStart must be in 154 * the future to prevent changing historic data. 155 * 156 * @param credentialProgramId Version Specific Id of the Credential Program 157 * @param currentVersionStart Date when this Credential Program becomes 158 * current. Must be in the future and be after the most current 159 * Credential Program's start date. 160 * @return status of the operation (success or failure) 161 * @throws DoesNotExistException Credential Program for credentialProgramId 162 * does not exist 163 * @throws InvalidParameterException invalid credentialProgramId, 164 * currentVersionStart 165 * @throws MissingParameterException invalid credentialProgramId 166 * @throws IllegalVersionSequencingException a Credential Program with 167 * higher sequence number from the one provided is marked 168 * current 169 * @throws OperationFailedException unable to complete request 170 * @throws PermissionDeniedException authorization failure 171 * @throws DataValidationErrorException 172 */ 173 public StatusInfo setCurrentCredentialProgramVersion(@WebParam(name = "credentialProgramId") String credentialProgramId, @WebParam(name = "currentVersionStart") Date currentVersionStart, 174 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, IllegalVersionSequencingException, 175 OperationFailedException, PermissionDeniedException, DataValidationErrorException; 176 177 /** 178 * Updates a Credential Program 179 * 180 * @param credentialProgramInfo credentialProgramInfo 181 * @return updated Credential Program 182 * @throws DataValidationErrorException One or more values invalid for this 183 * operation 184 * @throws DoesNotExistException Credential Program not found 185 * @throws InvalidParameterException invalid Credential Program 186 * @throws MissingParameterException missing Credential Program 187 * @throws VersionMismatchException The action was attempted on an out of 188 * date version 189 * @throws OperationFailedException unable to complete request 190 * @throws PermissionDeniedException authorization failure 191 */ 192 public CredentialProgramInfo updateCredentialProgram(@WebParam(name = "credentialProgramId") String credentialProgramId, 193 @WebParam(name = "credentialProgramInfo") CredentialProgramInfo credentialProgramInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, 194 DoesNotExistException, InvalidParameterException, MissingParameterException, VersionMismatchException, OperationFailedException, PermissionDeniedException; 195 196 /** 197 * Deletes a Credential Program 198 * 199 * @param credentialProgramId identifier for credentialProgramId.Maps to 200 * cluId 201 * @return status of the operation (success or failure) 202 * @throws DoesNotExistException Credential Program does not exist 203 * @throws InvalidParameterException invalid credentialProgramId 204 * @throws MissingParameterException invalid credentialProgramId 205 * @throws OperationFailedException unable to complete request 206 * @throws PermissionDeniedException authorization failure 207 */ 208 public StatusInfo deleteCredentialProgram(@WebParam(name = "credentialProgramId") String credentialProgramId, @WebParam(name = "contextInfo") ContextInfo contextInfo) 209 throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 210 211 /** 212 * Retrieves a MajorDiscipline 213 * 214 * @param majorDisciplineId Unique Id of the MajorDiscipline. Maps to cluId 215 * @return the created MajorDiscipline 216 * @throws DoesNotExistException MajorDiscipline does not exist 217 * @throws InvalidParameterException invalid MajorDiscipline 218 * @throws MissingParameterException missing MajorDiscipline 219 * @throws OperationFailedException unable to complete request 220 * @throws PermissionDeniedException authorization failure 221 */ 222 public MajorDisciplineInfo getMajorDiscipline(@WebParam(name = "majorDisciplineId") String majorDisciplineId, @WebParam(name = "contextInfo") ContextInfo contextInfo) 223 throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 224 225 /** 226 * Retrieves a list of MajorDiscipline corresponding to the given list of 227 * major discipline Ids 228 * 229 * @param majorDisciplineIds list of MajorDisciplines to be retrieved 230 * @param contextInfo Context information containing the principalId and 231 * locale information about the caller of service operation 232 * @return list of MajorDiscipline 233 * @throws DoesNotExistException an commentKey in list not found 234 * @throws InvalidParameterException invalid commentKey 235 * @throws MissingParameterException commentIds, contextInfo not specified 236 * @throws OperationFailedException unable to complete request 237 * @throws PermissionDeniedException authorization failure 238 */ 239 public List<MajorDisciplineInfo> getMajorDisciplinesByIds(@WebParam(name = "majorDisciplineIds") List<String> majorDisciplineIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) 240 throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 241 242 /** 243 * Retrieves the list of Major Discipline identifiers a given Credential 244 * Program Type. 245 * 246 * @param programType Type of Credential Program 247 * @return List of Major Discipline identifiers for the given Credential 248 * Program Type 249 * @throws DoesNotExistException program type not found 250 * @throws InvalidParameterException invalid program type 251 * @throws MissingParameterException program type is not specified 252 * @throws OperationFailedException unable to complete request 253 */ 254 public List<String> getMajorDisciplineIdsByCredentialProgramType(@WebParam(name = "programType") String programType, 255 @WebParam(name = "contextInfo") ContextInfo contextInfo) 256 throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 257 258 /** 259 * Retrieves a list of program variations for a particular major 260 * @param majorDisciplineId Major Discipline Identifier 261 * @return list of program variations associated with the specified Major 262 * @throws DoesNotExistException Major not found 263 * @throws InvalidParameterException invalid majorDisciplineId 264 * @throws MissingParameterException majorDisciplineId not specified 265 * @throws OperationFailedException unable to complete request 266 */ 267 public List<ProgramVariationInfo> getProgramVariationsByMajorDiscipline(@WebParam(name = "majorDisciplineId") String majorDisciplineId, 268 @WebParam(name = "contextInfo") ContextInfo contextInfo) 269 throws DoesNotExistException, 270 InvalidParameterException, 271 MissingParameterException, 272 OperationFailedException; 273 274 /** 275 * Validates a Major discipline against its data dictionary 276 * 277 * @param validationType identifier of the extent of validation 278 * @param majorDisciplineInfo Major discipline information to be tested 279 * @return results from performing the validation 280 * @throws InvalidParameterException invalid validationTypeKey, cluInfo 281 * @throws MissingParameterException missing validationTypeKey, cluInfo 282 * @throws OperationFailedException unable to complete request 283 * @throws PermissionDeniedException 284 */ 285 public List<ValidationResultInfo> validateMajorDiscipline(@WebParam(name = "validationType") String validationType, 286 @WebParam(name = "majorDisciplineInfo") MajorDisciplineInfo majorDisciplineInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, 287 MissingParameterException, OperationFailedException, PermissionDeniedException; 288 289 /** 290 * Creates a Major Discipline Program 291 * 292 * @param majorDisciplineInfo majorDisciplineInfo 293 * @return the created Major Discipline 294 * @throws AlreadyExistsException The Major already exists 295 * @throws DataValidationErrorException One or more values invalid for this 296 * operation 297 * @throws InvalidParameterException invalid Major 298 * @throws MissingParameterException missing Major 299 * @throws OperationFailedException unable to complete request 300 * @throws PermissionDeniedException authorization failure 301 */ 302 public MajorDisciplineInfo createMajorDiscipline(@WebParam(name = "majorDisciplineTypeKey") String majorDisciplineTypeKey, 303 @WebParam(name = "majorDisciplineInfo") MajorDisciplineInfo majorDisciplineInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, 304 DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 305 306 /** 307 * Updates a Major Discipline 308 * 309 * @param majorDisciplineInfo majorDisciplineInfo 310 * @return updated Major Discipline 311 * @throws DataValidationErrorException One or more values invalid for this 312 * operation 313 * @throws DoesNotExistException Major not found 314 * @throws InvalidParameterException invalid Major 315 * @throws MissingParameterException missing Major 316 * @throws VersionMismatchException The action was attempted on an out of 317 * date version 318 * @throws OperationFailedException unable to complete request 319 * @throws PermissionDeniedException authorization failure 320 */ 321 public MajorDisciplineInfo updateMajorDiscipline(@WebParam(name = "majorDisciplineId") String majorDisciplineId, @WebParam(name = "majorDisciplineInfo") MajorDisciplineInfo majorDisciplineInfo, 322 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, 323 VersionMismatchException, OperationFailedException, PermissionDeniedException; 324 325 /** 326 * Deletes a Major Discipline 327 * 328 * @param majorDisciplineId identifier for majorDisciplineId.Maps to cluId 329 * @return status of the operation (success or failure) 330 * @throws DoesNotExistException Major does not exist 331 * @throws InvalidParameterException invalid majorDisciplineId 332 * @throws MissingParameterException invalid majorDisciplineId 333 * @throws OperationFailedException unable to complete request 334 * @throws PermissionDeniedException authorization failure 335 */ 336 public StatusInfo deleteMajorDiscipline(@WebParam(name = "majorDisciplineId") String majorDisciplineId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 337 InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 338 339 /** 340 * Creates a new Major Discipline version based on the current Major 341 * 342 * @param majorDisciplineId identifier for the Major Discipline to be 343 * versioned 344 * @param versionComment comment for the current version 345 * @return the new versioned Major Discipline information 346 * @throws DoesNotExistException Major does not exist 347 * @throws InvalidParameterException invalid majorDisciplineId 348 * @throws MissingParameterException invalid majorDisciplineId 349 * @throws OperationFailedException unable to complete request 350 * @throws PermissionDeniedException authorization failure 351 * @throws VersionMismatchException The action was attempted on an out of 352 * date version 353 * @throws DataValidationErrorException 354 * @throws ReadOnlyException 355 */ 356 public MajorDisciplineInfo createNewMajorDisciplineVersion(@WebParam(name = "majorDisciplineId") String majorDisciplineId, @WebParam(name = "versionComment") String versionComment, 357 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, 358 PermissionDeniedException, VersionMismatchException, DataValidationErrorException, ReadOnlyException; 359 360 /** 361 * Retrieves a HonorsProgram 362 * 363 * @param honorsProgramId Unique Id of the HonorsProgram. Maps to cluId 364 * @return the created Honors Program 365 * @throws DoesNotExistException HonorsProgram does not exist 366 * @throws InvalidParameterException invalid Honors Program 367 * @throws MissingParameterException missing Honors Program 368 * @throws OperationFailedException unable to complete request 369 * @throws PermissionDeniedException authorization failure 370 */ 371 public HonorsProgramInfo getHonorsProgram(@WebParam(name = "honorsProgramId") String honorsProgramId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 372 InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 373 374 /** 375 * 376 * Retrieves a list of honors program by Ids 377 * 378 * @param honorsProgramIds 379 * @param contextInfo 380 * @return 381 * @throws DoesNotExistException 382 * @throws InvalidParameterException 383 * @throws MissingParameterException 384 * @throws OperationFailedException 385 * @throws PermissionDeniedException 386 */ 387 public List<HonorsProgramInfo> getHonorsProgramsByIds(@WebParam(name = "honorsProgramIds") List<String> honorsProgramIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 388 InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 389 390 /** 391 * Retrieves the list of Honors Program Program a given Credential Program 392 * Type. 393 * 394 * @param programType Type of Credential Program 395 * @return List of Honors Programs for the given Credential Program Type 396 * @throws DoesNotExistException program type not found 397 * @throws InvalidParameterException invalid program type 398 * @throws MissingParameterException program type is not specified 399 * @throws OperationFailedException unable to complete request 400 */ 401 public List<String> getHonorProgramIdsByCredentialProgramType(@WebParam(name = "programType") String programType, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 402 InvalidParameterException, MissingParameterException, OperationFailedException; 403 404 /** 405 * Validates a Honors Program against its data dictionary 406 * 407 * @param validationType identifier of the extent of validation 408 * @param honorsProgramInfo Honors Program information to be tested 409 * @return results from performing the validation 410 * @throws InvalidParameterException invalid validationTypeKey, cluInfo 411 * @throws MissingParameterException missing validationTypeKey, cluInfo 412 * @throws OperationFailedException unable to complete request 413 */ 414 public List<ValidationResultInfo> validateHonorsProgram(@WebParam(name = "validationType") String validationType, @WebParam(name = "honorsProgramInfo") HonorsProgramInfo honorsProgramInfo, 415 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException; 416 417 /** 418 * Creates a Honors Program 419 * 420 * @param honorsProgramInfo honorsProgramInfo 421 * @return the created Honors Program 422 * @throws AlreadyExistsException The Honors Program already exists 423 * @throws DataValidationErrorException One or more values invalid for this 424 * operation 425 * @throws InvalidParameterException invalid Honors Program 426 * @throws MissingParameterException missing Honors Program 427 * @throws OperationFailedException unable to complete request 428 * @throws PermissionDeniedException authorization failure 429 */ 430 public HonorsProgramInfo createHonorsProgram(@WebParam(name = "honorsProgramTypeKey") String honorsProgramTypeKey, @WebParam(name = "honorsProgramInfo") HonorsProgramInfo honorsProgramInfo, 431 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, 432 OperationFailedException, PermissionDeniedException; 433 434 /** 435 * Updates a Honors Program 436 * 437 * @param honorsProgramInfo honorsProgramInfo 438 * @return updated Honors Program 439 * @throws DataValidationErrorException One or more values invalid for this 440 * operation 441 * @throws DoesNotExistException Honors Program not found 442 * @throws InvalidParameterException invalid Honors Program 443 * @throws MissingParameterException missing Honors Program 444 * @throws VersionMismatchException The action was attempted on an out of 445 * date version 446 * @throws OperationFailedException unable to complete request 447 * @throws PermissionDeniedException authorization failure 448 */ 449 public HonorsProgramInfo updateHonorsProgram(@WebParam(name = "honorsProgramId") String honorsProgramId, @WebParam(name = "honorsProgramTypeKey") String honorsProgramTypeKey, 450 @WebParam(name = "honorsProgramInfo") HonorsProgramInfo honorsProgramInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, 451 DoesNotExistException, InvalidParameterException, MissingParameterException, VersionMismatchException, OperationFailedException, PermissionDeniedException; 452 453 /** 454 * Deletes a Honors Program 455 * 456 * @param honorsProgramId identifier for honorsProgramId.Maps to cluId 457 * @return status of the operation (success or failure) 458 * @throws DoesNotExistException Honors Program does not exist 459 * @throws InvalidParameterException invalid honorsProgramId 460 * @throws MissingParameterException invalid honorsProgramId 461 * @throws OperationFailedException unable to complete request 462 * @throws PermissionDeniedException authorization failure 463 */ 464 public StatusInfo deleteHonorsProgram(@WebParam(name = "honorsProgramId") String honorsProgramId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 465 InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 466 467 /** 468 * Retrieves a Core Program 469 * 470 * @param coreProgramId Unique Id of the Core Program. Maps to cluId 471 * @return the Core Program 472 * @throws DoesNotExistException Program Requirement does not exist 473 * @throws InvalidParameterException invalid Program Requirement 474 * @throws MissingParameterException missing Program Requirement 475 * @throws OperationFailedException unable to complete request 476 * @throws PermissionDeniedException authorization failure 477 */ 478 public CoreProgramInfo getCoreProgram(@WebParam(name = "coreProgramId") String coreProgramId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 479 InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 480 481 /** 482 * 483 * Retrieves a list of core program by Ids 484 * 485 * @param coreProgramIds 486 * @param contextInfo 487 * @return 488 * @throws DoesNotExistException 489 * @throws InvalidParameterException 490 * @throws MissingParameterException 491 * @throws OperationFailedException 492 * @throws PermissionDeniedException 493 */ 494 public List<CoreProgramInfo> getCoreProgramsByIds(@WebParam(name = "coreProgramIds") List<String> coreProgramIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 495 InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 496 497 /** 498 * Validates a Core Program against its data dictionary 499 * 500 * @param validationType identifier of the extent of validation 501 * @param coreProgramInfo Core Program information to be tested 502 * @return results from performing the validation 503 * @throws InvalidParameterException invalid validationTypeKey, cluInfo 504 * @throws MissingParameterException missing validationTypeKey, cluInfo 505 * @throws OperationFailedException unable to complete request 506 */ 507 public List<ValidationResultInfo> validateCoreProgram(@WebParam(name = "validationType") String validationType, @WebParam(name = "coreProgramInfo") CoreProgramInfo coreProgramInfo, 508 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException; 509 510 /** 511 * Creates a Core Program 512 * 513 * @param coreProgramInfo coreProgramInfo 514 * @return the created Core Program 515 * @throws AlreadyExistsException The Core Program already exists 516 * @throws DataValidationErrorException One or more values invalid for this 517 * operation 518 * @throws InvalidParameterException invalid Core Program 519 * @throws MissingParameterException missing Core Program 520 * @throws OperationFailedException unable to complete request 521 * @throws PermissionDeniedException authorization failure 522 */ 523 public CoreProgramInfo createCoreProgram(@WebParam(name = "coreProgramTypeKey") String coreProgramTypeKey, @WebParam(name = "coreProgramInfo") CoreProgramInfo coreProgramInfo, 524 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, 525 OperationFailedException, PermissionDeniedException, DoesNotExistException; 526 527 /** 528 * Creates a new Core Program version based on the current Core Program 529 * 530 * @param coreProgramId identifier for the Core Program to be versioned 531 * @param versionComment comment for the current version 532 * @return the new versioned Core Program information 533 * @throws DoesNotExistException Core Program does not exist 534 * @throws InvalidParameterException invalid coreProgramId 535 * @throws MissingParameterException invalid coreProgramId 536 * @throws OperationFailedException unable to complete request 537 * @throws PermissionDeniedException authorization failure 538 * @throws VersionMismatchException The action was attempted on an out of 539 * date version 540 * @throws DataValidationErrorException 541 * @throws ReadOnlyException 542 */ 543 public CoreProgramInfo createNewCoreProgramVersion(@WebParam(name = "coreProgramId") String coreProgramId, @WebParam(name = "versionComment") String versionComment, 544 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, 545 PermissionDeniedException, VersionMismatchException, DataValidationErrorException, ReadOnlyException; 546 547 /** 548 * Sets a specific version of the Core Program as current. The sequence 549 * number must be greater than the existing current Core Program version. 550 * This will truncate the current version's end date to the 551 * currentVersionStart param. If a Major exists which is set to become 552 * current in the future, that Major's currentVersionStart and 553 * CurrentVersionEnd will be nullified. The currentVersionStart must be in 554 * the future to prevent changing historic data. 555 * 556 * @param coreProgramId Version Specific Id of the Core Program 557 * @param currentVersionStart Date when this Core Program becomes current. 558 * Must be in the future and be after the most current major's 559 * start date. 560 * @return status of the operation (success or failure) 561 * @throws DoesNotExistException Core Program for coreProgramId does not 562 * exist 563 * @throws InvalidParameterException invalid coreProgramId, 564 * currentVersionStart 565 * @throws MissingParameterException invalid coreProgramId 566 * @throws IllegalVersionSequencingException a CoreProgram with higher 567 * sequence number from the one provided is marked current 568 * @throws OperationFailedException unable to complete request 569 * @throws PermissionDeniedException authorization failure 570 * @throws DataValidationErrorException 571 */ 572 public StatusInfo setCurrentCoreProgramVersion(@WebParam(name = "coreProgramId") String coreProgramId, @WebParam(name = "currentVersionStart") Date currentVersionStart, 573 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, IllegalVersionSequencingException, 574 OperationFailedException, PermissionDeniedException, DataValidationErrorException; 575 576 /** 577 * Updates a Core Program 578 * 579 * @param coreProgramInfo coreProgramInfo 580 * @return updated Core Program 581 * @throws DataValidationErrorException One or more values invalid for this 582 * operation 583 * @throws DoesNotExistException Core Program not found 584 * @throws InvalidParameterException invalid Core Program 585 * @throws MissingParameterException missing Core Program 586 * @throws VersionMismatchException The action was attempted on an out of 587 * date version 588 * @throws OperationFailedException unable to complete request 589 * @throws PermissionDeniedException authorization failure 590 */ 591 public CoreProgramInfo updateCoreProgram(@WebParam(name = "coreProgramId") String coreProgramId, @WebParam(name = "coreProgramTypeKey") String coreProgramTypeKey, 592 @WebParam(name = "coreProgramInfo") CoreProgramInfo coreProgramInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, 593 InvalidParameterException, MissingParameterException, VersionMismatchException, OperationFailedException, PermissionDeniedException; 594 595 /** 596 * Deletes a Core Program 597 * 598 * @param coreProgramId identifier for coreProgramId.Maps to cluId 599 * @return status of the operation (success or failure) 600 * @throws DoesNotExistException Core Program does not exist 601 * @throws InvalidParameterException invalid coreProgramId 602 * @throws MissingParameterException invalid coreProgramId 603 * @throws OperationFailedException unable to complete request 604 * @throws PermissionDeniedException authorization failure 605 */ 606 public StatusInfo deleteCoreProgram(@WebParam(name = "coreProgramId") String coreProgramId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 607 InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 608 609 /** 610 * Retrieves a ProgramRequirement 611 * 612 * @param programRequirementId Unique Id of the ProgramRequirement. Maps to 613 * cluId 614 * @return the Program Requirement 615 * @throws DoesNotExistException Program Requirement does not exist 616 * @throws InvalidParameterException invalid Program Requirement 617 * @throws MissingParameterException missing Program Requirement 618 * @throws OperationFailedException unable to complete request 619 * @throws PermissionDeniedException authorization failure 620 */ 621 public ProgramRequirementInfo getProgramRequirement(@WebParam(name = "programRequirementId") String programRequirementId, @WebParam(name = "contextInfo") ContextInfo contextInfo) 622 throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 623 624 /** 625 * 626 * Retrieves a list of ProgramRequirements by Ids 627 * 628 * @param programRequirementIds 629 * @param contextInfo 630 * @return 631 * @throws DoesNotExistException 632 * @throws InvalidParameterException 633 * @throws MissingParameterException 634 * @throws OperationFailedException 635 * @throws PermissionDeniedException 636 */ 637 public List<ProgramRequirementInfo> getProgramRequirementsByIds(@WebParam(name = "programRequirementIds") List<String> programRequirementIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 638 InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 639 640 /** 641 * Validates a Program Requirement against its data dictionary 642 * 643 * @param validationType identifier of the extent of validation 644 * @param programRequirementInfo Program Requirement information to be 645 * tested 646 * @return results from performing the validation 647 * @throws InvalidParameterException invalid validationTypeKey, cluInfo 648 * @throws MissingParameterException missing validationTypeKey, cluInfo 649 * @throws OperationFailedException unable to complete request 650 */ 651 public List<ValidationResultInfo> validateProgramRequirement(@WebParam(name = "validationType") String validationType, 652 @WebParam(name = "programRequirementInfo") ProgramRequirementInfo programRequirementInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, 653 MissingParameterException, OperationFailedException; 654 655 /** 656 * Creates a Program Requirement 657 * 658 * @param programRequirementInfo programRequirementInfo 659 * @return the created Program Requirement 660 * @throws AlreadyExistsException The Program Requirement already exists 661 * @throws DataValidationErrorException One or more values invalid for this 662 * operation 663 * @throws InvalidParameterException invalid Program Requirement 664 * @throws MissingParameterException missing Program Requirement 665 * @throws OperationFailedException unable to complete request 666 * @throws PermissionDeniedException authorization failure 667 */ 668 public ProgramRequirementInfo createProgramRequirement(@WebParam(name = "programRequirementTypeKey") String programRequirementTypeKey, 669 @WebParam(name = "programRequirementInfo") ProgramRequirementInfo programRequirementInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, 670 DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 671 672 /** 673 * Updates a Program Requirement 674 * 675 * @param programRequirementInfo programRequirementInfo 676 * @return updated Program Requirement 677 * @throws DataValidationErrorException One or more values invalid for this 678 * operation 679 * @throws DoesNotExistException Program Requirement not found 680 * @throws InvalidParameterException invalid Program Requirement 681 * @throws MissingParameterException missing Program Requirement 682 * @throws VersionMismatchException The action was attempted on an out of 683 * date version 684 * @throws OperationFailedException unable to complete request 685 * @throws PermissionDeniedException authorization failure 686 */ 687 public ProgramRequirementInfo updateProgramRequirement(@WebParam(name = "programRequirementId") String programRequirementId, 688 @WebParam(name = "programRequirementTypeKey") String programRequirementTypeKey, @WebParam(name = "programRequirementInfo") ProgramRequirementInfo programRequirementInfo, 689 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, 690 VersionMismatchException, OperationFailedException, PermissionDeniedException; 691 692 /** 693 * Deletes a Program Requirement 694 * 695 * @param programRequirementId identifier for programRequirementId.Maps to 696 * cluId 697 * @return status of the operation (success or failure) 698 * @throws DoesNotExistException Program Requirement does not exist 699 * @throws InvalidParameterException invalid programRequirementId 700 * @throws MissingParameterException invalid programRequirementId 701 * @throws OperationFailedException unable to complete request 702 * @throws PermissionDeniedException authorization failure 703 */ 704 public StatusInfo deleteProgramRequirement(@WebParam(name = "programRequirementId") String programRequirementId, @WebParam(name = "contextInfo") ContextInfo contextInfo) 705 throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 706 707 /** 708 * Sets a specific version of the Major as current. The sequence number must 709 * be greater than the existing current Major version. This will truncate 710 * the current version's end date to the currentVersionStart param. If a 711 * Major exists which is set to become current in the future, that Major's 712 * currentVersionStart and CurrentVersionEnd will be nullified. The 713 * currentVersionStart must be in the future to prevent changing historic 714 * data. 715 * 716 * @param majorDisciplineId Version Specific Id of the Major Discipline 717 * @param currentVersionStart Date when this Major becomes current. Must be 718 * in the future and be after the most current major's start 719 * date. 720 * @return status of the operation (success or failure) 721 * @throws DoesNotExistException Major for majorVersionId does not exist 722 * @throws InvalidParameterException invalid majorVersionId, 723 * currentVersionStart 724 * @throws MissingParameterException invalid majorVersionId 725 * @throws IllegalVersionSequencingException a Major with higher sequence 726 * number from the one provided is marked current 727 * @throws OperationFailedException unable to complete request 728 * @throws PermissionDeniedException authorization failure 729 * @throws DataValidationErrorException 730 */ 731 public StatusInfo setCurrentMajorDisciplineVersion(@WebParam(name = "majorDisciplineId") String majorDisciplineId, @WebParam(name = "currentVersionStart") Date currentVersionStart, 732 @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, IllegalVersionSequencingException, 733 OperationFailedException, PermissionDeniedException, DataValidationErrorException; 734 735 /** 736 * Retrieves a MinorDiscipline 737 * 738 * @param minorDisciplineId Unique Id of the MinorDiscipline. Maps to cluId 739 * @return the created MinorDiscipline 740 * @throws DoesNotExistException MinorDiscipline does not exist 741 * @throws InvalidParameterException invalid MinorDiscipline 742 * @throws MissingParameterException missing MinorDiscipline 743 * @throws OperationFailedException unable to complete request 744 * @throws PermissionDeniedException authorization failure 745 */ 746 public MinorDisciplineInfo getMinorDiscipline(@WebParam(name = "minorDisciplineId") String minorDisciplineId, @WebParam(name = "contextInfo") ContextInfo contextInfo) 747 throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 748 749 /** 750 * Retrieves the list of Minor Discipline Program a given Credential Program 751 * Type. 752 * 753 * @param programType Type of Credential Program 754 * @return List of Minor Disciplines for the given Credential Program Type 755 * @throws DoesNotExistException program type not found 756 * @throws InvalidParameterException invalid program type 757 * @throws MissingParameterException program type is not specified 758 * @throws OperationFailedException unable to complete request 759 */ 760 public List<String> getMinorsByCredentialProgramType(@WebParam(name = "programType") String programType, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 761 InvalidParameterException, MissingParameterException, OperationFailedException; 762 763 /** 764 * Validates a Minor discipline against its data dictionary 765 * 766 * @param validationType identifier of the extent of validation 767 * @param minorDisciplineInfo Minor discipline information to be tested 768 * @return results from performing the validation 769 * @throws InvalidParameterException invalid validationTypeKey, cluInfo 770 * @throws MissingParameterException missing validationTypeKey, cluInfo 771 * @throws OperationFailedException unable to complete request 772 */ 773 public List<ValidationResultInfo> validateMinorDiscipline(@WebParam(name = "validationType") String validationType, 774 @WebParam(name = "minorDisciplineInfo") MinorDisciplineInfo minorDisciplineInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, 775 MissingParameterException, OperationFailedException; 776 777 /** 778 * Creates a Minor Discipline Program 779 * 780 * @param minorDisciplineInfo minorDisciplineInfo 781 * @return the created Minor Discipline 782 * @throws AlreadyExistsException The Minor already exists 783 * @throws DataValidationErrorException One or more values invalid for this 784 * operation 785 * @throws InvalidParameterException invalid Minor 786 * @throws MissingParameterException missing Minor 787 * @throws OperationFailedException unable to complete request 788 * @throws PermissionDeniedException authorization failure 789 */ 790 public MinorDisciplineInfo createMinorDiscipline(@WebParam(name = "minorDisciplineTypeKey") String minorDisciplineTypeKey, 791 @WebParam(name = "minorDisciplineInfo") MinorDisciplineInfo minorDisciplineInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, 792 DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 793 794 /** 795 * Updates a Minor Discipline 796 * 797 * @param minorDisciplineInfo minorDisciplineInfo 798 * @return updated Minor Discipline 799 * @throws DataValidationErrorException One or more values invalid for this 800 * operation 801 * @throws DoesNotExistException Minor not found 802 * @throws InvalidParameterException invalid Minor 803 * @throws MissingParameterException missing Minor 804 * @throws VersionMismatchException The action was attempted on an out of 805 * date version 806 * @throws OperationFailedException unable to complete request 807 * @throws PermissionDeniedException authorization failure 808 */ 809 public MinorDisciplineInfo updateMinorDiscipline(@WebParam(name = "minorDisciplineId") String minorDisciplineId, @WebParam(name = "minorDisciplineTypeKey") String minorDisciplineTypeKey, 810 @WebParam(name = "minorDisciplineInfo") MinorDisciplineInfo minorDisciplineInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, 811 DoesNotExistException, InvalidParameterException, MissingParameterException, VersionMismatchException, OperationFailedException, PermissionDeniedException; 812 813 /** 814 * Deletes a Minor Discipline 815 * 816 * @param minorDisciplineId identifier for minorDisciplineId.Maps to cluId 817 * @return status of the operation (success or failure) 818 * @throws DoesNotExistException Minor does not exist 819 * @throws InvalidParameterException invalid minorDisciplineId 820 * @throws MissingParameterException invalid minorDisciplineId 821 * @throws OperationFailedException unable to complete request 822 * @throws PermissionDeniedException authorization failure 823 */ 824 public StatusInfo deleteMinorDiscipline(@WebParam(name = "minorDisciplineId") String minorDisciplineId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, 825 InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 826 827 @Deprecated 828 /** 829 * 830 * This method ... 831 * 832 * @param majorDisciplineId 833 * @param contextInfo 834 * @return 835 * @throws DoesNotExistException 836 * @throws InvalidParameterException 837 * @throws MissingParameterException 838 * @throws OperationFailedException 839 */ 840 public List<ProgramVariationInfo> getVariationsByMajorDisciplineId(@WebParam(name="majorDisciplineId") String majorDisciplineId, @WebParam(name="contextInfo") ContextInfo contextInfo) 841 throws DoesNotExistException, InvalidParameterException, 842 MissingParameterException, OperationFailedException; 843 844 }