Clover Coverage Report - Kuali Student 1.2-M4-SNAPSHOT (Aggregated)
Coverage timestamp: Wed Jul 20 2011 11:14:35 EDT
0   587   0   -
0   73   -   0
0     -  
1    
 
  ProgramService       Line # 58 0 - 0 0 - -1.0
 
No Tests
 
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    }