View Javadoc
1   /**
2    * Copyright 2011 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
14   */
15  
16  package org.kuali.student.r2.lum.lo.service;
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  import org.kuali.rice.core.api.criteria.QueryByCriteria;
25  import org.kuali.student.r2.core.search.service.SearchService;
26  import org.kuali.student.r2.common.dto.ContextInfo;
27  import org.kuali.student.r2.common.dto.StatusInfo;
28  import org.kuali.student.r2.common.dto.ValidationResultInfo;
29  import org.kuali.student.r2.common.exceptions.AlreadyExistsException;
30  import org.kuali.student.r2.common.exceptions.DataValidationErrorException;
31  import org.kuali.student.r2.common.exceptions.DependentObjectsExistException;
32  import org.kuali.student.r2.common.exceptions.DoesNotExistException;
33  import org.kuali.student.r2.common.exceptions.InvalidParameterException;
34  import org.kuali.student.r2.common.exceptions.MissingParameterException;
35  import org.kuali.student.r2.common.exceptions.OperationFailedException;
36  import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
37  import org.kuali.student.r2.common.exceptions.ReadOnlyException;
38  import org.kuali.student.r2.common.exceptions.UnsupportedActionException;
39  import org.kuali.student.r2.common.exceptions.VersionMismatchException;
40  import org.kuali.student.r2.common.util.constants.LearningObjectiveServiceConstants;
41  import org.kuali.student.r2.core.class1.type.dto.TypeInfo;
42  import org.kuali.student.r2.lum.lo.dto.LoCategoryInfo;
43  import org.kuali.student.r2.lum.lo.dto.LoInfo;
44  import org.kuali.student.r2.lum.lo.dto.LoLoRelationInfo;
45  import org.kuali.student.r2.lum.lo.dto.LoRepositoryInfo;
46  
47  /**
48   * The Learning Objective Service allows for the creation and management of Learning Objectives.
49   * 
50   * @version 2.0 
51   */
52  @WebService(name = "LearningObjectiveService", targetNamespace = LearningObjectiveServiceConstants.NAMESPACE)
53  @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
54  public interface LearningObjectiveService extends  SearchService // ,DictionaryService
55  {
56  
57      /**
58       * Retrieves a single LoRepository by an LoRepository Key.
59       *
60       * @param loRepositoryKey   the identifier for the LoRepository to be retrieved
61       * @param contextInfo       information containing the principalId and locale information about the caller of the service operation
62       * @return the LoRepository requested
63       * @throws DoesNotExistException        loRepositoryKey is not found
64       * @throws InvalidParameterException    contextInfo is not valid
65       * @throws MissingParameterException    loRepositoryKey or contextInfo is missing or null
66       * @throws OperationFailedException     unable to complete request
67       * @throws PermissionDeniedException    an authorization failure occurred
68       */
69      public LoRepositoryInfo getLoRepository (@WebParam(name = "loRepositoryKey") String loRepositoryKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
70  
71      /**
72       * Retrieves a list of LoRepositories from a list of LoRepository Keys. The returned list may be in any order and if duplicate Ids are supplied, a unique set may or may not be returned.
73       *
74       * @param loRepositoryKeys  a list of LoRepository Keys
75       * @param contextInfo       information containing the principalId and locale information about the caller of the service operation
76       * @return a list of LoRepositories
77       * @throws DoesNotExistException        an loRepositoryKey in the list was not found
78       * @throws InvalidParameterException    contextInfo is not valid
79       * @throws MissingParameterException    loRepositoryKeys, a key in the loRepositoryKeys, or contextInfo is missing or null
80       * @throws OperationFailedException     unable to complete request
81       * @throws PermissionDeniedException    an authorization failure occurred
82       */
83      public List<LoRepositoryInfo> getLoRepositoriesByKeys (@WebParam(name = "loRepositoryKeys") List<String> loRepositoryKeys, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
84  
85      /**
86       * Retrieves a list of LoRepositories.
87       *
88       * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
89       * @return a list of LoRepositories or an empty list if none found
90       * @throws InvalidParameterException    contextInfo is not valid
91       * @throws MissingParameterException    contextInfo is missing or null
92       * @throws OperationFailedException     unable to complete request
93       * @throws PermissionDeniedException    an authorization failure occurred
94       */
95      public List<LoRepositoryInfo> getLoRepositories(@WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
96  
97      /**
98       * Retrieves a list of LoRepository keys by LoRepository Type.
99       *
100      * @param loRepositoryTypeKey   a unique key for an LoRepository Type
101      * @param contextInfo           information containing the principalId and locale information about the caller of the service operation
102      * @return a list of LoRepository keys matching loRepositoryTypeKey or an empty list if none found
103      * @throws InvalidParameterException    contextInfo is not valid
104      * @throws MissingParameterException    loRepositoryTypeKey or context is missing or null
105      * @throws OperationFailedException     unable to complete request
106      * @throws PermissionDeniedException    an authorization failure occurred
107      */
108     public List<String> getLoRepositoryKeysByType (@WebParam(name = "loRepositoryTypeKey") String loRepositoryTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
109 
110     /**
111      * Searches for LoRepositories that meet the given search criteria.
112      *
113      * @param criteria      the search criteria
114      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
115      * @return a list of LoRepository keys matching the criteria
116      * @throws InvalidParameterException    criteria or contextInfo is not valid
117      * @throws MissingParameterException    criteria 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> searchForLoRepositoryKeys (@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
122 
123     /**
124      * Searches for LoRepositories that meet the given search criteria.
125      *
126      * @param criteria      the search criteria
127      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
128      * @return a list of LoRepositories matching the criteria
129      * @throws InvalidParameterException    criteria or context is not valid
130      * @throws MissingParameterException    criteria or context is missing or null
131      * @throws OperationFailedException     unable to complete request
132      * @throws PermissionDeniedException    an authorization failure occurred
133      */
134     public List<LoRepositoryInfo> searchForLoRepositories (@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
135 
136     /**
137      * Validates an LoRepository. Depending on the value of validationType, this validation could be limited to tests on just the current LoRepository and its directly contained sub-objects or expanded to perform all tests related to this LoRepository. If an identifier is present for the LoRepository (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the LoRepository can be updated to the new values. If an identifier is not present or a record does not exist, the validation checks if the LoRepository with the given data can be created.
138      *
139      * @param validationTypeKey     the identifier for the validation Type
140      * @param loRepositoryTypeKey   the identifier for the LoRepository Type
141      * @param loRepositoryInfo      the LoRepository to be validated
142      * @param contextInfo           information containing the principalId and locale information about the caller of the service operation
143      * @return a list of validation results or an empty list if validation succeeded
144      * @throws DoesNotExistException        validationTypeKey or loRepositoryTypeKey is not found
145      * @throws InvalidParameterException    loRepositoryInfo or contextInfo is not valid
146      * @throws MissingParameterException    validationTypeKey, loRepositoryTypeKey, loRepositoryInfo, or contextInfo is missing or null
147      * @throws OperationFailedException     unable to complete request
148      * @throws PermissionDeniedException    an authorization failure occurred
149      */
150     public List<ValidationResultInfo> validateLoRepository (@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "loRepositoryTypeKey") String loRepositoryTypeKey, @WebParam(name = "loRepositoryInfo") LoRepositoryInfo loRepositoryInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
151 
152     /**
153      * Creates a new LoRepository. The LoRepository Type, and Meta information may not be set in the supplied data object.
154      *
155      * @param loRepositoryKey       a unique key for the new LoRepository
156      * @param loRepositoryTypeKey   the identifier for the Type of LoRepository to be created
157      * @param loRepositoryInfo      the data with which to create the LoRepository
158      * @param contextInfo           information containing the principalId and locale information about the caller of the service operation
159      * @return the new LoRepository
160      * @throws AlreadyExistsException       loRepositoryKey already exists
161      * @throws DataValidationErrorException supplied data is invalid
162      * @throws DoesNotExistException        loRepositoryTypeKey does not exist or is not supported
163      * @throws InvalidParameterException    loRepositoryInfo or contextInfo is not valid
164      * @throws MissingParameterException    loRepositoryTypeKey, loRepositoryInfo, or contextInfo is missing or null
165      * @throws OperationFailedException     unable to complete request
166      * @throws PermissionDeniedException    an authorization failure occurred
167      * @throws ReadOnlyException            an attempt at supplying information designated as read only
168      */
169     public LoRepositoryInfo createLoRepository (@WebParam(name = "loRepositoryKey") String loRepositoryKey, @WebParam(name = "loRepositoryTypeKey") String loRepositoryTypeKey, @WebParam(name = "loRepositoryInfo") LoRepositoryInfo loRepositoryInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
170 
171     /**
172      * Updates an existing LoRepository. The LoRepository Key, Type, and Meta information may not be changed.
173      *
174      * @param loRepositoryKey   the identifier for the LoRepository to be updated
175      * @param loRepositoryInfo  the new data for the LoRepository
176      * @param contextInfo       information containing the principalId and locale information about the caller of the service operation
177      * @return the updated LoRepository
178      * @throws DataValidationErrorException supplied data is invalid
179      * @throws DoesNotExistException        loRepositoryKey is not found
180      * @throws InvalidParameterException    loRepositoryInfo or contextInfo is not valid
181      * @throws MissingParameterException    loRepositoryKey, loRepositoryInfo, or contextInfo is missing or null
182      * @throws OperationFailedException     unable to complete request
183      * @throws PermissionDeniedException    an authorization failure occurred
184      * @throws ReadOnlyException            an attempt at changing information designated as read only
185      * @throws VersionMismatchException     an optimistic locking failure or the action was attempted on an out of date version
186      */
187     public LoRepositoryInfo updateLoRepository (@WebParam(name = "loRepositoryKey") String loRepositoryKey, @WebParam(name = "loRepositoryInfo") LoRepositoryInfo loRepositoryInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
188 
189     /**
190      * Deletes an existing LoRepository.
191      *
192      * @param loRepositoryKey   the identifier for the LoRepository to be deleted
193      * @param contextInfo       information containing the principalId and locale information about the caller of the service operation
194      * @return the status of the delete operation. This must always be true.
195      * @throws DoesNotExistException        loRepositoryKey is not found
196      * @throws InvalidParameterException    contextInfo is not valid
197      * @throws MissingParameterException    loRepositoryKey or contextInfo is missing or null
198      * @throws OperationFailedException     unable to complete request
199      * @throws PermissionDeniedException    an authorization failure occurred
200      */
201     public StatusInfo deleteLoRepository (@WebParam(name = "loRepositoryKey") String loRepositoryKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
202 
203     /**
204      * Retrieves a single Lo by an Lo Id.
205      *
206      * @param loId          the identifier for the Lo to be retrieved
207      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
208      * @return the Lo requested
209      * @throws DoesNotExistException        loId is not found
210      * @throws InvalidParameterException    contextInfo is not valid
211      * @throws MissingParameterException    loId or contextInfo is missing or null
212      * @throws OperationFailedException     unable to complete request
213      * @throws PermissionDeniedException    an authorization failure occurred
214      */
215     public LoInfo getLo (@WebParam(name = "loId") String loId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
216 
217     /**
218      * Retrieves a list of Los from a list of Lo Ids. The returned list may be in any order and if duplicate Ids are supplied, a unique set may or may not be returned.
219      *
220      * @param loIds         a list of Lo identifiers
221      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
222      * @return a list of Los
223      * @throws DoesNotExistException        an loId in the list was not found
224      * @throws InvalidParameterException    contextInfo is not valid
225      * @throws MissingParameterException    loIds, an Id in the loIds, or contextInfo is missing or null
226      * @throws OperationFailedException     unable to complete request
227      * @throws PermissionDeniedException    an authorization failure occurred
228      */
229     public List<LoInfo> getLosByIds (@WebParam(name = "loIds") List<String> loIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
230 
231     /**
232      * Retrieves a list of Lo Ids by Lo Type.
233      *
234      * @param loTypeKey     an identifier for an Lo Type
235      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
236      * @return a list of Lo identifiers matching loTypeKey or an empty list if none found
237      * @throws InvalidParameterException    contextInfo is not valid
238      * @throws MissingParameterException    loTypeKey or context is missing or null
239      * @throws OperationFailedException     unable to complete request
240      * @throws PermissionDeniedException    an authorization failure occurred
241      */
242     public List<String> getLoIdsByType (@WebParam(name = "loTypeKey") String loTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
243 
244     /**
245      * Retrieves a list of Los by LoRepository.
246      *
247      * @param loRepositoryKey   a key for the LoRepository
248      * @param loTypeKey   the identifier for the Lo Type
249      * @param loStateKey   the identifier for the Lo State
250      * @param contextInfo       information containing the principalId and locale information about the caller of the service operation
251      * @return a list of Los for the LoRepository
252      * @throws DoesNotExistException        loRepositoryId is not found
253      * @throws InvalidParameterException    contextInfo is not valid
254      * @throws MissingParameterException    loRepositoryId or contextInfo is missing or null
255      * @throws OperationFailedException     unable to complete request
256      * @throws PermissionDeniedException    an authorization failure occurred
257      */
258     public List<LoInfo> getLosByLoRepository(@WebParam(name = "loRepositoryKey") String loRepositoryKey, @WebParam(name="loTypeKey")String loTypeKey, @WebParam(name="loStateKey")String loStateKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
259 
260     /**
261      * Retrieves a list of Los by LoCategory.
262      *
263      * @param loCategoryId  an identifier for the LoCategory
264      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
265      * @return a list of Los for the LoCategory
266      * @throws DoesNotExistException        loCategoryId is not found
267      * @throws InvalidParameterException    contextInfo is not valid
268      * @throws MissingParameterException    loCategoryId or contextInfo is missing or null
269      * @throws OperationFailedException     unable to complete request
270      * @throws PermissionDeniedException    an authorization failure occurred
271      */
272     public List<LoInfo> getLosByLoCategory(@WebParam(name = "loCategoryId") String loCategoryId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
273 
274     /**
275      * Retrieves a list of Los by related Lo.
276      *
277      * @param relatedLoId       an identifier for the related Lo
278      * @param loLoRelationTypeKey   the identifier for the LoLoRelation Type
279      * @param contextInfo       information containing the principalId and locale information about the caller of the service operation
280      * @return a list of Los for the related Lo
281      * @throws DoesNotExistException        relatedLoId is not found
282      * @throws InvalidParameterException    contextInfo is not valid
283      * @throws MissingParameterException    relatedLoId, loLoRelationTypeKey, or contextInfo is missing or null
284      * @throws OperationFailedException     unable to complete request
285      * @throws PermissionDeniedException    an authorization failure occurred
286      */
287     public List<LoInfo> getLosByRelatedLoId(@WebParam(name = "relatedLoId") String relatedLoId, @WebParam(name = "loLoRelationTypeKey") String loLoRelationTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
288 
289     /**
290      * Retrieves a list of related Los by Lo.
291      *
292      * @param loId                  an identifier for the Lo
293      * @param loLoRelationTypeKey   the identifier for the LoLoRelation Type
294      * @param contextInfo           information containing the principalId and locale information about the caller of the service operation
295      * @return a list of related Los for the Lo
296      * @throws DoesNotExistException        loId is not found
297      * @throws InvalidParameterException    contextInfo is not valid
298      * @throws MissingParameterException    loId or contextInfo is missing or null
299      * @throws OperationFailedException     unable to complete request
300      * @throws PermissionDeniedException    an authorization failure occurred
301      */
302     public List<LoInfo> getRelatedLosByLoId(@WebParam(name = "loId") String loId, @WebParam(name = "loLoRelationTypeKey") String loLoRelationTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
303 
304     /**
305      * Searches for Los that meet the given search criteria.
306      *
307      * @param criteria      the search criteria
308      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
309      * @return a list of Lo identifiers matching the criteria
310      * @throws InvalidParameterException    criteria or contextInfo is not valid
311      * @throws MissingParameterException    criteria or contextInfo is missing or null
312      * @throws OperationFailedException     unable to complete request
313      * @throws PermissionDeniedException    an authorization failure occurred
314      */
315     public List<String> searchForLoIds (@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
316 
317     /**
318      * Searches for Los that meet the given search criteria.
319      *
320      * @param criteria    the search criteria
321      * @param contextInfo information containing the principalId and locale information about the caller of the service operation
322      * @return a list of Los matching the criteria
323      * @throws InvalidParameterException    criteria or context is not valid
324      * @throws MissingParameterException    criteria or context is missing or null
325      * @throws OperationFailedException     unable to complete request
326      * @throws PermissionDeniedException    an authorization failure occurred
327      */
328     public List<LoInfo> searchForLos (@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
329 
330     /**
331      * Validates an Lo. Depending on the value of validationType, this validation could be limited to tests on just the current Lo and its directly contained sub-objects or expanded to perform all tests related to this Lo. If an identifier is present for the Lo (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the Lo can be updated to the new values. If an identifier is not present or a record does not exist, the validation checks if the Lo with the given data can be created.
332      *
333      * @param validationTypeKey the identifier for the Lo Type to be validated
334      * @param loInfo            the Lo to be validated
335      * @param contextInfo       information containing the principalId and locale information about the caller of the service operation
336      * @return a list of validation results or an empty list if validation succeeded
337      * @throws DoesNotExistException        validationTypeKey or loTypeKey is not found
338      * @throws InvalidParameterException    loInfo or contextInfo is not valid
339      * @throws MissingParameterException    validationTypeKey, loTypeKey, loInfo, or contextInfo is missing or null
340      * @throws OperationFailedException     unable to complete request
341      * @throws PermissionDeniedException    an authorization failure occurred
342      */
343     public List<ValidationResultInfo> validateLo (@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "loInfo") LoInfo loInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
344 
345     /**
346      * Creates a new Lo. The Lo Id, Type, and Meta information may not be set in the supplied data object.
347      *
348      * @param loTypeKey     the identifier for the Type of Lo to be created
349      * @param string 
350      * @param loInfo        the data with which to create the Lo
351      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
352      * @return the new Lo
353      * @throws DataValidationErrorException supplied data is invalid
354      * @throws DoesNotExistException        loTypeKey does not exist or is not supported
355      * @throws InvalidParameterException    loInfo or contextInfo is not valid
356      * @throws MissingParameterException    loTypeKey, loInfo, or contextInfo is missing or null
357      * @throws OperationFailedException     unable to complete request
358      * @throws PermissionDeniedException    an authorization failure occurred
359      * @throws ReadOnlyException            an attempt at supplying information designated as read only
360      */
361     public LoInfo createLo( @WebParam(name = "repositoryId")String repositoryId, @WebParam(name = "loType")String loType, 
362             @WebParam(name = "loInfo")LoInfo loInfo, @WebParam(name = "contextInfo")ContextInfo contextInfo) throws DataValidationErrorException,
363             DoesNotExistException, InvalidParameterException,
364             MissingParameterException, OperationFailedException,
365             PermissionDeniedException, ReadOnlyException;
366 
367     /**
368      * Updates an existing Lo. The Lo Id, Type, and Meta information may not be changed.
369      *
370      * @param loId          the identifier for the Lo to be updated
371      * @param loInfo        the new data for the Lo
372      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
373      * @return the updated Lo
374      * @throws DataValidationErrorException supplied data is invalid
375      * @throws DoesNotExistException        loId is not found
376      * @throws InvalidParameterException    loInfo or contextInfo is not valid
377      * @throws MissingParameterException    loId, loInfo, or contextInfo is missing or null
378      * @throws OperationFailedException     unable to complete request
379      * @throws PermissionDeniedException    an authorization failure occurred
380      * @throws ReadOnlyException            an attempt at changing information designated as read only
381      * @throws VersionMismatchException     an optimistic locking failure or the action was attempted on an out of date version
382      */
383     public LoInfo updateLo (@WebParam(name = "loId") String loId, @WebParam(name = "loInfo") LoInfo loInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
384 
385     /**
386      * Deletes an existing Lo.
387      *
388      * @param loId          the identifier for the Lo to be deleted
389      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
390      * @return the status of the delete operation. This must always be true.
391      * @throws DoesNotExistException        loId is not found
392      * @throws InvalidParameterException    contextInfo is not valid
393      * @throws MissingParameterException    loId or contextInfo is missing or null
394      * @throws OperationFailedException     unable to complete request
395      * @throws PermissionDeniedException    an authorization failure occurred
396      * @throws DependentObjectsExistException 
397      */
398     public StatusInfo deleteLo (@WebParam(name = "loId") String loId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException;
399 
400 
401     /**
402      * Retrieves a single LoCategory by an LoCategory Id.
403      *
404      * @param loCategoryId  the identifier for the LoCategory to be retrieved
405      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
406      * @return the LoCategory requested
407      * @throws DoesNotExistException        loCategoryId is not found
408      * @throws InvalidParameterException    contextInfo is not valid
409      * @throws MissingParameterException    loCategoryId or contextInfo is missing or null
410      * @throws OperationFailedException     unable to complete request
411      * @throws PermissionDeniedException    an authorization failure occurred
412      */
413     public LoCategoryInfo getLoCategory (@WebParam(name = "loCategoryId") String loCategoryId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
414 
415     /**
416      * Retrieves a list of LoCategories from a list of LoCategory Ids. The returned list may be in any order and if duplicate Ids are supplied, a unique set may or may not be returned.
417      *
418      * @param loCategoryIds a list of LoCategory identifiers
419      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
420      * @return a list of LoCategories
421      * @throws DoesNotExistException        an loCategoryId in the list was not found
422      * @throws InvalidParameterException    contextInfo is not valid
423      * @throws MissingParameterException    loCategoryIds, an Id in the loCategoryIds, or contextInfo is missing or null
424      * @throws OperationFailedException     unable to complete request
425      * @throws PermissionDeniedException    an authorization failure occurred
426      */
427     public List<LoCategoryInfo> getLoCategoriesByIds (@WebParam(name = "loCategoryIds") List<String> loCategoryIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
428 
429     
430     /**
431      * Retrieves a list of LoCategories by their associated repository key
432      * 
433      * @param loRepositoryKey a list of LoCategory identifiers
434      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
435      * @return a list of LoCategories
436      * @throws DoesNotExistException        an loCategoryId in the list was not found
437      * @throws InvalidParameterException    contextInfo is not valid
438      * @throws MissingParameterException    loCategoryIds, an Id in the loCategoryIds, or contextInfo is missing or null
439      * @throws OperationFailedException     unable to complete request
440      * @throws PermissionDeniedException    an authorization failure occurred
441      */
442     public List<LoCategoryInfo> getLoCategoriesByLoRepository (@WebParam(name = "repositoryKey") String loRepositoryKey, 
443             @WebParam(name = "contextInfo") ContextInfo contextInfo) 
444             throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
445 
446     
447     /**
448      * Retrieves a list of LoCategory Ids by LoCategory Type.
449      *
450      * @param loCategoryTypeKey an identifier for an LoCategory Type
451      * @param contextInfo       information containing the principalId and locale information about the caller of the service operation
452      * @return a list of LoCategory identifiers matching loCategoryTypeKey or an empty list if none found
453      * @throws InvalidParameterException    contextInfo is not valid
454      * @throws MissingParameterException    loCategoryTypeKey or context is missing or null
455      * @throws OperationFailedException     unable to complete request
456      * @throws PermissionDeniedException    an authorization failure occurred
457      */
458     public List<String> getLoCategoryIdsByType (@WebParam(name = "loCategoryTypeKey") String loCategoryTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
459 
460     /**
461      * Retrieves a list of LoCategories by Lo.
462      *
463      * @param loId          an identifier for the Lo
464      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
465      * @return a list of LoCategories for the Lo
466      * @throws DoesNotExistException        loId is not found
467      * @throws InvalidParameterException    contextInfo is not valid
468      * @throws MissingParameterException    loId or contextInfo is missing or null
469      * @throws OperationFailedException     unable to complete request
470      * @throws PermissionDeniedException    an authorization failure occurred
471      */
472     public List<LoCategoryInfo> getLoCategoriesByLo(@WebParam(name = "loId") String loId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
473 
474     /**
475      * Searches for LoCategories that meet the given search criteria.
476      *
477      * @param criteria      the search criteria
478      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
479      * @return a list of LoCategory identifiers matching the criteria
480      * @throws InvalidParameterException    criteria or contextInfo is not valid
481      * @throws MissingParameterException    criteria or contextInfo is missing or null
482      * @throws OperationFailedException     unable to complete request
483      * @throws PermissionDeniedException    an authorization failure occurred
484      */
485     public List<String> searchForLoCategoryIds (@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
486 
487     /**
488      * Searches for LoCategories that meet the given search criteria.
489      *
490      * @param criteria      the search criteria
491      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
492      * @return a list of LoCategories matching the criteria
493      * @throws InvalidParameterException    criteria or context is not valid
494      * @throws MissingParameterException    criteria or context is missing or null
495      * @throws OperationFailedException     unable to complete request
496      * @throws PermissionDeniedException    an authorization failure occurred
497      */
498     public List<LoCategoryInfo> searchForLoCategories (@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
499 
500     /**
501      * Validates an LoCategory. Depending on the value of validationType, this validation could be limited to tests on just the current LoCategory and its directly contained sub-objects or expanded to perform all tests related to this LoCategory. If an identifier is present for the LoCategory (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the LoCategory can be updated to the new values. If an identifier is not present or a record does not exist, the validation checks if the LoCategory with the given data can be created.
502      *
503      * @param validationTypeKey the identifier for the LoCategory Type to be validated
504      * @param loCategoryInfo    the LoCategory to be validated
505      * @param contextInfo       information containing the principalId and locale information about the caller of the service operation
506      * @return a list of validation results or an empty list if validation succeeded
507      * @throws DoesNotExistException     validationTypeKey or loCategoryTypeKey is not found
508      * @throws InvalidParameterException loCategoryInfo or contextInfo is not valid
509      * @throws MissingParameterException validationTypeKey, loCategoryTypeKey, loCategoryInfo, or contextInfo is missing or null
510      * @throws OperationFailedException  unable to complete request
511      * @throws PermissionDeniedException an authorization failure occurred
512      */
513     public List<ValidationResultInfo> validateLoCategory (@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "loCategoryInfo") LoCategoryInfo loCategoryInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
514 
515     /**
516      * Creates a new LoCategory. The LoCategory Id, Type, and Meta information may not be set in the supplied data object.
517      *
518      * @param loCategoryTypeKey   the identifier for the Type of LoCategory to be created
519      * @param loCategoryInfo      the data with which to create the LoCategory
520      * @param contextInfo         information containing the principalId and locale information about the caller of the service operation
521      * @return the new LoCategory
522      * @throws DataValidationErrorException supplied data is invalid
523      * @throws DoesNotExistException        loCategoryTypeKey does not exist or is not supported
524      * @throws InvalidParameterException    loCategoryInfo or contextInfo is not valid
525      * @throws MissingParameterException    loCategoryTypeKey, loCategoryInfo, or contextInfo is missing or null
526      * @throws OperationFailedException     unable to complete request
527      * @throws PermissionDeniedException    an authorization failure occurred
528      * @throws ReadOnlyException            an attempt at supplying information designated as read only
529      */
530     public LoCategoryInfo createLoCategory (@WebParam(name = "loCategoryTypeKey") String loCategoryTypeKey, @WebParam(name = "loCategoryInfo") LoCategoryInfo loCategoryInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException;
531 
532     /**
533      * Updates an existing LoCategory. The LoCategory Id, Type, and Meta information may not be changed.
534      *
535      * @param loCategoryId   the identifier for the LoCategory to be updated
536      * @param loCategoryInfo the new data for the LoCategory
537      * @param contextInfo    information containing the principalId and locale information about the caller of the service operation
538      * @return the updated LoCategory
539      * @throws DataValidationErrorException supplied data is invalid
540      * @throws DoesNotExistException        loCategoryId is not found
541      * @throws InvalidParameterException    loCategoryInfo or contextInfo is not valid
542      * @throws MissingParameterException    loCategoryId, loCategoryInfo, or contextInfo is missing or null
543      * @throws OperationFailedException     unable to complete request
544      * @throws PermissionDeniedException    an authorization failure occurred
545      * @throws ReadOnlyException            an attempt at changing information designated as read only
546      * @throws VersionMismatchException     an optimistic locking failure or the action was attempted on an out of date version
547      */
548     public LoCategoryInfo updateLoCategory (@WebParam(name = "loCategoryId") String loCategoryId, @WebParam(name = "loCategoryInfo") LoCategoryInfo loCategoryInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
549 
550     /**
551      * Deletes an existing LoCategory.
552      *
553      * @param loCategoryId  the identifier for the LoCategory to be deleted
554      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
555      * @return the status of the delete operation. This must always be true.
556      * @throws DoesNotExistException        loCategoryId is not found
557      * @throws InvalidParameterException    contextInfo is not valid
558      * @throws MissingParameterException    loCategoryId or contextInfo is missing or null
559      * @throws OperationFailedException     unable to complete request
560      * @throws PermissionDeniedException    an authorization failure occurred
561      * @throws DependentObjectsExistException 
562      */
563     public StatusInfo deleteLoCategory (@WebParam(name = "loCategoryId") String loCategoryId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DependentObjectsExistException;
564 
565     /**
566      * Deletes existing LoCategories of a Lo.
567      *
568      * @param loId          the identifier for the Lo for which LoCategories are to be deleted
569      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
570      * @return the status of the delete operation. This must always be true.
571      * @throws DoesNotExistException        loId is not found
572      * @throws InvalidParameterException    contextInfo is not valid
573      * @throws MissingParameterException    loId or contextInfo is missing or null
574      * @throws OperationFailedException     unable to complete request
575      * @throws PermissionDeniedException    an authorization failure occurred
576      */
577     public StatusInfo deleteLoCategoryByLo(@WebParam(name = "loId") String loId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
578 
579     /**
580      * Adds a LoCategory to a Lo
581      *
582      * @param loCategoryId  the identifier for the LoCategory
583      * @param loId          the identifier for the Lo
584      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
585      * @return the status of the delete operation. This must always be true.
586      * @throws AlreadyExistsException       LoCategory already exists for Lo
587      * @throws DoesNotExistException        loCategoryId or loId is not found
588      * @throws InvalidParameterException    contextInfo is not valid
589      * @throws MissingParameterException    loCategoryId, loId, or contextInfo is missing or null
590      * @throws OperationFailedException     unable to complete request
591      * @throws PermissionDeniedException    an authorization failure occurred
592      * @throws UnsupportedActionException   loCategoryId and loId are not in the same repository
593      */
594     public StatusInfo addLoCategoryToLo(@WebParam(name = "loCategoryId") String loCategoryId, @WebParam(name = "loId")String loId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException;
595 
596    /**
597      * Removes a LoCategory from a Lo
598      *
599      * @param loCategoryId  the identifier for the LoCategory
600      * @param loId          the identifier for the Lo
601      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
602      * @return the status of the delete operation. This must always be true.
603      * @throws AlreadyExistsException       LoCategory already exists for Lo
604      * @throws DoesNotExistException        loCategoryId or loId is not found
605      * @throws InvalidParameterException    contextInfo is not valid
606      * @throws MissingParameterException    loCategoryId, loId, or contextInfo is missing or null
607      * @throws OperationFailedException     unable to complete request
608      * @throws PermissionDeniedException    an authorization failure occurred
609      * @throws UnsupportedActionException   loCategoryId and loId are not in the same repository
610      */
611     public StatusInfo removeLoCategoryFromLo(@WebParam(name = "loCategoryId") String loCategoryId, @WebParam(name = "loId")String loId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws AlreadyExistsException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException;
612 
613     /**
614      * Retrieves a single LoLoRelation by an LoLoRelation Id.
615      *
616      * @param loLoRelationId    the identifier for the LoLoRelation to be retrieved
617      * @param contextInfo       information containing the principalId and locale information about the caller of the service operation
618      * @return the LoLoRelation requested
619      * @throws DoesNotExistException        loLoRelationId is not found
620      * @throws InvalidParameterException    contextInfo is not valid
621      * @throws MissingParameterException    loLoRelationId or contextInfo is missing or null
622      * @throws OperationFailedException     unable to complete request
623      * @throws PermissionDeniedException    an authorization failure occurred
624      */
625     public LoLoRelationInfo getLoLoRelation (@WebParam(name = "loLoRelationId") String loLoRelationId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
626 
627     /**
628      * Retrieves a list of LoLoRelations from a list of LoLoRelation Ids. The returned list may be in any order and if duplicate Ids are supplied, a unique set may or may not be returned.
629      *
630      * @param loLoRelationIds   a list of LoLoRelation identifiers
631      * @param contextInfo       information containing the principalId and locale information about the caller of the service operation
632      * @return a list of LoLoRelations
633      *
634      * @throws DoesNotExistException        an loLoRelationId in the list was not found
635      * @throws InvalidParameterException    contextInfo is not valid
636      * @throws MissingParameterException    loLoRelationIds, an Id in the loLoRelationIds, or contextInfo is missing or null
637      * @throws OperationFailedException     unable to complete request
638      * @throws PermissionDeniedException    an authorization failure occurred
639      */
640     public List<LoLoRelationInfo> getLoLoRelationsByIds (@WebParam(name = "loLoRelationIds") List<String> loLoRelationIds, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
641 
642     /**
643      * Retrieves a list of LoLoRelation Ids by LoLoRelation Type.
644      *
645      * @param loLoRelationTypeKey   an identifier for an LoLoRelation Type
646      * @param contextInfo           information containing the principalId and locale information about the caller of the service operation
647      * @return a list of LoLoRelation identifiers matching loLoRelationTypeKey or an empty list if none found
648      * @throws InvalidParameterException    contextInfo is not valid
649      * @throws MissingParameterException    loLoRelationTypeKey or context is missing or null
650      * @throws OperationFailedException     unable to complete request
651      * @throws PermissionDeniedException    an authorization failure occurred
652      */
653     public List<String> getLoLoRelationIdsByType (@WebParam(name = "loLoRelationTypeKey") String loLoRelationTypeKey, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
654 
655     /**
656      * Retrieves a list of LoLoRelations by Lo.
657      *
658      * @param loId      an identifier for the Lo
659      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
660      * @return a list of LoLoRelations for the Lo
661      * @throws DoesNotExistException        loId is not found
662      * @throws InvalidParameterException    contextInfo is not valid
663      * @throws MissingParameterException    loId or contextInfo is missing or null
664      * @throws OperationFailedException     unable to complete request
665      * @throws PermissionDeniedException    an authorization failure occurred
666      */
667     public List<LoLoRelationInfo> getLoLoRelationsByLoId(@WebParam(name = "loId") String loId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
668 
669     /**
670      * Searches for LoLoRelations that meet the given search criteria.
671      *
672      * @param criteria      the search criteria
673      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
674      * @return a list of LoLoRelation identifiers matching the criteria
675      * @throws InvalidParameterException    criteria or contextInfo is not valid
676      * @throws MissingParameterException    criteria or contextInfo is missing or null
677      * @throws OperationFailedException     unable to complete request
678      * @throws PermissionDeniedException    an authorization failure occurred
679      */
680     public List<String> searchForLoLoRelationIds (@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
681 
682     /**
683      * Searches for LoLoRelations that meet the given search criteria.
684      *
685      * @param criteria      the search criteria
686      * @param contextInfo   information containing the principalId and locale information about the caller of the service operation
687      * @return a list of LoLoRelations matching the criteria
688      * @throws InvalidParameterException    criteria or context is not valid
689      * @throws MissingParameterException    criteria or context is missing or null
690      * @throws OperationFailedException     unable to complete request
691      * @throws PermissionDeniedException    an authorization failure occurred
692      */
693     public List<LoLoRelationInfo> searchForLoLoRelations (@WebParam(name = "criteria") QueryByCriteria criteria, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
694 
695     /**
696      * Validates an LoLoRelation. Depending on the value of validationType, this validation could be limited to tests on just the current LoLoRelation and its directly contained sub-objects or expanded to perform all tests related to this LoLoRelation. If an identifier is present for the LoLoRelation (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the LoLoRelation can be updated to the new values. If an identifier is not present or a record does not exist, the validation checks if the LoLoRelation with the given data can be created.
697      *
698      * @param validationTypeKey     the identifier for the LoLoRelation Type to be validated
699      * @param loLoRelationInfo      the LoLoRelation to be validated
700      * @param contextInfo           information containing the principalId and locale information about the caller of the service operation
701      * @return a list of validation results or an empty list if validation succeeded
702      * @throws DoesNotExistException        validationTypeKey or loLoRelationTypeKey is not found
703      * @throws InvalidParameterException    loLoRelationInfo or contextInfo is not valid
704      * @throws MissingParameterException    validationTypeKey, loLoRelationTypeKey, loLoRelationInfo, or contextInfo is missing or null
705      * @throws OperationFailedException     unable to complete request
706      * @throws PermissionDeniedException    an authorization failure occurred
707      */
708     public List<ValidationResultInfo> validateLoLoRelation (@WebParam(name = "validationTypeKey") String validationTypeKey, @WebParam(name = "loLoRelationInfo") LoLoRelationInfo loLoRelationInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
709 
710     /**
711      * Creates a new LoLoRelation. The LoLoRelation Id, Type, and Meta information may not be set in the supplied data object.
712      *
713      * @param loLoRelationTypeKey   the identifier for the Type of LoLoRelation to be created
714      * @param type 
715      * @param relatedLoId 
716      * @param loLoRelationInfo      the data with which to create the LoLoRelation
717      * @param contextInfo           information containing the principalId and locale information about the caller of the service operation
718      * @return the new LoLoRelation
719      * @throws DataValidationErrorException supplied data is invalid
720      * @throws DoesNotExistException        loLoRelationTypeKey does not exist or is not supported
721      * @throws InvalidParameterException    loLoRelationInfo or contextInfo is not valid
722      * @throws MissingParameterException    loLoRelationTypeKey, loLoRelationInfo, or contextInfo is missing or null
723      * @throws OperationFailedException     unable to complete request
724      * @throws PermissionDeniedException    an authorization failure occurred
725      * @throws ReadOnlyException            an attempt at supplying information designated as read only
726      */
727     public LoLoRelationInfo createLoLoRelation(@WebParam(name = "loLoRelationTypeKey")String loLoRelationTypeKey,
728             @WebParam(name = "loLoRelationInfo")LoLoRelationInfo loLoRelationInfo, @WebParam(name = "contextInfo")ContextInfo contextInfo)
729             throws DataValidationErrorException, DoesNotExistException,
730             InvalidParameterException, MissingParameterException,
731             OperationFailedException, PermissionDeniedException,
732             ReadOnlyException;
733 
734     /**
735      * Updates an existing LoLoRelation. The LoLoRelation Id, Type, and Meta information may not be changed.
736      *
737      * @param loLoRelationId    the identifier for the LoLoRelation to be updated
738      * @param loLoRelationInfo  the new data for the LoLoRelation
739      * @param contextInfo       information containing the principalId and locale information about the caller of the service operation
740      * @return the updated LoLoRelation
741      * @throws DataValidationErrorException supplied data is invalid
742      * @throws DoesNotExistException        loLoRelationId is not found
743      * @throws InvalidParameterException    loLoRelationInfo or contextInfo is not valid
744      * @throws MissingParameterException    loLoRelationId, loLoRelationInfo, or contextInfo is missing or null
745      * @throws OperationFailedException     unable to complete request
746      * @throws PermissionDeniedException    an authorization failure occurred
747      * @throws ReadOnlyException            an attempt at changing information designated as read only
748      * @throws VersionMismatchException     an optimistic locking failure or the action was attempted on an out of date version
749      */
750     public LoLoRelationInfo updateLoLoRelation (@WebParam(name = "loLoRelationId") String loLoRelationId, @WebParam(name = "loLoRelationInfo") LoLoRelationInfo loLoRelationInfo, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, ReadOnlyException, VersionMismatchException;
751 
752     /**
753      * Deletes an existing LoLoRelation.
754      *
755      * @param loLoRelationId    the identifier for the LoLoRelation to be deleted
756      * @param contextInfo       information containing the principalId and locale information about the caller of the service operation
757      * @return the status of the delete operation. This must always be true.
758      * @throws DoesNotExistException        loLoRelationId is not found
759      * @throws InvalidParameterException    contextInfo is not valid
760      * @throws MissingParameterException    loLoRelationId or contextInfo is missing or null
761      * @throws OperationFailedException     unable to complete request
762      * @throws PermissionDeniedException    an authorization failure occurred
763      */
764     public StatusInfo deleteLoLoRelation (@WebParam(name = "loLoRelationId") String loLoRelationId, @WebParam(name = "contextInfo") ContextInfo contextInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
765 
766     @Deprecated
767     /**
768      *
769      * This method ...
770      *
771      * @param loCategoryTypeKey
772      * @param contextInfo
773      * @return
774      * @throws DoesNotExistException
775      * @throws InvalidParameterException
776      * @throws MissingParameterException
777      * @throws OperationFailedException
778      */
779     public TypeInfo getLoCategoryType(@WebParam(name = "loCategoryTypeKey")String loCategoryTypeKey,
780                                                 @WebParam(name = "contextInfo")ContextInfo contextInfo) throws DoesNotExistException,
781             InvalidParameterException, MissingParameterException,
782             OperationFailedException;
783 
784     @Deprecated
785     /**
786      *
787      * This method ...
788      *
789      * @return
790      * @throws OperationFailedException
791      */
792     public List<TypeInfo> getLoCategoryTypes()
793             throws OperationFailedException;
794 }