Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
DocumentService |
|
| 1.0;1 |
1 | /* | |
2 | * Copyright 2009 The Kuali Foundation | |
3 | * | |
4 | * Licensed under the Educational Community License, Version 1.0 (the "License"); | |
5 | * you may not use this file except in compliance with the License. | |
6 | * You may obtain a copy of the License at | |
7 | * | |
8 | * http://www.opensource.org/licenses/ecl1.php | |
9 | * | |
10 | * Unless required by applicable law or agreed to in writing, software | |
11 | * distributed under the License is distributed on an "AS IS" BASIS, | |
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
13 | * See the License for the specific language governing permissions and | |
14 | * limitations under the License. | |
15 | */ | |
16 | package org.kuali.student.core.document.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.core.dto.StatusInfo; | |
25 | ||
26 | import org.kuali.student.core.exceptions.DataValidationErrorException; | |
27 | import org.kuali.student.core.exceptions.DoesNotExistException; | |
28 | import org.kuali.student.core.exceptions.InvalidParameterException; | |
29 | import org.kuali.student.core.exceptions.MissingParameterException; | |
30 | import org.kuali.student.core.exceptions.OperationFailedException; | |
31 | import org.kuali.student.core.exceptions.PermissionDeniedException; | |
32 | import org.kuali.student.core.exceptions.VersionMismatchException; | |
33 | ||
34 | import org.kuali.student.core.dictionary.service.DictionaryService; | |
35 | import org.kuali.student.core.document.dto.DocumentCategoryInfo; | |
36 | import org.kuali.student.core.document.dto.DocumentInfo; | |
37 | import org.kuali.student.core.document.dto.DocumentTypeInfo; | |
38 | import org.kuali.student.core.document.dto.RefDocRelationInfo; | |
39 | import org.kuali.student.core.document.dto.RefDocRelationTypeInfo; | |
40 | import org.kuali.student.core.validation.dto.ValidationResultInfo; | |
41 | ||
42 | ||
43 | ||
44 | /** | |
45 | * | |
46 | * @Author KSContractMojo | |
47 | * @Author tom | |
48 | * @Since Wed Aug 18 12:10:24 EDT 2010 | |
49 | * @See <a href="https://test.kuali.org/confluence/display/KULSTU/Document+Service">DocumentService</> | |
50 | * | |
51 | */ | |
52 | @WebService(name = "DocumentService", targetNamespace = "http://student.kuali.org/wsdl/document") // TODO CHECK THESE VALUES | |
53 | @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) | |
54 | public interface DocumentService extends DictionaryService { | |
55 | /** | |
56 | * Retrieves the list of document types known by this service | |
57 | * @return list of document type information | |
58 | * @throws OperationFailedException unable to complete request | |
59 | */ | |
60 | public List<DocumentTypeInfo> getDocumentTypes() throws OperationFailedException; | |
61 | ||
62 | /** | |
63 | * Retrieves information about a particular document type | |
64 | * @param documentTypeKey document type identifier | |
65 | * @return document type information | |
66 | * @throws DoesNotExistException specified documentTypeKey not found | |
67 | * @throws InvalidParameterException invalid documentTypeKey | |
68 | * @throws MissingParameterException documentTypeKey not specified | |
69 | * @throws OperationFailedException unable to complete request | |
70 | */ | |
71 | public DocumentTypeInfo getDocumentType(@WebParam(name="documentTypeKey")String documentTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
72 | ||
73 | /** | |
74 | * Retrieves the list of document categories known by this service | |
75 | * @return list of document category information | |
76 | * @throws OperationFailedException unable to complete request | |
77 | */ | |
78 | public List<DocumentCategoryInfo> getDocumentCategories() throws OperationFailedException; | |
79 | ||
80 | /** | |
81 | * Retrieves information about a particular document category | |
82 | * @param documentCategoryKey document category identifier | |
83 | * @return document category information | |
84 | * @throws DoesNotExistException specified documentCategoryKey not found | |
85 | * @throws InvalidParameterException invalid documentCategoryKey | |
86 | * @throws MissingParameterException documentCategoryKey not specified | |
87 | * @throws OperationFailedException unable to complete request | |
88 | */ | |
89 | public DocumentCategoryInfo getDocumentCategory(@WebParam(name="documentCategoryKey")String documentCategoryKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
90 | ||
91 | /** | |
92 | * Retrieves the list of base types which can be connected to a document. | |
93 | * @return the list of types which can be connected to a document | |
94 | * @throws OperationFailedException unable to complete request | |
95 | */ | |
96 | public List<String> getRefObjectTypes() throws OperationFailedException; | |
97 | ||
98 | /** | |
99 | * Retrieves the list of types for a given base type which can be connected to a document. | |
100 | * @param refObjectTypeKey Reference Type Identifier | |
101 | * @return the list of types for the given base type which can be connected to a document | |
102 | * @throws OperationFailedException unable to complete request | |
103 | */ | |
104 | public List<String> getRefObjectSubTypes(@WebParam(name="refObjectTypeKey")String refObjectTypeKey) throws MissingParameterException, OperationFailedException; | |
105 | ||
106 | /** | |
107 | * Retrieves the list of types for a given base type which can be connected to a document. | |
108 | * @return the list of reference document relation types | |
109 | * @throws OperationFailedException unable to complete request | |
110 | */ | |
111 | public List<RefDocRelationTypeInfo> getRefDocRelationTypes() throws OperationFailedException; | |
112 | ||
113 | /** | |
114 | * Retrieves the list of reference document relation types which are allowed for a given reference subtype. | |
115 | * @param refSubTypeKey reference subtype | |
116 | * @return the list of reference document relation types which are allowed for a given referenced subtype. | |
117 | * @throws DoesNotExistException specified refSubTypeKey not found | |
118 | * @throws InvalidParameterException invalid refSubTypeKey | |
119 | * @throws MissingParameterException refSubTypeKey not specified | |
120 | * @throws OperationFailedException unable to complete request | |
121 | */ | |
122 | public List<RefDocRelationTypeInfo> getRefDocRelationTypesForRefObjectSubType(@WebParam(name="refSubTypeKey")String refSubTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
123 | ||
124 | /** | |
125 | * Retrieves information about a document. | |
126 | * @param documentId identifier of the document | |
127 | * @return information about a document | |
128 | * @throws DoesNotExistException documentId not found | |
129 | * @throws InvalidParameterException invalid documentId | |
130 | * @throws MissingParameterException missing documentId | |
131 | * @throws OperationFailedException unable to complete request | |
132 | * @throws PermissionDeniedException authorization failure | |
133 | */ | |
134 | public DocumentInfo getDocument(@WebParam(name="documentId")String documentId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
135 | ||
136 | /** | |
137 | * Retrieves information about documents from a list of identifiers. | |
138 | * @param documentIdList list of document identifiers | |
139 | * @return list of document information | |
140 | * @throws DoesNotExistException one of more documentIds not found | |
141 | * @throws InvalidParameterException one of more invalid documentIds | |
142 | * @throws MissingParameterException missing documentIdList | |
143 | * @throws OperationFailedException unable to complete request | |
144 | * @throws PermissionDeniedException authorization failure | |
145 | */ | |
146 | public List<DocumentInfo> getDocumentsByIdList(@WebParam(name="documentIdList")List<String> documentIdList) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
147 | ||
148 | /** | |
149 | * Retrieves category information for a document. | |
150 | * @param documentId identifier of the document | |
151 | * @return list of document category information | |
152 | * @throws DoesNotExistException documentId not found | |
153 | * @throws InvalidParameterException invalid documentId | |
154 | * @throws MissingParameterException missing documentId | |
155 | * @throws OperationFailedException unable to complete request | |
156 | * @throws PermissionDeniedException authorization failure | |
157 | */ | |
158 | public List<DocumentCategoryInfo> getCategoriesByDocument(@WebParam(name="documentId")String documentId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
159 | ||
160 | /** | |
161 | * Retrieves information about a relationship between a reference and document. | |
162 | * @param refDocRelationId reference document relationship identifier | |
163 | * @return information about a relationship between a reference and a document | |
164 | * @throws DoesNotExistException specified relationship not found | |
165 | * @throws InvalidParameterException invalid refDocRelationId | |
166 | * @throws MissingParameterException refDocRelationId not specified | |
167 | * @throws OperationFailedException unable to complete request | |
168 | * @throws PermissionDeniedException authorization failure | |
169 | */ | |
170 | public RefDocRelationInfo getRefDocRelation(@WebParam(name="refDocRelationId")String refDocRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
171 | ||
172 | /** | |
173 | * Retrieves information about reference document relationships for a particular reference. | |
174 | * @param refObjectTypeKey reference type | |
175 | * @param refObjectId reference identifier | |
176 | * @return list of reference document relationships | |
177 | * @throws DoesNotExistException specified refId, refObjectTypeKey not found | |
178 | * @throws InvalidParameterException invalid refId, refObjectTypeKey | |
179 | * @throws MissingParameterException refId, refObjectTypeKey not specified | |
180 | * @throws OperationFailedException unable to complete request | |
181 | * @throws PermissionDeniedException authorization failure | |
182 | */ | |
183 | public List<RefDocRelationInfo> getRefDocRelationsByRef(@WebParam(name="refObjectTypeKey")String refObjectTypeKey, @WebParam(name="refObjectId")String refObjectId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
184 | ||
185 | /** | |
186 | * Retrieves information about reference document relationships for a particular document. | |
187 | * @param documentId document identifier | |
188 | * @return list of reference document relationships | |
189 | * @throws DoesNotExistException specified document not found | |
190 | * @throws InvalidParameterException invalid documentId | |
191 | * @throws MissingParameterException documentId not specified | |
192 | * @throws OperationFailedException unable to complete request | |
193 | * @throws PermissionDeniedException authorization failure | |
194 | */ | |
195 | public List<RefDocRelationInfo> getRefDocRelationsByDoc(@WebParam(name="documentId")String documentId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
196 | ||
197 | /** | |
198 | * Validates a document. 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 document (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the document 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. | |
199 | * @param validationType identifier of the extent of validation | |
200 | * @param documentInfo document information to be tested. | |
201 | * @return results from performing the validation | |
202 | * @throws DoesNotExistException validationTypeKey not found | |
203 | * @throws InvalidParameterException invalid validationTypeKey, documentInfo | |
204 | * @throws MissingParameterException missing validationTypeKey, documentInfo | |
205 | * @throws OperationFailedException unable to complete request | |
206 | */ | |
207 | public List<ValidationResultInfo> validateDocument(@WebParam(name="validationType")String validationType, @WebParam(name="documentInfo")DocumentInfo documentInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
208 | ||
209 | /** | |
210 | * Creates a new document. | |
211 | * @param documentTypeKey identifier of the document type | |
212 | * @param documentCategoryKey identifier of the document category | |
213 | * @param documentInfo detailed information on the document | |
214 | * @return detailed information on the document created | |
215 | * @throws DataValidationErrorException One or more values invalid for this operation | |
216 | * @throws InvalidParameterException One or more parameters invalid | |
217 | * @throws MissingParameterException One or more parameters missing | |
218 | * @throws OperationFailedException unable to complete request | |
219 | * @throws PermissionDeniedException authorization failure | |
220 | */ | |
221 | public DocumentInfo createDocument(@WebParam(name="documentTypeKey")String documentTypeKey, @WebParam(name="documentCategoryKey")String documentCategoryKey, @WebParam(name="documentInfo")DocumentInfo documentInfo) throws DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, DoesNotExistException; | |
222 | ||
223 | /** | |
224 | * Updates an existing document. | |
225 | * @param documentId identifier of the document to update | |
226 | * @param documentInfo updated information for the document | |
227 | * @return updated information on the document | |
228 | * @throws DataValidationErrorException One or more values invalid for this operation | |
229 | * @throws DoesNotExistException Document being updated does not exist | |
230 | * @throws InvalidParameterException One or more parameters invalid | |
231 | * @throws MissingParameterException One or more parameters missing | |
232 | * @throws OperationFailedException unable to complete request | |
233 | * @throws PermissionDeniedException authorization failure | |
234 | * @throws VersionMismatchException The action was attempted on an out of date version. | |
235 | */ | |
236 | public DocumentInfo updateDocument(@WebParam(name="documentId")String documentId, @WebParam(name="documentInfo")DocumentInfo documentInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; | |
237 | ||
238 | /** | |
239 | * Deletes an existing document. | |
240 | * @param documentId identifier of the document to delete | |
241 | * @return status of the operation (success, failed) | |
242 | * @throws DoesNotExistException Document to delete does not exist | |
243 | * @throws InvalidParameterException One or more parameters invalid | |
244 | * @throws MissingParameterException One or more parameters missing | |
245 | * @throws OperationFailedException unable to complete request | |
246 | * @throws PermissionDeniedException authorization failure | |
247 | */ | |
248 | public StatusInfo deleteDocument(@WebParam(name="documentId")String documentId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
249 | ||
250 | /** | |
251 | * Adds an existing document category to a document. | |
252 | * @param documentId identifier of the document | |
253 | * @param documentCategoryKey identifier of the document category | |
254 | * @return status of the operation (success, failed) | |
255 | * @throws DataValidationErrorException One or more values invalid for this operation | |
256 | * @throws DoesNotExistException documentId, documentCategoryKey does not exist | |
257 | * @throws InvalidParameterException one or more parameters invalid | |
258 | * @throws MissingParameterException one or more parameters missing | |
259 | * @throws OperationFailedException unable to complete request | |
260 | * @throws PermissionDeniedException authorization failure | |
261 | * @throws VersionMismatchException action was attempted on an out of date version. | |
262 | */ | |
263 | public StatusInfo addDocumentCategoryToDocument(@WebParam(name="documentId")String documentId, @WebParam(name="documentCategoryKey")String documentCategoryKey) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException; | |
264 | ||
265 | /** | |
266 | * Removes an existing category from a document. | |
267 | * @param documentId identifier of the document | |
268 | * @param documentCategoryKey identifier of the document category | |
269 | * @return status of the operation (success, failed) | |
270 | * @throws DoesNotExistException documentId, documentCategoryKey does not exist | |
271 | * @throws InvalidParameterException One or more parameters invalid | |
272 | * @throws MissingParameterException One or more parameters missing | |
273 | * @throws OperationFailedException unable to complete request | |
274 | * @throws PermissionDeniedException authorization failure | |
275 | */ | |
276 | public StatusInfo removeDocumentCategoryFromDocument(@WebParam(name="documentId")String documentId, @WebParam(name="documentCategoryKey")String documentCategoryKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
277 | ||
278 | /** | |
279 | * Validates a reference document relationship. 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 comment (and/or one of its contained sub-objects) and a record is found for that identifier, the validation checks if the comment 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. | |
280 | * @param validationType identifier of the extent of validation | |
281 | * @param refDocRelationInfo reference document relationship information to be tested. | |
282 | * @return results from performing the validation | |
283 | * @throws DoesNotExistException validationTypeKey not found | |
284 | * @throws InvalidParameterException invalid validationTypeKey, refDocRelationInfo | |
285 | * @throws MissingParameterException missing validationTypeKey, refDocRelationInfo | |
286 | * @throws OperationFailedException unable to complete request | |
287 | */ | |
288 | public List<ValidationResultInfo> validateRefDocRelation(@WebParam(name="validationType")String validationType, @WebParam(name="refDocRelationInfo")RefDocRelationInfo refDocRelationInfo) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException; | |
289 | ||
290 | /** | |
291 | * Creates a relationship between a reference and a document. | |
292 | * @param refObjectTypeKey reference type | |
293 | * @param refObjectId identifier of the reference | |
294 | * @param documentId identifier of the document | |
295 | * @param refDocRelationTypeKey type of relationship between reference and document | |
296 | * @param refDocRelationInfo detailed information about the reference/document relationship | |
297 | * @return detailed information about the relationship | |
298 | * @throws DataValidationErrorException One or more values invalid for this operation | |
299 | * @throws InvalidParameterException One or more parameters invalid | |
300 | * @throws MissingParameterException One or more parameters missing | |
301 | * @throws OperationFailedException unable to complete request | |
302 | * @throws PermissionDeniedException authorization failure | |
303 | */ | |
304 | public RefDocRelationInfo createRefDocRelation(@WebParam(name="refObjectTypeKey")String refObjectTypeKey, @WebParam(name="refObjectId")String refObjectId, @WebParam(name="documentId")String documentId, @WebParam(name="refDocRelationTypeKey")String refDocRelationTypeKey, @WebParam(name="refDocRelationInfo")RefDocRelationInfo refDocRelationInfo) throws DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
305 | ||
306 | /** | |
307 | * Updates a relationship between a reference and a document. | |
308 | * @param refDocRelationId identifier of a relationship between a reference and document | |
309 | * @param refDocRelationInfo detailed information about the relationship between a reference and document | |
310 | * @return detailed information about the relationship between a reference and document | |
311 | * @throws DataValidationErrorException One or more values invalid for this operation | |
312 | * @throws InvalidParameterException One or more parameters invalid | |
313 | * @throws MissingParameterException One or more parameters missing | |
314 | * @throws OperationFailedException unable to complete request | |
315 | * @throws PermissionDeniedException authorization failure | |
316 | * @throws VersionMismatchException | |
317 | * @throws DoesNotExistException | |
318 | */ | |
319 | public RefDocRelationInfo updateRefDocRelation(@WebParam(name="refDocRelationId")String refDocRelationId, @WebParam(name="refDocRelationInfo")RefDocRelationInfo refDocRelationInfo) throws DataValidationErrorException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException, DoesNotExistException; | |
320 | ||
321 | /** | |
322 | * Removes a relationship between a reference and a document. | |
323 | * @param refDocRelationId identifier of the relationship between the reference and document | |
324 | * @return status of the operation (success, failed) | |
325 | * @throws DoesNotExistException relationship does not exist | |
326 | * @throws InvalidParameterException One or more parameters invalid | |
327 | * @throws MissingParameterException One or more parameters missing | |
328 | * @throws OperationFailedException unable to complete request | |
329 | * @throws PermissionDeniedException authorization failure | |
330 | */ | |
331 | public StatusInfo deleteRefDocRelation(@WebParam(name="refDocRelationId")String refDocRelationId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; | |
332 | ||
333 | } |