View Javadoc

1   /*
2    * Copyright 2012 The Kuali Foundation 
3    *
4    * Licensed under the Educational Community License, Version 1.0 (the
5    * "License"); you may not use this file except in compliance with the
6    * 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
13   * implied. See the License for the specific language governing
14   * permissions and limitations under the License.
15   */
16  
17  package org.kuali.student.enrollment.roster.service;
18  
19  import java.util.List;
20  
21  import javax.jws.WebParam;
22  import javax.jws.WebService;
23  import javax.jws.soap.SOAPBinding;
24  
25  import org.kuali.rice.core.api.criteria.QueryByCriteria;
26  import org.kuali.student.enrollment.roster.dto.LprRosterEntryInfo;
27  import org.kuali.student.enrollment.roster.dto.LprRosterInfo;
28  import org.kuali.student.r2.common.dto.ContextInfo;
29  import org.kuali.student.r2.common.dto.StatusInfo;
30  import org.kuali.student.r2.common.dto.ValidationResultInfo;
31  
32  import org.kuali.student.r2.common.exceptions.DataValidationErrorException;
33  import org.kuali.student.r2.common.exceptions.DoesNotExistException;
34  import org.kuali.student.r2.common.exceptions.InvalidParameterException;
35  import org.kuali.student.r2.common.exceptions.MissingParameterException;
36  import org.kuali.student.r2.common.exceptions.OperationFailedException;
37  import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
38  import org.kuali.student.r2.common.exceptions.ReadOnlyException;
39  import org.kuali.student.r2.common.exceptions.VersionMismatchException;
40  
41  import org.kuali.student.r2.common.util.constants.LprRosterServiceConstants;
42  
43  /**
44   * The LprRoster service maintains ordered collections of Lprs for
45   * various applications such as waitlists and grading sheets.
46   * @version 0.0.7
47   */
48  
49  @WebService(name = "LprRosterService", serviceName = "LprRosterService", portName = "LprRosterService", targetNamespace = LprRosterServiceConstants.NAMESPACE)
50  @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
51  
52  public interface LprRosterService {
53  
54      /**
55       * Retrieves a single LprRoster by an LprRoster Id.
56       *
57       * @param lprRosterId the identifier for the LprRoster to be retrieved
58       * @param contextInfo information containing the principalId and
59       *        locale information about the caller of the service
60       *        operation
61       * @return the LprRoster requested
62       * @throws DoesNotExistException lprRosterId is not found
63       * @throws InvalidParameterException contextInfo is not valid
64       * @throws MissingParameterException lprRosterId or contextInfo is
65       *         missing or null
66       * @throws OperationFailedException unable to complete request
67       * @throws PermissionDeniedException an authorization failure occurred
68       */
69      public LprRosterInfo getLprRoster(@WebParam(name = "lprRosterId") String lprRosterId,
70                                        @WebParam(name = "contextInfo") ContextInfo contextInfo)
71          throws DoesNotExistException,
72                 InvalidParameterException,
73                 MissingParameterException,
74                 OperationFailedException,
75                 PermissionDeniedException;
76  
77      /**
78       * Retrieve a list of LprRosters from a list of LprRoster Ids. The
79       * returned list may be in any order and if duplicate Ids are
80       * supplied, a unique set may or may not ber returned.
81       *
82       * @param lprRosterIds a list of LprRoster identifiers
83       * @param contextInfo information containing the principalId and
84       *        locale information about the caller of the service
85       *        operation
86       * @return a list of LprRosters
87       * @throws DoesNotExistException a lprRosterId in the list was not found
88       * @throws InvalidParameterException contextInfo is not valid
89       * @throws MissingParameterException lprRosterIds, an Id in
90       *         lprRosterIds, or contextInfo is missing or null
91       * @throws OperationFailedException unable to complete request
92       * @throws PermissionDeniedException an authorization failure occurred
93       */
94      public List<LprRosterInfo> getLprRostersByIds(@WebParam(name = "lprRosterIds") List<String> lprRosterIds,
95                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
96          throws DoesNotExistException,
97                 InvalidParameterException,
98                 MissingParameterException,
99                 OperationFailedException,
100                PermissionDeniedException;
101 
102     /**
103      * Retrieve a list of LprRosterIds by LprRoster Type.
104      *
105      * @param lprRosterTypeKey an identifier for an LprRoster Type
106      * @param contextInfo information containing the principalId and
107      *        locale information about the caller of the service
108      *        operation
109      * @return a list of LprRosters identifiers matching
110      *         lprRosterTypeKey or an empty list of none found
111      * @throws InvalidParameterException contextInfo is not valid
112      * @throws MissingParameterException lprRosterTypeKey
113      *         or contextInfo is missing or null
114      * @throws OperationFailedException unable to complete request
115      * @throws PermissionDeniedException an authorization failure occurred
116      */
117     public List<String> getLprRosterIdsByType(@WebParam(name = "lprRosterTypeKey") String lprRosterTypeKey,
118                                               @WebParam(name = "contextInfo") ContextInfo contextInfo)
119         throws InvalidParameterException,
120                MissingParameterException,
121                OperationFailedException,
122                PermissionDeniedException;
123 
124     /**
125      * Gets a list of LprRosters associated with a given Lui. 
126      *
127      * @param luiId an identifier for a LUI
128      * @param contextInfo information containing the principalId and
129      *        locale information about the caller of the service
130      *        operation
131      * @return list of LprRosters associated with the given Lui or
132      *         an empty list if none found 
133      * @throws InvalidParameterException contextInfo is not valid
134      * @throws MissingParameterException luiId
135      *         or contextInfo is missing or null
136      * @throws OperationFailedException unable to complete request
137      * @throws PermissionDeniedException an authorization failure occurred
138      */
139     public List<LprRosterInfo> getLprRostersByLui(@WebParam(name = "luiId") String luiId,
140                                                   @WebParam(name = "contextInfo") ContextInfo contextInfo)
141         throws InvalidParameterException,
142                MissingParameterException,
143                OperationFailedException,
144                PermissionDeniedException;
145 
146     /**
147      * Gets a list of LprRosters associated with a given LprRoster
148      * Type and Lui.
149      *
150      * @param lprRosterTypeKey an identifier for an LprRoster Type
151      * @param luiId an identifier for a Lui
152      * @param contextInfo information containing the principalId and
153      *        locale information about the caller of the service
154      *        operation
155      * @return list of LprRosters of the given LprRoster Type and
156      *         associated with the given Lui or an empty list if none
157      *         found
158      * @throws InvalidParameterException contextInfo is not valid
159      * @throws MissingParameterException lprRosterTypeKey, luiId or
160      *         contextInfo is missing or null
161      * @throws OperationFailedException unable to complete request
162      * @throws PermissionDeniedException an authorization failure occurred
163      */
164     public List<LprRosterInfo> getLprRostersByTypeAndLui(@WebParam(name = "lprRosterTypeKey") String lprRosterTypeKey,
165                                                          @WebParam(name = "luiId") String luiId,
166                                                          @WebParam(name = "contextInfo") ContextInfo contextInfo)
167         throws InvalidParameterException,
168                MissingParameterException,
169                OperationFailedException,
170                PermissionDeniedException;
171 
172     /**
173      * Searches for LprRosters that meet the given search criteria.
174      *
175      * @param criteria the search criteria
176      * @param contextInfo information containing the principalId and
177      *        locale information about the caller of the service
178      *        operation
179      * @return a list of LprRoster identifiers matching the criteria
180      * @throws InvalidParameterException criteria or contextInfo is
181      *         not valid
182      * @throws MissingParameterException criteria or or contextInfo is
183      *         missing or null
184      * @throws OperationFailedException unable to complete request
185      * @throws PermissionDeniedException an authorization failure occurred
186      */
187     public List<String> searchForLprRosterIds(@WebParam(name = "criteria") QueryByCriteria criteria,
188                                               @WebParam(name = "contextInfo") ContextInfo contextInfo)
189         throws InvalidParameterException,
190                MissingParameterException,
191                OperationFailedException,
192                PermissionDeniedException;
193 
194     /**
195      * Searches for LprRosters that meet the given search criteria.
196      *
197      * @param criteria the search criteria
198      * @param contextInfo information containing the principalId and
199      *        locale information about the caller of the service
200      *        operation
201      * @return a list of LprRosters matching the criteria
202      * @throws InvalidParameterException criteria or contextInfo is
203      *         not valid
204      * @throws MissingParameterException criteria or or contextInfo is
205      *         missing or null
206      * @throws OperationFailedException unable to complete request
207      * @throws PermissionDeniedException an authorization failure occurred
208      */
209     public List<LprRosterInfo> searchForLprRosters(@WebParam(name = "criteria") QueryByCriteria criteria,
210                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
211         throws InvalidParameterException,
212                MissingParameterException,
213                OperationFailedException,
214                PermissionDeniedException;
215 
216     /**
217      * Validates an LprRoster. Depending on the value of
218      * validationType, this validation could be limited to tests on
219      * just the current LprRoster and its directly contained
220      * sub-objects or expanded to perform all tests related to this
221      * LprRoster. If an identifier is present for the LprRoster
222      * (and/or one of its contained sub-objects) and a record is found
223      * for that identifier, the validation checks if the LprRoster can
224      * be updated to the new values. If an identifier is not present
225      * or a record does not exist, the validation checks if the
226      * LprRoster with the given data can be created.
227      *
228      * @param validationTypeKey the identifier for the validation Type
229      * @param lprRosterTypeKey the identifier for the LprRoster Type
230      *        to be validated
231      * @param lprRosterInfo the LprRoster to be validated
232      * @param contextInfo information containing the principalId and
233      *        locale information about the caller of the service
234      *        operation
235      * @return a list of validation results or an empty list if
236      *         validation succeeded
237      * @throws DoesNotExistException validationTypeKey or
238      *         lprRosterTypeKey is not found
239      * @throws InvalidParameterException lprRosterInfo or contextInfo
240      *         is not valid
241      * @throws MissingParameterException validationTypeKey,
242      *         lprRosterTypeKey, lprRosterInfo, or contextInfo is
243      *         missing or null
244      * @throws OperationFailedException unable to complete request
245      * @throws PermissionDeniedException an authorization failure occurred
246      */
247     public List<ValidationResultInfo> validateLprRoster(@WebParam(name = "validationTypeKey") String validationTypeKey,
248                                                         @WebParam(name = "lprRosterTypeKey") String lprRosterTypeKey,
249                                                         @WebParam(name = "lprRosterInfo") LprRosterInfo lprRosterInfo,
250                                                         @WebParam(name = "contextInfo") ContextInfo contextInfo)
251         throws DoesNotExistException,
252                InvalidParameterException,
253                MissingParameterException,
254                OperationFailedException,
255                PermissionDeniedException;
256 
257     /**
258      * Creates a new LprRoster. The LprRoster Id, Type, and Meta
259      * information may not be set in the supplied data object.
260      *
261      * @param lprRosterTypeKey the identifier for the Type of
262      *        LprRoster to be created
263      * @param lprRosterInfo the data with which to create the
264      *        LprRoster
265      * @param contextInfo information containing the principalId and
266      *        locale information about the caller of the service
267      *        operation
268      * @return the new LprRoster
269      * @throws DataValidationErrorException supplied data is invalid
270      * @throws DoesNotExistException lprRosterTypeKey does not exist
271      *         or is not supported
272      * @throws InvalidParameterException lprRosterInfo or contextInfo
273      *         is not valid
274      * @throws MissingParameterException lprRosterTypeKey,
275      *         lprRosterInfo, or contextInfo is missing or null
276      * @throws OperationFailedException unable to complete request
277      * @throws PermissionDeniedException an authorization failure occurred
278      * @throws ReadOnlyException an attempt at supplying information
279      *         designated as read only
280      */
281     public LprRosterInfo createLprRoster(@WebParam(name = "lprRosterTypeKey") String lprRosterTypeKey,
282                                          @WebParam(name = "lprRosterInfo") LprRosterInfo lprRosterInfo,
283                                          @WebParam(name = "contextInfo") ContextInfo contextInfo)
284         throws DataValidationErrorException,
285                DoesNotExistException,
286                InvalidParameterException,
287                MissingParameterException,
288                OperationFailedException,
289                PermissionDeniedException,
290                ReadOnlyException;
291 
292     /**
293      * Updates an existing LprRoster. The LprRoster Id, Type, and Meta
294      * information may not be changed.
295      *
296      * @param lprRosterId the identifier for the LprRoster to be
297      *        updated
298      * @param lprRosterInfo the new data for the LprRoster
299      * @param contextInfo information containing the principalId and
300      *        locale information about the caller of the service
301      *        operation
302      * @return the updated LprRoster
303      * @throws DataValidationErrorException supplied data is invalid
304      * @throws DoesNotExistException lprRosterId is not found
305      * @throws InvalidParameterException lprRosterInfo or contextInfo
306      *         is not valid
307      * @throws MissingParameterException lprRosterId, lprRosterInfo,
308      *         or contextInfo is missing or null
309      * @throws OperationFailedException unable to complete request
310      * @throws PermissionDeniedException an authorization failure occurred
311      * @throws ReadOnlyException an attempt at supplying information
312      *         designated as read only
313      * @throws VersionMismatchException an optimistic locking failure
314      *         or the action was attempted on an out of date version
315      */
316     public LprRosterInfo updateLprRoster(@WebParam(name = "lprRosterId") String lprRosterId,
317                                          @WebParam(name = "lprRosterInfo") LprRosterInfo lprRosterInfo,
318                                          @WebParam(name = "contextInfo") ContextInfo contextInfo)
319         throws DataValidationErrorException,
320                DoesNotExistException,
321                InvalidParameterException,
322                MissingParameterException,
323                OperationFailedException,
324                PermissionDeniedException,
325                ReadOnlyException,
326                VersionMismatchException;
327 
328     /**
329      * Deletes an existing LprRoster.
330      *
331      * @param lprRosterId the identifier for the LprRoster to be deleted
332      * @param contextInfo information containing the principalId and
333      *        locale information about the caller of the service
334      *        operation
335      * @return the status of the delete operation. This must always be
336      *         true.
337      * @throws DoesNotExistException lprRosterId is not found
338      * @throws InvalidParameterException contextInfo is not valid
339      * @throws MissingParameterException lprRosterId or contextInfo is
340      *         missing or null
341      * @throws OperationFailedException unable to complete request
342      * @throws PermissionDeniedException authorization failure
343      */
344     public StatusInfo deleteLprRoster(@WebParam(name = "lprRosterId") String lprRosterId,
345                                       @WebParam(name = "contextInfo") ContextInfo contextInfo)
346         throws DoesNotExistException,
347                InvalidParameterException,
348                MissingParameterException,
349                OperationFailedException,
350                PermissionDeniedException;
351 
352     /**
353      * Retrieves a single LprRosterEntry by an LprRosterEntry Id.
354      *
355      * @param lprRosterEntryId the identifier for the LprRosterEntry to be retrieved
356      * @param contextInfo information containing the principalId and
357      *        locale information about the caller of the service
358      *        operation
359      * @return the LprRosterEntry requested
360      * @throws DoesNotExistException lprRosterEntryId is not found
361      * @throws InvalidParameterException contextInfo is not valid
362      * @throws MissingParameterException lprRosterEntryId or
363      *         contextInfo is missing or null
364      * @throws OperationFailedException unable to complete request
365      * @throws PermissionDeniedException an authorization failure occurred
366      */
367     public LprRosterEntryInfo getLprRosterEntry(@WebParam(name = "lprRosterEntryId") String lprRosterEntryId,
368                                                 @WebParam(name = "contextInfo") ContextInfo contextInfo)
369         throws DoesNotExistException,
370                InvalidParameterException,
371                MissingParameterException,
372                OperationFailedException,
373                PermissionDeniedException;
374 
375     /**
376      * Retrieve a list of LprRosterEntriess from a list of
377      * LprRosterEntry Ids. The returned list may be in any order and
378      * if duplicate Ids are supplied, a unique set may or may not ber
379      * returned.
380      *
381      * @param lprRosterEntryIds a list of LprRosterEntry identifiers
382      * @param contextInfo information containing the principalId and
383      *        locale information about the caller of the service
384      *        operation
385      * @return a list of LprRosterEntries
386      * @throws DoesNotExistException a lprRosterEntryId in the list
387      *         was not found
388      * @throws InvalidParameterException contextInfo is not valid
389      * @throws MissingParameterException lprRosterEntryIds, an Id in
390      *         lprRosterIds, or contextInfo is missing or null
391      * @throws OperationFailedException unable to complete request
392      * @throws PermissionDeniedException an authorization failure occurred
393      */
394     public List<LprRosterEntryInfo> getLprRosterEntriesByIds(@WebParam(name = "lprRosterEntryIds") List<String> lprRosterEntryIds,
395                                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
396         throws DoesNotExistException,
397                InvalidParameterException,
398                MissingParameterException,
399                OperationFailedException,
400                PermissionDeniedException;
401 
402     /**
403      * Retrieve a list of LprRosterENtryIds by LprRosterEntry Type.
404      *
405      * @param lprRosterEntryTypeKey an identifier for an
406      *        LprRosterEntry Type
407      * @param contextInfo information containing the principalId and
408      *        locale information about the caller of the service
409      *        operation
410      * @return a list of LprRosterEntries identifiers matching
411      *         lprRosterEntryTypeKey or an empty list of none found
412      * @throws InvalidParameterException contextInfo is not valid
413      * @throws MissingParameterException lprRosterEntryTypeKey
414      *         or contextInfo is missing or null
415      * @throws OperationFailedException unable to complete request
416      * @throws PermissionDeniedException an authorization failure occurred
417      */
418     public List<String> getLprRosterEntryIdsByType(@WebParam(name = "lprRosterEntryTypeKey") String lprRosterEntryTypeKey,
419                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
420         throws InvalidParameterException,
421                MissingParameterException,
422                OperationFailedException,
423                PermissionDeniedException;
424 
425     /**
426      * This method returns all the LprRosterEntries for an LprRoster.
427      * The returned list will be ordered by LprRosterEntryInfo.position starting with position 1.
428      *
429      * @param lprRosterId an identifier for an LprRoster
430      * @param contextInfo information containing the principalId and
431      *        locale information about the caller of the service
432      *        operation
433      * @return a list of LprRosterEntries identifiers for the given
434      *         LprRoster or an empty list of none found
435      * @throws InvalidParameterException contextInfo is not valid
436      * @throws MissingParameterException lprRosterId or contextInfo is
437      *         missing or null
438      * @throws OperationFailedException unable to complete request
439      * @throws PermissionDeniedException an authorization failure occurred
440      */
441     public List<LprRosterEntryInfo> getLprRosterEntriesByLprRoster(@WebParam(name = "lprRosterId") String lprRosterId,
442                                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
443         throws InvalidParameterException,
444                MissingParameterException,
445                OperationFailedException,
446                PermissionDeniedException;
447 
448     /**
449      * This method returns all the LprRosterEntries for an LPR.
450      *
451      * @param lprId an identifier for an Lpr
452      * @param contextInfo information containing the principalId and
453      *        locale information about the caller of the service
454      *        operation
455      * @return a list of LprRosterEntries identifiers for the given
456      *         Lpr or an empty list of none found
457      * @throws InvalidParameterException contextInfo is not valid
458      * @throws MissingParameterException lprId or contextInfo is
459      *         missing or null
460      * @throws OperationFailedException unable to complete request
461      * @throws PermissionDeniedException an authorization failure occurred
462      */
463     public List<LprRosterEntryInfo> getLprRosterEntriesByLpr(@WebParam(name = "lprId") String lprId,
464                                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
465         throws InvalidParameterException,
466                MissingParameterException,
467                OperationFailedException,
468                PermissionDeniedException;
469 
470     /**
471      * This method returns all the LprRosterEntries to the given
472      * LprRoster and Lpr.
473      *
474      * @param lprRosterId an identifier for an LprRoster
475      * @param lprId an identifier for an Lpr
476      * @param contextInfo information containing the principalId and
477      *        locale information about the caller of the service
478      *        operation
479      * @return a list of LprRosterEntries identifiers for the given
480      *         LprRoster and Lpr or an empty list of none found
481      * @throws InvalidParameterException contextInfo is not valid
482      * @throws MissingParameterException lprRosterId, lprId, or
483      *         contextInfo is missing or null
484      * @throws OperationFailedException unable to complete request
485      * @throws PermissionDeniedException an authorization failure occurred
486      */
487     public List<LprRosterEntryInfo> getLprRosterEntriesByLprRosterAndLpr(@WebParam(name = "lprRosterId") String lprRosterId,
488                                                                           @WebParam(name = "lprId") String lprId,
489                                                                           @WebParam(name = "contextInfo") ContextInfo contextInfo)
490         throws InvalidParameterException,
491                MissingParameterException,
492                OperationFailedException,
493                PermissionDeniedException;
494 
495     /**
496      * Searches for LprRosterEntries that meet the given search
497      * criteria.
498      *
499      * @param criteria the search criteria
500      * @param contextInfo information containing the principalId and
501      *        locale information about the caller of the service
502      *        operation
503      * @return a list of LprRosterEntry identifiers matching the
504      *         criteria
505      * @throws InvalidParameterException criteria or contextInfo is
506      *         not valid
507      * @throws MissingParameterException criteria or or contextInfo is
508      *         missing or null
509      * @throws OperationFailedException unable to complete request
510      * @throws PermissionDeniedException an authorization failure occurred
511      */
512     public List<String> searchForLprRosterEntryIds(@WebParam(name = "criteria") QueryByCriteria criteria,
513                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
514         throws InvalidParameterException,
515                MissingParameterException,
516                OperationFailedException,
517                PermissionDeniedException;
518 
519     /**
520      * Searches for LprRosterEntris that meet the given search
521      * criteria.
522      *
523      * @param criteria the search criteria
524      * @param contextInfo information containing the principalId and
525      *        locale information about the caller of the service
526      *        operation
527      * @return a list of LprRosterEntries matching the criteria
528      * @throws InvalidParameterException criteria or contextInfo is
529      *         not valid
530      * @throws MissingParameterException criteria or or contextInfo is
531      *         missing or null
532      * @throws OperationFailedException unable to complete request
533      * @throws PermissionDeniedException an authorization failure occurred
534      */
535     public List<LprRosterEntryInfo> searchForLprRosterEntries(@WebParam(name = "criteria") QueryByCriteria criteria,
536                                                               @WebParam(name = "contextInfo") ContextInfo contextInfo)
537         throws InvalidParameterException,
538                MissingParameterException,
539                OperationFailedException,
540                PermissionDeniedException;
541 
542     /**
543      * Validates an LprRosterEntry. Depending on the value of
544      * validationType, this validation could be limited to tests on
545      * just the current LprRosterEntry and its directly contained
546      * sub-objects or expanded to perform all tests related to this
547      * LprRosterEntry. If an identifier is present for the
548      * LprRosterEntry (and/or one of its contained sub-objects) and a
549      * record is found for that identifier, the validation checks if
550      * the LprRosterEntry can be updated to the new values. If an
551      * identifier is not present or a record does not exist, the
552      * validation checks if the LprRosterEntry with the given data can
553      * be created.
554      *
555      * @param validationTypeKey the identifier for the validation Type
556      * @param lprRosterId the LprRoster of the LprRosterEntry
557      * @param lprId the Lpr of the LprRosterEntry
558      * @param lprRosterEntryTypeKey the identifier for the
559      *        LprRosterEntry Type to be validated
560      * @param lprRosterEntryInfo the LprRosterEntry to be validated
561      * @param contextInfo information containing the principalId and
562      *        locale information about the caller of the service
563      *        operation
564      * @return a list of validation results or an empty list if
565      *         validation succeeded
566      * @throws DoesNotExistException validationTypeKey, lprRosterId,
567      *         or lprId, or lprRosterEntryTypeKey is not found
568      * @throws InvalidParameterException lprRosterEntryInfo or contextInfo
569      *         is not valid
570      * @throws MissingParameterException validationTypeKey,
571      *         lprRosterId, lprId, lprRosterTypeKey, lprRosterInfo, or
572      *         lprRosterEntryInfo, or contextInfo is missing or null
573      * @throws OperationFailedException unable to complete request
574      * @throws PermissionDeniedException an authorization failure occurred
575      */
576     public List<ValidationResultInfo> validateLprRosterEntry(@WebParam(name = "validationTypeKey") String validationTypeKey,
577                                                              @WebParam(name = "lprRosterId") String lprRosterId,
578                                                              @WebParam(name = "lprId") String lprId,
579                                                              @WebParam(name = "lprRosterEntryTypeKey") String lprRosterEntryTypeKey,
580                                                              @WebParam(name = "lprRosterEntryInfo") LprRosterEntryInfo lprRosterEntryInfo,
581                                                              @WebParam(name = "contextInfo") ContextInfo contextInfo)
582         throws DoesNotExistException,
583                InvalidParameterException,
584                MissingParameterException,
585                OperationFailedException,
586                PermissionDeniedException;
587 
588     /**
589      * Creates a new LprRosterEntry. The LprRosterEntry Id,
590      * LprRosterId, Lpr Id, Type, and Meta information may not be set
591      * in the supplied data object.
592      *
593      * @param lprRosterId the LprRoster of the LprRosterEntry
594      * @param lprId the Lpr of the LprRosterEntry
595      * @param lprRosterEntryTypeKey the identifier for the Type of
596      *        LprRosterEntry to be created
597      * @param lprRosterEntryInfo the data with which to create the
598      *        LprRoster
599      * @param contextInfo information containing the principalId and
600      *        locale information about the caller of the service
601      *        operation
602      * @return the new LprRosterEntry
603      * @throws DataValidationErrorException supplied data is invalid
604      * @throws DoesNotExistException lprRosterId, lprId, or
605      *         lprRosterEntryTypeKey does not exist or is not
606      *         supported
607      * @throws InvalidParameterException lprRosterEntryInfo or contextInfo
608      *         is not valid
609      * @throws MissingParameterException lprRosterId, lprId,
610      *         lprRosterEntryTypeKey, lprRosterInfo, or contextInfo is
611      *         missing or null
612      * @throws OperationFailedException unable to complete request
613      * @throws PermissionDeniedException an authorization failure occurred
614      * @throws ReadOnlyException an attempt at supplying information
615      *         designated as read only
616      */
617     public LprRosterEntryInfo createLprRosterEntry(@WebParam(name = "lprRosterId") String lprRosterId,
618                                                    @WebParam(name = "lprId") String lprId,
619                                                    @WebParam(name = "lprRosterEntryTypeKey") String lprRosterEntryTypeKey,
620                                                    @WebParam(name = "lprRosterEntryInfo") LprRosterEntryInfo lprRosterEntryInfo,
621                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
622         throws DataValidationErrorException,
623                DoesNotExistException,
624                InvalidParameterException,
625                MissingParameterException,
626                OperationFailedException,
627                PermissionDeniedException,
628                ReadOnlyException;
629 
630     /**
631      * Updates an existing LprRosterEntry. The LprRosterEntry Id,
632      * Type, and Meta information may not be changed.
633      *
634      * @param lprRosterEntryId the identifier for the LprRosterEntry to
635      *        be updated
636      * @param lprRosterEntryInfo the new data for the LprRosterEntry
637      * @param contextInfo information containing the principalId and
638      *        locale information about the caller of the service
639      *        operation
640      * @return the updated LprRosterEntry
641      * @throws DataValidationErrorException supplied data is invalid
642      * @throws DoesNotExistException lprRosterEntryId is not found
643      * @throws InvalidParameterException lprRosterEntryInfo or
644      *         contextInfo is not valid
645      * @throws MissingParameterException lprRosterEntryId,
646      *         lprRosterEntryInfo, or contextInfo is missing or null
647      * @throws OperationFailedException unable to complete request
648      * @throws PermissionDeniedException an authorization failure occurred
649      * @throws ReadOnlyException an attempt at supplying information
650      *         designated as read only
651      * @throws VersionMismatchException an optimistic locking failure
652      *         or the action was attempted on an out of date version
653      */
654     public LprRosterEntryInfo updateLprRosterEntry(@WebParam(name = "lprRosterEntryId") String lprRosterEntryId,
655                                                    @WebParam(name = "lprRosterEntryInfo") LprRosterEntryInfo lprRosterEntryInfo,
656                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
657         throws DataValidationErrorException,
658                DoesNotExistException,
659                InvalidParameterException,
660                MissingParameterException,
661                OperationFailedException,
662                PermissionDeniedException,
663                ReadOnlyException,
664                VersionMismatchException;
665 
666     /**
667      * Deletes an existing LprRosterEntry.
668      *
669      * @param lprRosterEntryId the identifier for the LprRosterEntry
670      *        to be deleted
671      * @param contextInfo information containing the principalId and
672      *        locale information about the caller of the service
673      *        operation
674      * @return the status of the delete operation. This must always be
675      *         true.
676      * @throws DoesNotExistException lprRosterEntryId is not found
677      * @throws InvalidParameterException contextInfo is not valid
678      * @throws MissingParameterException lprRosterEntryId or
679      *         contextInfo is missing or null
680      * @throws OperationFailedException unable to complete request
681      * @throws PermissionDeniedException authorization failure
682      */
683     public StatusInfo deleteLprRosterEntry(@WebParam(name = "lprRosterEntryId") String lprRosterEntryId,
684                                            @WebParam(name = "contextInfo") ContextInfo contextInfo)
685         throws DoesNotExistException,
686                InvalidParameterException,
687                MissingParameterException,
688                OperationFailedException,
689                PermissionDeniedException;
690 
691     /**
692      * Inserts an existing roster entry at a particular position on
693      * the roster.
694      *
695      * If another roster entry already exists at that particular
696      * position within the roster then this method "bumps down" the
697      * rest of the roster entries until there is an open position.
698      *
699      * @param lprRosterEntryId the id for the lpr roster entry to be moved.
700      * @param position the absolute position in the LprRoster
701      * @param contextInfo information containing the principalId and
702      *        locale information about the caller of the service
703      *        operation
704      * @throws DoesNotExistException lprRosterEntryId is not found
705      * @throws InvalidParameterException contextInfo is not valid
706      * @throws MissingParameterException lprRosterEntryId or
707      *         contextInfo is missing or null
708      * @throws OperationFailedException unable to complete request
709      * @throws PermissionDeniedException an authorization failure occurred
710      */
711     public StatusInfo moveLprRosterEntryToPosition(@WebParam(name = "lprRosterEntryId") String lprRosterEntryId,
712                                                    @WebParam(name = "position") Integer position,
713                                                    @WebParam(name = "contextInfo") ContextInfo contextInfo)
714         throws DoesNotExistException,
715                InvalidParameterException,
716                MissingParameterException,
717                OperationFailedException,
718                PermissionDeniedException;
719 
720     /**
721      * Reorders all the LprRosterEntries setting their position to
722      * match the order within the specified list of LprRosterEntry
723      * Ids.
724      *
725      * This is a bulk method to reset the positions all of the entries
726      * in the LprRoster.
727      *
728      * Any entries in the LprRoster that are not specified in the
729      * supplied list are ordered by their existing position and placed
730      * at the end of the LprRosterEntries in the specified list.
731      *
732      * @param lprRosterId the LprRoster to reorder.  All supplied
733      *        LprRosterEntryIds must belong to the given LprRoster.
734      * @param lprRosterEntryIds an ordered list of LprRosterEntries
735      * @param contextInfo information containing the principalId and
736      *        locale information about the caller of the service
737      *        operation
738      * @throws DoesNotExistException an lprRosterEntryId in the list
739      *         is not found
740      * @throws InvalidParameterException contextInfo is not valid
741      * @throws MissingParameterException lprRosterEntryIds, an Id in
742      *         lprRosterEntryIds, or conetxtInfo is missing or null
743      * @throws OperationFailedException unable to complete request
744      * @throws PermissionDeniedException an authorization failure occurred
745      */
746     public StatusInfo reorderLprRosterEntries(@WebParam(name = "lprRosterId") String lprRosterId,
747                                               @WebParam(name = "lprRosterEntryIds") List<String> lprRosterEntryIds,
748                                               @WebParam(name = "context") ContextInfo contextInfo)
749         throws DoesNotExistException,
750                InvalidParameterException,
751                MissingParameterException,
752                OperationFailedException,
753                PermissionDeniedException;
754 }