View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation
3    *
4    * Licensed under the the Educational Community License, Version 1.0
5    * (the "License"); you may not use this file except in compliance
6    * with the License.  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.enrollment.courseofferingset.service;
17  
18  import org.kuali.rice.core.api.criteria.QueryByCriteria;
19  import org.kuali.student.enrollment.courseofferingset.dto.SocInfo;
20  import org.kuali.student.enrollment.courseofferingset.dto.SocRolloverResultInfo;
21  import org.kuali.student.enrollment.courseofferingset.dto.SocRolloverResultItemInfo;
22  import org.kuali.student.r2.common.dto.ContextInfo;
23  import org.kuali.student.r2.common.dto.StatusInfo;
24  import org.kuali.student.r2.common.dto.ValidationResultInfo;
25  import org.kuali.student.r2.common.exceptions.*;
26  import org.kuali.student.r2.common.util.constants.CourseOfferingSetServiceConstants;
27  
28  import javax.jws.WebParam;
29  import javax.jws.WebService;
30  import javax.jws.soap.SOAPBinding;
31  import java.util.List;
32  
33  /**
34   * Course Offering Set Service allows the user to create Sets of 
35   * Offered Courses or SOCs.  These sets are all dynamic.
36   * 
37   * By default there is one main Soc per term that includes all the courses 
38   * in that term.
39   * 
40   * @version 0.0.7
41   *
42   * @author nwright
43   */
44  @WebService(name = "CourseOfferingSetService", serviceName = "CourseOfferingSetService", portName = "CourseOfferingSetService", targetNamespace = CourseOfferingSetServiceConstants.NAMESPACE)
45  @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
46  public interface CourseOfferingSetService extends CourseOfferingSetServiceBusinessLogic {
47  
48      /**
49       * Retrieve information about a Soc
50       *
51       * @param socId Unique Id of the Soc
52       * @param context          Context information containing the principalId and locale
53       *                         information about the caller of service operation
54       * @throws DoesNotExistException     socId not found
55       * @throws InvalidParameterException invalid parameter
56       * @throws MissingParameterException missing parameter
57       * @throws OperationFailedException  unable to complete request
58       * @throws PermissionDeniedException authorization failure
59       */
60      public SocInfo getSoc(@WebParam(name = "socId") String socId,
61              @WebParam(name = "context") ContextInfo context)
62              throws DoesNotExistException, InvalidParameterException,
63              MissingParameterException, OperationFailedException, PermissionDeniedException;
64  
65      /**
66       * Retrieves a list of course offerings by id list.
67       *
68       * @param socIds List of unique Ids of Soc
69       * @param context           Context information containing the principalId and locale
70       *                          information about the caller of service operation
71       * @throws DoesNotExistException     socId in the list not found
72       * @throws InvalidParameterException invalid socIds
73       * @throws MissingParameterException missing socIds
74       * @throws OperationFailedException  unable to complete request
75       * @throws PermissionDeniedException authorization failure
76       */
77      public List<SocInfo> getSocsByIds(@WebParam(name = "socIds") List<String> socIds,
78              @WebParam(name = "context") ContextInfo context)
79              throws DoesNotExistException, InvalidParameterException, MissingParameterException,
80              OperationFailedException, PermissionDeniedException;
81  
82      /**
83       * Retrieve ids of the Soc for the term
84       * 
85       * This could return multiple Socs but should always return the default main 
86       * SOC for that term.
87       *
88       * @param termId Unique Id of the term
89       * @param context  Context information containing the principalId and locale
90       *                 information about the caller of service operation
91       * @throws DoesNotExistException     termId not found
92       * @throws InvalidParameterException invalid parameter
93       * @throws MissingParameterException missing parameter
94       * @throws OperationFailedException  unable to complete request
95       * @throws PermissionDeniedException authorization failure
96       */
97      public List<String> getSocIdsByTerm(@WebParam(name = "termId") String termId,
98              @WebParam(name = "context") ContextInfo context)
99              throws DoesNotExistException, InvalidParameterException, MissingParameterException,
100             OperationFailedException, PermissionDeniedException;
101 
102     /**
103      * Retrieve Soc Ids for a given term and subject area.
104      * 
105      * A Soc will have an official and "other" subject areas, this
106      * operation will the course offering ids with either official or other subject area
107      * that match.
108      * 
109      *
110      * THIS IS A PLACEHOLDER for DEPARTMENTAL SOCS
111      *
112      *
113      * @param termId      Unique key of the term in which the course is being offered
114      * @param subjectArea subject area
115      * @param context     Context information containing the principalId and locale
116      *                    information about the caller of service operation
117      * @return List of Soc Ids
118      * @throws DoesNotExistException     termId or subject area not found
119      * @throws InvalidParameterException invalid parameter
120      * @throws MissingParameterException missing parameter
121      * @throws OperationFailedException  unable to complete request
122      * @throws PermissionDeniedException authorization failure
123      */
124     @Deprecated
125     public List<String> getSocIdsByTermAndSubjectArea(@WebParam(name = "termId") String termId,
126             @WebParam(name = "subjectArea") String subjectArea,
127             @WebParam(name = "context") ContextInfo context)
128             throws DoesNotExistException, InvalidParameterException,
129             MissingParameterException, OperationFailedException,
130             PermissionDeniedException;
131 
132     /**
133      * Retrieve Soc Ids for a given term and unit content owner
134      *
135      * THIS IS A PLACEHOLDER for DEPARTMENTAL SOCS
136      *
137      * @param termId      Unique key of the term in which the course is being offered
138      * @param unitsContentOwnerId Org Id of the Units content owner
139      * @param context     Context information containing the principalId and locale
140      *                    information about the caller of service operation
141      * @return List of Soc Ids
142      * @throws DoesNotExistException     termId or unitsContentOwnerid not found
143      * @throws InvalidParameterException invalid parameter
144      * @throws MissingParameterException missing parameter
145      * @throws OperationFailedException  unable to complete request
146      * @throws PermissionDeniedException authorization failure
147      */
148     @Deprecated
149     public List<String> getSocIdsByTermAndUnitsContentOwner(@WebParam(name = "termId") String termId,
150             @WebParam(name = "unitsContentOwnerId") String unitsContentOwnerId,
151             @WebParam(name = "context") ContextInfo context)
152             throws DoesNotExistException, InvalidParameterException,
153             MissingParameterException, OperationFailedException,
154             PermissionDeniedException;
155 
156     /**
157      * Retrieve Soc Ids by type
158      *
159      * @param typeKey      Unique key type of Soc
160      * @param context     Context information containing the principalId and locale
161      *                    information about the caller of service operation
162      * @return List of Soc Ids
163      * @throws DoesNotExistException     typeKey not found
164      * @throws InvalidParameterException invalid parameter
165      * @throws MissingParameterException missing parameter
166      * @throws OperationFailedException  unable to complete request
167      * @throws PermissionDeniedException authorization failure
168      */
169     public List<String> getSocIdsByType(@WebParam(name = "typeKey") String typeKey,
170             @WebParam(name = "context") ContextInfo context)
171             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
172             OperationFailedException, PermissionDeniedException;
173 
174     /**
175      * Search for Sets of Courses
176      * 
177      * @param criteria What to search for in SocInfo table
178      * @param context Context information containing the principalId and locale
179      *                    information about the caller of service operation
180      * @return A list of SocInfo objects matching criteria.  Empty list if none matches
181      * @throws InvalidParameterException invalid parameter
182      * @throws MissingParameterException missing parameter
183      * @throws OperationFailedException  unable to complete request
184      * @throws PermissionDeniedException authorization failure
185      */
186     public List<SocInfo> searchForSocs(@WebParam(name = "criteria") QueryByCriteria criteria,
187                                        @WebParam(name = "contextInfo") ContextInfo context)
188             throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
189 
190     /**
191      * Search for Set of Course Ids
192      * 
193      * @param criteria What to search for in SocInfo table
194      * @param context Context information containing the principalId and locale
195      *                    information about the caller of service operation
196      * @return A list of SocInfo object IDs matching criteria.  Empty list if none matches
197      * @throws InvalidParameterException invalid parameter
198      * @throws MissingParameterException missing parameter
199      * @throws OperationFailedException  unable to complete request
200      * @throws PermissionDeniedException authorization failure
201      */
202     public List<String> searchForSocIds(@WebParam(name = "criteria") QueryByCriteria criteria,
203                                           @WebParam(name = "contextInfo") ContextInfo context)
204             throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
205     /**
206      * Creates a new Soc for a term
207      * 
208      * Fields in course offering will be initialized with data from the canonical.
209      *
210      * @param termId       Unique key of the term in which the course is being offered
211      *                     course offering
212      * @param context      Context information containing the principalId and locale
213      *                     information about the caller of service operation
214      * @return newly created SocInfo
215      * @throws DoesNotExistException        termId or socTypeKey not found
216      * @throws DataValidationErrorException One or more values invalid for this operation
217      * @throws InvalidParameterException    One or more parameters invalid
218      * @throws MissingParameterException    One or more parameters missing
219      * @throws OperationFailedException     unable to complete request
220      * @throws PermissionDeniedException    authorization failure
221      */
222     public SocInfo createSoc(@WebParam(name = "termId") String termId,
223             @WebParam(name = "socTypeKey") String socTypeKey,
224             @WebParam(name = "socInfo") SocInfo socInfo,
225             @WebParam(name = "context") ContextInfo context)
226             throws DoesNotExistException, DataValidationErrorException, InvalidParameterException,
227             MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
228 
229     /**
230      * Updates an existing Soc.
231      *
232      * @param socId   Id of Soc to be updated
233      * @param socInfo Details of updates to the Soc
234      * @param context            Context information containing the principalId and locale
235      *                           information about the caller of service operation
236      * @return updated Soc
237      * @throws DataValidationErrorException One or more values invalid for this operation
238      * @throws DoesNotExistException      the Soc does not exist
239      * @throws InvalidParameterException    One or more parameters invalid
240      * @throws MissingParameterException    One or more parameters missing
241      * @throws OperationFailedException     unable to complete request
242      * @throws PermissionDeniedException    authorization failure
243      * @throws ReadOnlyException if trying to update the state or type
244      * @throws VersionMismatchException     The action was attempted on an out of date version.
245      */
246     public SocInfo updateSoc(@WebParam(name = "socId") String socId,
247             @WebParam(name = "socInfo") SocInfo socInfo,
248             @WebParam(name = "context") ContextInfo context)
249             throws DataValidationErrorException, DoesNotExistException, InvalidParameterException,
250             MissingParameterException, OperationFailedException, PermissionDeniedException,
251             ReadOnlyException, VersionMismatchException;
252 
253     /**
254      * Updates the state of an existing Set of CourseOfferings to another state provided that it is valid to do so. 
255      * 
256      * @param socId of the Set of CourseOffering's to be updated.
257      * @param nextStateKey The State Key into which the identified Set of CourseOffering's will be placed if the operation succeeds.
258      * @param contextInfo Context information containing the principalId
259      *                           and locale information about the caller of
260      *                           service operation
261      * @return status of the operation (success, failed)
262      * @throws DoesNotExistException the identified Set of CourseOffering's does not exist
263      * @throws InvalidParameterException the contextInfo object is invalid
264      * @throws MissingParameterException One or more parameters missing
265      * @throws OperationFailedException unable to complete request
266      * @throws PermissionDeniedException authorization failure
267      */
268     public StatusInfo updateSocState (@WebParam(name = "socId") String socId, @WebParam (name = "nextStateKey")  String nextStateKey,@WebParam (name = "contextInfo")  ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
269     
270     /**
271      * Deletes an existing Soc.
272      * 
273      * Deleting the Soc does not automatically delete the course offerings in a soc
274      *
275      * @param socId the Id of the ActivityOffering to be deleted
276      * @param context          Context information containing the principalId and locale
277      *                         information about the caller of service operation
278      * @return status of the operation (success, failed)
279      * @throws DoesNotExistException     the soc does not exist
280      * @throws DependentObjectsExistException if course offerings exist and the
281      *              implementation has the business rule that a course offering must have a Soc
282      * @throws InvalidParameterException One or more parameters invalid
283      * @throws MissingParameterException One or more parameters missing
284      * @throws OperationFailedException  unable to complete request
285      * @throws PermissionDeniedException authorization failure
286      */
287     public StatusInfo deleteSoc(@WebParam(name = "socId") String socId,
288             @WebParam(name = "context") ContextInfo context)
289             throws DependentObjectsExistException,
290             DoesNotExistException, InvalidParameterException,
291             MissingParameterException, OperationFailedException, PermissionDeniedException;
292 
293     /**
294      * Validates a Soc. Depending on the value of validationType,
295      * this validation could be limited to tests on just the current object and
296      * its directly contained sub-objects or expanded to perform all tests
297      * related to this object. If an identifier is present for the academic
298      * calendar and a record is found for that identifier, the validation checks
299      * if the academic calendar can be shifted to the new values. If a record
300      * cannot be found for the identifier, it is assumed that the record does
301      * not exist and as such, the checks performed will be much shallower,
302      * typically mimicking those performed by setting the validationType to the
303      * current object. This is a slightly different pattern from the standard
304      * validation as the caller provides the identifier in the create statement
305      * instead of the server assigning an identifier.
306      *
307      * @param validationType     Identifier of the extent of validation
308      * @param socInfo the soc information to be tested.
309      * @param context            Context information containing the principalId and locale
310      *                           information about the caller of service operation
311      * @return the results from performing the validation
312      * @throws DoesNotExistException     validationTypeKey not found
313      * @throws InvalidParameterException invalid validationTypeKey, socInfo
314      * @throws MissingParameterException missing validationTypeKey, socInfo
315      * @throws OperationFailedException  unable to complete request
316      */
317     public List<ValidationResultInfo> validateSoc(@WebParam(name = "validationType") String validationType,
318             @WebParam(name = "socInfo") SocInfo socInfo,
319             @WebParam(name = "context") ContextInfo context)
320             throws DoesNotExistException, InvalidParameterException,
321             MissingParameterException, OperationFailedException;
322 
323     /**
324      * Retrieve Soc Ids that contain the specified course offering
325      *
326      * @param courseOfferingId Unique Id of the course offering
327      * @param context  Context information containing the principalId and locale
328      *                 information about the caller of service operation
329      * @throws DoesNotExistException     courseOfferingId not found
330      * @throws InvalidParameterException invalid parameter
331      * @throws MissingParameterException missing parameter
332      * @throws OperationFailedException  unable to complete request
333      * @throws PermissionDeniedException authorization failure
334      */
335     public List<String> getSocIdsByCourseOffering(@WebParam(name = "courseOfferingId") String courseOfferingId,
336             @WebParam(name = "context") ContextInfo context)
337             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
338             OperationFailedException, PermissionDeniedException;
339 
340     /**
341      * Retrieve course offering ids associated with the soc
342      * 
343      * @return list of course offering ids
344      * @param socId Unique Id of the soc
345      * @param context  Context information containing the principalId and locale
346      *                 information about the caller of service operation
347      * @throws DoesNotExistException     courseId or termId not found
348      * @throws InvalidParameterException invalid courseId or termId
349      * @throws MissingParameterException missing courseId or termId
350      * @throws OperationFailedException  unable to complete request
351      * @throws PermissionDeniedException authorization failure
352      */
353     @Override
354     public List<String> getCourseOfferingIdsBySoc(@WebParam(name = "socId") String socId,
355             @WebParam(name = "context") ContextInfo context)
356             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
357             OperationFailedException, PermissionDeniedException;
358 
359     /**
360      * Delete all the course offerings associated with the Soc
361      * 
362      * @return count of the course offerings deleted
363      * @param socId Unique Id of the soc
364      * @param context  Context information containing the principalId and locale
365      *                 information about the caller of service operation
366      * @throws DoesNotExistException    socId not found
367      * @throws InvalidParameterException invalid parameter
368      * @throws MissingParameterException missing parameter
369      * @throws OperationFailedException  unable to complete request
370      * @throws PermissionDeniedException authorization failure
371      */
372     @Override
373     public Integer deleteCourseOfferingsBySoc(@WebParam(name = "socId") String socId,
374             @WebParam(name = "context") ContextInfo context)
375             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
376             OperationFailedException, PermissionDeniedException;
377 
378     /**
379      * Checks if the specified course offering is or is not in the specified soc.
380      * 
381      * @return true if the course offering is in the soc else false.
382      * @param socId Unique Id of the soc
383      * @param courseOfferingId Unique id of the course offering
384      * @param context  Context information containing the principalId and locale
385      *                 information about the caller of service operation
386      * @throws DoesNotExistException     either id is not found
387      * @throws InvalidParameterException invalid parameter
388      * @throws MissingParameterException missing parameter
389      * @throws OperationFailedException  unable to complete request
390      * @throws PermissionDeniedException authorization failure
391      */
392     @Override
393     public Boolean isCourseOfferingInSoc(@WebParam(name = "socId") String socId,
394             @WebParam(name = "courseOfferingId") String courseOfferingId,
395             @WebParam(name = "context") ContextInfo context)
396             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
397             OperationFailedException, PermissionDeniedException;
398 
399     /**
400      * Retrieve published Course offering ids in this soc
401      * 
402      * THIS IS A PLACEHOLDER FOR M5 AND NEEDS TO BE REVIEWED
403      * Not sure what it means to be "published"
404      * 
405      * @return list of Course offering ids
406      * @param socId Unique Id of the soc
407      * @param context  Context information containing the principalId and locale
408      *                 information about the caller of service operation
409      * @throws DoesNotExistException   socId not found
410      * @throws InvalidParameterException invalid parameter
411      * @throws MissingParameterException missing parameter
412      * @throws OperationFailedException  unable to complete request
413      * @throws PermissionDeniedException authorization failure
414      */
415     @Deprecated
416     @Override
417     public List<String> getPublishedCourseOfferingIdsBySoc(@WebParam(name = "socId") String socId,
418             @WebParam(name = "context") ContextInfo context)
419             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
420             OperationFailedException, PermissionDeniedException;
421 
422     /**
423      * Retrieve unpublished Course offering ids in this soc
424      * 
425      * THIS IS A PLACEHOLDER FOR M5 AND NEEDS TO BE REVIEWED
426      * Not sure what it means to be "unpublished"
427      * 
428      * @return list of Activity offering ids
429      * @param socId Unique Id of the soc
430      * @param context  Context information containing the principalId and locale
431      *                 information about the caller of service operation
432      * @throws DoesNotExistException     socId not found
433      * @throws InvalidParameterException invalid parameter
434      * @throws MissingParameterException missing parameter
435      * @throws OperationFailedException  unable to complete request
436      * @throws PermissionDeniedException authorization failure
437      */
438     @Deprecated
439     @Override
440     public List<String> getUnpublishedCourseOfferingIdsBySoc(@WebParam(name = "socId") String socId,
441             @WebParam(name = "context") ContextInfo context)
442             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
443             OperationFailedException, PermissionDeniedException;
444 
445     /**
446      * Retrieve unpublished Activity offering ids associated with the course 
447      * offerings in this soc
448      * 
449      * THIS IS A PLACEHOLDER FOR M5 AND NEEDS TO BE REVIEWED
450      * Not sure what it means to be "unpublished"
451      * 
452      * @return list of Activity offering ids
453      * @param socId Unique Id of the soc
454      * @param context  Context information containing the principalId and locale
455      *                 information about the caller of service operation
456      * @throws DoesNotExistException     socId not found
457      * @throws InvalidParameterException invalid parameter
458      * @throws MissingParameterException missing parameter
459      * @throws OperationFailedException  unable to complete request
460      * @throws PermissionDeniedException authorization failure
461      */
462     @Deprecated
463     @Override
464     public List<String> getUnpublishedActivityOfferingIdsBySoc(@WebParam(name = "socId") String socId,
465             @WebParam(name = "context") ContextInfo context)
466             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
467             OperationFailedException, PermissionDeniedException;
468 
469     /**
470      * Retrieve unscheduled Activity offering ids associated with the course 
471      * offerings in this soc
472      * 
473      * THIS IS A PLACEHOLDER FOR M5 AND NEEDS TO BE REVIEWED
474      * Not sure what it means to be "unscheduled"
475      * 
476      * @return list of Activity offering ids
477      * @param socId Unique Id of the soc
478      * @param context  Context information containing the principalId and locale
479      *                 information about the caller of service operation
480      * @throws DoesNotExistException     socId not found
481      * @throws InvalidParameterException invalid parameter
482      * @throws MissingParameterException missing parameter
483      * @throws OperationFailedException  unable to complete request
484      * @throws PermissionDeniedException authorization failure
485      */
486     @Deprecated
487     @Override
488     public List<String> getUnscheduledActivityOfferingIdsBySoc(@WebParam(name = "socId") String socId,
489             @WebParam(name = "context") ContextInfo context)
490             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
491             OperationFailedException, PermissionDeniedException;
492 
493     /**
494      * Get course offering ids associated with the soc that have an unscheduled final exam
495      * 
496      * THIS IS A PLACEHOLDER FOR M5 AND NEEDS TO BE REVIEWED
497      * Not sure what it means to be "unscheduled final exam"
498      * 
499      * @return list of course offering ids
500      * @param socId Unique Id of the soc
501      * @param context  Context information containing the principalId and locale
502      *                 information about the caller of service operation
503      * @throws DoesNotExistException     socId not found
504      * @throws InvalidParameterException invalid parameter
505      * @throws MissingParameterException missing parameter
506      * @throws OperationFailedException  unable to complete request
507      * @throws PermissionDeniedException authorization failure
508      */
509     @Deprecated
510     public List<String> getCourseOfferingIdsWithUnscheduledFinalExamsBySoc(@WebParam(name = "socId") String socId,
511             @WebParam(name = "context") ContextInfo context)
512             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
513             OperationFailedException, PermissionDeniedException;
514 
515     /**
516      * Requests that the course offerings in this Soc be submitted to the scheduler.
517      * 
518      * This method starts what is know as the mass scheduling event.
519      * 
520      * The expectation is that this method starts an asynchronous process to perform the scheduling that will complete or fail eventually independently of this method call. 
521      * 
522      * The <em>optionKeys</em> parameter can be used to alter the default processing behavior.
523      *
524      * @param socId Id of the Set of Courses
525      * @param optionKeys  keys that alter the default processing behavior.   
526      * @param context  Context information containing the principalId and locale
527      *                 information about the caller of service operation
528      * @return status of the starting the scheduling process for the activityOffering (success, failed)
529      * @throws DoesNotExistException     socId not found
530      * @throws InvalidParameterException contextInfo object is invalid
531      * @throws MissingParameterException one or more missing parameters
532      * @throws OperationFailedException  unable to complete request
533      * @throws PermissionDeniedException authorization failure
534      */
535     @Override
536     public StatusInfo startScheduleSoc(@WebParam(name = "socId") String socId, @WebParam (name="optionKeys")
537             List<String> optionKeys, @WebParam(name = "context") ContextInfo context)
538             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
539             OperationFailedException, PermissionDeniedException;
540 
541     /**
542      * Creates a new SOC for the target term that corresponds to the 
543      * source soc and then rolls over all the course offerings in source Soc to
544      * the new soc using the supplied options.
545      *
546      * @param sourceSocId Unique Id of the source Soc
547      * @param optionKeys keys identifying optional processing to occur
548      * @return newly created Soc 
549      * @param context  Context information containing the principalId and locale
550      *                 information about the caller of service operation
551      * @throws DoesNotExistException     sourceSocId or targetTermId not found
552      * @throws InvalidParameterException invalid parameter
553      * @throws MissingParameterException missing parameter
554      * @throws OperationFailedException  unable to complete request
555      * @throws PermissionDeniedException authorization failure
556      */
557     @Override
558     public SocInfo rolloverSoc(@WebParam(name = "sourceSocId") String sourceSocId,
559             @WebParam(name = "targetTermId") String targetTermId,
560             @WebParam(name = "optionKeys") List<String> optionKeys,
561             @WebParam(name = "context") ContextInfo context)
562             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
563             OperationFailedException, PermissionDeniedException;
564 
565     /**
566      * Retrieves the result of a rollover.
567      *
568      * @param rolloverResultId unique Id of the rollover result
569      * @param context           Context information containing the principalId and locale
570      *                          information about the caller of service operation
571      * @throws DoesNotExistException     rolloverResultId in the list not found
572      * @throws InvalidParameterException invalid parameter
573      * @throws MissingParameterException missing parameter
574      * @throws OperationFailedException  unable to complete request
575      * @throws PermissionDeniedException authorization failure
576      */
577     public SocRolloverResultInfo getSocRolloverResult(@WebParam(name = "rolloverResultId") String rolloverResultId,
578             @WebParam(name = "context") ContextInfo context)
579             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
580             OperationFailedException, PermissionDeniedException;
581 
582     /**
583      * Retrieves a list of rollover results by id list.
584      *
585      * @param rolloverResultIds List of unique Ids of the rollover result to be fetched
586      * @param context           Context information containing the principalId and locale
587      *                          information about the caller of service operation
588      * @throws DoesNotExistException     rolloverResultId in the list not found
589      * @throws InvalidParameterException invalid parameter
590      * @throws MissingParameterException missing parameter
591      * @throws OperationFailedException  unable to complete request
592      * @throws PermissionDeniedException authorization failure
593      */
594     public List<SocRolloverResultInfo> getSocRolloverResultsByIds(@WebParam(name = "rolloverResultIds") List<String> rolloverResultIds,
595             @WebParam(name = "context") ContextInfo context)
596             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
597             OperationFailedException, PermissionDeniedException;
598 
599     /**
600      * Retrieves a list of rollover results items by id list.
601      *
602      * @param rolloverResultItemIds List of unique Ids of the rollover result items to be fetched
603      * @param context           Context information containing the principalId and locale
604      *                          information about the caller of service operation
605      * @throws DoesNotExistException     rolloverResultId in the list not found
606      * @throws InvalidParameterException invalid parameter
607      * @throws MissingParameterException missing parameter
608      * @throws OperationFailedException  unable to complete request
609      * @throws PermissionDeniedException authorization failure
610      */
611     public List<SocRolloverResultItemInfo> getSocRolloverResultItemsByIds(@WebParam(name = "rolloverResultItemIds") List<String> rolloverResultItemIds,
612             @WebParam(name = "context") ContextInfo context)
613             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
614             OperationFailedException, PermissionDeniedException;
615 
616     /**
617      * Retrieves a list of rollover result items by result id
618      *
619      * @param socRolloverResultId Unique Ids of the rollover result for which the items are to be fetched
620      * @param context           Context information containing the principalId and locale
621      *                          information about the caller of service operation
622      * @throws DoesNotExistException     rolloverResultId in the list not found
623      * @throws InvalidParameterException invalid parameter
624      * @throws MissingParameterException missing parameter
625      * @throws OperationFailedException  unable to complete request
626      * @throws PermissionDeniedException authorization failure
627      */
628     public List<SocRolloverResultItemInfo> getSocRolloverResultItemsByResultId(@WebParam(name = "socRolloverResultId") String socRolloverResultId,
629             @WebParam(name = "context") ContextInfo context)
630             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
631             OperationFailedException, PermissionDeniedException;
632 
633     /**
634      * Retrieves a list of rollover result items by result id and source course offering id
635      *
636      * @param socRolloverResultId Unique Id of the rollover result for which the items are to be fetched
637      * @param sourceCourseOfferingId Unique Id of source course offering id
638      * @param context           Context information containing the principalId and locale
639      *                          information about the caller of service operation
640      * @throws DoesNotExistException     rolloverResultId in the list not found
641      * @throws InvalidParameterException invalid parameter
642      * @throws MissingParameterException missing parameter
643      * @throws OperationFailedException  unable to complete request
644      * @throws PermissionDeniedException authorization failure
645      */
646     public List<SocRolloverResultItemInfo> getSocRolloverResultItemsByResultIdAndSourceCourseOfferingId(@WebParam(name = "socRolloverResultId") String socRolloverResultId,
647             @WebParam(name = "sourceCourseOfferingId") String sourceCourseOfferingId,
648             @WebParam(name = "context") ContextInfo context)
649             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
650             OperationFailedException, PermissionDeniedException;
651 
652     /**
653      * Retrieves a list of rollover result items by result id and target course offering id
654      *
655      * @param socRolloverResultId Unique Id of the rollover result for which the items are to be fetched
656      * @param context           Context information containing the principalId and locale
657      *                          information about the caller of service operation
658      * @throws DoesNotExistException     rolloverResultId in the list not found
659      * @throws InvalidParameterException invalid parameter
660      * @throws MissingParameterException missing parameter
661      * @throws OperationFailedException  unable to complete request
662      * @throws PermissionDeniedException authorization failure
663      */
664     public List<SocRolloverResultItemInfo> getSocRolloverResultItemsByResultIdAndTargetCourseOfferingId(@WebParam(name = "socRolloverResultId") String socRolloverResultId,
665             @WebParam(name = "targetCourseOfferingId") String targetCourseOfferingId,
666             @WebParam(name = "context") ContextInfo context)
667             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
668             OperationFailedException, PermissionDeniedException;
669 
670     /**
671      * Retrieves the rollover results associated with the specified source and target Soc ids
672      *
673      * @param sourceSocId     source Soc Id
674      * @param targetSocId     target Soc Id
675      * @param context     Context information containing the principalId and locale
676      *                    information about the caller of service operation
677      * @return List of Rollover Results
678      * @throws DoesNotExistException     courseId or termId not found
679      * @throws InvalidParameterException invalid courseId or termId
680      * @throws MissingParameterException missing courseId or termId
681      * @throws OperationFailedException  unable to complete request
682      * @throws PermissionDeniedException authorization failure
683      */
684     public List<SocRolloverResultInfo> getSocRolloverResultsBySourceAndTargetSocs(@WebParam(name = "sourceSocId") String sourceSocId,
685             @WebParam(name = "targetSocId") String targetSocId,
686             @WebParam(name = "context") ContextInfo context)
687             throws DoesNotExistException, InvalidParameterException,
688             MissingParameterException, OperationFailedException,
689             PermissionDeniedException;
690 
691     
692     /**
693      * Retrieves the rollover results associated with the specified target Soc id
694      *
695      * @param targetSocId     target Soc Id
696      * @param context     Context information containing the principalId and locale
697      *                    information about the caller of service operation
698      * @return List of Rollover Result Ids
699      * @throws DoesNotExistException     courseId or termId not found
700      * @throws InvalidParameterException invalid courseId or termId
701      * @throws MissingParameterException missing courseId or termId
702      * @throws OperationFailedException  unable to complete request
703      * @throws PermissionDeniedException authorization failure
704      */
705     public List<String> getSocRolloverResultIdsByTargetSoc(@WebParam(name = "targetSocId") String targetSocId,
706             @WebParam(name = "context") ContextInfo context)
707             throws DoesNotExistException, InvalidParameterException,
708             MissingParameterException, OperationFailedException,
709             PermissionDeniedException;
710 
711     /**
712      * Retrieves the rollover results associated with the specified source Soc id
713      *
714      * @param sourceSocId      Unique id of the source Soc
715      * @param context     Context information containing the principalId and locale
716      *                    information about the caller of service operation
717      * @return List of Rollover Result Ids
718      * @throws DoesNotExistException     courseId or termId not found
719      * @throws InvalidParameterException invalid courseId or termId
720      * @throws MissingParameterException missing courseId or termId
721      * @throws OperationFailedException  unable to complete request
722      * @throws PermissionDeniedException authorization failure
723      */
724     public List<String> getSocRolloverResultIdsBySourceSoc(@WebParam(name = "targetSocId") String sourceSocId,
725             @WebParam(name = "context") ContextInfo context)
726             throws DoesNotExistException, InvalidParameterException,
727             MissingParameterException, OperationFailedException,
728             PermissionDeniedException;
729 
730     /**
731      * Requests that the rollover identified by the result be reversed.
732      * 
733      * This attempts to reverse or clear out the actions applied by the specified rollover result.
734      * Depending on whether or not the resulting course offerings have been updated
735      * and the optional processing flags a full reversal is not guaranteed.
736      *
737      * @param rolloverResultId Unique Id of the rollover result
738      * @param optionKeys keys identifying optional processing to happen when clearing the result
739      * @return a Rollover Result indicating what reversal actions were successful or not
740      * @param context  Context information containing the principalId and locale
741      *                 information about the caller of service operation
742      * @throws DoesNotExistException     courseId or termId not found
743      * @throws InvalidParameterException invalid courseId or termId
744      * @throws MissingParameterException missing courseId or termId
745      * @throws OperationFailedException  unable to complete request
746      * @throws PermissionDeniedException authorization failure
747      */
748     @Override
749     public SocRolloverResultInfo reverseRollover(@WebParam(name = "rolloverResultId") String rolloverResultId,
750             @WebParam(name = "optionKeys") List<String> optionKeys,
751             @WebParam(name = "context") ContextInfo context)
752             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
753             OperationFailedException, PermissionDeniedException;
754 
755     /**
756      * Creates a new SocRolloverResult
757      * 
758      * @param socRolloverResultTypeKey     soc rollover result type key
759      * @param socRolloverResultInfo    object to be created
760      * @param context      Context information containing the principalId and locale
761      *                     information about the caller of service operation
762      * @return newly created SocRolloverResultInfo
763      * @throws DoesNotExistException        termId or socRolloverResultTypeKey not found
764      * @throws DataValidationErrorException One or more values invalid for this operation
765      * @throws InvalidParameterException    One or more parameters invalid
766      * @throws MissingParameterException    One or more parameters missing
767      * @throws OperationFailedException     unable to complete request
768      * @throws PermissionDeniedException    authorization failure
769      */
770     public SocRolloverResultInfo createSocRolloverResult(@WebParam(name = "socRolloverResultTypeKey") String socRolloverResultTypeKey,
771             @WebParam(name = "socRolloverResultInfo") SocRolloverResultInfo socRolloverResultInfo,
772             @WebParam(name = "context") ContextInfo context)
773             throws DoesNotExistException, DataValidationErrorException, InvalidParameterException,
774             MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
775 
776     /**
777      * Updates an existing SocRolloverResult.
778      *
779      * @param socRolloverResultId   Id of SocRolloverResult to be updated
780      * @param socRolloverResultInfo Details of updates to the SocRolloverResult
781      * @param context            Context information containing the principalId and locale
782      *                           information about the caller of service operation
783      * @return updated SocRolloverResult
784      * @throws DataValidationErrorException One or more values invalid for this operation
785      * @throws DoesNotExistException      the SocRolloverResult does not exist
786      * @throws InvalidParameterException    One or more parameters invalid
787      * @throws MissingParameterException    One or more parameters missing
788      * @throws OperationFailedException     unable to complete request
789      * @throws PermissionDeniedException    authorization failure
790      * @throws VersionMismatchException     The action was attempted on an out of date version.
791      */
792     public SocRolloverResultInfo updateSocRolloverResult(@WebParam(name = "socRolloverResultId") String socRolloverResultId,
793             @WebParam(name = "socRolloverResultInfo") SocRolloverResultInfo socRolloverResultInfo,
794             @WebParam(name = "context") ContextInfo context)
795             throws DataValidationErrorException, DoesNotExistException, InvalidParameterException,
796             MissingParameterException, OperationFailedException, PermissionDeniedException,
797             ReadOnlyException, VersionMismatchException;
798 
799     /**
800      * Update progress information
801      *
802      * @param socRolloverResultId   Id of SocRolloverResult to be updated
803      * @param itemsProcessed new count of the number of items processed
804      * @param context            Context information containing the principalId and locale
805      *                           information about the caller of service operation
806      * @return StatusInfo indicates the update worked
807      * @throws DataValidationErrorException One or more values invalid for this operation
808      * @throws DoesNotExistException      the SocRolloverResult does not exist
809      * @throws InvalidParameterException    One or more parameters invalid
810      * @throws MissingParameterException    One or more parameters missing
811      * @throws OperationFailedException     unable to complete request
812      * @throws PermissionDeniedException    authorization failure
813      * @throws VersionMismatchException     The action was attempted on an out of date version.
814      */
815     public SocRolloverResultInfo updateSocRolloverProgress(@WebParam(name = "socRolloverResultId") String socRolloverResultId,
816             @WebParam(name = "itemsProcessed") Integer itemsProcessed,
817             @WebParam(name = "context") ContextInfo context)
818             throws DataValidationErrorException, DoesNotExistException, InvalidParameterException,
819             MissingParameterException, OperationFailedException, PermissionDeniedException,
820             ReadOnlyException, VersionMismatchException;
821 
822     /**
823      * Updates the state of an existing SocRolloverResultState to another state provided that it is valid to do so. 
824      * 
825      * @param socRolloverResultStateId of the SocRolloverResultState to be updated.
826      * @param nextStateKey The State Key into which the identified SocRolloverResultState will be placed if the operation succeeds.
827      * @param contextInfo Context information containing the principalId
828      *                           and locale information about the caller of
829      *                           service operation
830      * @return status of the operation (success, failed)
831      * @throws DoesNotExistException the identified SocRolloverResultState does not exist
832      * @throws InvalidParameterException the contextInfo object is invalid
833      * @throws MissingParameterException One or more parameters missing
834      * @throws OperationFailedException unable to complete request
835      * @throws PermissionDeniedException authorization failure
836      */
837     public StatusInfo updateSocRolloverResultState (@WebParam(name = "socRolloverResultStateId") String socRolloverResultStateId, @WebParam (name = "nextStateKey")  String nextStateKey,@WebParam (name = "contextInfo")  ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
838     
839     /**
840      * Deletes an existing SocRolloverResult. 
841      *
842      * @param socRolloverResultId the Id of the ActivityOffering to be deleted
843      * @param context          Context information containing the principalId and locale
844      *                         information about the caller of service operation
845      * @return status of the operation (success, failed)
846      * @throws DoesNotExistException     the SeatPoolDefinition does not exist
847      * @throws InvalidParameterException One or more parameters invalid
848      * @throws MissingParameterException One or more parameters missing
849      * @throws OperationFailedException  unable to complete request
850      * @throws PermissionDeniedException authorization failure
851      */
852     public StatusInfo deleteSocRolloverResult(@WebParam(name = "socRolloverResultId") String socRolloverResultId,
853             @WebParam(name = "context") ContextInfo context)
854             throws DoesNotExistException, DependentObjectsExistException, InvalidParameterException,
855             MissingParameterException, OperationFailedException, PermissionDeniedException;
856 
857     /**
858      * Validates a SocRolloverResult. Depending on the value of validationType,
859      * this validation could be limited to tests on just the current object and
860      * its directly contained sub-objects or expanded to perform all tests
861      * related to this object. If an identifier is present for the academic
862      * calendar and a record is found for that identifier, the validation checks
863      * if the academic calendar can be shifted to the new values. If a record
864      * cannot be found for the identifier, it is assumed that the record does
865      * not exist and as such, the checks performed will be much shallower,
866      * typically mimicking those performed by setting the validationType to the
867      * current object. This is a slightly different pattern from the standard
868      * validation as the caller provides the identifier in the create statement
869      * instead of the server assigning an identifier.
870      *
871      * @param validationType     Identifier of the extent of validation
872      * @param socRolloverResultInfo the socRolloverResult information to be tested.
873      * @param context            Context information containing the principalId and locale
874      *                           information about the caller of service operation
875      * @return the results from performing the validation
876      * @throws DoesNotExistException     validationTypeKey not found
877      * @throws InvalidParameterException invalid validationTypeKey, socRolloverResultInfo
878      * @throws MissingParameterException missing validationTypeKey, socRolloverResultInfo
879      * @throws OperationFailedException  unable to complete request
880      */
881     public List<ValidationResultInfo> validateSocRolloverResult(@WebParam(name = "validationType") String validationType,
882             @WebParam(name = "socRolloverResultInfo") SocRolloverResultInfo socRolloverResultInfo,
883             @WebParam(name = "context") ContextInfo context)
884             throws DoesNotExistException, InvalidParameterException,
885             MissingParameterException, OperationFailedException;
886 
887     /**
888      * Retrieve information about a SocRolloverResultItem
889      *
890      * @param socRolloverResultItemId Unique Id of the SocRolloverResultItem
891      * @param context          Context information containing the principalId and locale
892      *                         information about the caller of service operation
893      * @throws DoesNotExistException     socRolloverResultItemId not found
894      * @throws InvalidParameterException invalid parameter
895      * @throws MissingParameterException missing parameter
896      * @throws OperationFailedException  unable to complete request
897      * @throws PermissionDeniedException authorization failure
898      */
899     public SocRolloverResultItemInfo getSocRolloverResultItem(@WebParam(name = "socRolloverResultItemId") String socRolloverResultItemId,
900             @WebParam(name = "context") ContextInfo context)
901             throws DoesNotExistException, InvalidParameterException,
902             MissingParameterException, OperationFailedException, PermissionDeniedException;
903 
904     /**
905      * Creates a new SocRolloverResultItem
906      * 
907      * @param socRolloverResultId     Id of the corresponding soc rollover result
908      * @param socRolloverResultItemTypeKey     soc rollover result type key
909      * @param socRolloverResultItemInfo    object to be created
910      * @param context      Context information containing the principalId and locale
911      *                     information about the caller of service operation
912      * @return newly created SocRolloverResultItemInfo
913      * @throws DoesNotExistException        termId or socRolloverResultItemTypeKey not found
914      * @throws DataValidationErrorException One or more values invalid for this operation
915      * @throws InvalidParameterException    One or more parameters invalid
916      * @throws MissingParameterException    One or more parameters missing
917      * @throws OperationFailedException     unable to complete request
918      * @throws PermissionDeniedException    authorization failure
919      */
920     public SocRolloverResultItemInfo createSocRolloverResultItem(@WebParam(name = "socRolloverResultId") String socRolloverResultId,
921             @WebParam(name = "socRolloverResultItemTypeKey") String socRolloverResultItemTypeKey,
922             @WebParam(name = "socRolloverResultItemInfo") SocRolloverResultItemInfo socRolloverResultItemInfo,
923             @WebParam(name = "context") ContextInfo context)
924             throws DoesNotExistException, DataValidationErrorException, InvalidParameterException,
925             MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
926 
927     /**
928      * Bulk create of  SocRolloverResultItems
929      * 
930      * All must be for the same result and type.
931      * 
932      * @param socRolloverResultId     Id of the corresponding soc rollover result
933      * @param socRolloverResultItemTypeKey     soc rollover result type key
934      * @param socRolloverResultItemInfos    objects to be created
935      * @param context      Context information containing the principalId and locale
936      *                     information about the caller of service operation
937      * @return count of number of items created
938      * @throws DoesNotExistException        termId or socRolloverResultItemTypeKey not found
939      * @throws DataValidationErrorException One or more values invalid for this operation
940      * @throws InvalidParameterException    One or more parameters invalid
941      * @throws MissingParameterException    One or more parameters missing
942      * @throws OperationFailedException     unable to complete request
943      * @throws PermissionDeniedException    authorization failure
944      */
945     public Integer createSocRolloverResultItems(@WebParam(name = "socRolloverResultId") String socRolloverResultId,
946             @WebParam(name = "socRolloverResultItemTypeKey") String socRolloverResultItemTypeKey,
947             @WebParam(name = "socRolloverResultItemInfos") List<SocRolloverResultItemInfo> socRolloverResultItemInfos,
948             @WebParam(name = "context") ContextInfo context)
949             throws DoesNotExistException, DataValidationErrorException, InvalidParameterException,
950             MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
951 
952     /**
953      * Updates an existing SocRolloverResultItem.
954      *
955      * @param socRolloverResultItemId   Id of SocRolloverResultItem to be updated
956      * @param socRolloverResultItemInfo Details of updates to the SocRolloverResultItem
957      * @param context            Context information containing the principalId and locale
958      *                           information about the caller of service operation
959      * @return updated SocRolloverResultItem
960      * @throws DataValidationErrorException One or more values invalid for this operation
961      * @throws DoesNotExistException      the SocRolloverResultItem does not exist
962      * @throws InvalidParameterException    One or more parameters invalid
963      * @throws MissingParameterException    One or more parameters missing
964      * @throws OperationFailedException     unable to complete request
965      * @throws PermissionDeniedException    authorization failure
966      * @throws VersionMismatchException     The action was attempted on an out of date version.
967      */
968     public SocRolloverResultItemInfo updateSocRolloverResultItem(@WebParam(name = "socRolloverResultItemId") String socRolloverResultItemId,
969             @WebParam(name = "socRolloverResultItemInfo") SocRolloverResultItemInfo socRolloverResultItemInfo,
970             @WebParam(name = "context") ContextInfo context)
971             throws DataValidationErrorException, DoesNotExistException, InvalidParameterException,
972             MissingParameterException, OperationFailedException, PermissionDeniedException,
973             ReadOnlyException, VersionMismatchException;
974 
975     /**
976      * Updates the state of an existing SocRolloverResultItem to another state provided that it is valid to do so. 
977      * 
978      * @param socRolloverResultItemId of the SocRolloverResultItem to be updated.
979      * @param nextStateKey The State Key into which the identified SocRolloverResultItem will be placed if the operation succeeds.
980      * @param contextInfo Context information containing the principalId
981      *                           and locale information about the caller of
982      *                           service operation
983      * @return status of the operation (success, failed)
984      * @throws DoesNotExistException the identified SocRolloverResultItem does not exist
985      * @throws InvalidParameterException the contextInfo object is invalid
986      * @throws MissingParameterException One or more parameters missing
987      * @throws OperationFailedException unable to complete request
988      * @throws PermissionDeniedException authorization failure
989      */
990     public StatusInfo updateSocRolloverResultItemState (@WebParam(name = "socRolloverResultItemId") String socRolloverResultItemId, @WebParam (name = "nextStateKey")  String nextStateKey,@WebParam (name = "contextInfo")  ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
991     
992     /**
993      * Deletes an existing SocRolloverResultItem. 
994      *
995      * @param socRolloverResultItemId the Id of the ActivityOffering to be deleted
996      * @param context          Context information containing the principalId and locale
997      *                         information about the caller of service operation
998      * @return status of the operation (success, failed)
999      * @throws DoesNotExistException     the SeatPoolDefinition does not exist
1000      * @throws InvalidParameterException One or more parameters invalid
1001      * @throws MissingParameterException One or more parameters missing
1002      * @throws OperationFailedException  unable to complete request
1003      * @throws PermissionDeniedException authorization failure
1004      */
1005     public StatusInfo deleteSocRolloverResultItem(@WebParam(name = "socRolloverResultItemId") String socRolloverResultItemId,
1006             @WebParam(name = "context") ContextInfo context)
1007             throws DoesNotExistException, InvalidParameterException,
1008             MissingParameterException, OperationFailedException, PermissionDeniedException;
1009 
1010     /**
1011      * Validates a SocRolloverResultItem. Depending on the value of validationType,
1012      * this validation could be limited to tests on just the current object and
1013      * its directly contained sub-objects or expanded to perform all tests
1014      * related to this object. If an identifier is present for the academic
1015      * calendar and a record is found for that identifier, the validation checks
1016      * if the academic calendar can be shifted to the new values. If a record
1017      * cannot be found for the identifier, it is assumed that the record does
1018      * not exist and as such, the checks performed will be much shallower,
1019      * typically mimicking those performed by setting the validationType to the
1020      * current object. This is a slightly different pattern from the standard
1021      * validation as the caller provides the identifier in the create statement
1022      * instead of the server assigning an identifier.
1023      *
1024      * @param validationType     Identifier of the extent of validation
1025      * @param socRolloverResultItemInfo the socRolloverResultItem information to be tested.
1026      * @param context            Context information containing the principalId and locale
1027      *                           information about the caller of service operation
1028      * @return the results from performing the validation
1029      * @throws DoesNotExistException     validationTypeKey not found
1030      * @throws InvalidParameterException invalid validationTypeKey, socRolloverResultItemInfo
1031      * @throws MissingParameterException missing validationTypeKey, socRolloverResultItemInfo
1032      * @throws OperationFailedException  unable to complete request
1033      */
1034     public List<ValidationResultInfo> validateSocRolloverResultItem(@WebParam(name = "validationType") String validationType,
1035             @WebParam(name = "socRolloverResultItemInfo") SocRolloverResultItemInfo socRolloverResultItemInfo,
1036             @WebParam(name = "context") ContextInfo context)
1037             throws DoesNotExistException, InvalidParameterException,
1038             MissingParameterException, OperationFailedException;
1039 
1040     /**
1041      * Searches for soc rollover result ids using a free form search criteria.
1042      *
1043      * @param criteria
1044      * @param context
1045      * @return
1046      * @throws InvalidParameterException
1047      * @throws MissingParameterException
1048      * @throws OperationFailedException
1049      * @throws PermissionDeniedException
1050      */
1051     public List<String> searchForSocRolloverResultIds(@WebParam(name = "criteria") QueryByCriteria criteria,
1052             @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException,
1053             OperationFailedException, PermissionDeniedException;
1054 
1055     /**
1056      * Searches for soc rollover results using a free form search criteria
1057      *
1058      * @param criteria
1059      * @param context
1060      * @throws InvalidParameterException
1061      * @throws MissingParameterException
1062      * @throws OperationFailedException
1063      * @throws PermissionDeniedException
1064      */
1065     public List<SocRolloverResultInfo> searchForSocRolloverResults(@WebParam(name = "criteria") QueryByCriteria criteria,
1066             @WebParam(name = "context") ContextInfo context)  throws InvalidParameterException, MissingParameterException,
1067             OperationFailedException,PermissionDeniedException;
1068     
1069     
1070     /**
1071      * Searches for soc rollover result item ids using a free form search criteria.
1072      *
1073      * @param criteria
1074      * @param context
1075      * @return
1076      * @throws InvalidParameterException
1077      * @throws MissingParameterException
1078      * @throws OperationFailedException
1079      * @throws PermissionDeniedException
1080      */
1081     public List<String> searchForSocRolloverResultItemIds(@WebParam(name = "criteria") QueryByCriteria criteria,
1082             @WebParam(name = "context") ContextInfo context) throws InvalidParameterException, MissingParameterException,
1083             OperationFailedException, PermissionDeniedException;
1084 
1085     /**
1086      * Searches for soc rollover result items using a free form search criteria
1087      *
1088      * @param criteria
1089      * @param context
1090      * @throws InvalidParameterException
1091      * @throws MissingParameterException
1092      * @throws OperationFailedException
1093      * @throws PermissionDeniedException
1094      */
1095     public List<SocRolloverResultItemInfo> searchForSocRolloverResultItems(@WebParam(name = "criteria") QueryByCriteria criteria,
1096             @WebParam(name = "context") ContextInfo context)  throws InvalidParameterException, MissingParameterException,
1097             OperationFailedException,PermissionDeniedException;
1098 
1099 }