1 /* 2 * Copyright 2009 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 1.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl1.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.kuali.student.lum.program.service; 17 18 import java.util.Date; 19 import java.util.List; 20 21 import javax.jws.WebParam; 22 import javax.jws.WebService; 23 import javax.jws.soap.SOAPBinding; 24 25 import org.kuali.student.common.dictionary.service.DictionaryService; 26 import org.kuali.student.common.dto.StatusInfo; 27 import org.kuali.student.common.exceptions.AlreadyExistsException; 28 import org.kuali.student.common.exceptions.DataValidationErrorException; 29 import org.kuali.student.common.exceptions.DoesNotExistException; 30 import org.kuali.student.common.exceptions.IllegalVersionSequencingException; 31 import org.kuali.student.common.exceptions.InvalidParameterException; 32 import org.kuali.student.common.exceptions.MissingParameterException; 33 import org.kuali.student.common.exceptions.OperationFailedException; 34 import org.kuali.student.common.exceptions.PermissionDeniedException; 35 import org.kuali.student.common.exceptions.VersionMismatchException; 36 import org.kuali.student.common.search.service.SearchService; 37 import org.kuali.student.common.validation.dto.ValidationResultInfo; 38 import org.kuali.student.common.versionmanagement.service.VersionManagementService; 39 import org.kuali.student.lum.lu.dto.LuTypeInfo; 40 import org.kuali.student.lum.program.dto.CoreProgramInfo; 41 import org.kuali.student.lum.program.dto.CredentialProgramInfo; 42 import org.kuali.student.lum.program.dto.HonorsProgramInfo; 43 import org.kuali.student.lum.program.dto.MajorDisciplineInfo; 44 import org.kuali.student.lum.program.dto.MinorDisciplineInfo; 45 import org.kuali.student.lum.program.dto.ProgramRequirementInfo; 46 import org.kuali.student.lum.program.dto.ProgramVariationInfo; 47 48 /** 49 * 50 * @Author KSContractMojo 51 * @Author Li Pan 52 * @Since Wed Jun 30 14:55:41 PDT 2010 53 * @See <a href="https://test.kuali.org/confluence/display/KULSTU/Program+Service">ProgramService</> 54 * 55 */ 56 @WebService(name = "ProgramService", targetNamespace = ProgramServiceConstants.PROGRAM_NAMESPACE) // TODO CHECK THESE VALUES 57 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) 58 public interface ProgramService extends DictionaryService, SearchService, VersionManagementService{ 59 /** 60 * Retrieves the list of credential program types 61 * @return list of credential program type information 62 * @throws OperationFailedException unable to complete request 63 */ 64 public List<LuTypeInfo> getCredentialProgramTypes() throws OperationFailedException; 65 66 /** 67 * Retrieves information about a credential program type 68 * @param credentialProgramTypeKey Key of the Credential Program Type 69 * @return information about a Credential Program Type 70 * @throws DoesNotExistException credentialProgramType not found 71 * @throws InvalidParameterException invalid credentialProgramType 72 * @throws MissingParameterException missing credentialProgramType 73 * @throws OperationFailedException unable to complete request 74 */ 75 public LuTypeInfo getCredentialProgramType(@WebParam(name="credentialProgramTypeKey")String credentialProgramTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 76 77 /** 78 * Retrieves a CredentialProgram 79 * @param credentialProgramId Unique Id of the CredentialProgram. Maps to cluId 80 * @return the created Credential Program 81 * @throws DoesNotExistException CredentialProgram does not exist 82 * @throws InvalidParameterException invalid Credential Program 83 * @throws MissingParameterException missing Credential Program 84 * @throws OperationFailedException unable to complete request 85 * @throws PermissionDeniedException authorization failure 86 */ 87 public CredentialProgramInfo getCredentialProgram(@WebParam(name="credentialProgramId")String credentialProgramId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 88 89 /** 90 * Retrieves a MajorDiscipline 91 * @param majorDisciplineId Unique Id of the MajorDiscipline. Maps to cluId 92 * @return the created MajorDiscipline 93 * @throws DoesNotExistException MajorDiscipline does not exist 94 * @throws InvalidParameterException invalid MajorDiscipline 95 * @throws MissingParameterException missing MajorDiscipline 96 * @throws OperationFailedException unable to complete request 97 * @throws PermissionDeniedException authorization failure 98 */ 99 public MajorDisciplineInfo getMajorDiscipline(@WebParam(name="majorDisciplineId")String majorDisciplineId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 100 101 /** 102 * Retrieves the list of Major Discipline identifiers a given Credential Program Type. 103 * @param programType Type of Credential Program 104 * @return List of Major Discipline identifiers for the given Credential Program Type 105 * @throws DoesNotExistException program type not found 106 * @throws InvalidParameterException invalid program type 107 * @throws MissingParameterException program type is not specified 108 * @throws OperationFailedException unable to complete request 109 */ 110 public List<String> getMajorIdsByCredentialProgramType(@WebParam(name="programType")String programType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 111 112 /** 113 * Retrieves a list of program variations for a particular major 114 * @param majorDisciplineId Major Discipline Identifier 115 * @return list of program variations associated with the specified Major 116 * @throws DoesNotExistException Major not found 117 * @throws InvalidParameterException invalid majorDisciplineId 118 * @throws MissingParameterException majorDisciplineId not specified 119 * @throws OperationFailedException unable to complete request 120 */ 121 public List<ProgramVariationInfo> getVariationsByMajorDisciplineId(@WebParam(name="majorDisciplineId")String majorDisciplineId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 122 123 /** 124 * Retrieves a MinorDiscipline 125 * @param minorDisciplineId Unique Id of the MinorDiscipline. Maps to cluId 126 * @return the created MinorDiscipline 127 * @throws DoesNotExistException MinorDiscipline does not exist 128 * @throws InvalidParameterException invalid MinorDiscipline 129 * @throws MissingParameterException missing MinorDiscipline 130 * @throws OperationFailedException unable to complete request 131 * @throws PermissionDeniedException authorization failure 132 */ 133 public MinorDisciplineInfo getMinorDiscipline(@WebParam(name="minorDisciplineId")String minorDisciplineId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 134 135 /** 136 * Retrieves the list of Minor Discipline Program a given Credential Program Type. 137 * @param programType Type of Credential Program 138 * @return List of Minor Disciplines for the given Credential Program Type 139 * @throws DoesNotExistException program type not found 140 * @throws InvalidParameterException invalid program type 141 * @throws MissingParameterException program type is not specified 142 * @throws OperationFailedException unable to complete request 143 */ 144 public List<String> getMinorsByCredentialProgramType(@WebParam(name="programType")String programType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 145 146 /** 147 * Retrieves a HonorsProgram 148 * @param honorsProgramId Unique Id of the HonorsProgram. Maps to cluId 149 * @return the created Honors Program 150 * @throws DoesNotExistException HonorsProgram does not exist 151 * @throws InvalidParameterException invalid Honors Program 152 * @throws MissingParameterException missing Honors Program 153 * @throws OperationFailedException unable to complete request 154 * @throws PermissionDeniedException authorization failure 155 */ 156 public HonorsProgramInfo getHonorsProgram(@WebParam(name="honorsProgramId")String honorsProgramId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 157 158 /** 159 * Retrieves the list of Honors Program Program a given Credential Program Type. 160 * @param programType Type of Credential Program 161 * @return List of Honors Programs for the given Credential Program Type 162 * @throws DoesNotExistException program type not found 163 * @throws InvalidParameterException invalid program type 164 * @throws MissingParameterException program type is not specified 165 * @throws OperationFailedException unable to complete request 166 */ 167 public List<String> getHonorsByCredentialProgramType(@WebParam(name="programType")String programType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; 168 169 /** 170 * Retrieves a Core Program 171 * @param coreProgramId Unique Id of the Core Program. Maps to cluId 172 * @return the Core Program 173 * @throws DoesNotExistException Program Requirement does not exist 174 * @throws InvalidParameterException invalid Program Requirement 175 * @throws MissingParameterException missing Program Requirement 176 * @throws OperationFailedException unable to complete request 177 * @throws PermissionDeniedException authorization failure 178 */ 179 public CoreProgramInfo getCoreProgram(@WebParam(name="coreProgramId")String coreProgramId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 180 181 182 /** 183 * Retrieves a ProgramRequirement 184 * @param programRequirementId Unique Id of the ProgramRequirement. Maps to cluId 185 * @param nlUsageTypeKey Natural language usage type key (context) 186 * @param language Translation language e.g en, es, gr 187 * @return the Program Requirement 188 * @throws DoesNotExistException Program Requirement does not exist 189 * @throws InvalidParameterException invalid Program Requirement 190 * @throws MissingParameterException missing Program Requirement 191 * @throws OperationFailedException unable to complete request 192 * @throws PermissionDeniedException authorization failure 193 */ 194 public ProgramRequirementInfo getProgramRequirement(@WebParam(name="programRequirementId")String programRequirementId, @WebParam(name="nlUsageTypeKey")String nlUsageTypeKey, @WebParam(name="language")String language) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 195 196 /** 197 * Creates a Credential Program 198 * @param credentialProgramInfo credentialProgramInfo 199 * @return the created Credential Program 200 * @throws AlreadyExistsException The Credential Program already exists 201 * @throws DataValidationErrorException One or more values invalid for this operation 202 * @throws InvalidParameterException invalid Credential Program 203 * @throws MissingParameterException missing Credential Program 204 * @throws OperationFailedException unable to complete request 205 * @throws PermissionDeniedException authorization failure 206 */ 207 public CredentialProgramInfo createCredentialProgram(@WebParam(name="credentialProgramInfo")CredentialProgramInfo credentialProgramInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 208 209 /** 210 * Creates a new Credential Program version based on the current Credential Program 211 * @param credentialProgramId identifier for the Credential Program to be versioned 212 * @param versionComment comment for the current version 213 * @return the new versioned Credential Program information 214 * @throws DoesNotExistException Credential Program does not exist 215 * @throws InvalidParameterException invalid credentialProgramId 216 * @throws MissingParameterException invalid credentialProgramId 217 * @throws OperationFailedException unable to complete request 218 * @throws PermissionDeniedException authorization failure 219 * @throws VersionMismatchException The action was attempted on an out of date version 220 * @throws DataValidationErrorException 221 */ 222 public CredentialProgramInfo createNewCredentialProgramVersion(@WebParam(name="credentialProgramId")String credentialProgramId, @WebParam(name="versionComment")String versionComment) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException, DataValidationErrorException; 223 224 /** 225 * Sets a specific version of the Credential Program as current. The sequence number must be greater than the existing current Credential Program version. This will truncate the current version's end date to the currentVersionStart param. If a Major exists which is set to become current in the future, that Major's currentVersionStart and CurrentVersionEnd will be nullified. The currentVersionStart must be in the future to prevent changing historic data. 226 * @param coreProgramId Version Specific Id of the Credential Program 227 * @param currentVersionStart Date when this Credential Program becomes current. Must be in the future and be after the most current Credential Program's start date. 228 * @return status of the operation (success or failure) 229 * @throws DoesNotExistException Credential Program for credentialProgramId does not exist 230 * @throws InvalidParameterException invalid credentialProgramId, currentVersionStart 231 * @throws MissingParameterException invalid credentialProgramId 232 * @throws IllegalVersionSequencingException a Credential Program with higher sequence number from the one provided is marked current 233 * @throws OperationFailedException unable to complete request 234 * @throws PermissionDeniedException authorization failure 235 */ 236 public StatusInfo setCurrentCredentialProgramVersion(@WebParam(name="credentialProgramId")String credentialProgramId, @WebParam(name="currentVersionStart")Date currentVersionStart) throws DoesNotExistException, InvalidParameterException, MissingParameterException, IllegalVersionSequencingException, OperationFailedException, PermissionDeniedException; 237 238 /** 239 * Updates a Credential Program 240 * @param credentialProgramInfo credentialProgramInfo 241 * @return updated Credential Program 242 * @throws DataValidationErrorException One or more values invalid for this operation 243 * @throws DoesNotExistException Credential Program not found 244 * @throws InvalidParameterException invalid Credential Program 245 * @throws MissingParameterException missing Credential Program 246 * @throws VersionMismatchException The action was attempted on an out of date version 247 * @throws OperationFailedException unable to complete request 248 * @throws PermissionDeniedException authorization failure 249 */ 250 public CredentialProgramInfo updateCredentialProgram(@WebParam(name="credentialProgramInfo")CredentialProgramInfo credentialProgramInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, VersionMismatchException, OperationFailedException, PermissionDeniedException; 251 252 /** 253 * Deletes a Credential Program 254 * @param credentialProgramId identifier for credentialProgramId.Maps to cluId 255 * @return status of the operation (success or failure) 256 * @throws DoesNotExistException Credential Program does not exist 257 * @throws InvalidParameterException invalid credentialProgramId 258 * @throws MissingParameterException invalid credentialProgramId 259 * @throws OperationFailedException unable to complete request 260 * @throws PermissionDeniedException authorization failure 261 */ 262 public StatusInfo deleteCredentialProgram(@WebParam(name="credentialProgramId")String credentialProgramId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 263 264 /** 265 * Validates a Credential Program against its data dictionary 266 * @param validationType identifier of the extent of validation 267 * @param credentialProgramInfo Credential Program information to be tested 268 * @return results from performing the validation 269 * @throws InvalidParameterException invalid validationTypeKey, cluInfo 270 * @throws MissingParameterException missing validationTypeKey, cluInfo 271 * @throws OperationFailedException unable to complete request 272 */ 273 public List<ValidationResultInfo> validateCredentialProgram(@WebParam(name="validationType")String validationType, @WebParam(name="credentialProgramInfo")CredentialProgramInfo credentialProgramInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException; 274 275 /** 276 * Creates a Major Discipline Program 277 * @param majorDisciplineInfo majorDisciplineInfo 278 * @return the created Major Discipline 279 * @throws AlreadyExistsException The Major already exists 280 * @throws DataValidationErrorException One or more values invalid for this operation 281 * @throws InvalidParameterException invalid Major 282 * @throws MissingParameterException missing Major 283 * @throws OperationFailedException unable to complete request 284 * @throws PermissionDeniedException authorization failure 285 */ 286 public MajorDisciplineInfo createMajorDiscipline(@WebParam(name="majorDisciplineInfo")MajorDisciplineInfo majorDisciplineInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 287 288 /** 289 * Updates a Major Discipline 290 * @param majorDisciplineInfo majorDisciplineInfo 291 * @return updated Major Discipline 292 * @throws DataValidationErrorException One or more values invalid for this operation 293 * @throws DoesNotExistException Major not found 294 * @throws InvalidParameterException invalid Major 295 * @throws MissingParameterException missing Major 296 * @throws VersionMismatchException The action was attempted on an out of date version 297 * @throws OperationFailedException unable to complete request 298 * @throws PermissionDeniedException authorization failure 299 */ 300 public MajorDisciplineInfo updateMajorDiscipline(@WebParam(name="majorDisciplineInfo")MajorDisciplineInfo majorDisciplineInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, VersionMismatchException, OperationFailedException, PermissionDeniedException; 301 302 /** 303 * Deletes a Major Discipline 304 * @param majorDisciplineId identifier for majorDisciplineId.Maps to cluId 305 * @return status of the operation (success or failure) 306 * @throws DoesNotExistException Major does not exist 307 * @throws InvalidParameterException invalid majorDisciplineId 308 * @throws MissingParameterException invalid majorDisciplineId 309 * @throws OperationFailedException unable to complete request 310 * @throws PermissionDeniedException authorization failure 311 */ 312 public StatusInfo deleteMajorDiscipline(@WebParam(name="majorDisciplineId")String majorDisciplineId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 313 314 /** 315 * Validates a Major discipline against its data dictionary 316 * @param validationType identifier of the extent of validation 317 * @param majorDisciplineInfo Major discipline information to be tested 318 * @return results from performing the validation 319 * @throws InvalidParameterException invalid validationTypeKey, cluInfo 320 * @throws MissingParameterException missing validationTypeKey, cluInfo 321 * @throws OperationFailedException unable to complete request 322 */ 323 public List<ValidationResultInfo> validateMajorDiscipline(@WebParam(name="validationType")String validationType, @WebParam(name="majorDisciplineInfo")MajorDisciplineInfo majorDisciplineInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException; 324 325 326 /** 327 * Creates a new Major Discipline version based on the current Major 328 * @param majorDisciplineId identifier for the Major Discipline to be versioned 329 * @param versionComment comment for the current version 330 * @return the new versioned Major Discipline information 331 * @throws DoesNotExistException Major does not exist 332 * @throws InvalidParameterException invalid majorDisciplineId 333 * @throws MissingParameterException invalid majorDisciplineId 334 * @throws OperationFailedException unable to complete request 335 * @throws PermissionDeniedException authorization failure 336 * @throws VersionMismatchException The action was attempted on an out of date version 337 * @throws DataValidationErrorException 338 */ 339 public MajorDisciplineInfo createNewMajorDisciplineVersion(@WebParam(name="majorDisciplineId")String majorDisciplineId, @WebParam(name="versionComment")String versionComment) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException, DataValidationErrorException; 340 341 /** 342 * Sets a specific version of the Major as current. The sequence number must be greater than the existing current Major version. This will truncate the current version's end date to the currentVersionStart param. If a Major exists which is set to become current in the future, that Major's currentVersionStart and CurrentVersionEnd will be nullified. The currentVersionStart must be in the future to prevent changing historic data. 343 * @param majorDisciplineId Version Specific Id of the Major Discipline 344 * @param currentVersionStart Date when this Major becomes current. Must be in the future and be after the most current major's start date. 345 * @return status of the operation (success or failure) 346 * @throws DoesNotExistException Major for majorVersionId does not exist 347 * @throws InvalidParameterException invalid majorVersionId, currentVersionStart 348 * @throws MissingParameterException invalid majorVersionId 349 * @throws IllegalVersionSequencingException a Major with higher sequence number from the one provided is marked current 350 * @throws OperationFailedException unable to complete request 351 * @throws PermissionDeniedException authorization failure 352 */ 353 public StatusInfo setCurrentMajorDisciplineVersion(@WebParam(name="majorDisciplineId")String majorDisciplineId, @WebParam(name="currentVersionStart")Date currentVersionStart) throws DoesNotExistException, InvalidParameterException, MissingParameterException, IllegalVersionSequencingException, OperationFailedException, PermissionDeniedException; 354 355 /** 356 * Creates a Minor Discipline Program 357 * @param minorDisciplineInfo minorDisciplineInfo 358 * @return the created Minor Discipline 359 * @throws AlreadyExistsException The Minor already exists 360 * @throws DataValidationErrorException One or more values invalid for this operation 361 * @throws InvalidParameterException invalid Minor 362 * @throws MissingParameterException missing Minor 363 * @throws OperationFailedException unable to complete request 364 * @throws PermissionDeniedException authorization failure 365 */ 366 public MinorDisciplineInfo createMinorDiscipline(@WebParam(name="minorDisciplineInfo")MinorDisciplineInfo minorDisciplineInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 367 368 /** 369 * Updates a Minor Discipline 370 * @param minorDisciplineInfo minorDisciplineInfo 371 * @return updated Minor Discipline 372 * @throws DataValidationErrorException One or more values invalid for this operation 373 * @throws DoesNotExistException Minor not found 374 * @throws InvalidParameterException invalid Minor 375 * @throws MissingParameterException missing Minor 376 * @throws VersionMismatchException The action was attempted on an out of date version 377 * @throws OperationFailedException unable to complete request 378 * @throws PermissionDeniedException authorization failure 379 */ 380 public MinorDisciplineInfo updateMinorDiscipline(@WebParam(name="minorDisciplineInfo")MinorDisciplineInfo minorDisciplineInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, VersionMismatchException, OperationFailedException, PermissionDeniedException; 381 382 /** 383 * Deletes a Minor Discipline 384 * @param minorDisciplineId identifier for minorDisciplineId.Maps to cluId 385 * @return status of the operation (success or failure) 386 * @throws DoesNotExistException Minor does not exist 387 * @throws InvalidParameterException invalid minorDisciplineId 388 * @throws MissingParameterException invalid minorDisciplineId 389 * @throws OperationFailedException unable to complete request 390 * @throws PermissionDeniedException authorization failure 391 */ 392 public StatusInfo deleteMinorDiscipline(@WebParam(name="minorDisciplineId")String minorDisciplineId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 393 394 /** 395 * Validates a Minor discipline against its data dictionary 396 * @param validationType identifier of the extent of validation 397 * @param minorDisciplineInfo Minor discipline information to be tested 398 * @return results from performing the validation 399 * @throws InvalidParameterException invalid validationTypeKey, cluInfo 400 * @throws MissingParameterException missing validationTypeKey, cluInfo 401 * @throws OperationFailedException unable to complete request 402 */ 403 public List<ValidationResultInfo> validateMinorDiscipline(@WebParam(name="validationType")String validationType, @WebParam(name="minorDisciplineInfo")MinorDisciplineInfo minorDisciplineInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException; 404 405 /** 406 * Creates a Honors Program 407 * @param honorsProgramInfo honorsProgramInfo 408 * @return the created Honors Program 409 * @throws AlreadyExistsException The Honors Program already exists 410 * @throws DataValidationErrorException One or more values invalid for this operation 411 * @throws InvalidParameterException invalid Honors Program 412 * @throws MissingParameterException missing Honors Program 413 * @throws OperationFailedException unable to complete request 414 * @throws PermissionDeniedException authorization failure 415 */ 416 public HonorsProgramInfo createHonorsProgram(@WebParam(name="honorsProgramInfo")HonorsProgramInfo honorsProgramInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 417 418 /** 419 * Updates a Honors Program 420 * @param honorsProgramInfo honorsProgramInfo 421 * @return updated Honors Program 422 * @throws DataValidationErrorException One or more values invalid for this operation 423 * @throws DoesNotExistException Honors Program not found 424 * @throws InvalidParameterException invalid Honors Program 425 * @throws MissingParameterException missing Honors Program 426 * @throws VersionMismatchException The action was attempted on an out of date version 427 * @throws OperationFailedException unable to complete request 428 * @throws PermissionDeniedException authorization failure 429 */ 430 public HonorsProgramInfo updateHonorsProgram(@WebParam(name="honorsProgramInfo")HonorsProgramInfo honorsProgramInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, VersionMismatchException, OperationFailedException, PermissionDeniedException; 431 432 /** 433 * Deletes a Honors Program 434 * @param honorsProgramId identifier for honorsProgramId.Maps to cluId 435 * @return status of the operation (success or failure) 436 * @throws DoesNotExistException Honors Program does not exist 437 * @throws InvalidParameterException invalid honorsProgramId 438 * @throws MissingParameterException invalid honorsProgramId 439 * @throws OperationFailedException unable to complete request 440 * @throws PermissionDeniedException authorization failure 441 */ 442 public StatusInfo deleteHonorsProgram(@WebParam(name="honorsProgramId")String honorsProgramId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 443 444 /** 445 * Validates a Honors Program against its data dictionary 446 * @param validationType identifier of the extent of validation 447 * @param honorsProgramInfo Honors Program information to be tested 448 * @return results from performing the validation 449 * @throws InvalidParameterException invalid validationTypeKey, cluInfo 450 * @throws MissingParameterException missing validationTypeKey, cluInfo 451 * @throws OperationFailedException unable to complete request 452 */ 453 public List<ValidationResultInfo> validateHonorsProgram(@WebParam(name="validationType")String validationType, @WebParam(name="honorsProgramInfo")HonorsProgramInfo honorsProgramInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException; 454 455 /** 456 * Creates a Core Program 457 * @param coreProgramInfo coreProgramInfo 458 * @return the created Core Program 459 * @throws AlreadyExistsException The Core Program already exists 460 * @throws DataValidationErrorException One or more values invalid for this operation 461 * @throws InvalidParameterException invalid Core Program 462 * @throws MissingParameterException missing Core Program 463 * @throws OperationFailedException unable to complete request 464 * @throws PermissionDeniedException authorization failure 465 */ 466 public CoreProgramInfo createCoreProgram(@WebParam(name="coreProgramInfo")CoreProgramInfo coreProgramInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 467 468 /** 469 * Creates a new Core Program version based on the current Core Program 470 * @param coreProgramId identifier for the Core Program to be versioned 471 * @param versionComment comment for the current version 472 * @return the new versioned Core Program information 473 * @throws DoesNotExistException Core Program does not exist 474 * @throws InvalidParameterException invalid coreProgramId 475 * @throws MissingParameterException invalid coreProgramId 476 * @throws OperationFailedException unable to complete request 477 * @throws PermissionDeniedException authorization failure 478 * @throws VersionMismatchException The action was attempted on an out of date version 479 * @throws DataValidationErrorException 480 */ 481 public CoreProgramInfo createNewCoreProgramVersion(@WebParam(name="coreProgramId")String coreProgramId, @WebParam(name="versionComment")String versionComment) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException, DataValidationErrorException; 482 483 484 /** 485 * Sets a specific version of the Core Program as current. The sequence number must be greater than the existing current Core Program version. This will truncate the current version's end date to the currentVersionStart param. If a Major exists which is set to become current in the future, that Major's currentVersionStart and CurrentVersionEnd will be nullified. The currentVersionStart must be in the future to prevent changing historic data. 486 * @param coreProgramId Version Specific Id of the Core Program 487 * @param currentVersionStart Date when this Core Program becomes current. Must be in the future and be after the most current major's start date. 488 * @return status of the operation (success or failure) 489 * @throws DoesNotExistException Core Program for coreProgramId does not exist 490 * @throws InvalidParameterException invalid coreProgramId, currentVersionStart 491 * @throws MissingParameterException invalid coreProgramId 492 * @throws IllegalVersionSequencingException a CoreProgram with higher sequence number from the one provided is marked current 493 * @throws OperationFailedException unable to complete request 494 * @throws PermissionDeniedException authorization failure 495 */ 496 public StatusInfo setCurrentCoreProgramVersion(@WebParam(name="coreProgramId")String coreProgramId, @WebParam(name="currentVersionStart")Date currentVersionStart) throws DoesNotExistException, InvalidParameterException, MissingParameterException, IllegalVersionSequencingException, OperationFailedException, PermissionDeniedException; 497 498 /** 499 * Updates a Core Program 500 * @param coreProgramInfo coreProgramInfo 501 * @return updated Core Program 502 * @throws DataValidationErrorException One or more values invalid for this operation 503 * @throws DoesNotExistException Core Program not found 504 * @throws InvalidParameterException invalid Core Program 505 * @throws MissingParameterException missing Core Program 506 * @throws VersionMismatchException The action was attempted on an out of date version 507 * @throws OperationFailedException unable to complete request 508 * @throws PermissionDeniedException authorization failure 509 */ 510 public CoreProgramInfo updateCoreProgram(@WebParam(name="coreProgramInfo")CoreProgramInfo coreProgramInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, VersionMismatchException, OperationFailedException, PermissionDeniedException; 511 512 /** 513 * Deletes a Core Program 514 * @param coreProgramId identifier for coreProgramId.Maps to cluId 515 * @return status of the operation (success or failure) 516 * @throws DoesNotExistException Core Program does not exist 517 * @throws InvalidParameterException invalid coreProgramId 518 * @throws MissingParameterException invalid coreProgramId 519 * @throws OperationFailedException unable to complete request 520 * @throws PermissionDeniedException authorization failure 521 */ 522 public StatusInfo deleteCoreProgram(@WebParam(name="coreProgramId")String coreProgramId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 523 524 /** 525 * Validates a Core Program against its data dictionary 526 * @param validationType identifier of the extent of validation 527 * @param coreProgramInfo Core Program information to be tested 528 * @return results from performing the validation 529 * @throws InvalidParameterException invalid validationTypeKey, cluInfo 530 * @throws MissingParameterException missing validationTypeKey, cluInfo 531 * @throws OperationFailedException unable to complete request 532 */ 533 public List<ValidationResultInfo> validateCoreProgram(@WebParam(name="validationType")String validationType, @WebParam(name="coreProgramInfo")CoreProgramInfo coreProgramInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException; 534 535 536 /** 537 * Creates a Program Requirement 538 * @param programRequirementInfo programRequirementInfo 539 * @return the created Program Requirement 540 * @throws AlreadyExistsException The Program Requirement already exists 541 * @throws DataValidationErrorException One or more values invalid for this operation 542 * @throws InvalidParameterException invalid Program Requirement 543 * @throws MissingParameterException missing Program Requirement 544 * @throws OperationFailedException unable to complete request 545 * @throws PermissionDeniedException authorization failure 546 */ 547 public ProgramRequirementInfo createProgramRequirement(@WebParam(name="programRequirementInfo")ProgramRequirementInfo programRequirementInfo) throws AlreadyExistsException, DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 548 549 /** 550 * Updates a Program Requirement 551 * @param programRequirementInfo programRequirementInfo 552 * @return updated Program Requirement 553 * @throws DataValidationErrorException One or more values invalid for this operation 554 * @throws DoesNotExistException Program Requirement not found 555 * @throws InvalidParameterException invalid Program Requirement 556 * @throws MissingParameterException missing Program Requirement 557 * @throws VersionMismatchException The action was attempted on an out of date version 558 * @throws OperationFailedException unable to complete request 559 * @throws PermissionDeniedException authorization failure 560 */ 561 public ProgramRequirementInfo updateProgramRequirement(@WebParam(name="programRequirementInfo")ProgramRequirementInfo programRequirementInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, VersionMismatchException, OperationFailedException, PermissionDeniedException; 562 563 /** 564 * Deletes a Program Requirement 565 * @param programRequirementId identifier for programRequirementId.Maps to cluId 566 * @return status of the operation (success or failure) 567 * @throws DoesNotExistException Program Requirement does not exist 568 * @throws InvalidParameterException invalid programRequirementId 569 * @throws MissingParameterException invalid programRequirementId 570 * @throws OperationFailedException unable to complete request 571 * @throws PermissionDeniedException authorization failure 572 */ 573 public StatusInfo deleteProgramRequirement(@WebParam(name="programRequirementId")String programRequirementId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 574 575 /** 576 * Validates a Program Requirement against its data dictionary 577 * @param validationType identifier of the extent of validation 578 * @param programRequirementInfo Program Requirement information to be tested 579 * @return results from performing the validation 580 * @throws InvalidParameterException invalid validationTypeKey, cluInfo 581 * @throws MissingParameterException missing validationTypeKey, cluInfo 582 * @throws OperationFailedException unable to complete request 583 */ 584 public List<ValidationResultInfo> validateProgramRequirement(@WebParam(name="validationType")String validationType, @WebParam(name="programRequirementInfo")ProgramRequirementInfo programRequirementInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException; 585 586 587 }