Coverage Report - org.kuali.student.lum.program.service.ProgramService
 
Classes in this File Line Coverage Branch Coverage Complexity
ProgramService
N/A
N/A
1
 
 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  
 }