001 /*
002 * Copyright 2009 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 1.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl1.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.student.lum.program.service;
017
018 import java.util.Date;
019 import java.util.List;
020
021 import javax.jws.WebParam;
022 import javax.jws.WebService;
023 import javax.jws.soap.SOAPBinding;
024
025 import org.kuali.student.common.dictionary.service.DictionaryService;
026 import org.kuali.student.common.dto.StatusInfo;
027 import org.kuali.student.common.exceptions.AlreadyExistsException;
028 import org.kuali.student.common.exceptions.DataValidationErrorException;
029 import org.kuali.student.common.exceptions.DoesNotExistException;
030 import org.kuali.student.common.exceptions.IllegalVersionSequencingException;
031 import org.kuali.student.common.exceptions.InvalidParameterException;
032 import org.kuali.student.common.exceptions.MissingParameterException;
033 import org.kuali.student.common.exceptions.OperationFailedException;
034 import org.kuali.student.common.exceptions.PermissionDeniedException;
035 import org.kuali.student.common.exceptions.VersionMismatchException;
036 import org.kuali.student.common.search.service.SearchService;
037 import org.kuali.student.common.validation.dto.ValidationResultInfo;
038 import org.kuali.student.common.versionmanagement.service.VersionManagementService;
039 import org.kuali.student.lum.lu.dto.LuTypeInfo;
040 import org.kuali.student.lum.program.dto.CoreProgramInfo;
041 import org.kuali.student.lum.program.dto.CredentialProgramInfo;
042 import org.kuali.student.lum.program.dto.HonorsProgramInfo;
043 import org.kuali.student.lum.program.dto.MajorDisciplineInfo;
044 import org.kuali.student.lum.program.dto.MinorDisciplineInfo;
045 import org.kuali.student.lum.program.dto.ProgramRequirementInfo;
046 import org.kuali.student.lum.program.dto.ProgramVariationInfo;
047
048 /**
049 *
050 * @Author KSContractMojo
051 * @Author Li Pan
052 * @Since Wed Jun 30 14:55:41 PDT 2010
053 * @See <a href="https://test.kuali.org/confluence/display/KULSTU/Program+Service">ProgramService</>
054 *
055 */
056 @WebService(name = "ProgramService", targetNamespace = ProgramServiceConstants.PROGRAM_NAMESPACE) // TODO CHECK THESE VALUES
057 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
058 public interface ProgramService extends DictionaryService, SearchService, VersionManagementService{
059 /**
060 * Retrieves the list of credential program types
061 * @return list of credential program type information
062 * @throws OperationFailedException unable to complete request
063 */
064 public List<LuTypeInfo> getCredentialProgramTypes() throws OperationFailedException;
065
066 /**
067 * Retrieves information about a credential program type
068 * @param credentialProgramTypeKey Key of the Credential Program Type
069 * @return information about a Credential Program Type
070 * @throws DoesNotExistException credentialProgramType not found
071 * @throws InvalidParameterException invalid credentialProgramType
072 * @throws MissingParameterException missing credentialProgramType
073 * @throws OperationFailedException unable to complete request
074 */
075 public LuTypeInfo getCredentialProgramType(@WebParam(name="credentialProgramTypeKey")String credentialProgramTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
076
077 /**
078 * Retrieves a CredentialProgram
079 * @param credentialProgramId Unique Id of the CredentialProgram. Maps to cluId
080 * @return the created Credential Program
081 * @throws DoesNotExistException CredentialProgram does not exist
082 * @throws InvalidParameterException invalid Credential Program
083 * @throws MissingParameterException missing Credential Program
084 * @throws OperationFailedException unable to complete request
085 * @throws PermissionDeniedException authorization failure
086 */
087 public CredentialProgramInfo getCredentialProgram(@WebParam(name="credentialProgramId")String credentialProgramId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
088
089 /**
090 * Retrieves a MajorDiscipline
091 * @param majorDisciplineId Unique Id of the MajorDiscipline. Maps to cluId
092 * @return the created MajorDiscipline
093 * @throws DoesNotExistException MajorDiscipline does not exist
094 * @throws InvalidParameterException invalid MajorDiscipline
095 * @throws MissingParameterException missing MajorDiscipline
096 * @throws OperationFailedException unable to complete request
097 * @throws PermissionDeniedException authorization failure
098 */
099 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 }