Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
LearningObjectiveService |
|
| 1.0;1 |
1 | /** | |
2 | * Copyright 2010 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.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.student.common.dictionary.service.DictionaryService; | |
25 | import org.kuali.student.common.dto.StatusInfo; | |
26 | import org.kuali.student.common.exceptions.AlreadyExistsException; | |
27 | import org.kuali.student.common.exceptions.CircularRelationshipException; | |
28 | import org.kuali.student.common.exceptions.DataValidationErrorException; | |
29 | import org.kuali.student.common.exceptions.DependentObjectsExistException; | |
30 | import org.kuali.student.common.exceptions.DoesNotExistException; | |
31 | import org.kuali.student.common.exceptions.InvalidParameterException; | |
32 | import org.kuali.student.common.exceptions.MissingParameterException; | |
33 | import org.kuali.student.common.exceptions.OperationFailedException; | |
34 | import org.kuali.student.common.exceptions.PermissionDeniedException; | |
35 | import org.kuali.student.common.exceptions.UnsupportedActionException; | |
36 | import org.kuali.student.common.exceptions.VersionMismatchException; | |
37 | import org.kuali.student.common.search.service.SearchService; | |
38 | import org.kuali.student.common.validation.dto.ValidationResultInfo; | |
39 | import org.kuali.student.lum.lo.dto.LoCategoryInfo; | |
40 | import org.kuali.student.lum.lo.dto.LoCategoryTypeInfo; | |
41 | import org.kuali.student.lum.lo.dto.LoInfo; | |
42 | import org.kuali.student.lum.lo.dto.LoLoRelationInfo; | |
43 | import org.kuali.student.lum.lo.dto.LoLoRelationTypeInfo; | |
44 | import org.kuali.student.lum.lo.dto.LoRepositoryInfo; | |
45 | import org.kuali.student.lum.lo.dto.LoTypeInfo; | |
46 | ||
47 | /** | |
48 | * | |
49 | * @Author KSContractMojo | |
50 | * @Author jimt | |
51 | * @Since Tue Dec 08 10:00:55 PST 2009 | |
52 | * @See <a href="https://test.kuali.org/confluence/display/KULSTU/Learning+Objective+Service+v1.0-rc3">LearningObjectiveService</> | |
53 | * | |
54 | */ | |
55 | @WebService(name = "LearningObjectiveService", targetNamespace = "http://student.kuali.org/wsdl/lo") | |
56 | @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) | |
57 | public interface LearningObjectiveService extends DictionaryService, SearchService { | |
58 | /** | |
59 | * Retrieves the list of learning objective repositories known by this service. | |
60 | * @return list of learning objective repository information | |
61 | * @throws OperationFailedException unable to complete request | |
62 | */ | |
63 | public List<LoRepositoryInfo> getLoRepositories() throws OperationFailedException; | |
64 | ||
65 | /** | |
66 | * Retrieves information about a particular learning objective repository. | |
67 | * @param loRepositoryKey learning objective repository identifier | |
68 | * @return information about a learning objective repository | |
69 | * @throws DoesNotExistException specified learning objective repository not found | |
70 | * @throws InvalidParameterException invalid loRepositoryKey | |
71 | * @throws MissingParameterException loRepositoryKey not specified | |
72 | * @throws OperationFailedException unable to complete request | |
73 | */ | |
74 | public LoRepositoryInfo getLoRepository(@WebParam(name="loRepositoryKey")String loRepositoryKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
75 | ||
76 | /** | |
77 | * Retrieves the list of learning objective category types known by this service. | |
78 | * @return list of learning objective category type information | |
79 | * @throws OperationFailedException unable to complete request | |
80 | */ | |
81 | public List<LoCategoryTypeInfo> getLoCategoryTypes() throws OperationFailedException; | |
82 | ||
83 | /** | |
84 | * Retrieves information about a particular learning objective category type. | |
85 | * @param loCategoryTypeKey learning objective category type identifier | |
86 | * @return information about a learning objective category type | |
87 | * @throws DoesNotExistException specified learning objective category type not found | |
88 | * @throws InvalidParameterException invalid loCategoryTypeKey | |
89 | * @throws MissingParameterException loCategoryTypeKey not specified | |
90 | * @throws OperationFailedException unable to complete request | |
91 | */ | |
92 | public LoCategoryTypeInfo getLoCategoryType(@WebParam(name="loCategoryTypeKey")String loCategoryTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
93 | ||
94 | /** | |
95 | * Retrieves the list of learning objective types known by this service. | |
96 | * @return list of learning objective type information | |
97 | * @throws OperationFailedException unable to complete request | |
98 | */ | |
99 | public List<LoTypeInfo> getLoTypes() throws OperationFailedException; | |
100 | ||
101 | /** | |
102 | * Retrieves information about a particular learning objective type. | |
103 | * @param loTypeKey learning objective type identifier | |
104 | * @return information about a learning objective type | |
105 | * @throws DoesNotExistException specified learning objective type not found | |
106 | * @throws InvalidParameterException invalid loTypeKey | |
107 | * @throws MissingParameterException loTypeKey not specified | |
108 | * @throws OperationFailedException unable to complete request | |
109 | */ | |
110 | public LoTypeInfo getLoType(@WebParam(name="loTypeKey")String loTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
111 | ||
112 | /** | |
113 | * Retrieves the complete list of LO to LO relation types | |
114 | * @return list of LO to LO relation type information | |
115 | * @throws OperationFailedException unable to complete request | |
116 | */ | |
117 | public List<LoLoRelationTypeInfo> getLoLoRelationTypes() throws OperationFailedException; | |
118 | ||
119 | /** | |
120 | * Retrieves the LO to LO relation type | |
121 | * @param loLoRelationTypeKey Key of the LO to LO Relation Type | |
122 | * @return LO to LO relation type information | |
123 | * @throws OperationFailedException unable to complete request | |
124 | * @throws MissingParameterException | |
125 | * @throws DoesNotExistException | |
126 | */ | |
127 | public LoLoRelationTypeInfo getLoLoRelationType(@WebParam(name="loLoRelationTypeKey")String loLoRelationTypeKey) throws OperationFailedException, MissingParameterException, DoesNotExistException; | |
128 | ||
129 | /** | |
130 | * Retrieves the list of allowed relation types between the two specified LO Types | |
131 | * @param loTypeKey Key of the first LO Type | |
132 | * @param relatedLoTypeKey Key of the second LO Type | |
133 | * @return list of LO to LO relation types | |
134 | * @throws DoesNotExistException loTypeKey, relatedLoTypeKey not found | |
135 | * @throws InvalidParameterException invalid loTypeKey, relatedLoTypeKey | |
136 | * @throws MissingParameterException missing loTypeKey, relatedLoTypeKey | |
137 | * @throws OperationFailedException unable to complete request | |
138 | */ | |
139 | public List<String> getAllowedLoLoRelationTypesForLoType(@WebParam(name="loTypeKey")String loTypeKey, @WebParam(name="relatedLoTypeKey")String relatedLoTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
140 | ||
141 | /** | |
142 | * Retrieves information about all the learning objective categories in a given learning objective repository. | |
143 | * @param loRepositoryKey loRepository identifier | |
144 | * @return list of learning objective category information | |
145 | * @throws DoesNotExistException loRepositoryKey not found | |
146 | * @throws InvalidParameterException invalid loRepositoryKey | |
147 | * @throws MissingParameterException missing loRepositoryKey | |
148 | * @throws OperationFailedException unable to complete request | |
149 | */ | |
150 | public List<LoCategoryInfo> getLoCategories(@WebParam(name="loRepositoryKey")String loRepositoryKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
151 | ||
152 | /** | |
153 | * Retrieves information about an learning objective category. | |
154 | * @param loCategoryId loCategory identifier | |
155 | * @return LoCategory | |
156 | * @throws DoesNotExistException loCategoryId not found | |
157 | * @throws InvalidParameterException invalid loCategoryId | |
158 | * @throws MissingParameterException missing loCategoryId | |
159 | * @throws OperationFailedException unable to complete request | |
160 | */ | |
161 | public LoCategoryInfo getLoCategory(@WebParam(name="loCategoryId")String loCategoryId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
162 | ||
163 | /** | |
164 | * Retrieves information on a single learning objective. | |
165 | * @param loId learning objective identifier | |
166 | * @return information about a single learning objective | |
167 | * @throws DoesNotExistException loId not found | |
168 | * @throws InvalidParameterException invalid loId | |
169 | * @throws MissingParameterException missing loId | |
170 | * @throws OperationFailedException unable to complete request | |
171 | */ | |
172 | public LoInfo getLo(@WebParam(name="loId")String loId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
173 | ||
174 | /** | |
175 | * Retrieves information on multiple learning objectives. | |
176 | * @param loId list of learning objective identifiers | |
177 | * @return list of learning objective information | |
178 | * @throws InvalidParameterException invalid loIdList | |
179 | * @throws MissingParameterException missing loIdList | |
180 | * @throws OperationFailedException unable to complete request | |
181 | */ | |
182 | public List<LoInfo> getLoByIdList(@WebParam(name="loId")List<String> loId) throws InvalidParameterException, MissingParameterException, OperationFailedException; | |
183 | ||
184 | /** | |
185 | * Retrieves learning objectives from a given repository of a given type and state. | |
186 | * @param loRepositoryKey repository identifier | |
187 | * @param loTypeKey learning objective type identifier | |
188 | * @param loStateKey learning objective state identifier | |
189 | * @return list of learning objectives | |
190 | * @throws InvalidParameterException one or more parameters invalid | |
191 | * @throws MissingParameterException one or more missing parameters missing | |
192 | * @throws OperationFailedException unable to complete request | |
193 | */ | |
194 | public List<LoInfo> getLosByRepository(@WebParam(name="loRepositoryKey")String loRepositoryKey, @WebParam(name="loTypeKey")String loTypeKey, @WebParam(name="loStateKey")String loStateKey) throws InvalidParameterException, MissingParameterException, OperationFailedException; | |
195 | ||
196 | /** | |
197 | * Retrieves a list of learning objective categories for a specific learning objective. | |
198 | * @param loId learning objective identifier | |
199 | * @return list of learning objective category information | |
200 | * @throws DoesNotExistException loCategoryId not found | |
201 | * @throws InvalidParameterException invalid loId | |
202 | * @throws MissingParameterException missing loId | |
203 | * @throws OperationFailedException unable to complete request | |
204 | */ | |
205 | public List<LoCategoryInfo> getLoCategoriesForLo(@WebParam(name="loId")String loId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
206 | ||
207 | /** | |
208 | * Retrieves a list of learning objectives that have a specific learning objective category. | |
209 | * @param loCategoryId learning objective category identifier | |
210 | * @return list of learning objective information | |
211 | * @throws DoesNotExistException loCategoryId not found | |
212 | * @throws InvalidParameterException invalid loCategoryId | |
213 | * @throws MissingParameterException missing loCategoryId | |
214 | * @throws OperationFailedException unable to complete request | |
215 | */ | |
216 | public List<LoInfo> getLosByLoCategory(@WebParam(name="loCategoryId")String loCategoryId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
217 | ||
218 | /** | |
219 | * Retrieves the list of LO information for the LOs related to a specified LO Id with a certain LU to LU relation type (getRelatedLosByLoId from the other direction) | |
220 | * @param relatedLoId identifier of the LO | |
221 | * @param loLoRelationType the LO to LO relation type | |
222 | * @return list of LO information | |
223 | * @throws DoesNotExistException relatedLoId, loLoRelationType not found | |
224 | * @throws InvalidParameterException invalid relatedLoId, loLoRelationType | |
225 | * @throws MissingParameterException missing relatedLoId, loLoRelationType | |
226 | * @throws OperationFailedException unable to complete request | |
227 | */ | |
228 | public List<LoInfo> getLosByRelatedLoId(@WebParam(name="relatedLoId")String relatedLoId, @WebParam(name="loLoRelationType")String loLoRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
229 | ||
230 | /** | |
231 | * Retrieves the list of related LO information for the specified LO Id and LU to LU relation type (getLosByRelatedLoId from the other direction) | |
232 | * @param loId identifier of the LO | |
233 | * @param loLoRelationType the LO to LO relation type | |
234 | * @return list of LO information | |
235 | * @throws DoesNotExistException loId, loLoRelationType not found | |
236 | * @throws InvalidParameterException invalid loId, loLoRelationType | |
237 | * @throws MissingParameterException missing loId, loLoRelationType | |
238 | * @throws OperationFailedException unable to complete request | |
239 | */ | |
240 | public List<LoInfo> getRelatedLosByLoId(@WebParam(name="loId")String loId, @WebParam(name="loLoRelationType")String loLoRelationType) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
241 | ||
242 | /** | |
243 | * Retrieves the relationship information between LOs for a particular relationship identifier | |
244 | * @param loLoRelationId identifier of the LO to LO relationship | |
245 | * @return information on the relation between two LOs | |
246 | * @throws DoesNotExistException loLoRelationId not found | |
247 | * @throws InvalidParameterException invalid loLoRelationId | |
248 | * @throws MissingParameterException missing loLoRelationId | |
249 | * @throws OperationFailedException unable to complete request | |
250 | */ | |
251 | public LoLoRelationInfo getLoLoRelation(@WebParam(name="loLoRelationId")String loLoRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
252 | ||
253 | /** | |
254 | * Retrieves the relationship information between LOs for a particular LO. | |
255 | * @param loId identifier of the LO | |
256 | * @return all relations (both directions) from an LO | |
257 | * @throws DoesNotExistException loId not found | |
258 | * @throws InvalidParameterException invalid loId | |
259 | * @throws MissingParameterException missing loId | |
260 | * @throws OperationFailedException unable to complete request | |
261 | */ | |
262 | public List<LoLoRelationInfo> getLoLoRelationsByLoId(@WebParam(name="loId")String loId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
263 | ||
264 | /** | |
265 | * Validates a learning objective category. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the learning objective category (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the learning objective category can be shifted to the new values. If an identifier is not present or a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object. | |
266 | * @param validationType identifier of the extent of validation | |
267 | * @param loCategoryInfo learning objective category information to be tested. | |
268 | * @return results from performing the validation | |
269 | * @throws DoesNotExistException validationTypeKey not found | |
270 | * @throws InvalidParameterException invalid validationTypeKey, loCategoryInfo | |
271 | * @throws MissingParameterException missing validationTypeKey, loCategoryInfo | |
272 | * @throws OperationFailedException unable to complete request | |
273 | */ | |
274 | public List<ValidationResultInfo> validateLoCategory(@WebParam(name="validationType")String validationType, @WebParam(name="loCategoryInfo")LoCategoryInfo loCategoryInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
275 | ||
276 | /** | |
277 | * Create a learning objective category in a particular learning objective repository. | |
278 | * @param loRepositoryKey identifier of the learning objective repository | |
279 | * @param loCategoryTypeKey identifier of the learning objective category type | |
280 | * @param loCategoryInfo information to create the learning objective category | |
281 | * @return information on the created learning objective category | |
282 | * @throws DataValidationErrorException One or more values invalid for this operation | |
283 | * @throws DoesNotExistException loRepositoryKey, loCategoryTypeKey not found | |
284 | * @throws InvalidParameterException invalid loRepositoryKey, loCategoryTypeKey, loCategoryInfo | |
285 | * @throws MissingParameterException missing loRepositoryKey, loCategoryTypeKey, loCategoryInfo | |
286 | * @throws OperationFailedException unable to complete request | |
287 | * @throws PermissionDeniedException authorization failure | |
288 | */ | |
289 | public LoCategoryInfo createLoCategory(@WebParam(name="loRepositoryKey")String loRepositoryKey, @WebParam(name="loCategoryTypeKey")String loCategoryTypeKey, @WebParam(name="loCategoryInfo")LoCategoryInfo loCategoryInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
290 | ||
291 | /** | |
292 | * Updates a learning objective category in a particular learning objective repository. | |
293 | * @param loCategoryId the learning objective category identifier | |
294 | * @param loCategoryInfo information to create the learning objective category | |
295 | * @return information on the uppdated learning objective category | |
296 | * @throws DataValidationErrorException One or more values invalid for this operation | |
297 | * @throws DoesNotExistException loCategoryId not found | |
298 | * @throws InvalidParameterException invalid loCategoryId, loCategoryInfo | |
299 | * @throws MissingParameterException missing loCategoryId, loCategoryInfo | |
300 | * @throws OperationFailedException unable to complete request | |
301 | * @throws PermissionDeniedException authorization failure | |
302 | * @throws VersionMismatchException action was attempted on an out of date version. | |
303 | */ | |
304 | public LoCategoryInfo updateLoCategory(@WebParam(name="loCategoryId")String loCategoryId, @WebParam(name="loCategoryInfo")LoCategoryInfo loCategoryInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; | |
305 | ||
306 | /** | |
307 | * Deletes a learning objective category. | |
308 | * @param loCategoryId learning objective category identifier | |
309 | * @return status of the operation (success/failure) | |
310 | * @throws DependentObjectsExistException learning objective category is still attached to one or more learning objectives | |
311 | * @throws DoesNotExistException loCategoryId not found | |
312 | * @throws InvalidParameterException invalid loCategoryId | |
313 | * @throws MissingParameterException missing loCategoryId | |
314 | * @throws OperationFailedException unable to complete request | |
315 | * @throws PermissionDeniedException authorization failure | |
316 | */ | |
317 | public StatusInfo deleteLoCategory(@WebParam(name="loCategoryId")String loCategoryId) throws DependentObjectsExistException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
318 | ||
319 | /** | |
320 | * Validates a learning objective. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. If an identifier is present for the learning objective (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the learning objective can be shifted to the new values. If an identifier is not present or a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object. | |
321 | * @param validationType identifier of the extent of validation | |
322 | * @param loInfo learning objective information to be tested. | |
323 | * @return results from performing the validation | |
324 | * @throws DoesNotExistException validationTypeKey not found | |
325 | * @throws InvalidParameterException invalid validationTypeKey, loInfo | |
326 | * @throws MissingParameterException missing validationTypeKey, loInfo | |
327 | * @throws OperationFailedException unable to complete request | |
328 | */ | |
329 | public List<ValidationResultInfo> validateLo(@WebParam(name="validationType")String validationType, @WebParam(name="loInfo")LoInfo loInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
330 | ||
331 | /** | |
332 | * Create a learning objective. | |
333 | * @param loRepositoryKey identifier of the learning objective repository | |
334 | * @param loType type for the learning objective | |
335 | * @param loInfo information to create the learning objective | |
336 | * @return information on the created learning objective | |
337 | * @throws DataValidationErrorException One or more values invalid for this operation | |
338 | * @throws DoesNotExistException loRepositoryKey, loType not found | |
339 | * @throws InvalidParameterException invalid loRepositoryKey, loType, loInfo | |
340 | * @throws MissingParameterException missing loRepositoryKey, loType, loInfo | |
341 | * @throws OperationFailedException unable to complete request | |
342 | * @throws PermissionDeniedException authorization failure | |
343 | */ | |
344 | public LoInfo createLo(@WebParam(name="loRepositoryKey")String loRepositoryKey, @WebParam(name="loType")String loType, @WebParam(name="loInfo")LoInfo loInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
345 | ||
346 | /** | |
347 | * Update a learning objective. | |
348 | * @param loId identifier of the learning objective to update | |
349 | * @param loInfo updated information on the learning objective | |
350 | * @return information on the updated learning objective | |
351 | * @throws DataValidationErrorException One or more values invalid for this operation | |
352 | * @throws DoesNotExistException loId not found | |
353 | * @throws InvalidParameterException invalid loId, loInfo | |
354 | * @throws MissingParameterException missing loId, loInfo | |
355 | * @throws OperationFailedException unable to complete request | |
356 | * @throws PermissionDeniedException authorization failure | |
357 | * @throws VersionMismatchException action was attempted on an out of date version. | |
358 | */ | |
359 | public LoInfo updateLo(@WebParam(name="loId")String loId, @WebParam(name="loInfo")LoInfo loInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; | |
360 | ||
361 | /** | |
362 | * Delete a learning objective. | |
363 | * @param loId identifier of the learning objective to delete | |
364 | * @return status of the operation (success or failure) | |
365 | * @throws DependentObjectsExistException removing the learning objective will orphan one or more child learning objectives | |
366 | * @throws DoesNotExistException loId not found | |
367 | * @throws InvalidParameterException invalid loId | |
368 | * @throws MissingParameterException missing loId | |
369 | * @throws OperationFailedException unable to complete request | |
370 | * @throws PermissionDeniedException authorization failure | |
371 | */ | |
372 | public StatusInfo deleteLo(@WebParam(name="loId")String loId) throws DependentObjectsExistException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
373 | ||
374 | /** | |
375 | * Add a existing learning objective category to an existing learning objective in the same repository. | |
376 | * @param loCategoryId identifier of the learning objective category to add | |
377 | * @param loId identifier of the learning objective | |
378 | * @return status of the operation (success or failure) | |
379 | * @throws AlreadyExistsException loCategoryId is already set as a category of the LoId | |
380 | * @throws DoesNotExistException loId, loCategoryId not found | |
381 | * @throws InvalidParameterException invalid loId, loCategoryId | |
382 | * @throws MissingParameterException missing loId, loCategoryId | |
383 | * @throws OperationFailedException unable to complete request | |
384 | * @throws PermissionDeniedException authorization failure | |
385 | * @throws UnsupportedActionException loId, loCategoryId are not in the same repository | |
386 | */ | |
387 | public StatusInfo addLoCategoryToLo(@WebParam(name="loCategoryId")String loCategoryId, @WebParam(name="loId")String loId) throws AlreadyExistsException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException; | |
388 | ||
389 | /** | |
390 | * Remove a existing learning objective category from an existing learning objective in the same repository. | |
391 | * @param loCategoryId identifier of the learning objective category to remove | |
392 | * @param loId identifier of the learning objective | |
393 | * @return status of the operation (success or failure) | |
394 | * @throws DoesNotExistException loId, loCategoryId not found | |
395 | * @throws InvalidParameterException invalid loId, loCategoryId | |
396 | * @throws MissingParameterException missing loId, loCategoryId | |
397 | * @throws OperationFailedException unable to complete request | |
398 | * @throws PermissionDeniedException authorization failure | |
399 | * @throws UnsupportedActionException loId, loCategoryId are not in the same repository | |
400 | */ | |
401 | public StatusInfo removeLoCategoryFromLo(@WebParam(name="loCategoryId")String loCategoryId, @WebParam(name="loId")String loId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, UnsupportedActionException; | |
402 | ||
403 | /** | |
404 | * Validates a loLoRelation. Depending on the value of validationType, this validation could be limited to tests on just the current object and its directly contained sub-objects or expanded to perform all tests related to this object. 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 relationship can be shifted to the new values. If an identifier is not present or a record cannot be found for the identifier, it is assumed that the record does not exist and as such, the checks performed will be much shallower, typically mimicking those performed by setting the validationType to the current object. | |
405 | * @param validationType identifier of the extent of validation | |
406 | * @param loLoRelationInfo loLoRelation information to be tested. | |
407 | * @return results from performing the validation | |
408 | * @throws DoesNotExistException validationTypeKey not found | |
409 | * @throws InvalidParameterException invalid validationTypeKey, loLoRelationInfo | |
410 | * @throws MissingParameterException missing validationTypeKey, loLoRelationInfo | |
411 | * @throws OperationFailedException unable to complete request | |
412 | */ | |
413 | public List<ValidationResultInfo> validateLoLoRelation(@WebParam(name="validationType")String validationType, @WebParam(name="loLoRelationInfo")LoLoRelationInfo loLoRelationInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
414 | ||
415 | /** | |
416 | * Create a directional relationship between two LOs | |
417 | * @param loId identifier of the first LO in the relationship - The From or Parent of the relation | |
418 | * @param relatedLoId identifier of the second LO in the relationship to be related to - the To or Child of the Relation | |
419 | * @param loLoRelationType the type of the LO to LO relationship | |
420 | * @param loLoRelationInfo information about the relationship between the two LOs | |
421 | * @return the created LO to LO relation information | |
422 | * @throws AlreadyExistsException relationship already exists | |
423 | * @throws CircularRelationshipException Relation would create a loop (with ancestor Lo) | |
424 | * @throws DataValidationErrorException One or more values invalid for this operation | |
425 | * @throws DoesNotExistException loId, relatedLoId, luLuRelationType not found | |
426 | * @throws InvalidParameterException invalid loId, relatedLoId, luluRelationType, loLoRelationInfo | |
427 | * @throws MissingParameterException missing loId, relatedLoId, luluRelationType, loLoRelationInfo | |
428 | * @throws OperationFailedException unable to complete request | |
429 | * @throws PermissionDeniedException authorization failure | |
430 | */ | |
431 | public LoLoRelationInfo createLoLoRelation(@WebParam(name="loId")String loId, @WebParam(name="relatedLoId")String relatedLoId, @WebParam(name="loLoRelationType")String loLoRelationType, @WebParam(name="loLoRelationInfo")LoLoRelationInfo loLoRelationInfo) throws AlreadyExistsException, CircularRelationshipException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
432 | ||
433 | /** | |
434 | * Updates a relationship between two LOs | |
435 | * @param loLoRelationId identifier of the LO to LO relation to be updated | |
436 | * @param loLoRelationInfo changed information about the LO to LO relationship | |
437 | * @return the updated LO to LO relation information | |
438 | * @throws DataValidationErrorException One or more values invalid for this operation | |
439 | * @throws DoesNotExistException loLoRelationId not found | |
440 | * @throws InvalidParameterException invalid loLoRelationId, loLoRelationInfo | |
441 | * @throws MissingParameterException missing loLoRelationId, loLoRelationInfo | |
442 | * @throws OperationFailedException unable to complete request | |
443 | * @throws PermissionDeniedException authorization failure | |
444 | * @throws VersionMismatchException The action was attempted on an out of date version. | |
445 | */ | |
446 | public LoLoRelationInfo updateLoLoRelation(@WebParam(name="loLoRelationId")String loLoRelationId, @WebParam(name="loLoRelationInfo")LoLoRelationInfo loLoRelationInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; | |
447 | ||
448 | /** | |
449 | * Deletes a relationship between two LOs | |
450 | * @param loLoRelationId identifier of LO to LO relationship to delete | |
451 | * @return status of the operation (success or failure) | |
452 | * @throws DoesNotExistException loLoRelationId not found | |
453 | * @throws InvalidParameterException invalid loLoRelationId | |
454 | * @throws MissingParameterException missing loLoRelationId | |
455 | * @throws OperationFailedException unable to complete request | |
456 | * @throws PermissionDeniedException authorization failure | |
457 | * @throws DependentObjectsExistException | |
458 | */ | |
459 | public StatusInfo deleteLoLoRelation(@WebParam(name="loLoRelationId")String loLoRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
460 | ||
461 | } |