Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
StatementService |
|
| 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.core.statement.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.CircularReferenceException; | |
28 | import org.kuali.student.common.exceptions.CircularRelationshipException; | |
29 | import org.kuali.student.common.exceptions.DataValidationErrorException; | |
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.VersionMismatchException; | |
36 | import org.kuali.student.common.search.service.SearchService; | |
37 | import org.kuali.student.common.validation.dto.ValidationResultInfo; | |
38 | import org.kuali.student.core.statement.dto.NlUsageTypeInfo; | |
39 | import org.kuali.student.core.statement.dto.RefStatementRelationInfo; | |
40 | import org.kuali.student.core.statement.dto.RefStatementRelationTypeInfo; | |
41 | import org.kuali.student.core.statement.dto.ReqComponentInfo; | |
42 | import org.kuali.student.core.statement.dto.ReqComponentTypeInfo; | |
43 | import org.kuali.student.core.statement.dto.StatementInfo; | |
44 | import org.kuali.student.core.statement.dto.StatementTreeViewInfo; | |
45 | import org.kuali.student.core.statement.dto.StatementTypeInfo; | |
46 | ||
47 | @WebService(name = "StatementService", targetNamespace = "http://student.kuali.org/wsdl/statement") | |
48 | @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) | |
49 | public interface StatementService extends DictionaryService, SearchService { | |
50 | ||
51 | /** | |
52 | * Retrieves the list of base types which can be connected to a document. | |
53 | * | |
54 | * @return The list of types which can be connected to a document | |
55 | * @throws OperationFailedException Unable to complete request | |
56 | */ | |
57 | public List<String> getRefObjectTypes() throws OperationFailedException; | |
58 | ||
59 | /** | |
60 | * Retrieves the list of types for a given base type which can be connected to a document. | |
61 | * | |
62 | * @param objectTypeKey Reference Type Identifier | |
63 | * @return The list of types for the given base type which can be connected to a document | |
64 | * @throws OperationFailedException Unable to complete request | |
65 | */ | |
66 | public List<String> getRefObjectSubTypes(@WebParam(name="objectTypeKey")String objectTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
67 | ||
68 | /** | |
69 | * Retrieves the list of natural language usage types known by the service. | |
70 | * | |
71 | * @return List of natural language usage type information | |
72 | * @throws OperationFailedException Unable to complete request | |
73 | */ | |
74 | public List<NlUsageTypeInfo> getNlUsageTypes() throws OperationFailedException; | |
75 | ||
76 | /** | |
77 | * Retrieves information about the specified natural language usage type. | |
78 | * | |
79 | * @param nlUsageTypeKey Natural language usage type identifier | |
80 | * @return Information about a type of natural language usage | |
81 | * @throws DoesNotExistException nlUsageType not found | |
82 | * @throws InvalidParameterException Invalid nlUsageTypeKey | |
83 | * @throws MissingParameterException Missing nlUsageTypeKey | |
84 | * @throws OperationFailedException Unable to complete request | |
85 | */ | |
86 | public NlUsageTypeInfo getNlUsageType(@WebParam(name="nlUsageTypeKey")String nlUsageTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
87 | ||
88 | /** | |
89 | * Creates a relationship between a statement and an object. | |
90 | * | |
91 | * @param refStatementRelationInfo | |
92 | * @return New object statement relationship | |
93 | * @throws AlreadyExistsException connection between object and statement already exists | |
94 | * @throws DoesNotExistException E.g. cluId, statementId, refStatementRelationType not found | |
95 | * @throws InvalidParameterException One or more parameters invalid | |
96 | * @throws MissingParameterException One or more parameters not specified | |
97 | * @throws OperationFailedException Unable to complete request | |
98 | * @throws PermissionDeniedException Authorization failure | |
99 | */ | |
100 | public RefStatementRelationInfo createRefStatementRelation(@WebParam(name="refStatementRelationInfo")RefStatementRelationInfo refStatementRelationInfo) throws AlreadyExistsException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
101 | ||
102 | /** | |
103 | * Updates a relationship between an object and statement. | |
104 | * | |
105 | * @param refStatementRelationId Identifier of the object statement relationship to be updated | |
106 | * @param refStatementRelationInfo Information about the object statement relationship to be updated | |
107 | * @return Updated object statement relationship information | |
108 | * @throws DataValidationErrorException One or more values invalid for this operation | |
109 | * @throws DoesNotExistException refStatementRelation not found | |
110 | * @throws InvalidParameterException One or more parameters invalid | |
111 | * @throws MissingParameterException One or more parameters missing | |
112 | * @throws OperationFailedException Unable to complete request | |
113 | * @throws PermissionDeniedException Authorization failure | |
114 | * @throws VersionMismatchException The action was attempted on an out of date version. | |
115 | */ | |
116 | public RefStatementRelationInfo updateRefStatementRelation(@WebParam(name="refStatementRelationId")String refStatementRelationId, @WebParam(name="refStatementRelationInfo")RefStatementRelationInfo refStatementRelationInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; | |
117 | ||
118 | /** | |
119 | * Removes a relationship between a statement and an object. | |
120 | * | |
121 | * @param refStatementRelationId Object Statement Relationship identifier | |
122 | * @return Status | |
123 | * @throws DoesNotExistException RefStatementRelation not found | |
124 | * @throws InvalidParameterException Invalid refStatementRelationId | |
125 | * @throws MissingParameterException RefStatementRelationId not specified | |
126 | * @throws OperationFailedException Unable to complete request | |
127 | * @throws PermissionDeniedException Authorization failure | |
128 | */ | |
129 | public StatusInfo deleteRefStatementRelation(@WebParam(name="refStatementRelationId")String refStatementRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
130 | ||
131 | /** | |
132 | * Validates a refStatementRelation. Depending on the value of | |
133 | * validationType, this validation could be limited to tests on just | |
134 | * the current object and its directly contained sub-objects or expanded | |
135 | * to perform all tests related to this object. If an identifier is | |
136 | * present for the relationship (and/or one of its contained sub-objects) | |
137 | * and a record is found for that identifier, the validation checks if | |
138 | * the relationship can be shifted to the new values. If an identifier is | |
139 | * not present or a record cannot be found for the identifier, it is | |
140 | * assumed that the record does not exist and as such, the checks | |
141 | * performed will be much shallower, typically mimicking those performed | |
142 | * by setting the validationType to the current object. | |
143 | * | |
144 | * @param validationType Identifier of the extent of validation | |
145 | * @param refStatementRelationInfo Object statement relationship information to be tested | |
146 | * @return Results from performing the validation | |
147 | * @throws DoesNotExistException validationTypeKey not found | |
148 | * @throws InvalidParameterException Invalid validationTypeKey, refStatementRelationInfo | |
149 | * @throws MissingParameterException Missing validationTypeKey, refStatementRelationInfo | |
150 | * @throws OperationFailedException Unable to complete request | |
151 | */ | |
152 | public List<ValidationResultInfo> validateRefStatementRelation(@WebParam(name="validationType")String validationType, @WebParam(name="refStatementRelationInfo")RefStatementRelationInfo refStatementRelationInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
153 | ||
154 | /** | |
155 | * Retrieves a object statement relationship by its identifier. | |
156 | * | |
157 | * @param refStatementRelationId Object statement relationship identifier | |
158 | * @return Object statement relationship information | |
159 | * @throws DoesNotExistException RefStatementRelation not found | |
160 | * @throws InvalidParameterException Invalid refStatementRelationId | |
161 | * @throws MissingParameterException RefStatementRelationId not specified | |
162 | * @throws OperationFailedException Unable to complete request | |
163 | */ | |
164 | public RefStatementRelationInfo getRefStatementRelation(@WebParam(name="refStatementRelationId")String refStatementRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
165 | ||
166 | /** | |
167 | * Retrieves a list of object statement relationships for a particular object. | |
168 | * | |
169 | * @param refObjectTypeKey Reference type | |
170 | * @param refObjectId Reference identifier | |
171 | * @return List of object statement relationships for a particular object | |
172 | * @throws DoesNotExistException Object not found | |
173 | * @throws InvalidParameterException One or more parameters invalid | |
174 | * @throws MissingParameterException One or more parameters not specified | |
175 | * @throws OperationFailedException Unable to complete request | |
176 | */ | |
177 | public List<RefStatementRelationInfo> getRefStatementRelationsByRef(@WebParam(name="refObjectTypeKey")String refObjectTypeKey, @WebParam(name="refObjectId")String refObjectId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
178 | ||
179 | /** | |
180 | * Retrieves a list of object statement relationships for a particular statement. | |
181 | * | |
182 | * @param statementId Statement identifier | |
183 | * @return List of object statement relationships for a particular statement | |
184 | * @throws DoesNotExistException Statement not found | |
185 | * @throws InvalidParameterException One or more parameters invalid | |
186 | * @throws MissingParameterException One or more parameters not specified | |
187 | * @throws OperationFailedException Unable to complete request | |
188 | */ | |
189 | public List<RefStatementRelationInfo> getRefStatementRelationsByStatement(@WebParam(name="statementId")String statementId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
190 | ||
191 | /** | |
192 | * <p>Translates and retrieves a statement for a specific usuage type | |
193 | * (context) and language into natural language.</p> | |
194 | * | |
195 | * <p>If <code>language</code> is null default language is used.</p> | |
196 | * | |
197 | * <p>An <code>StatementInfo</code> can either have a list of | |
198 | * <code>StatementInfo</code>s as children or a list of | |
199 | * <code>ReqComponentInfo</code>s but not both. This means that all leaf | |
200 | * nodes must be <code>ReqComponentInfo</code>s.</p> | |
201 | * | |
202 | * @param statementId Statement to translate | |
203 | * @param nlUsageTypeKey Natural language usage type key (context) | |
204 | * @param language Translation language | |
205 | * @throws DoesNotExistException Statement not found | |
206 | * @throws InvalidParameterException Invalid nlUsageTypeKey | |
207 | * @throws MissingParameterException Missing statementId or nlUsageTypeKey | |
208 | * @throws OperationFailedException Unable to complete request | |
209 | * @throws VersionMismatchException The action was attempted on an out of date version. | |
210 | */ | |
211 | public String getNaturalLanguageForStatement(@WebParam(name="statementId")String statementId, @WebParam(name="nlUsageTypeKey")String nlUsageTypeKey, @WebParam(name="language")String language) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
212 | ||
213 | /** | |
214 | * Retrieves the natural language translation for a particular object | |
215 | * statement relationship in a particular context for a particular language. | |
216 | * | |
217 | * @param refStatementRelationId Object statement relationship identifier | |
218 | * @param nlUsageTypeKey Context for the natural language translation | |
219 | * @param language Language to use for the natural language translation | |
220 | * @return Natural language translation for a particular object statement relationship in a particular context | |
221 | * @throws DoesNotExistException Object statement relationship not found | |
222 | * @throws InvalidParameterException One or more parameters invalid | |
223 | * @throws MissingParameterException One or more parameters not specified | |
224 | * @throws OperationFailedException Unable to complete request | |
225 | */ | |
226 | public String getNaturalLanguageForRefStatementRelation(@WebParam(name="refStatementRelationId")String refStatementRelationId, @WebParam(name="nlUsageTypeKey")String nlUsageTypeKey, @WebParam(name="language")String language) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
227 | ||
228 | /** | |
229 | * <p>Translates and retrieves a requirement component for a specific | |
230 | * usuage type (context) and language into natural language.</p> | |
231 | * | |
232 | * <p>If <code>language</code> is null default language is used.</p> | |
233 | * | |
234 | * @param reqComponentId Requirement component to translate | |
235 | * @param nlUsageTypeKey Natural language usage type key (context) | |
236 | * @param language Translation language | |
237 | * @throws DoesNotExistException ReqComponent not found | |
238 | * @throws InvalidParameterException Invalid nlUsageTypeKey | |
239 | * @throws MissingParameterException Missing reqComponentId or nlUsageTypeKey | |
240 | * @throws OperationFailedException Unable to complete request | |
241 | * @throws VersionMismatchException The action was attempted on an out of date version. | |
242 | */ | |
243 | public String getNaturalLanguageForReqComponent(@WebParam(name="reqComponentId")String reqComponentId, @WebParam(name="nlUsageTypeKey")String nlUsageTypeKey, @WebParam(name="language")String language) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
244 | ||
245 | /** | |
246 | * Translates a statement tree view to natural language for a | |
247 | * particular context in a particular language. This may include | |
248 | * statements and/or requirement components which have not yet been | |
249 | * persisted to the service. | |
250 | * | |
251 | * @param statementTreeViewInfo Statement tree view | |
252 | * @param nlUsageTypeKey Context for the natural language translation | |
253 | * @param language Language to use for the natural language translation | |
254 | * @return Natural language translation for a particular statement in a particular context | |
255 | * @throws InvalidParameterException One or more parameters invalid | |
256 | * @throws MissingParameterException One or more parameters not specified | |
257 | * @throws OperationFailedException Unable to complete request | |
258 | */ | |
259 | public String translateStatementTreeViewToNL(@WebParam(name="statementTreeViewInfo")StatementTreeViewInfo statementTreeViewInfo, @WebParam(name="nlUsageTypeKey")String nlUsageTypeKey, @WebParam(name="language")String language) throws InvalidParameterException, MissingParameterException, OperationFailedException; | |
260 | ||
261 | /** | |
262 | * Translates a particular requirement component to natural language for | |
263 | * a particular context in a given language. This may be used for | |
264 | * requirement components which have not yet been persisted through | |
265 | * the service. | |
266 | * | |
267 | * @param reqComponentInfo Requirement component | |
268 | * @param nlUsageTypeKey Context for the natural language translation | |
269 | * @param language Language to use for the natural language translation | |
270 | * @return Natural language translation for a particular requirement component in a particular context | |
271 | * @throws InvalidParameterException One or more parameters invalid | |
272 | * @throws MissingParameterException One or more parameters not specified | |
273 | * @throws OperationFailedException Unable to complete request | |
274 | */ | |
275 | public String translateReqComponentToNL(@WebParam(name="reqComponentInfo")ReqComponentInfo reqComponentInfo, @WebParam(name="nlUsageTypeKey")String nlUsageTypeKey, @WebParam(name="language")String language) throws InvalidParameterException, MissingParameterException, OperationFailedException; | |
276 | ||
277 | /** | |
278 | * Validates a ReqComponent. Depending on the value of validationType, | |
279 | * this validation could be limited to tests on just the current object and | |
280 | * its directly contained sub-objects or expanded to perform all tests | |
281 | * related to this object. If an identifier is present for the | |
282 | * organization (and/or one of its contained sub-objects) and a record | |
283 | * is found for that identifier, the validation checks if the organization | |
284 | * can be shifted to the new values. If an identifier is not present or | |
285 | * a record cannot be found for the identifier, it is assumed that the | |
286 | * record does not exist and as such, the checks performed will be much | |
287 | * shallower, typically mimicking those performed by setting the | |
288 | * validationType to the current object. | |
289 | * | |
290 | * @param validationType identifier of the extent of validation | |
291 | * @param reqComponentInfo reqComponent information to be tested. | |
292 | * @return results from performing the validation | |
293 | * @throws DoesNotExistException validationTypeKey not found | |
294 | * @throws InvalidParameterException invalid validationTypeKey, reqComponentInfo | |
295 | * @throws MissingParameterException missing validationTypeKey, reqComponentInfo | |
296 | * @throws OperationFailedException unable to complete request | |
297 | */ | |
298 | public List<ValidationResultInfo> validateReqComponent(@WebParam(name="validationType")String validationType, @WebParam(name="reqComponentInfo")ReqComponentInfo reqComponentInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
299 | ||
300 | /** | |
301 | * Validates a statement. Depending on the value of validationType, | |
302 | * this validation could be limited to tests on just the current object | |
303 | * and its directly contained sub-objects or expanded to perform all | |
304 | * tests related to this object. If an identifier is present for the | |
305 | * statement (and/or one of its contained sub-objects) and a record is | |
306 | * found for that identifier, the validation checks if the statement can | |
307 | * be shifted to the new values. If an identifier is not present or | |
308 | * a record cannot be found for the identifier, it is assumed that the | |
309 | * record does not exist and as such, the checks performed will be much | |
310 | * shallower, typically mimicking those performed by setting the | |
311 | * validationType to the current object. | |
312 | * | |
313 | * @param validationType identifier of the extent of validation | |
314 | * @param statementInfo statement information to be tested. | |
315 | * @return results from performing the validation | |
316 | * @throws DoesNotExistException validationTypeKey not found | |
317 | * @throws InvalidParameterException invalid validationTypeKey, statementInfo | |
318 | * @throws MissingParameterException missing validationTypeKey, statementInfo | |
319 | * @throws OperationFailedException unable to complete request | |
320 | */ | |
321 | public List<ValidationResultInfo> validateStatement(@WebParam(name="validationType")String validationType, @WebParam(name="statementInfo")StatementInfo statementInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
322 | ||
323 | /** | |
324 | * Retrieves a statement by its identifier | |
325 | * @param statementId statement identifier | |
326 | * @return statementInfo statement information | |
327 | * @throws DoesNotExistException statement not found | |
328 | * @throws InvalidParameterException invalid statementId | |
329 | * @throws MissingParameterException statementId not specified | |
330 | * @throws OperationFailedException unable to complete request | |
331 | */ | |
332 | public StatementInfo getStatement(@WebParam(name="statementId")String statementId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
333 | ||
334 | /** | |
335 | * Retrieves a list of statements of a particular Type | |
336 | * @param statementTypeKey statementType identifier | |
337 | * @return list of statements using the specified type | |
338 | * @throws DoesNotExistException statementTypeKey not found | |
339 | * @throws InvalidParameterException invalid statementTypeKey | |
340 | * @throws MissingParameterException statementTypeKey not specified | |
341 | * @throws OperationFailedException unable to complete request | |
342 | */ | |
343 | public List<StatementInfo> getStatementsByType(@WebParam(name="statementTypeKey")String statementTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
344 | ||
345 | /** | |
346 | * Retrieves a requirement component by its identifier | |
347 | * @param reqComponentId requirement component identifier | |
348 | * @return reqComponentInfo requirement component information | |
349 | * @throws DoesNotExistException reqComponent not found | |
350 | * @throws InvalidParameterException invalid reqComponentId | |
351 | * @throws MissingParameterException reqComponentId not specified | |
352 | * @throws OperationFailedException unable to complete request | |
353 | */ | |
354 | public ReqComponentInfo getReqComponent(@WebParam(name="reqComponentId")String reqComponentId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
355 | ||
356 | /** | |
357 | * Retrieves a list of requirement components of a particular type. | |
358 | * @param reqComponentTypeKey identifier for a type of requirement component | |
359 | * @return reqComponentInfoList A list of requirementComponents | |
360 | * @throws DoesNotExistException reqComponentTypeKey not found | |
361 | * @throws InvalidParameterException invalid reqComponentTypeKey | |
362 | * @throws MissingParameterException reqComponentTypeKey not specified | |
363 | * @throws OperationFailedException unable to complete request | |
364 | */ | |
365 | public List<ReqComponentInfo> getReqComponentsByType(@WebParam(name="reqComponentTypeKey")String reqComponentTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
366 | ||
367 | /** | |
368 | * Retrieves a list of statements that use a particular requirement component. Note: The reference may not be direct, but through an intermediate object definition (ex. nested statements). | |
369 | * @param reqComponentId requirement component identifier | |
370 | * @return statementInfoList list of statements using the specified requirement component | |
371 | * @throws DoesNotExistException reqComponentId not found | |
372 | * @throws InvalidParameterException invalid reqComponentId | |
373 | * @throws MissingParameterException reqComponentId not specified | |
374 | * @throws OperationFailedException unable to complete request | |
375 | */ | |
376 | public List<StatementInfo> getStatementsUsingReqComponent(@WebParam(name="reqComponentId")String reqComponentId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
377 | ||
378 | /** | |
379 | * Retrieves a list of child statements that include a particular statement. | |
380 | * Note: The reference may not be direct, but through an | |
381 | * intermediate object definition (e.g. nested statements). | |
382 | * | |
383 | * @param statementId statement identifier | |
384 | * @return List of child statements using the specified statement | |
385 | * @throws DoesNotExistException Statement not found | |
386 | * @throws InvalidParameterException Invalid statementId | |
387 | * @throws MissingParameterException statementId not specified | |
388 | * @throws OperationFailedException Unable to complete request | |
389 | */ | |
390 | public List<StatementInfo> getStatementsUsingStatement(@WebParam(name="statementId")String statementId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
391 | ||
392 | /** | |
393 | * Creates a requirement component. | |
394 | * @param reqComponentType identifier of the type of requirement component | |
395 | * @param reqComponentInfo information about the requirement component | |
396 | * @return information about the newly created requirement component | |
397 | * @throws AlreadyExistsException Requirement Component already exists | |
398 | * @throws DataValidationErrorException One or more values invalid for this operation | |
399 | * @throws DoesNotExistException reqComponentType not found | |
400 | * @throws InvalidParameterException invalid reqComponentType, reqComponentInfo | |
401 | * @throws MissingParameterException missing reqComponentType, reqComponentInfo | |
402 | * @throws OperationFailedException unable to complete request | |
403 | * @throws PermissionDeniedException authorization failure | |
404 | */ | |
405 | public ReqComponentInfo createReqComponent(@WebParam(name="reqComponentType")String reqComponentType, @WebParam(name="reqComponentInfo")ReqComponentInfo reqComponentInfo) throws AlreadyExistsException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
406 | ||
407 | /** | |
408 | * Deletes a requirement component | |
409 | * @param reqComponentId identifier of the requirement component to delete | |
410 | * @return status of the operation (success or failure) | |
411 | * @throws DoesNotExistException reqComponentId not found | |
412 | * @throws InvalidParameterException invalid reqComponentId | |
413 | * @throws MissingParameterException missing reqComponentId | |
414 | * @throws OperationFailedException unable to complete request | |
415 | * @throws PermissionDeniedException authorization failure | |
416 | */ | |
417 | public StatusInfo deleteReqComponent(@WebParam(name="reqComponentId")String reqComponentId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
418 | ||
419 | /** | |
420 | * Create a statement. | |
421 | * @param statementType identifier of the type of statement | |
422 | * @param statementInfo information about the statement | |
423 | * @return information about the newly created statement | |
424 | * @throws AlreadyExistsException statement already exists | |
425 | * @throws DataValidationErrorException One or more values invalid for this operation | |
426 | * @throws DoesNotExistException statementType not found | |
427 | * @throws InvalidParameterException invalid statementType, statementInfo | |
428 | * @throws MissingParameterException missing statementType, statementInfo | |
429 | * @throws OperationFailedException unable to complete request | |
430 | * @throws PermissionDeniedException authorization failure | |
431 | */ | |
432 | public StatementInfo createStatement(@WebParam(name="statementType")String statementType, @WebParam(name="statementInfo")StatementInfo statementInfo) throws AlreadyExistsException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
433 | ||
434 | /** | |
435 | * Updates a statement | |
436 | * @param statementId identifier of the statement to be updated | |
437 | * @param statementInfo information about the statement to be updated | |
438 | * @return the updated statement information | |
439 | * @throws CircularReferenceException included statement references the current statement | |
440 | * @throws DataValidationErrorException One or more values invalid for this operation | |
441 | * @throws DoesNotExistException statement not found | |
442 | * @throws InvalidParameterException invalid statementId, statementInfo | |
443 | * @throws MissingParameterException missing statementId, statementInfo | |
444 | * @throws OperationFailedException unable to complete request | |
445 | * @throws PermissionDeniedException authorization failure | |
446 | * @throws VersionMismatchException The action was attempted on an out of date version. | |
447 | */ | |
448 | public StatementInfo updateStatement(@WebParam(name="statementId")String statementId, @WebParam(name="statementInfo")StatementInfo statementInfo) throws CircularReferenceException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; | |
449 | ||
450 | /** | |
451 | * Deletes a statement | |
452 | * @param statementId identifier of the Statement to delete | |
453 | * @return statusInfo status of the operation (success or failure) | |
454 | * @throws DoesNotExistException statement not found | |
455 | * @throws InvalidParameterException invalid statementId | |
456 | * @throws MissingParameterException missing statementId | |
457 | * @throws OperationFailedException unable to complete request | |
458 | * @throws PermissionDeniedException authorization failure | |
459 | */ | |
460 | public StatusInfo deleteStatement(@WebParam(name="statementId")String statementId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
461 | ||
462 | /** | |
463 | * Retrieves information for a specified type of statement | |
464 | * @param statementTypeKey statement type identifier | |
465 | * @return statement type information | |
466 | * @throws DoesNotExistException statementTypeKey not found | |
467 | * @throws InvalidParameterException invalid statementTypeKey | |
468 | * @throws MissingParameterException missing statementTypeKey | |
469 | * @throws OperationFailedException unable to complete request | |
470 | */ | |
471 | public StatementTypeInfo getStatementType(@WebParam(name="statementTypeKey")String statementTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
472 | ||
473 | /** | |
474 | * Retrieves the list of all types of statements. | |
475 | * | |
476 | * @return List of types of statements | |
477 | * @throws OperationFailedException Unable to complete request | |
478 | */ | |
479 | public List<StatementTypeInfo> getStatementTypes() throws OperationFailedException; | |
480 | ||
481 | /** | |
482 | * Retrieves the list of statement types which are allowed to be used in | |
483 | * a statement type. This controls the nesting of statements. | |
484 | * | |
485 | * @param statementTypeKey Identifier for a type of statement | |
486 | * @return List of statement type | |
487 | * @throws DoesNotExistException statementTypeKey not found | |
488 | * @throws InvalidParameterException Invalid statementTypeKey | |
489 | * @throws MissingParameterException Missing statementTypeKey | |
490 | * @throws OperationFailedException Unable to complete request | |
491 | */ | |
492 | public List<String> getStatementTypesForStatementType(@WebParam(name="statementTypeKey")String statementTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
493 | ||
494 | /** | |
495 | * Retrieves the list of requirement component types known by this service. | |
496 | * @return list of requirement component types | |
497 | * @throws OperationFailedException unable to complete request | |
498 | */ | |
499 | public List<ReqComponentTypeInfo> getReqComponentTypes() throws OperationFailedException; | |
500 | ||
501 | /** | |
502 | * Retrieves information for a specified fetchReqComponent Types | |
503 | * @param reqComponentTypeKey reqComponent Type Key | |
504 | * @return Requirement component type information | |
505 | * @throws DoesNotExistException reqComponentTypeKey not found | |
506 | * @throws InvalidParameterException invalid reqComponentTypeKey | |
507 | * @throws MissingParameterException missing reqComponentTypeKey | |
508 | * @throws OperationFailedException unable to complete request | |
509 | */ | |
510 | public ReqComponentTypeInfo getReqComponentType(@WebParam(name="reqComponentTypeKey")String reqComponentTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
511 | ||
512 | /** | |
513 | * Retrieves the list of types of requirement components which are allowed to be used in a type of statement. | |
514 | * @param statementTypeKey identifier for a type of statement | |
515 | * @return list of types of requirement components | |
516 | * @throws DoesNotExistException statementTypeKey not found | |
517 | * @throws InvalidParameterException invalid statementTypeKey | |
518 | * @throws MissingParameterException missing statementTypeKey | |
519 | * @throws OperationFailedException unable to complete request | |
520 | */ | |
521 | public List<ReqComponentTypeInfo> getReqComponentTypesForStatementType(@WebParam(name="statementTypeKey")String statementTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
522 | ||
523 | /** | |
524 | * Retrieves the list of all types of relationships between statements and | |
525 | * other objects. | |
526 | * | |
527 | * @return List of object statement relation types | |
528 | * @throws OperationFailedException Unable to complete request | |
529 | */ | |
530 | public List<RefStatementRelationTypeInfo> getRefStatementRelationTypes() throws OperationFailedException; | |
531 | ||
532 | /** | |
533 | * Retrieves information for a specified type of relationship between | |
534 | * a statement and object. | |
535 | * | |
536 | * @param refStatementRelationTypeKey Object statement relation type identifier | |
537 | * @return Object statement relation type information | |
538 | * @throws DoesNotExistException refStatementRelationTypeKey not found | |
539 | * @throws InvalidParameterException Invalid refStatementRelationTypeKey | |
540 | * @throws MissingParameterException Missing refStatementRelationTypeKey | |
541 | * @throws OperationFailedException Unable to complete request | |
542 | */ | |
543 | public RefStatementRelationTypeInfo getRefStatementRelationType(@WebParam(name="refStatementRelationTypeKey")String refStatementRelationTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
544 | ||
545 | /** | |
546 | * Retrieves the list of statement types which are allowed to be used for | |
547 | * a specified type of object statement relationship. | |
548 | * | |
549 | * @param refStatementRelationTypeKey Identifier for a type of object statement relationship | |
550 | * @return List of statement types | |
551 | * @throws DoesNotExistException refStatementRelationTypeKey not found | |
552 | * @throws InvalidParameterException Invalid refStatementRelationTypeKey | |
553 | * @throws MissingParameterException Missing refStatementRelationTypeKey | |
554 | * @throws OperationFailedException Unable to complete request | |
555 | */ | |
556 | public List<String> getStatementTypesForRefStatementRelationType(@WebParam(name="refStatementRelationTypeKey")String refStatementRelationTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
557 | ||
558 | /** | |
559 | * Retrieves the list of types of object statement relationships which | |
560 | * are allowed to be used for a subtype of object. | |
561 | * | |
562 | * @param refSubTypeKey Identifier for the subtype of object | |
563 | * @return | |
564 | * @throws DoesNotExistException refSubType not found | |
565 | * @throws InvalidParameterException Invalid refSubTypeKey | |
566 | * @throws MissingParameterException Missing refSubTypeKey | |
567 | * @throws OperationFailedException Unable to complete request | |
568 | */ | |
569 | public List<String> getRefStatementRelationTypesForRefObjectSubType(@WebParam(name="refSubTypeKey")String refSubTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
570 | ||
571 | /** | |
572 | * Updates a requirement component | |
573 | * @param reqComponentId identifier of the requirement component to be updated | |
574 | * @param reqComponentInfo information about the requirement component to be updated | |
575 | * @return the updated requirement component information | |
576 | * @throws DataValidationErrorException One or more values invalid for this operation | |
577 | * @throws DoesNotExistException Requirement Component not found | |
578 | * @throws InvalidParameterException invalid reqComponentId, reqComponentInfo | |
579 | * @throws MissingParameterException missing reqComponentId, reqComponentInfo | |
580 | * @throws OperationFailedException unable to complete request | |
581 | * @throws PermissionDeniedException authorization failure | |
582 | * @throws VersionMismatchException The action was attempted on an out of date version. | |
583 | */ | |
584 | public ReqComponentInfo updateReqComponent(@WebParam(name="reqComponentId")String reqComponentId, @WebParam(name="reqComponentInfo")ReqComponentInfo reqComponentInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; | |
585 | ||
586 | /** | |
587 | * Retrieves a view of a statement by its identifier with its referenced statements and requirement components expanded | |
588 | * @param statementId statement identifier | |
589 | * @return view of statement information with the referenced statements and requirement components expanded | |
590 | * @throws DoesNotExistException statement not found | |
591 | * @throws InvalidParameterException invalid statementId | |
592 | * @throws MissingParameterException statementId not specified | |
593 | * @throws OperationFailedException unable to complete request | |
594 | */ | |
595 | public StatementTreeViewInfo getStatementTreeView(@WebParam(name="statementId")String statementId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
596 | ||
597 | /** | |
598 | * Retrieves a view of a statement by its identifier with its referenced statements and requirement components expanded and translated | |
599 | * @param statementId statement identifier | |
600 | * @param nlUsageTypeKey Natural language usage type identifier | |
601 | * @param language Translation language | |
602 | * @return view of statement information with the referenced statements and requirement components expanded | |
603 | * @throws DoesNotExistException statement not found | |
604 | * @throws InvalidParameterException invalid statementId | |
605 | * @throws MissingParameterException statementId not specified | |
606 | * @throws OperationFailedException unable to complete request | |
607 | */ | |
608 | public StatementTreeViewInfo getStatementTreeViewForNlUsageType(final String statementId, final String nlUsageTypeKey, String language) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
609 | ||
610 | /** | |
611 | * Updates an entire Statement Tree. Fails unless everything can be done. Updates Statements, RequirementComponents and any relations between them. If there are "deletes", the relations are removed, but the object is not deleted unless used no where else | |
612 | * @param statementId identifier of the statement to be updated | |
613 | * @param statementTreeViewInfo The StatementTreeInfo to be updated | |
614 | * @return the updated StatementTree information | |
615 | * @throws CircularRelationshipException included statement references the current statement | |
616 | * @throws DataValidationErrorException One or more values invalid for this operation | |
617 | * @throws DoesNotExistException Statement not found | |
618 | * @throws InvalidParameterException invalid statementId, statementTreeViewInfo | |
619 | * @throws MissingParameterException missing statementId, statementTreeViewInfo | |
620 | * @throws OperationFailedException unable to complete request | |
621 | * @throws PermissionDeniedException authorization failure | |
622 | * @throws VersionMismatchException The action was attempted on an out of date version. | |
623 | */ | |
624 | public StatementTreeViewInfo updateStatementTreeView(@WebParam(name="statementId")String statementId, @WebParam(name="statementTreeViewInfo")StatementTreeViewInfo statementTreeViewInfo) throws CircularReferenceException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; | |
625 | ||
626 | /** | |
627 | * Creates an entire Statement Tree. Fails unless everything can be done. Updates Statements, RequirementComponents and any relations between them. If there are "deletes", the relations are removed, but the object is not deleted unless used no where else | |
628 | * @param statementTreeViewInfo | |
629 | * @return Statement tree view | |
630 | * @throws CircularReferenceException included statement references the current statement | |
631 | * @throws AlreadyExistsException | |
632 | * @throws DataValidationErrorException | |
633 | * @throws DoesNotExistException | |
634 | * @throws InvalidParameterException | |
635 | * @throws MissingParameterException | |
636 | * @throws OperationFailedException | |
637 | * @throws PermissionDeniedException | |
638 | */ | |
639 | public StatementTreeViewInfo createStatementTreeView(@WebParam(name="statementTreeViewInfo") StatementTreeViewInfo statementTreeViewInfo) throws CircularReferenceException, AlreadyExistsException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
640 | ||
641 | /** | |
642 | * Deletes the entire statement tree | |
643 | * @param statementId | |
644 | * @return Status of delete | |
645 | * @throws DoesNotExistException | |
646 | * @throws InvalidParameterException | |
647 | * @throws MissingParameterException | |
648 | * @throws OperationFailedException | |
649 | * @throws PermissionDeniedException | |
650 | */ | |
651 | public StatusInfo deleteStatementTreeView(@WebParam(name="statementId") String statementId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
652 | ||
653 | } |