View Javadoc
1   /**
2    * Copyright 2004-2014 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.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.contract.model.test.source;
17  
18  import java.util.List;
19  
20  import javax.jws.WebParam;
21  import javax.jws.WebService;
22  import javax.jws.soap.SOAPBinding;
23  
24  
25  /**
26   * The Lui Person Relationship (LPR) Service
27   *
28   * Maintains the relationship between a Learning Unit Instance and a Person.
29   * Depending on the type this service maintains relationships such as:<ul>
30   * <li>a student's registration in a course
31   * <li>a student's enrollment in a program (major or minor)
32   * <li>an instructor's assignment to teach a course
33   * <li>a faculty member's assignment as an advisor for a program
34   *  </ul>
35   * 
36   * @version 1.0 (Dev)
37   *
38   * @Author Kamal
39   * @Since Tue Mar 01 15:53:51 PST 2011
40   * @See <a href="https://wiki.kuali.org/display/KULSTU/LUI+Person+Relation+Service">LuiPersonRelationService</>
41   */
42  @WebService(name = "LuiPersonRelationService", targetNamespace = "http://student.kuali.org/wsdl/luiPersonRelation")
43  @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
44  public interface LprService extends TypeService, StateService {
45  
46      /**
47       * Retrieves the Relation for the specified LUI Person Relation
48       *
49       * @param luiPersonRelationId Identifier for the LUI Person Relation
50       * @param context             Context information containing the principalId and locale information about the caller of service operation
51       * @return LUI Person Relation information
52       * @throws DoesNotExistException     luiPersonRelationId not found
53       * @throws InvalidParameterException invalid luiPersonRelationId
54       * @throws MissingParameterException missing luiPersonRelationId
55       * @throws OperationFailedException  unable to complete request
56       * @throws PermissionDeniedException authorization failure
57       */
58      public LprInfo fetchLuiPersonRelation(@WebParam(name = "luiPersonRelationId") String luiPersonRelationId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
59  
60      /**
61       * Retrieves the Relation for the specified list of LUI Person Relation Ids
62       *
63       * @param luiPersonRelationIdList List of identifiers for LUI Person Relations
64       * @param context                 Context information containing the principalId and locale information about the caller of service operation
65       * @return List of LUI Person Relation information
66       * @throws DoesNotExistException     One or more luiPersonRelationIds not found
67       * @throws InvalidParameterException One or more invalid luiPersonRelationIds
68       * @throws MissingParameterException missing luiPersonRelationIdList
69       * @throws OperationFailedException  unable to complete request
70       * @throws PermissionDeniedException authorization failure
71       */
72      public List<LprInfo> findLuiPersonRelationsByIdList(@WebParam(name = "luiPersonRelationIdList") List<String> luiPersonRelationIdList, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
73  
74      /**
75       * Retrieves the LUI Ids for Person related to LUI
76       *
77       * @param personId              Identifier for the LUI Person Relation
78       * @param luiPersonRelationTypeKey Type of LUI Person Relation
79       * @param relationState         Relation State
80       * @param context               Context information containing the principalId and locale information about the caller of service operation
81       * @return Simple list of LUI Ids
82       * @throws DoesNotExistException       personId, luiPersonRelationTypeKey, relationState, person to LUI relationship not found
83       * @throws DisabledIdentifierException personId found, but has been retired
84       * @throws InvalidParameterException   invalid personId, luiPersonRelationTypeKey, relationState
85       * @throws MissingParameterException   missing personId, luiPersonRelationTypeKey, relationState
86       * @throws OperationFailedException    unable to complete request
87       * @throws PermissionDeniedException   authorization failure
88       */
89      public List<String> findLuiIdsRelatedToPerson(@WebParam(name = "personId") String personId, @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey, @WebParam(name = "relationState") String relationState, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DisabledIdentifierException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
90  
91      /**
92       * Retrieves Person Ids related to the specified LUI
93       *
94       * @param luiId                 Identifier for the LUI
95       * @param luiPersonRelationTypeKey Type of LUI Person Relation
96       * @param relationState         Relation State
97       * @param context               Context information containing the principalId and locale information about the caller of service operation
98       * @return Simple list of Person Ids
99       * @throws DoesNotExistException     luiId, luiPersonRelationTypeKey, relationState, LUI to person relationship not found
100      * @throws InvalidParameterException invalid luiId, luiPersonRelationTypeKey, relationState
101      * @throws MissingParameterException missing luiId, luiPersonRelationTypeKey, relationState
102      * @throws OperationFailedException  unable to complete request
103      * @throws PermissionDeniedException authorization failure
104      */
105     public List<String> findPersonIdsRelatedToLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey, @WebParam(name = "relationState") String relationState, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
106 
107     /**
108      * Retrieves Person Relation for LUI
109      *
110      * @param personId Identifier for person
111      * @param luiId    Identifier for LUI
112      * @param context  Context information containing the principalId and locale information about the caller of service operation
113      * @return List of LUI Person Relation info
114      * @throws DoesNotExistException       personId, luiId not found
115      * @throws DisabledIdentifierException personId found, but has been retired
116      * @throws InvalidParameterException   invalid personId, luiId
117      * @throws MissingParameterException   missing personId, luiId
118      * @throws OperationFailedException    unable to complete request
119      * @throws PermissionDeniedException   authorization failure
120      */
121     public List<LprInfo> findLuiPersonRelations(@WebParam(name = "personId") String personId, @WebParam(name = "luiId") String luiId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DisabledIdentifierException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
122 
123     /**
124      * Retrieves LUI Person Relation Ids
125      *
126      * @param personId Identifier for person
127      * @param luiId    Identifier for LUI
128      * @param context  Context information containing the principalId and locale information about the caller of service operation
129      * @return List of LUI Person Relation display info
130      * @throws DoesNotExistException       personId, luiId not found
131      * @throws DisabledIdentifierException personId found, but has been retired
132      * @throws InvalidParameterException   invalid personId, luiId
133      * @throws MissingParameterException   missing personId, luiId
134      * @throws OperationFailedException    unable to complete request
135      * @throws PermissionDeniedException   authorization failure
136      */
137     public List<String> findLuiPersonRelationIds(@WebParam(name = "personId") String personId, @WebParam(name = "luiId") String luiId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DisabledIdentifierException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
138 
139     /**
140      * Retrieves LUI Person Relation for Person
141      *
142      * @param personId Identifier for person
143      * @param context  Context information containing the principalId and locale information about the caller of service operation
144      * @return List of LUI Person Relation info
145      * @throws DoesNotExistException       personId not found
146      * @throws DisabledIdentifierException personId found, but has been retired
147      * @throws InvalidParameterException   invalid personId
148      * @throws MissingParameterException   missing personId
149      * @throws OperationFailedException    unable to complete request
150      * @throws PermissionDeniedException   authorization failure
151      */
152     public List<LprInfo> findLuiPersonRelationsForPerson(@WebParam(name = "personId") String personId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DisabledIdentifierException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
153 
154     /**
155      * Retrieves LUI Person Relation Ids for Person
156      *
157      * @param personId Identifier for person
158      * @param context  Context information containing the principalId and locale information about the caller of service operation
159      * @return Simple list of person relation identifiers
160      * @throws DoesNotExistException       personId not found
161      * @throws DisabledIdentifierException personId found, but has been retired
162      * @throws InvalidParameterException   invalid personId
163      * @throws MissingParameterException   missing personId
164      * @throws OperationFailedException    unable to complete request
165      * @throws PermissionDeniedException   authorization failure
166      */
167     public List<String> findLuiPersonRelationIdsForPerson(@WebParam(name = "personId") String personId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DisabledIdentifierException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
168 
169     /**
170      * Retrieves LUI Person Relation for a specified LUI
171      *
172      * @param luiId   Identifier for LUI
173      * @param context Context information containing the principalId and locale information about the caller of service operation
174      * @return List of LUI Person Relation info
175      * @throws DoesNotExistException     luiId not found
176      * @throws InvalidParameterException invalid luiId
177      * @throws MissingParameterException missing luiId
178      * @throws OperationFailedException  unable to complete request
179      * @throws PermissionDeniedException authorization failure
180      */
181     public List<LprInfo> findLuiPersonRelationsForLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
182 
183     /**
184      * Retrieves LUIPersonRelation for LUI
185      *
186      * @param luiId   Identifier for LUI
187      * @param context Context information containing the principalId and locale information about the caller of service operation
188      * @return Simple list of LUI Person Relation identifiers
189      * @throws DoesNotExistException     luiId not found
190      * @throws InvalidParameterException invalid luiId
191      * @throws MissingParameterException missing luiId
192      * @throws OperationFailedException  unable to complete request
193      * @throws PermissionDeniedException authorization failure
194      */
195     public List<String> findLuiPersonRelationIdsForLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
196 
197     /**
198      * Validates the particular relation in a state for a Person and LUI
199      *
200      * @param validationType             Identifier of the extent of validation
201      * @param luiPersonRelationInfo      LuiPersonRelation to be validated
202      * @param context               Context information containing the principalId and locale information about the caller of service operation
203      * @return list of validation results, list should be be zero length if no validation rsults are generated
204      * @throws DoesNotExistException       luiPersonRelationInfo not found
205      * @throws InvalidParameterException   invalid luiPersonRelationInfo relationState
206      * @throws MissingParameterException   missing luiPersonRelationInfo
207      * @throws OperationFailedException    unable to complete request
208      * @throws PermissionDeniedException   authorization failure
209      */
210     public List<ValidationResultInfo> validateLuiPersonRelation(@WebParam(name = "validationType") String validationType,
211             @WebParam(name = "luiPersonRelationInfo") LprInfo luiPersonRelationInfo,
212             @WebParam(name = "context") ContextInfo context)
213             throws DoesNotExistException,
214             InvalidParameterException,
215             MissingParameterException,
216             OperationFailedException,
217             PermissionDeniedException;
218 
219     /**
220      * Retrieves LUIs for an academic time period where the specified relation type and state would be valid for the specified person
221      *
222      * @param personId              Identifier for person
223      * @param luiPersonRelationTypeKey Type of luiPersonRelationI
224      * @param relationState         Relation State
225      * @param atpId                 Identifier for academic time period
226      * @param context               Context information containing the principalId and locale information about the caller of service operation
227      * @return List of LUIs
228      * @throws DoesNotExistException       personId, luiPersonRelationTypeKey, relationState, atpId not found
229      * @throws DisabledIdentifierException personId found, but has been retired
230      * @throws InvalidParameterException   invalid personId, luiPersonRelationTypeKey, relationState, atpId
231      * @throws MissingParameterException   missing personId, luiPersonRelationTypeKey, relationState, atpId
232      * @throws OperationFailedException    unable to complete request
233      * @throws PermissionDeniedException   authorization failure
234      */
235     public List<String> findAllValidLuisForPerson(@WebParam(name = "personId") String personId, @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey, @WebParam(name = "relationState") String relationState, @WebParam(name = "atpId") String atpId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DisabledIdentifierException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
236 
237     /**
238      * Creates relation between the specified Person and LUI
239      *
240      * @param personId              Person Identifier
241      * @param luiId                 LUI Identifier
242      * @param luiPersonRelationTypeKey Type of LUI to Person Relation
243      * @param luiPersonRelationInfo Information required to create the LUI Person relation
244      * @param context               Context information containing the principalId and locale information about the caller of service operation
245      * @return Structure containing LUI Person relation identifiers
246      * @throws AlreadyExistsException      relation already exists
247      * @throws DataValidationErrorException if luiPeronsRelationInfo is not valid
248      * @throws ReadOnlyException         attempt to update a read only attribute
249      * @throws DoesNotExistException       personId, luiId, relationState, luiPersonRelationTypeKey does not exist
250      * @throws DisabledIdentifierException personId found, but has been retired
251      * @throws InvalidParameterException   invalid personId, luiId, relationState, luiPersonRelationTypeKey, luiPersonRelationInfo
252      * @throws MissingParameterException   missing personId, luiId, relationState, luiPersonRelationTypeKey, luiPersonRelationInfo
253      * @throws OperationFailedException    unable to complete request
254      * @throws PermissionDeniedException   authorization failure
255      */
256     public String createLuiPersonRelation(@WebParam(name = "personId") String personId, @WebParam(name = "luiId") String luiId, @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey, @WebParam(name = "luiPersonRelationInfo") LprInfo luiPersonRelationInfo, @WebParam(name = "context") ContextInfo context)
257             throws DataValidationErrorException,
258             AlreadyExistsException, DoesNotExistException, DisabledIdentifierException, ReadOnlyException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
259 
260     /**
261      * Creates bulk relationships for one specified person. This is an all or nothing transaction - any error will invalidate the entire transaction.
262      *
263      * @param personId              Identifier for Person
264      * @param luiIdList             Simple list of LUI identifiers
265      * @param relationState         Relation state
266      * @param luiPersonRelationTypeKey Type of LUI Person relation
267      * @param luiPersonRelationInfo Information required to create the LUI Person relation
268      * @param context               Context information containing the principalId
269      *                              and locale information about the caller of service
270      *                              operation
271      * @return Structure containing LUI Person relation identifiers
272      * @throws AlreadyExistsException      relation already exists
273      * @throws DataValidationErrorException if luiPeronsRelationInfo is not valid
274      * @throws ReadOnlyException         attempt to update a read only attribute
275      * @throws DoesNotExistException       personId, luiId, relationState, luiPersonRelationTypeKey does not exist
276      * @throws DisabledIdentifierException personId found, but has been retired
277      * @throws InvalidParameterException   invalid personId, luiId, relationState, luiPersonRelationTypeKey, luiPersonRelationInfo
278      * @throws MissingParameterException   missing personId, luiId, relationState, luiPersonRelationTypeKey, luiPersonRelationInfo
279      * @throws OperationFailedException    unable to complete request
280      * @throws PermissionDeniedException   authorization failure
281      */
282     public List<String> createBulkRelationshipsForPerson(@WebParam(name = "personId") String personId,
283             @WebParam(name = "luiIdList") List<String> luiIdList,
284             @WebParam(name = "relationState") String relationState,
285             @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey,
286             @WebParam(name = "luiPersonRelationInfo") LprInfo luiPersonRelationInfo,
287             @WebParam(name = "context") ContextInfo context)
288             throws DataValidationErrorException,
289             AlreadyExistsException,
290             DoesNotExistException,
291             DisabledIdentifierException,
292             ReadOnlyException,
293             InvalidParameterException,
294             MissingParameterException,
295             OperationFailedException,
296             PermissionDeniedException;
297 
298     /**
299      * Creates bulk relationships for one specified LUI. This is an all or nothing transaction - any error will invalidate the entire transaction.
300      *
301      * @param luiId                 Identifier for Lui
302      * @param personIdList          Simple list of Person identifiers
303      * @param relationState         Relation state
304      * @param luiPersonRelationTypeKey Type of LUI Person relation
305      * @param luiPersonRelationInfo Information required to create the LUI Person relation
306      * @param context               Context information containing the principalId
307      *                              and locale information about the caller of service
308      *                              operation
309      * @return Structure containing LUI Person relation identifiers
310      * @throws AlreadyExistsException      relation already exists
311      * @throws DoesNotExistException       personId, luiId, relationState, luiPersonRelationTypeKey does not exist
312      * @throws DisabledIdentifierException personId found, but has been retired
313      * @throws DataValidationErrorException errors validating luiPersonRelationInfo with all data filled in
314      * @throws InvalidParameterException   invalid personId, luiId, relationState, luiPersonRelationTypeKey, luiPersonRelationInfo
315      * @throws MissingParameterException   missing personId, luiId, relationState, luiPersonRelationTypeKey, luiPersonRelationInfo
316      * @throws OperationFailedException    unable to complete request
317      * @throws ReadOnlyException         attempt to update a read only attribute
318      * @throws PermissionDeniedException   authorization failure
319      */
320     public List<String> createBulkRelationshipsForLui(@WebParam(name = "luiId") String luiId,
321             @WebParam(name = "personIdList") List<String> personIdList,
322             @WebParam(name = "relationState") String relationState,
323             @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey,
324             @WebParam(name = "luiPersonRelationInfo") LprInfo luiPersonRelationInfo,
325             @WebParam(name = "context") ContextInfo context)
326             throws AlreadyExistsException,
327             DataValidationErrorException,
328             DoesNotExistException,
329             DisabledIdentifierException,
330             ReadOnlyException,
331             InvalidParameterException,
332             MissingParameterException,
333             OperationFailedException,
334             PermissionDeniedException;
335 
336     /**
337      * Update relation between Person and LUI
338      *
339      * @param luiPersonRelationId   Identifier for the LUI Person Relation
340      * @param luiPersonRelationInfo Changed information about the LUI Person Relation
341      * @param context               Context information containing the principalId
342      *                              and locale information about the caller of service
343      *                              operation
344      * @return Updated information about the LUI Person Relation
345      * @throws DataValidationErrorException if luiPersonRelationInfo is not valid
346      * @throws DoesNotExistException     luiPersonRelationId does not exist
347      * @throws InvalidParameterException invalid luiPersonRelationId, luiPersonRelationInfo
348      * @throws MissingParameterException missing luiPersonRelationId, luiPersonRelationInfo
349      * @throws ReadOnlyException         attempt to update a read only attribute
350      * @throws OperationFailedException  unable to complete request
351      * @throws PermissionDeniedException authorization failure
352      * @throws VersionMismatchException if optimistic lock version ind has changed
353      */
354     public LprInfo updateLuiPersonRelation(@WebParam(name = "luiPersonRelationId") String luiPersonRelationId,
355             @WebParam(name = "luiPersonRelationInfo") LprInfo luiPersonRelationInfo,
356             @WebParam(name = "context") ContextInfo context)
357             throws DoesNotExistException,
358             DataValidationErrorException,
359             InvalidParameterException,
360             MissingParameterException,
361             ReadOnlyException,
362             OperationFailedException,
363             PermissionDeniedException,
364             VersionMismatchException;
365 
366     /**
367      * Deletes relation between the specified Person and LUI
368      *
369      * @param luiPersonRelationId Identifier for the LUI Person Relation
370      * @param context             Context information containing the principalId
371      *                            and locale information about the caller of service
372      *                            operation
373      * @return status of the operation (success, failed)
374      * @throws DoesNotExistException     luiPersonRelationId does not exist
375      * @throws InvalidParameterException invalid luiPersonRelationId
376      * @throws MissingParameterException missing luiPersonRelationId
377      * @throws OperationFailedException  unable to complete request
378      * @throws PermissionDeniedException authorization failure
379      */
380     public StatusInfo deleteLuiPersonRelation(@WebParam(name = "luiPersonRelationId") String luiPersonRelationId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
381 }