View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation
3    *
4    *  Licensed under the the Educational Community License, Version 1.0
5    * (the "License"); you may not use this file except in compliance
6    * with the License.  You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl1.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package org.kuali.student.enrollment.lui.service;
18  
19  import org.kuali.rice.core.api.criteria.QueryByCriteria;
20  import org.kuali.student.enrollment.lui.dto.LuiCapacityInfo;
21  import org.kuali.student.enrollment.lui.dto.LuiInfo;
22  import org.kuali.student.enrollment.lui.dto.LuiLuiRelationInfo;
23  import org.kuali.student.r2.common.dto.ContextInfo;
24  import org.kuali.student.r2.common.dto.StatusInfo;
25  import org.kuali.student.r2.common.dto.ValidationResultInfo;
26  import org.kuali.student.r2.common.exceptions.CircularRelationshipException;
27  import org.kuali.student.r2.common.exceptions.DataValidationErrorException;
28  import org.kuali.student.r2.common.exceptions.DependentObjectsExistException;
29  import org.kuali.student.r2.common.exceptions.DoesNotExistException;
30  import org.kuali.student.r2.common.exceptions.InvalidParameterException;
31  import org.kuali.student.r2.common.exceptions.MissingParameterException;
32  import org.kuali.student.r2.common.exceptions.OperationFailedException;
33  import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
34  import org.kuali.student.r2.common.exceptions.ReadOnlyException;
35  import org.kuali.student.r2.common.exceptions.VersionMismatchException;
36  import org.kuali.student.r2.common.util.constants.LuiServiceConstants;
37  
38  import javax.jws.WebParam;
39  import javax.jws.WebService;
40  import javax.jws.soap.SOAPBinding;
41  import java.util.List;
42  
43  /**
44   * Learning Unit Instance (LUI) Service
45   *
46   * Manages the creation of Instances of the canonical Learning unit.
47   * An instance is associated with a particular time period during
48   * which is is offered.
49   *
50   * This includes course and section offerings as well as program
51   * offerings
52   * 
53   * @version 1.0 (Dev)
54   *
55   * @author tom
56   */
57  
58  @WebService(name = "LuiService", serviceName ="LuiService", portName = "LuiService", targetNamespace = LuiServiceConstants.NAMESPACE)
59  @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
60  
61  public interface LuiService {
62  
63      /**
64       * Retrieves a single Lui by a Lui Id.
65       *
66       * @param luiId the identifier for the Lui to be retrieved
67       * @param contextInfo information containing the principalId and
68       *        locale information about the caller of service operation
69       * @return the Lui requested
70       * @throws DoesNotExistException luiId not found
71       * @throws InvalidParameterException contextInfo is not valid
72       * @throws MissingParameterException luiId or contextInfo is
73       *         missing or null
74       * @throws OperationFailedException unable to complete request
75       * @throws PermissionDeniedException an authorization failure occurred
76       */
77      public LuiInfo getLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
78  
79      /**
80       * Retrieves a list of Luis from a list of Lui Ids. The
81       * returned list may be in any order and if duplicates Ids are
82       * supplied, a unique set may or may not be returned.
83       *
84       * @param luiIds a list of Lui identifiers
85       * @param contextInfo information containing the principalId and
86       *        locale information about the caller of service operation
87       * @return a list of Luis
88       * @throws DoesNotExistException a luiId in the list was not found
89       * @throws InvalidParameterException contextInfo is not valid
90       * @throws MissingParameterException luiIds, an Id in luiIds, or
91       *         contextInfo is missing or null
92       * @throws OperationFailedException unable to complete request
93       * @throws PermissionDeniedException an authorization failure occurred
94       */
95      public List<LuiInfo> getLuisByIds(@WebParam(name = "luiIds") List<String> luiIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
96  
97      /**
98       * Retrieves a list of Lui Ids by Lui Type.
99       *
100      * @param luiTypeKey an identifier for a Lui Type
101      * @param contextInfo information containing the principalId and
102      *        locale information about the caller of service operation
103      * @return a list of Lui identifiers matching luiTypeKey or an
104      *         empty list if none found
105      * @throws InvalidParameterException contextInfo is not valid
106      * @throws MissingParameterException luiTypeKey or contextInfo is
107      *         missing or null
108      * @throws OperationFailedException unable to complete request
109      * @throws PermissionDeniedException an authorization failure occurred
110      */
111     public List<String> getLuiIdsByType(@WebParam(name = "luiTypeKey") String luiTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
112 
113     /** 
114      * Retrieves a list of Lui Ids by Clu.
115      * (the pattern says this should return the objects).
116      *
117      * @param cluId an identifier for the Clu
118      * @param contextInfo information containing the principalId and
119      *        locale information about the caller of service operation
120      * @return list of Lui Ids for the Clu
121      * @throws InvalidParameterException contextInfo is not valid
122      * @throws MissingParameterException cluId or contextInfo is
123      *         missing or null
124      * @throws OperationFailedException unable to complete request
125      * @throws PermissionDeniedException an authorization failure occurred
126      */
127     public List<String> getLuiIdsByClu(@WebParam(name = "cluId") String cluId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
128 
129     /**
130      * Retrieves the list of Lui Ids for the specified atp and Lui
131      * Type.
132      *
133      * @param atpId an identifier for the Atp
134      * @param luiTypeKey an identifier for the Lui Type
135      * @param contextInfo information containing the principalId and
136      *       locale information about the caller of service operation
137      * @return a list of identifiers of Luis offered in the given Atp
138      *         of the specified luiType
139      * @throws InvalidParameterException contextInfo is not valid
140      * @throws MissingParameterException atpId, luiTypeKey, or contextInfo
141      *         is missing or null
142      * @throws OperationFailedException unable to complete request
143      * @throws PermissionDeniedException an authorization failure occurred
144      */
145     public List<String> getLuiIdsByAtpAndType(@WebParam(name = "atpId") String atpId, @WebParam(name = "luiTypeKey") String luiTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo ) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
146 
147     /**
148      * Retrieves the list of Lui Ids for the specified Clu and Time
149      * period.
150      *
151      * @param cluId an identifier for the Clu
152      * @param atpId an identifier for the Atp
153      * @param contextInfo information containing the principalId and
154      *        locale information about the caller of service operation
155      * @return a list of identifiers of Luis offered in atpId and
156      *         related to cluId
157      * @throws InvalidParameterException contextInfo is not valid
158      * @throws MissingParameterException cluId, atpId, or contextInfo
159      *         is missing or null
160      * @throws OperationFailedException unable to complete request
161      * @throws PermissionDeniedException an authorization failure occurred
162      */
163     public List<String> getLuiIdsByAtpAndClu(@WebParam(name = "cluId") String cluId, @WebParam(name = "atpId") String atpId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
164 
165     /**
166      * Retrieves the list of Luis for the specified Clu and Atp.
167      *
168      * @param cluId an identifier for the Clu
169      * @param atpId an identifier for the Atp
170      * @param contextInfo information containing the principalId and
171      *        locale information about the caller of service operation
172      * @return a list of Luis offered in atpId and related to cluId
173      * @throws InvalidParameterException contextInfo is not valid
174      * @throws MissingParameterException cluId, atpId, or contextInfo
175      *         is missing or null
176      * @throws OperationFailedException unable to complete request
177      * @throws PermissionDeniedException an authorization failure occurred
178      */
179     public List<LuiInfo> getLuisByAtpAndClu(@WebParam(name = "cluId") String cluId, @WebParam(name = "atpId") String atpId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
180 
181     /**
182      * Searches for Luis that meet the given search criteria and
183      * returns a list of Lui identifiers that meet the criteria.
184      * 
185      * @param criteria the search criteria
186      * @param contextInfo information containing the principalId and
187      *        locale information about the caller of service operation
188      * @return a list of Lui Ids matching the criteria
189      * @throws InvalidParameterException criteria or contextInfo is
190      *         not valid
191      * @throws MissingParameterException criteria or contextInfo is
192      *         missing or null
193      * @throws OperationFailedException unable to complete request
194      * @throws PermissionDeniedException an authorization failure occurred
195      */
196     public List<String> searchForLuiIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
197 
198     /**
199      * Searches for Luis 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 service operation
204      * @return a list of Luis matching the criteria
205      * @throws InvalidParameterException criteria or contextInfo is
206      *         not valid
207      * @throws MissingParameterException criteria or contextInfo is
208      *         missing or null
209      * @throws OperationFailedException unable to complete request
210      * @throws PermissionDeniedException an authorization failure occurred
211      */
212     public List<LuiInfo> searchForLuis(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
213 
214     /**
215      * Validates a Lui. Depending on the value of validationType, this
216      * validation could be limited to tests on just the current Lui
217      * and its directly contained sub-objects or expanded to perform
218      * all tests related to this Lui. If an identifier is present for
219      * the Lui (and/or one of its contained sub-objects) and a record
220      * is found for that identifier, the validation checks if the Lui
221      * can be updated to the new values. If an identifier is not
222      * present or a record does not exist, the validation checks if
223      * the object with the given data can be created.
224      *
225      * @param validationTypeKey the identifier for the validation Type
226      * @param cluId the identifier for the Clu to which the Lui is
227      *        attached
228      * @param atpId the identifier for the Atp to which the Lui if
229      *        offered
230      * @param luiTypeKey the identifier for the Lui Type
231      * @param luiInfo the object to be validated
232      * @param contextInfo information containing the principalId and
233      *        locale information about the caller of service operation
234      * @return a list of validation results or an empty list if
235      *         validation succeeded
236      * @throws DoesNotExistException validationTypeKey, cluId, atpId,
237      *         or luiTypeKey is not found
238      * @throws InvalidParameterException luiInfo or contextInfo is not
239      *         valid
240      * @throws MissingParameterException validationTypeKey, cluId,
241      *         atpId, luiTypeKey, luiInfo, or contextInfo is missing
242      *         or null
243      * @throws OperationFailedException unable to complete request
244      * @throws PermissionDeniedException an authorization failure occurred
245      */
246     public List<ValidationResultInfo> validateLui(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "cluId") String cluId, @WebParam(name="atpId") String atpId, @WebParam(name = "luiTypeKey") String luiTypeKey, @WebParam(name = "luiInfo") LuiInfo luiInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;;
247 
248     /**
249      * Creates a new LUI. The Lui Id, Type, Clu Id, Atp Id, and Meta
250      * information may not be set in the supplied data.
251      *
252      * @param cluId the identifier for the Clu
253      * @param atpId the identifier for the Atp
254      * @param luiTypeKey an identifier for the Type of the new Lui
255      * @param luiInfo the data with which to create the Lui
256      * @param contextInfo information containing the principalId and
257      *        locale information about the caller of service operation
258      * @return the new Lui
259      * @throws DataValidationErrorException supplied data is invalid
260      * @throws DoesNotExistException cluId, atpId, or luiTypeKey is
261      *         not found
262      * @throws InvalidParameterException luiInfo or contextInfo is not valid
263      * @throws MissingParameterException cluId, atpId, luiTypeKey,
264      *         luiInfo, or contextInfo is missing or null
265      * @throws OperationFailedException unable to complete request
266      * @throws PermissionDeniedException an authorization failure occurred
267      * @throws ReadOnlyException an attempt at supplying information
268      *         designated as read only
269      */
270     public LuiInfo createLui(@WebParam(name = "cluId") String cluId, @WebParam(name = "atpId") String atpId, @WebParam(name = "luiTypeKey") String luiTypeKey, @WebParam(name = "luiInfo") LuiInfo luiInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
271 
272     /**
273      * Updates an existing Lui. The Lui Id, Type, Clu Id, Atp Id, and
274      * Meta information may not be changed.
275      *
276      * @param luiId the identifier for the LUI to be updated
277      * @param luiInfo the new data for the Lui
278      * @param contextInfo information containing the principalId and
279      *        locale information about the caller of service operation
280      * @return the updated Lui
281      * @throws DataValidationErrorException supplied data is invalid
282      * @throws DoesNotExistException luiId not found
283      * @throws InvalidParameterException luiInfo or contextInfo is not valid
284      * @throws MissingParameterException luiId, luiInfo, or
285      *         contextInfo is missing or null
286      * @throws OperationFailedException unable to complete request
287      * @throws PermissionDeniedException an authorization failure occurred
288      * @throws ReadOnlyException an attempt at changing information
289      *         designated as read only
290      * @throws VersionMismatchException optimistic locking failure or
291      *         the action was attempted on an out of date version
292      */
293     public LuiInfo updateLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "luiInfo") LuiInfo luiInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
294 
295     /**
296      * Deletes an existing Lui.
297      *
298      * @param luiId the identifier for the LUI to be deleted
299      * @param contextInfo information containing the principalId and
300      *        locale information about the caller of service operation
301      * @return the status of the delete operation. This must always be true.
302      * @throws DependentObjectsExistException the delete operation
303      *         would leave orphaned objects or violate integrity
304      *         constraints
305      * @throws DoesNotExistException luiId not found
306      * @throws InvalidParameterException contextInfo is not valid
307      * @throws MissingParameterException luiId or contextInfo is
308      *         missing or null
309      * @throws OperationFailedException unable to complete request
310      * @throws PermissionDeniedException an authorization failure occurred
311      */
312     public StatusInfo deleteLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DependentObjectsExistException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
313 
314     /**
315      * Retrieves a single LuiLuiRelation by a LuiLuiRelation Id.
316      *
317      * @param luiLuiRelationId a unique identifier for the
318      *        LuiLuiRelation to be retrieved
319      * @param contextInfo information containing the principalId and
320      *        locale information about the caller of service operation
321      * @return the LuiLuiRelation requested
322      * @throws DoesNotExistException luiLuiRelationId is not found
323      * @throws InvalidParameterException contextInfo is not valid
324      * @throws MissingParameterException luiLuiRetaionId or
325      *         contextInfo is missing or null
326      * @throws OperationFailedException unable to complete request
327      * @throws PermissionDeniedException an authorization failure occurred
328      */
329     public LuiLuiRelationInfo getLuiLuiRelation(@WebParam(name = "luiLuiRelationId") String luiLuiRelationId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
330 
331     /**
332      * Retrieves a list of LuiLuiRelations from a list of
333      * LuiLuiRelation Ids. The returned list may be in any order and
334      * if duplicates Ids are supplied, a unique set may or may not be
335      * returned.
336      *
337      * @param luiLuiRelationIds a list of LuiLuiRelation identifiers
338      * @param contextInfo Context information containing the principalId
339      *                and locale information about the caller of
340      *                service operation
341      * @return information about a list of LuiLuiRelations
342      * @throws DoesNotExistException a luiLuiRelationId in the list
343      *         was not found
344      * @throws InvalidParameterException contextInfo is not valid
345      * @throws MissingParameterException luiLuiRelationIds, a
346      *         luiLuiRelationId in luiLuiRelationIds, or contextInfo
347      *         is missing or null
348      * @throws OperationFailedException unable to complete request
349      * @throws PermissionDeniedException an authorization failure occurred
350      */
351     public List<LuiLuiRelationInfo> getLuiLuiRelationsByIds(@WebParam(name = "luiLuiRelationIds") List<String> luiLuiRelationIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
352 
353     /**
354      * Retrieves a list of LuiLuiRelation Ids by a LuiLuiRelation
355      * Type.
356      *
357      * @param luiLuiRelationTypeKey an identifier for a LuiLuiRelation
358      *                              Type
359      * @param contextInfo information containing the principalId and
360      *        locale information about the caller of service operation
361      * @return a list of LuiLuiRelation identifiers
362      * @throws InvalidParameterException contextInfo is not valid
363      * @throws MissingParameterException luiLuiRelationTypeKey or
364      *         contextInfo is missing or null
365      * @throws OperationFailedException unable to complete request
366      * @throws PermissionDeniedException an authorization failure occurred
367      */
368     public List<String> getLuiLuiRelationIdsByType(@WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
369 
370     /**
371      * Retrieves all LuiLuiRelations to the given Lui.
372      *
373      * @param luiId a unique identifier of the LUI
374      * @param contextInfo information containing the principalId and
375      *        locale information about the caller of service operation
376      * @return the LuiLuiRelations to the Lui
377      * @throws InvalidParameterException contextInfo is not valid
378      * @throws MissingParameterException luiId or contextInfo is
379      *         missing or null
380      * @throws OperationFailedException unable to complete request
381      * @throws PermissionDeniedException an authorization failure occurred
382      */
383     public List<LuiLuiRelationInfo> getLuiLuiRelationsByLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
384 
385     /**
386      * Retrieves all LuiLuiRelations between the given Luis.
387      *
388      * @param luiId a unique identifier of the LUI
389      * @param relatedLuiId a unique identifier of another LUI
390      * @param contextInfo information containing the principalId and
391      *        locale information about the caller of service operation
392      * @return the LuiLuiRelations between the given Luis
393      * @throws InvalidParameterException contextInfo is not valid
394      * @throws MissingParameterException luiId, relatedLuiId, or
395      *         contextInfo is missing or null
396      * @throws OperationFailedException unable to complete request
397      * @throws PermissionDeniedException an authorization failure occurred
398      */
399     public List<LuiLuiRelationInfo> getLuiLuiRelationsByLuiAndRelatedLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "relatedLuiId") String relatedLuiId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
400 
401     /**
402      * Retrieves a list of LUI Ids for the specified related LUI Id
403      * and LU to LU relation type (getRelatedLuiIdsByLuiId from the
404      * other direction). 
405      *
406      * (??? this method seems unnecessary)
407      *
408      * @param relatedLuiId identifier of the LUI
409      * @param luiLuiRelationTypeKey the LU to LU relation type
410      * @param contextInfo Context information containing the principalId
411      *        and locale information about the caller of service
412      *        operation
413      * @return list of LUI identifiers, empty list of none found
414      * @throws InvalidParameterException invalid parameter
415      * @throws MissingParameterException missing parameter
416      * @throws OperationFailedException  unable to complete request
417      * @throws PermissionDeniedException an authorization failure occurred
418      */
419     public List<String> getLuiIdsByRelatedLuiAndRelationType(@WebParam(name = "relatedLuiId") String relatedLuiId, @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
420 
421     /** TODO 
422      * Retrieves the list of LUI information for the LUIs related to
423      * the specified LUI Id with a certain LU to LU relation type.
424      * (getRelatedLuisByLuiId from the other direction)
425      *
426      * @param relatedLuiId identifier of the LUI
427      * @param luiLuiRelationTypeKey the LU to LU relation type
428      * @param contextInfo Context information containing the principalId
429      *        and locale information about the caller of service
430      *        operation
431      * @return list of LUI information, empty list if none
432      * @throws InvalidParameterException invalid parameter
433      * @throws MissingParameterException missing paremeter
434      * @throws OperationFailedException  unable to complete request
435      * @throws PermissionDeniedException an authorization failure occurred
436      */
437     public List<LuiInfo> getLuisByRelatedLuiAndRelationType(@WebParam(name = "relatedLuiId") String relatedLuiId, @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
438 
439     /** TODO ???
440      * Retrieves the list of related LUI Ids for the specified LUI Id
441      * and LU to LU relation type. (getLuiIdsByRelatedLuiAndRelationType from the other
442      * direction).
443      *
444      * @param luiId identifier of the LUI
445      * @param luiLuiRelationTypeKey the LU to LU relation type
446      * @param contextInfo Context information containing the principalId
447      *        and locale information about the caller of service
448      *        operation
449      * @return list of LUI identifier, empty list if none found
450      * @throws InvalidParameterException invalid parameter
451      * @throws MissingParameterException missing parameter
452      * @throws OperationFailedException unable to complete request
453      * @throws PermissionDeniedException an authorization failure occurred
454      */
455     public List<String> getLuiIdsByLuiAndRelationType(@WebParam(name = "luiId") String luiId, @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
456 
457     /** TODO ???
458      * Retrieves the list of related LUI information for the specified
459      * LUI Id and LU to LU relation type (getLuisByRelatedLuiAndRelationType from the
460      * other direction).
461      *
462      * @param luiId identifier of the LUI
463      * @param luiLuiRelationTypeKey the LU to LU relation type
464      * @param contextInfo Context information containing the principalId
465      *        and locale information about the caller of service
466      *        operation
467      * @return list of LUI information, empty list if none found
468      * @throws InvalidParameterException invalid luiId, luiLuiRelationTypeKey
469      * @throws MissingParameterException missing luiId, luiLuiRelationTypeKey
470      * @throws OperationFailedException unable to complete request
471      * @throws PermissionDeniedException an authorization failure occurred
472      */
473     public List<LuiInfo> getRelatedLuisByLuiAndRelationType(@WebParam(name = "luiId") String luiId, @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
474 
475     /**
476      * Retrieves all LuiLuiRelations between a Lui and Luis of the
477      * given Lui Type.
478      *
479      * @param luiId a unique identifier for the Lui
480      * @param relatedLuiTypeKey a unique identifier for a Lui Type
481      * @param contextInfo information containing the principalId and
482      *        locale information about the caller of service operation
483      * @return a list of LuiLuiRelations between luiId and Luis of
484      *         relatedLuiTypeKey
485      * @throws InvalidParameterException contextInfo is not valid
486      * @throws MissingParameterException luiId, relatedLuiTypeKey, or
487      *         contextInfo is missing or null
488      * @throws OperationFailedException unable to complete request
489      * @throws PermissionDeniedException an authorization failure occurred
490      */
491     public List<LuiInfo> getLuiLuiRelationsByLuiAndRelatedLuiType(@WebParam(name = "luiId") String luiId, @WebParam(name = "relatedLuiTypeKey") String relatedLuiTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
492 
493     /**
494      * Searches for LuiLuiRelations that meet the search criteria and
495      * returns a list of LuiLuiRelation identifiers that meet the
496      * criteria.
497      * 
498      * @param criteria the search criteria
499      * @param contextInfo information containing the principalId and
500      *        locale information about the caller of service operation
501      * @return list of LuiLuiRelationIds
502      * @throws InvalidParameterException criteria or contextInfo is
503      *         not valid
504      * @throws MissingParameterException criteria or contextInfo is
505      *         missing os null
506      * @throws OperationFailedException unable to complete request
507      * @throws PermissionDeniedException an authorization failure occurred
508      */
509     public List<String> searchForLuiLuiRelationIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
510 
511     /**
512      * Searches for LuiLuiRelations that meet the search criteria and
513      * returns a list of LuiLuiRelations that meet the criteria.
514      * 
515      * @param criteria the search criteria
516      * @param contextInfo information containing the principalId and
517      *        locale information about the caller of service operation
518      * @return list of LuiLuiRelations
519      * @throws InvalidParameterException criteria or contextInfo is
520      *         not valid
521      * @throws MissingParameterException criteria or contextInfo is
522      *         missing os null
523      * @throws PermissionDeniedException an authorization failure occurred
524      */
525     public List<LuiLuiRelationInfo> searchForLuiLuiRelations(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
526 
527     /**
528      * Validates a LuiLuiRelations. Depending on the value of
529      * validationType, this validation could be limited to tests on
530      * just the current LuiLuiRelation and its directly contained
531      * sub-objects or expanded to perform all tests related to this
532      * LuiLuiRelation. If an identifier is present for the
533      * LuiLuiRelation (and/or one of its contained sub-objects) and a
534      * record is found for that identifier, the validation checks if
535      * the LuiLuiRelation can be updated to the new values. If an
536      * identifier is not present or a record does not exist, the
537      * validation checks if the object with the given data can be
538      * created.
539      *
540      * @param validationTypeKey the identifier for the validation Type
541      * @param luiId the identifier for the Lui 
542      * @param relatedLuiId the identifier for the related Lui 
543      * @param luiLuiRelationTypeKey the identifier for LuiLuiRelation Type
544      * @param luiLuiRelationInfo the LuiLuiRelation to ve validated
545      * @param contextInfo information containing the principalId and
546      *        locale information about the caller of service operation
547      * @return a list of validation results or an empty list if
548      *         validation succeeded
549      * @throws DoesNotExistException validationTypeKey, luiId,
550      *         relatedLuiId, or luiLuiRelationTypeKey is not found
551      * @throws InvalidParameterException luiLuiRelationInfo or
552      *         contextInfo is missing or null
553      * @throws MissingParameterException validationTypeKey, luiId,
554      *         relatedLuiId, luiLuiRelationTypeKey,
555      *         luiLuiRelationInfo, or contextInfo is missing or null
556      * @throws OperationFailedException unable to complete request
557      * @throws PermissionDeniedException an authorization failure occurred
558      */
559     public List<ValidationResultInfo> validateLuiLuiRelation(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "luiId") String luiId, @WebParam(name = "relatedLuiId") String relatedLuiId, @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey, @WebParam(name = "luiLuiRelationInfo") LuiLuiRelationInfo luiLuiRelationInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;;
560 
561     /**
562      * Create new LuiLuiRelation. The LuiLuiRelation Id, Type, luiId,
563      * relatedLuiId, and Meta information may not be set in the
564      * supplied data.
565      *
566      * @param luiId identifier of the first LUI in the relationship
567      * @param relatedLuiId identifier of the second LUI in the
568      *        relationship to be related
569      * @param luiLuiRelationTypeKey a unique key fo rthe Type or new
570      *        LuiLuiRelation
571      * @param luiLuiRelationInfo the data with which to create the
572      *        LuiLuiRelation
573      * @param contextInfo information containing the principalId and
574      *        locale information about the caller of service operation
575      * @return the new LuiLuiRelation
576      * @throws CircularRelationshipException luiId equals relatedLuiId 
577      *         (why is this a contract failure?)
578      * @throws DataValidationErrorException supplied data is invalid
579      * @throws DoesNotExistException luiId, relatedLuiId, or
580      *         luiLuiRelationTypeKey is not found
581      * @throws InvalidParameterException luiLuiRelationInfo ro
582      *         contextInfo is not valid
583      * @throws MissingParameterException luiId, relatedLuiId,
584      *         luiLuiRelationTypeKey, luiLuiRelationInfo, or
585      *         contextInfo is missing or null
586      * @throws OperationFailedException  unable to complete request
587      * @throws PermissionDeniedException an authorization failure occurred
588      * @throws ReadOnlyException an attempt at supplying information
589      *         designated as read only
590      */
591     public LuiLuiRelationInfo createLuiLuiRelation(@WebParam(name = "luiId") String luiId,  @WebParam(name = "relatedLuiId") String relatedLuiId, @WebParam(name = "luiLuiRelationTypeKey") String luiLuiRelationTypeKey, @WebParam(name = "luiLuiRelationInfo") LuiLuiRelationInfo luiLuiRelationInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws CircularRelationshipException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
592 
593     /**
594      * Updates an existing LuiLuiRelation. The LuiLuiRelation Id,
595      * luiId, relatedLuiId, and Meta information may not be changed.
596      *
597      * @param luiLuiRelationId the identifier for the LuiLuiRelation
598      *        to be updated
599      * @param luiLuiRelationInfo the new data for the LuiLuiRelation
600      * @param contextInfo information containing the principalId and
601      *        locale information about the caller of service operation
602      * @return the updated LuiLuiRelation
603      * @throws DataValidationErrorException supplied data is invalid
604      * @throws DoesNotExistException luiLuiRelationId is not found
605      * @throws InvalidParameterException luiLuiRelationInfo or contextInfo
606      *         is not valid
607      * @throws MissingParameterException luiLuiRelationId,
608      *         luiLuiRelationInfo, or contextInfo is missing or null
609      * @throws OperationFailedException unable to complete request
610      * @throws PermissionDeniedException an authorization failure occurred
611      * @throws ReadOnlyException an attempt at changing information
612      *         designated as read only
613      * @throws VersionMismatchException optimistic locking failure or
614      *         the action was attempted on an out of date version
615      */
616     public LuiLuiRelationInfo updateLuiLuiRelation(@WebParam(name = "luiLuiRelationId") String luiLuiRelationId, @WebParam(name = "luiLuiRelationInfo") LuiLuiRelationInfo luiLuiRelationInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
617 
618     /**
619      * Deletes an existing LuiLuiRelation.
620      *
621      * @param luiLuiRelationId identifier or the LuiLuiRelation to be
622      *        deleted
623      * @param contextInfo information containing the principalId and
624      *        locale information about the caller of service operation
625      * @return the status of the delete operation. This must always be true.
626      * @throws DoesNotExistException luiLuiRelationId not found
627      * @throws InvalidParameterException contextInfo is not valid
628      * @throws MissingParameterException luiLuiRelationId
629      *         or contextInfo is missing or null
630      * @throws OperationFailedException unable to complete request
631      * @throws PermissionDeniedException an authorization failure occurred
632      */
633     public StatusInfo deleteLuiLuiRelation(@WebParam(name = "luiLuiRelationId") String luiLuiRelationId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
634 
635     /**
636      * Retrieves a single LuiCapacity by a LuiCapacity Id.
637      *
638      * @param luiCapacityId the identifier for the LuiCapacity to be
639      *        retrieved
640      * @param contextInfo information containing the principalId and
641      *        locale information about the caller of service operation
642      * @return the LuiCapacity requested
643      * @throws DoesNotExistException luiCapacityId not found
644      * @throws InvalidParameterException contextInfo is not valid
645      * @throws MissingParameterException luiCapacityId or contextInfo
646      *         is missing or null
647      * @throws OperationFailedException unable to complete request
648      * @throws PermissionDeniedException an authorization failure occurred
649      */
650     public LuiCapacityInfo getLuiCapacity(@WebParam(name = "luiCapacityId") String luiCapacityId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
651 
652     /**
653      * Retrieves a list of LuiCapacity from a list of LuiCapacity
654      * Ids. The returned list may be in any order and if duplicate Ids
655      * are supplied, a unique set may or may not be returned.
656      *
657      * @param luiCapacityIds a list of LuiCapacity identifiers
658      * @param contextInfo information containing the principalId and
659      *        locale information about the caller of service operation
660      * @return a list of LuiCapacities
661      * @throws DoesNotExistException a luiCapacityId in the list was
662      *         not found
663      * @throws InvalidParameterException contextInfo is not valid
664      * @throws MissingParameterException luiCapacityIds, an Id in
665      *         luiCapacityIds, or contextInfo is missing or null
666      * @throws OperationFailedException unable to complete request
667      * @throws PermissionDeniedException an authorization failure occurred
668      */
669     public List<LuiCapacityInfo> getLuiCapacitiesByIds(@WebParam(name = "luiCapacityIds") List<String> luiCapacityIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
670     
671     /**
672      * Retrieves a list of LuiCapacity Ids by LuiCapacity Type.
673      *
674      * @param luiCapacityTypeKey a unique identifier for a LuiCapacity Type
675      * @param contextInfo information containing the principalId and
676      *        locale information about the caller of service operation
677      * @return information about a list of Lui Capacities
678      * @throws InvalidParameterException contextInfo is not valid
679      * @throws MissingParameterException luiCapacityTypeKey or
680      *         contextInfo is missing or null
681      * @throws OperationFailedException unable to complete request
682      * @throws PermissionDeniedException an authorization failure occurred
683      */
684     public List<String> getLuiCapacityIdsByType(@WebParam(name = "luiCapacityTypeKey") String luiCapacityTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
685 
686     /**
687      * Retrieves LuiCapacities associated with a Lui.
688      *
689      * @param luiId a unique identifier for a Lui
690      * @param contextInfo information containing the principalId and
691      *        locale information about the caller of service operation
692      * @return a list of LuiCapacities associated with the given Lui
693      * @throws InvalidParameterException contextInfo is not valid
694      * @throws MissingParameterException luiId or contextInfo is
695      *         missing or null
696      * @throws OperationFailedException unable to complete request
697      * @throws PermissionDeniedException an authorization failure occurred
698      */
699     public List<LuiCapacityInfo> getLuiCapacitiesByLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
700 
701     /**
702      * Searches for LuiCapacities that meet the search criteria and
703      * returns a list of LuiCapacity identifiers that meet the
704      * criteria.
705      * 
706      * @param criteria the search criteria
707      * @param contextInfo information containing the principalId and
708      *        locale information about the caller of service operation
709      * @return list of LuiCapacity Ids
710      * @throws InvalidParameterException criteria or contextInfo is
711      *         not valid
712      * @throws MissingParameterException criteria or contextInfo is
713      *         missing or null
714      * @throws OperationFailedException unable to complete request
715      * @throws PermissionDeniedException an authorization failure occurred
716      */
717     public List<String> searchForLuiCapacityIds(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
718 
719     /**
720      * Searches for LuiCapacities that meet the search criteria and
721      * returns a list of LuiCapacities that meet the criteria.
722      * 
723      * @param criteria the search criteria
724      * @param contextInfo information containing the principalId and
725      *        locale information about the caller of service operation
726      * @return list of LuiCapacitiess
727      * @throws InvalidParameterException criteria or contextInfo is
728      *         not valid
729      * @throws MissingParameterException criteria or contextInfo is
730      *         missing or null
731      * @throws OperationFailedException unable to complete request
732      * @throws PermissionDeniedException an authorization failure occurred
733      */
734     public List<LuiCapacityInfo> searchForLuiCapacities(@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
735 
736     /**
737      *  Validates a LuiCapacity. Depending on the value of
738      *  validationType, this validation could be limited to tests on
739      *  just the current LuiCapacity and its directly contained
740      *  sub-objects or expanded to perform all tests related to this
741      *  LuiCapacity. If an identifier is present for the LuiCapacity
742      *  (and/or one of its contained sub-objects) and a record is
743      *  found for that identifier, the validation checks if the
744      *  LuiCpacity can be updated to the new values. If an identifier
745      *  is not present or a record does not exist, the validation
746      *  checks if the object with the given data can be created.
747      *
748      * @param validationTypeKey the identifier for the validation Type
749      * @param luiCapacityInfo the LuiCapacity to be validated
750      * @param contextInfo information containing the principalId and
751      *        locale information about the caller of service operation
752      * @return a list of validation results or an empty list if validation succeeded
753      * @throws DoesNotExistException validationTypeKey or
754      *        luiCapacityTypeKey not found
755      * @throws InvalidParameterException luiInfo or contextInfo is not
756      *         valid
757      * @throws MissingParameterException validationTypeKey, luiInfo,
758      *         or contextInfo is missing or null
759      * @throws PermissionDeniedException an authorization failure occurred
760      */
761     public List<ValidationResultInfo> validateLuiCapacity(@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "luiCapacityTypeKey") String luiCapacityTypeKey, @WebParam(name = "luiCapacityInfo") LuiCapacityInfo luiCapacityInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
762 
763     /**
764      * Creates a new LuiCapacity. The LuiCapacity Id, Type, and Meta
765      * information may not be set in the supplied data.
766      *
767      * @param luiCapacityTypeKey an identifier for the Type of the new
768      *        LuiCapacity
769      * @param luiCapacityInfo the data with which to create the
770      *        LuiCapacity
771      * @param contextInfo information containing the principalId and
772      *        locale information about the caller of service operation
773      * @return the new LuiCapacity
774      * @throws DataValidationErrorException supplied data is invalid
775      * @throws DoesNotExistException luiCapacityTypeKey not found
776      * @throws InvalidParameterException luiCapacityInfo or
777      *         contextInfo is not valid
778      * @throws MissingParameterException luiCapacityTypeKey,
779      *         luiCapacityInfo, or contextInfo is missing or null
780      * @throws OperationFailedException unable to complete request
781      * @throws PermissionDeniedException an authorization failure occurred
782      * @throws ReadOnlyException an attempt at supplying information
783      *         designated as read only
784      */
785     public LuiCapacityInfo createLuiCapacity(@WebParam(name = "luiCapacityTypeKey") String luiCapacityTypeKey, @WebParam(name = "luiCapacityInfo") LuiCapacityInfo luiCapacityInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
786 
787     /**
788      * Updates an existing LuiCapacity. The LuiCapacity Id, Type, and
789      * Meta information may not be changed.
790      *
791      * @param luiCapacityId the identifier for the LuiCapacity to be
792      *        updated
793      * @param luiCapacityInfo the new data for the LuiCapacity
794      * @param contextInfo information containing the principalId and
795      *        locale information about the caller of service operation
796      * @return the updated LuiCapacity
797      * @throws DataValidationErrorException supplied data is invalid
798      * @throws DoesNotExistException luiCapacityId not found
799      * @throws InvalidParameterException luiCapacityInfo or contextInfo
800      *         is not valid
801      * @throws MissingParameterException luiCapacityId,
802      *         luiCapacityInfo, or contextInfo is missing or null
803      * @throws OperationFailedException unable to complete request
804      * @throws PermissionDeniedException an authorization failure occurred
805      * @throws ReadOnlyException an attempt at changing information
806      *         designated as read only
807      * @throws VersionMismatchException optimistic locking failure or
808      *         the action was attempted on an out of date version
809      */
810     public LuiCapacityInfo updateLuiCapacity(@WebParam(name = "luiCapacityId") String luiCapacityId, @WebParam(name = "luiCapacityInfo") LuiCapacityInfo luiCapacityInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
811 
812     /**
813      * Deletes an existing LuiCapacity.
814      *
815      * @param luiCapacityId the identifier for the LuiCapacity to be
816      *        deleted
817      * @param contextInfo information containing the principalId and
818      *        locale information about the caller of service operation
819      * @return the status of the delete operation. This must always be
820      *         true.
821      * @throws DoesNotExistException luiCapacityId not found
822      * @throws InvalidParameterException contextInfo is invalid
823      * @throws MissingParameterException luiCapacityId or contextInfo
824      *         is missing or null
825      * @throws OperationFailedException unable to complete request
826      * @throws PermissionDeniedException an authorization failure occurred
827      */
828     public StatusInfo deleteLuiCapacity(@WebParam(name = "luiCapacityId") String luiCapacityId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
829 }