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