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.batchjobresults.service;
17  
18  import org.kuali.student.enrollment.batchjobresults.dto.BatchJobResultInfo;
19  import org.kuali.student.enrollment.batchjobresults.dto.BatchJobResultItemInfo;
20  import org.kuali.student.r2.common.dto.AttributeInfo;
21  import org.kuali.student.r2.common.dto.ContextInfo;
22  import org.kuali.student.r2.common.dto.StatusInfo;
23  import org.kuali.student.r2.common.dto.ValidationResultInfo;
24  import org.kuali.student.r2.common.exceptions.*;
25  import org.kuali.student.r2.common.util.constants.BatchJobResultServiceConstants;
26  
27  import javax.jws.WebParam;
28  import javax.jws.WebService;
29  import javax.jws.soap.SOAPBinding;
30  import java.util.Date;
31  import java.util.List;
32  
33  /**
34   * The batch job results service provides a simple mechanism to 
35   * store and progress and final results of of a long running batch job.
36   * 
37   * @version 0.0.7
38   *
39   * @author nwright
40   */
41  @WebService(name = "BatchJobResultService", serviceName = "BatchJobResultService", portName = "BatchJobResultService", targetNamespace = BatchJobResultServiceConstants.NAMESPACE)
42  @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
43  public interface BatchJobResultService {
44  
45      /**
46       * Retrieve information about a BatchJobResult
47       *
48       * @param batchJobResultId Unique Id of the BatchJobResult
49       * @param context          Context information containing the principalId and locale
50       *                         information about the caller of service operation
51       * 
52       * @throws DoesNotExistException     batchJobResultId not found
53       * @throws InvalidParameterException invalid parameter
54       * @throws MissingParameterException missing parameter
55       * @throws OperationFailedException  unable to complete request
56       * @throws PermissionDeniedException authorization failure
57       */
58      public BatchJobResultInfo getBatchJobResult(@WebParam(name = "batchJobResultId") String batchJobResultId,
59              @WebParam(name = "context") ContextInfo context)
60              throws DoesNotExistException, InvalidParameterException,
61              MissingParameterException, OperationFailedException, PermissionDeniedException;
62  
63      /**
64       * Retrieves a list of batch job results by id list.
65       *
66       * @param batchJobResultIds List of unique Ids of BatchJobResult
67       * @param context           Context information containing the principalId and locale
68       *                          information about the caller of service operation
69       * @throws DoesNotExistException     batchJobResultId in the list not found
70       * @throws InvalidParameterException invalid batchJobResultIds
71       * @throws MissingParameterException missing batchJobResultIds
72       * @throws OperationFailedException  unable to complete request
73       * @throws PermissionDeniedException authorization failure
74       */
75      public List<BatchJobResultInfo> getBatchJobResultsByIds(@WebParam(name = "batchJobResultIds") List<String> batchJobResultIds,
76              @WebParam(name = "context") ContextInfo context)
77              throws DoesNotExistException, InvalidParameterException, MissingParameterException,
78              OperationFailedException, PermissionDeniedException;
79  
80      /**
81       * Retrieve BatchJobResult Ids by type
82       *
83       * @param typeKey      Unique key type of BatchJobResult
84       * @param context     Context information containing the principalId and locale
85       *                    information about the caller of service operation
86       * @return List of BatchJobResult Ids
87       * @throws DoesNotExistException     typeKey not found
88       * @throws InvalidParameterException invalid parameter
89       * @throws MissingParameterException missing parameter
90       * @throws OperationFailedException  unable to complete request
91       * @throws PermissionDeniedException authorization failure
92       */
93      public List<String> getBatchJobResultIdsByType(@WebParam(name = "typeKey") String typeKey,
94              @WebParam(name = "context") ContextInfo context)
95              throws DoesNotExistException, InvalidParameterException, MissingParameterException,
96              OperationFailedException, PermissionDeniedException;
97  
98      /**
99       * Retrieve BatchJobResult Ids by type created on or after a date
100      *
101      * @param typeKey     Unique key type of BatchJobResult
102      * @param sinceDateCreated the date on which or after the result was created
103      * @param context     Context information containing the principalId and locale
104      *                    information about the caller of service operation
105      * @return List of BatchJobResult Ids
106      * @throws DoesNotExistException     typeKey not found
107      * @throws InvalidParameterException invalid parameter
108      * @throws MissingParameterException missing parameter
109      * @throws OperationFailedException  unable to complete request
110      * @throws PermissionDeniedException authorization failure
111      */
112     public List<String> getBatchJobResultIdsByTypeSinceDateCreated(@WebParam(name = "typeKey") String typeKey,
113             @WebParam(name = "sinceDateCreated") Date sinceDateCreated,
114             @WebParam(name = "context") ContextInfo context)
115             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
116             OperationFailedException, PermissionDeniedException;
117 
118     /**
119      * Retrieve BatchJobResult Ids by type and the value of a single parameter
120      *
121      * @param typeKey      Unique key type of BatchJobResult
122      * @param parameter    key value pair used to match an existing parameter
123      * @param context     Context information containing the principalId and locale
124      *                    information about the caller of service operation
125      * @return List of BatchJobResult Ids
126      * @throws DoesNotExistException     typeKey not found
127      * @throws InvalidParameterException invalid parameter
128      * @throws MissingParameterException missing parameter
129      * @throws OperationFailedException  unable to complete request
130      * @throws PermissionDeniedException authorization failure
131      */
132     public List<String> getBatchJobResultIdsByTypeAndParameter(@WebParam(name = "typeKey") String typeKey,
133             @WebParam(name = "parameter") AttributeInfo parameter,
134             @WebParam(name = "context") ContextInfo context)
135             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
136             OperationFailedException, PermissionDeniedException;
137 
138     /**
139      * Retrieve BatchJobResult Ids by type and the value of a single global result
140      *
141      * @param typeKey      Unique key type of BatchJobResult
142      * @param globalResult    key value pair used to match an single global result
143      * @param context     Context information containing the principalId and locale
144      *                    information about the caller of service operation
145      * @return List of BatchJobResult Ids
146      * @throws DoesNotExistException     typeKey not found
147      * @throws InvalidParameterException invalid parameter
148      * @throws MissingParameterException missing parameter
149      * @throws OperationFailedException  unable to complete request
150      * @throws PermissionDeniedException authorization failure
151      */
152     public List<String> getBatchJobResultIdsByTypeAndGlobalResult(@WebParam(name = "typeKey") String typeKey,
153             @WebParam(name = "globalResult") AttributeInfo globalResult,
154             @WebParam(name = "context") ContextInfo context)
155             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
156             OperationFailedException, PermissionDeniedException;
157 
158     /**
159      * Creates a new BatchJobResult
160      * 
161      * @param batchJobResultTypeKey     batch job result type key
162      * @param batchJobResultInfo    object to be created
163      * @param context      Context information containing the principalId and locale
164      *                     information about the caller of service operation
165      * @return newly created BatchJobResultInfo
166      * @throws DoesNotExistException        termId or batchJobResultTypeKey not found
167      * @throws DataValidationErrorException One or more values invalid for this operation
168      * @throws InvalidParameterException    One or more parameters invalid
169      * @throws MissingParameterException    One or more parameters missing
170      * @throws OperationFailedException     unable to complete request
171      * @throws PermissionDeniedException    authorization failure
172      */
173     public BatchJobResultInfo createBatchJobResult(@WebParam(name = "batchJobResultTypeKey") String batchJobResultTypeKey,
174             @WebParam(name = "batchJobResultInfo") BatchJobResultInfo batchJobResultInfo,
175             @WebParam(name = "context") ContextInfo context)
176             throws DoesNotExistException, DataValidationErrorException, InvalidParameterException,
177             MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
178 
179     /**
180      * Updates an existing BatchJobResult.
181      *
182      * @param batchJobResultId   Id of BatchJobResult to be updated
183      * @param batchJobResultInfo Details of updates to the BatchJobResult
184      * @param context            Context information containing the principalId and locale
185      *                           information about the caller of service operation
186      * @return updated BatchJobResult
187      * @throws DataValidationErrorException One or more values invalid for this operation
188      * @throws DoesNotExistException      the BatchJobResult does not exist
189      * @throws InvalidParameterException    One or more parameters invalid
190      * @throws MissingParameterException    One or more parameters missing
191      * @throws OperationFailedException     unable to complete request
192      * @throws PermissionDeniedException    authorization failure
193      * @throws VersionMismatchException     The action was attempted on an out of date version.
194      */
195     public BatchJobResultInfo updateBatchJobResult(@WebParam(name = "batchJobResultId") String batchJobResultId,
196             @WebParam(name = "batchJobResultInfo") BatchJobResultInfo batchJobResultInfo,
197             @WebParam(name = "context") ContextInfo context)
198             throws DataValidationErrorException, DoesNotExistException, InvalidParameterException,
199             MissingParameterException, OperationFailedException, PermissionDeniedException,
200             ReadOnlyException, VersionMismatchException;
201 
202     /**
203      * Updates the state of an existing BatchJobResult to another state
204      * provided that it is valid to do so.
205      *
206      * @param batchJobResultId   identifier of the BatchJobResult to be
207      *                           updated
208      * @param nextStateKey       The State Key into which the identified
209      *                           BatchJobResult will be placed if the
210      *                           operation succeeds.
211      * @param contextInfo        Context information containing the principalId
212      *                           and locale information about the caller of
213      *                           service operation
214      * @return status of the operation (success, failed)
215      * @throws DoesNotExistException     the identified BatchJobResult does
216      *                                   not exist
217      * @throws InvalidParameterException the contextInfo object is invalid
218      * @throws MissingParameterException One or more parameters missing
219      * @throws OperationFailedException  unable to complete request
220      * @throws PermissionDeniedException authorization failure
221      */
222     public StatusInfo changeBatchJobResultState(@WebParam(name = "batchJobResultId") String batchJobResultId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
223 
224     /**
225      * Update progress information
226      *
227      * @param batchJobResultId   Id of BatchJobResult to be updated
228      * @param itemsProcessed new count of the number of items processed
229      * @param context            Context information containing the principalId and locale
230      *                           information about the caller of service operation
231      * @return StatusInfo indicates the update worked
232      * @throws DataValidationErrorException One or more values invalid for this operation
233      * @throws DoesNotExistException      the BatchJobResult does not exist
234      * @throws InvalidParameterException    One or more parameters invalid
235      * @throws MissingParameterException    One or more parameters missing
236      * @throws OperationFailedException     unable to complete request
237      * @throws PermissionDeniedException    authorization failure
238      * @throws VersionMismatchException     The action was attempted on an out of date version.
239      */
240     public BatchJobResultInfo updateBatchJobProgress(@WebParam(name = "batchJobResultId") String batchJobResultId,
241             @WebParam(name = "itemsProcessed") Integer itemsProcessed,
242             @WebParam(name = "context") ContextInfo context)
243             throws DataValidationErrorException, DoesNotExistException, InvalidParameterException,
244             MissingParameterException, OperationFailedException, PermissionDeniedException,
245             ReadOnlyException, VersionMismatchException;
246 
247     /**
248      * Deletes an existing BatchJobResult. 
249      *
250      * @param batchJobResultId the Id of the ActivityOffering to be deleted
251      * @param context          Context information containing the principalId and locale
252      *                         information about the caller of service operation
253      * @return status of the operation (success, failed)
254      * @throws DoesNotExistException     the SeatPoolDefinition does not exist
255      * @throws InvalidParameterException One or more parameters invalid
256      * @throws MissingParameterException One or more parameters missing
257      * @throws OperationFailedException  unable to complete request
258      * @throws PermissionDeniedException authorization failure
259      */
260     public StatusInfo deleteBatchJobResult(@WebParam(name = "batchJobResultId") String batchJobResultId,
261             @WebParam(name = "context") ContextInfo context)
262             throws DoesNotExistException, InvalidParameterException,
263             MissingParameterException, OperationFailedException, PermissionDeniedException;
264 
265     /**
266      * Validates a BatchJobResult. Depending on the value of validationType,
267      * this validation could be limited to tests on just the current object and
268      * its directly contained sub-objects or expanded to perform all tests
269      * related to this object. If an identifier is present for the academic
270      * calendar and a record is found for that identifier, the validation checks
271      * if the academic calendar can be shifted to the new values. If a record
272      * cannot be found for the identifier, it is assumed that the record does
273      * not exist and as such, the checks performed will be much shallower,
274      * typically mimicking those performed by setting the validationType to the
275      * current object. This is a slightly different pattern from the standard
276      * validation as the caller provides the identifier in the create statement
277      * instead of the server assigning an identifier.
278      *
279      * @param validationType     Identifier of the extent of validation
280      * @param batchJobResultInfo the batchJobResult information to be tested.
281      * @param context            Context information containing the principalId and locale
282      *                           information about the caller of service operation
283      * @return the results from performing the validation
284      * @throws DoesNotExistException     validationTypeKey not found
285      * @throws InvalidParameterException invalid validationTypeKey, batchJobResultInfo
286      * @throws MissingParameterException missing validationTypeKey, batchJobResultInfo
287      * @throws OperationFailedException  unable to complete request
288      */
289     public List<ValidationResultInfo> validateBatchJobResult(@WebParam(name = "validationType") String validationType,
290             @WebParam(name = "batchJobResultInfo") BatchJobResultInfo batchJobResultInfo,
291             @WebParam(name = "context") ContextInfo context)
292             throws DoesNotExistException, InvalidParameterException,
293             MissingParameterException, OperationFailedException;
294 
295     ////
296     //// items
297     ////
298     /**
299      * Retrieves a list of result items associated with the batch job result id
300      *
301      * @param batchJobResultId Unique Ids of the rollover results for which the items are to be fetched
302      * @param context           Context information containing the principalId and locale
303      *                          information about the caller of service operation
304      * @throws DoesNotExistException     batchJobResultId in the list not found
305      * @throws InvalidParameterException invalid parameter
306      * @throws MissingParameterException missing parameter
307      * @throws OperationFailedException  unable to complete request
308      * @throws PermissionDeniedException authorization failure
309      */
310     public List<BatchJobResultItemInfo> getBatchJobResultItemsByResultId(@WebParam(name = "batchJobResultId") String batchJobResultId,
311             @WebParam(name = "context") ContextInfo context)
312             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
313             OperationFailedException, PermissionDeniedException;
314 
315     /**
316      * Retrieves a list of result item ids associated with a particular batch job
317      * result type and a source id.
318      * 
319      * This would allows you to get all the result items associated with a particular course offering 
320      * that has been rolled over.
321      *
322      * @param batchJobResultTypeKey Unique Ids of the rollover results for which the items are to be fetched
323      * @param sourceId source id to be matched
324      * @param context           Context information containing the principalId and locale
325      *                          information about the caller of service operation
326      * @throws DoesNotExistException     batchJobResultId in the list not found
327      * @throws InvalidParameterException invalid parameter
328      * @throws MissingParameterException missing parameter
329      * @throws OperationFailedException  unable to complete request
330      * @throws PermissionDeniedException authorization failure
331      */
332     public List<String> getBatchJobResultItemIdsByResultTypeAndSourceId(@WebParam(name = "batchJobResultTypeKey") String batchJobResultTypeKey,
333             @WebParam(name = "sourceId") String sourceId,
334             @WebParam(name = "context") ContextInfo context)
335             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
336             OperationFailedException, PermissionDeniedException;
337 
338     
339      /**
340      * Retrieves a list of result item ids associated with a particular batch job
341      * result type and a source id.
342      * 
343      * This would allows you to get all the result items associated with a particular course offering 
344      * that has been created via a rolled over.
345      *
346      * @param batchJobResultTypeKey Unique Ids of the rollover results for which the items are to be fetched
347      * @param targetId target id to be matched
348      * @param context           Context information containing the principalId and locale
349      *                          information about the caller of service operation
350      * @throws DoesNotExistException     batchJobResultId in the list not found
351      * @throws InvalidParameterException invalid parameter
352      * @throws MissingParameterException missing parameter
353      * @throws OperationFailedException  unable to complete request
354      * @throws PermissionDeniedException authorization failure
355      */
356     public List<String> getBatchJobResultItemIdsByResultTypeAndTargetId(@WebParam(name = "batchJobResultTypeKey") String batchJobResultTypeKey,
357             @WebParam(name = "targetId") String targetId,
358             @WebParam(name = "context") ContextInfo context)
359             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
360             OperationFailedException, PermissionDeniedException;
361     /**
362      * Retrieve information about a BatchJobResultItem
363      *
364      * @param batchJobResultItemId Unique Id of the BatchJobResultItem
365      * @param context          Context information containing the principalId and locale
366      *                         information about the caller of service operation
367      * @throws DoesNotExistException     batchJobResultItemId not found
368      * @throws InvalidParameterException invalid parameter
369      * @throws MissingParameterException missing parameter
370      * @throws OperationFailedException  unable to complete request
371      * @throws PermissionDeniedException authorization failure
372      */
373     public BatchJobResultItemInfo getBatchJobResultItem(@WebParam(name = "batchJobResultItemId") String batchJobResultItemId,
374             @WebParam(name = "context") ContextInfo context)
375             throws DoesNotExistException, InvalidParameterException,
376             MissingParameterException, OperationFailedException, PermissionDeniedException;
377 
378     /**
379      * Retrieves a list of batch job result items by id list.
380      *
381      * @param batchJobResultItemIds List of unique Ids of BatchJobResultItem
382      * @param context           Context information containing the principalId and locale
383      *                          information about the caller of service operation
384      * @throws DoesNotExistException     batchJobResultItemId in the list not found
385      * @throws InvalidParameterException invalid batchJobResultItemIds
386      * @throws MissingParameterException missing batchJobResultItemIds
387      * @throws OperationFailedException  unable to complete request
388      * @throws PermissionDeniedException authorization failure
389      */
390     public List<BatchJobResultItemInfo> getBatchJobResultItemsByIds(@WebParam(name = "batchJobResultItemIds") List<String> batchJobResultItemIds,
391             @WebParam(name = "context") ContextInfo context)
392             throws DoesNotExistException, InvalidParameterException, MissingParameterException,
393             OperationFailedException, PermissionDeniedException;
394 
395     /**
396      * Creates a new BatchJobResultItem
397      * 
398      * @param batchJobResultId     Id of the corresponding batch job result
399      * @param batchJobResultItemTypeKey     batch job result type key
400      * @param batchJobResultItemInfo    object to be created
401      * @param context      Context information containing the principalId and locale
402      *                     information about the caller of service operation
403      * @return newly created BatchJobResultItemInfo
404      * @throws DoesNotExistException        termId or batchJobResultItemTypeKey not found
405      * @throws DataValidationErrorException One or more values invalid for this operation
406      * @throws InvalidParameterException    One or more parameters invalid
407      * @throws MissingParameterException    One or more parameters missing
408      * @throws OperationFailedException     unable to complete request
409      * @throws PermissionDeniedException    authorization failure
410      */
411     public BatchJobResultItemInfo createBatchJobResultItem(@WebParam(name = "batchJobResultId") String batchJobResultId,
412             @WebParam(name = "batchJobResultItemTypeKey") String batchJobResultItemTypeKey,
413             @WebParam(name = "batchJobResultItemInfo") BatchJobResultItemInfo batchJobResultItemInfo,
414             @WebParam(name = "context") ContextInfo context)
415             throws DoesNotExistException, DataValidationErrorException, InvalidParameterException,
416             MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
417 
418     /**
419      * Bulk create of  BatchJobResultItems
420      * All must be for the same result but the types may vary.
421      * 
422      * @param batchJobResultId     Id of the corresponding batch job result
423      * @param batchJobResultItemInfos    objects to be created
424      * @param context      Context information containing the principalId and locale
425      *                     information about the caller of service operation
426      * @return count of number of items created
427      * @throws DoesNotExistException        termId or batchJobResultItemTypeKey not found
428      * @throws DataValidationErrorException One or more values invalid for this operation
429      * @throws InvalidParameterException    One or more parameters invalid
430      * @throws MissingParameterException    One or more parameters missing
431      * @throws OperationFailedException     unable to complete request
432      * @throws PermissionDeniedException    authorization failure
433      */
434     public Integer createBatchJobResultItems(@WebParam(name = "batchJobResultId") String batchJobResultId,
435             @WebParam(name = "batchJobResultItemInfos") List<BatchJobResultItemInfo> batchJobResultItemInfos,
436             @WebParam(name = "context") ContextInfo context)
437             throws DoesNotExistException, DataValidationErrorException, InvalidParameterException,
438             MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
439 
440     /**
441      * Updates an existing BatchJobResultItem.
442      *
443      * @param batchJobResultItemId   Id of BatchJobResultItem to be updated
444      * @param batchJobResultItemInfo Details of updates to the BatchJobResultItem
445      * @param context            Context information containing the principalId and locale
446      *                           information about the caller of service operation
447      * @return updated BatchJobResultItem
448      * @throws DataValidationErrorException One or more values invalid for this operation
449      * @throws DoesNotExistException      the BatchJobResultItem does not exist
450      * @throws InvalidParameterException    One or more parameters invalid
451      * @throws MissingParameterException    One or more parameters missing
452      * @throws OperationFailedException     unable to complete request
453      * @throws PermissionDeniedException    authorization failure
454      * @throws VersionMismatchException     The action was attempted on an out of date version.
455      */
456     public BatchJobResultItemInfo updateBatchJobResultItem(@WebParam(name = "batchJobResultItemId") String batchJobResultItemId,
457             @WebParam(name = "batchJobResultItemInfo") BatchJobResultItemInfo batchJobResultItemInfo,
458             @WebParam(name = "context") ContextInfo context)
459             throws DataValidationErrorException, DoesNotExistException, InvalidParameterException,
460             MissingParameterException, OperationFailedException, PermissionDeniedException,
461             ReadOnlyException, VersionMismatchException;
462 
463     /**
464      * Updates the state of an existing BatchJobResultItem to another state
465      * provided that it is valid to do so.
466      *
467      * @param batchJobResultItemId   identifier of the BatchJobResultItem to be
468      *                               updated
469      * @param nextStateKey       The State Key into which the identified
470      *                           BatchJobResultItem will be placed if the
471      *                           operation succeeds.
472      * @param contextInfo        Context information containing the principalId
473      *                           and locale information about the caller of
474      *                           service operation
475      * @return status of the operation (success, failed)
476      * @throws DoesNotExistException     the identified BatchJobResultItem does
477      *                                   not exist
478      * @throws InvalidParameterException the contextInfo object is invalid
479      * @throws MissingParameterException One or more parameters missing
480      * @throws OperationFailedException  unable to complete request
481      * @throws PermissionDeniedException authorization failure
482      */
483     public StatusInfo changeBatchJobResultItemState(@WebParam(name = "batchJobResultItemId") String batchJobResultItemId, @WebParam(name = "nextStateKey") String nextStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
484 
485     /**
486      * Deletes an existing BatchJobResultItem. 
487      *
488      * @param batchJobResultItemId the Id of the ActivityOffering to be deleted
489      * @param context          Context information containing the principalId and locale
490      *                         information about the caller of service operation
491      * @return status of the operation (success, failed)
492      * @throws DoesNotExistException     the SeatPoolDefinition does not exist
493      * @throws InvalidParameterException One or more parameters invalid
494      * @throws MissingParameterException One or more parameters missing
495      * @throws OperationFailedException  unable to complete request
496      * @throws PermissionDeniedException authorization failure
497      */
498     public StatusInfo deleteBatchJobResultItem(@WebParam(name = "batchJobResultItemId") String batchJobResultItemId,
499             @WebParam(name = "context") ContextInfo context)
500             throws DoesNotExistException, InvalidParameterException,
501             MissingParameterException, OperationFailedException, PermissionDeniedException;
502 
503     /**
504      * Validates a BatchJobResultItem. Depending on the value of validationType,
505      * this validation could be limited to tests on just the current object and
506      * its directly contained sub-objects or expanded to perform all tests
507      * related to this object. If an identifier is present for the academic
508      * calendar and a record is found for that identifier, the validation checks
509      * if the academic calendar can be shifted to the new values. If a record
510      * cannot be found for the identifier, it is assumed that the record does
511      * not exist and as such, the checks performed will be much shallower,
512      * typically mimicking those performed by setting the validationType to the
513      * current object. This is a slightly different pattern from the standard
514      * validation as the caller provides the identifier in the create statement
515      * instead of the server assigning an identifier.
516      *
517      * @param validationType     Identifier of the extent of validation
518      * @param batchJobResultItemInfo the batchJobResultItem information to be tested.
519      * @param context            Context information containing the principalId and locale
520      *                           information about the caller of service operation
521      * @return the results from performing the validation
522      * @throws DoesNotExistException     validationTypeKey not found
523      * @throws InvalidParameterException invalid validationTypeKey, batchJobResultItemInfo
524      * @throws MissingParameterException missing validationTypeKey, batchJobResultItemInfo
525      * @throws OperationFailedException  unable to complete request
526      */
527     public List<ValidationResultInfo> validateBatchJobResultItem(@WebParam(name = "validationType") String validationType,
528             @WebParam(name = "batchJobResultItemInfo") BatchJobResultItemInfo batchJobResultItemInfo,
529             @WebParam(name = "context") ContextInfo context)
530             throws DoesNotExistException, InvalidParameterException,
531             MissingParameterException, OperationFailedException;
532 }