View Javadoc

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.lrc.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.DataValidationErrorException;
28  import org.kuali.student.common.exceptions.DoesNotExistException;
29  import org.kuali.student.common.exceptions.InvalidParameterException;
30  import org.kuali.student.common.exceptions.MissingParameterException;
31  import org.kuali.student.common.exceptions.OperationFailedException;
32  import org.kuali.student.common.exceptions.PermissionDeniedException;
33  import org.kuali.student.common.exceptions.VersionMismatchException;
34  import org.kuali.student.common.search.service.SearchService;
35  import org.kuali.student.lum.lrc.dto.CredentialInfo;
36  import org.kuali.student.lum.lrc.dto.CredentialTypeInfo;
37  import org.kuali.student.lum.lrc.dto.CreditInfo;
38  import org.kuali.student.lum.lrc.dto.CreditTypeInfo;
39  import org.kuali.student.lum.lrc.dto.GradeInfo;
40  import org.kuali.student.lum.lrc.dto.GradeTypeInfo;
41  import org.kuali.student.lum.lrc.dto.ResultComponentInfo;
42  import org.kuali.student.lum.lrc.dto.ResultComponentTypeInfo;
43  import org.kuali.student.lum.lrc.dto.ScaleInfo;
44  
45  /**
46   *
47   * @Author KSContractMojo
48   * @Author lindholm
49   * @Since Tue Apr 21 14:09:46 PDT 2009
50   * @See <a href="https://test.kuali.org/confluence/display/KULSTU/Learning+Result+Catalog+Service">LrcService</>
51   *
52   */
53  @WebService(name = "LrcService", targetNamespace = "http://student.kuali.org/wsdl/lrc")
54  @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
55  public interface LrcService extends SearchService, DictionaryService {
56      /**
57       * Retrieves information on all credential types.
58       * @return list of credential type information
59       * @throws OperationFailedException unable to complete request
60  	 */
61      public List<CredentialTypeInfo> getCredentialTypes() throws OperationFailedException;
62  
63      /**
64       * Retrieves information on a specific credential type.
65       * @param credentialTypeKey identifier for the credential type
66       * @return information about a credential type
67       * @throws DoesNotExistException credentialTypeKey not found
68       * @throws InvalidParameterException invalid credentialTypeKey
69       * @throws MissingParameterException missing credentialTypeKey
70       * @throws OperationFailedException unable to complete request
71  	 */
72      public CredentialTypeInfo getCredentialType(@WebParam(name="credentialTypeKey")String credentialTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
73  
74      /**
75       * Retrieves information on all credit types.
76       * @return list of credit type information
77       * @throws OperationFailedException unable to complete request
78  	 */
79      public List<CreditTypeInfo> getCreditTypes() throws OperationFailedException;
80  
81      /**
82       * Retrieves information on a specific credit type.
83       * @param creditTypeKey identifier for the credit type
84       * @return information about a credit type
85       * @throws DoesNotExistException creditTypeKey not found
86       * @throws InvalidParameterException invalid creditTypeKey
87       * @throws MissingParameterException missing creditTypeKey
88       * @throws OperationFailedException unable to complete request
89  	 */
90      public CreditTypeInfo getCreditType(@WebParam(name="creditTypeKey")String creditTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
91  
92      /**
93       * Retrieves information on all grade types.
94       * @return list of grade type information
95       * @throws OperationFailedException unable to complete request
96  	 */
97      public List<GradeTypeInfo> getGradeTypes() throws OperationFailedException;
98  
99      /**
100      * Retrieves information on a specific grade type.
101      * @param gradeTypeKey identifier for the grade type
102      * @return information about a grade type
103      * @throws DoesNotExistException gradeTypeKey not found
104      * @throws InvalidParameterException invalid gradeTypeKey
105      * @throws MissingParameterException missing gradeTypeKey
106      * @throws OperationFailedException unable to complete request
107 	 */
108     public GradeTypeInfo getGradeType(@WebParam(name="gradeTypeKey")String gradeTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
109 
110     /**
111      * Retrieves information on all result component types.
112      * @return list of result component type information
113      * @throws OperationFailedException unable to complete request
114 	 */
115     public List<ResultComponentTypeInfo> getResultComponentTypes() throws OperationFailedException;
116 
117     /**
118      * Retrieves information on a specific result component type.
119      * @param resultComponentTypeKey result component type key
120      * @return information about a result component type
121      * @throws DoesNotExistException resultComponentTypeKey not found
122      * @throws InvalidParameterException invalid resultComponentTypeKey
123      * @throws MissingParameterException missing resultComponentTypeKey
124      * @throws OperationFailedException unable to complete request
125 	 */
126     public ResultComponentTypeInfo getResultComponentType(@WebParam(name="resultComponentTypeKey")String resultComponentTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
127 
128     /**
129      * Retrieves information on a specific credential by its identifier.
130      * @param credentialKey credential identifier
131      * @return information about a credential
132      * @throws DoesNotExistException credentialKey not found
133      * @throws InvalidParameterException invalid credentialKey
134      * @throws MissingParameterException missing credentialKey
135      * @throws OperationFailedException unable to complete request
136 	 */
137     public CredentialInfo getCredential(@WebParam(name="credentialKey")String credentialKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
138 
139     /**
140      * Retrieves a list of existing credentials by a list of identifiers.
141      * @param credentialKeyList identifiers for credentials to be retrieved
142      * @return details of the credentials for these ids
143      * @throws DoesNotExistException credentialKey not found
144      * @throws InvalidParameterException invalid credentialKeyList
145      * @throws MissingParameterException invalid credentialKeyList
146      * @throws OperationFailedException unable to complete request
147 	 */
148     public List<CredentialInfo> getCredentialsByKeyList(@WebParam(name="credentialKeyList")List<String> credentialKeyList) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
149 
150     /**
151      * Retrieves a list of credential identifiers for a specified credential type.
152      * @param credentialTypeKey identifier for the credential type
153      * @return list of credential identifiers
154      * @throws DoesNotExistException credentialTypeKey not found
155      * @throws InvalidParameterException invalid credentialTypeKey
156      * @throws MissingParameterException missing credentialTypeKey
157      * @throws OperationFailedException unable to complete request
158 	 */
159     public List<String> getCredentialKeysByCredentialType(@WebParam(name="credentialTypeKey")String credentialTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
160 
161     /**
162      * Retrieves information on a specific credit value by its identifier.
163      * @param creditKey credit identifier
164      * @return information about a credit value
165      * @throws DoesNotExistException creditKey not found
166      * @throws InvalidParameterException invalid creditKey
167      * @throws MissingParameterException missing creditKey
168      * @throws OperationFailedException unable to complete request
169 	 */
170     public CreditInfo getCredit(@WebParam(name="creditKey")String creditKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
171 
172     /**
173      * Retrieves a list of existing credit values by a list of identifiers.
174      * @param creditKeyList identifiers for credit values to be retrieved
175      * @return details of the credit values for these ids
176      * @throws DoesNotExistException creditKey not found
177      * @throws InvalidParameterException invalid creditKeyList
178      * @throws MissingParameterException invalid creditKeyList
179      * @throws OperationFailedException unable to complete request
180 	 */
181     public List<CreditInfo> getCreditsByKeyList(@WebParam(name="creditKeyList")List<String> creditKeyList) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
182 
183     /**
184      * Retrieves a list of credit identifiers for a specified credit type.
185      * @param creditTypeKey identifier for the credit type
186      * @return list of credit identifiers
187      * @throws DoesNotExistException creditTypeKey not found
188      * @throws InvalidParameterException invalid creditTypeKey
189      * @throws MissingParameterException missing creditTypeKey
190      * @throws OperationFailedException unable to complete request
191 	 */
192     public List<String> getCreditKeysByCreditType(@WebParam(name="creditTypeKey")String creditTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
193 
194     /**
195      * Retrieves information on a specific scale by its identifier.
196      * @param scaleKey scale identifier
197      * @return information about a scale
198      * @throws DoesNotExistException scaleKey not found
199      * @throws InvalidParameterException invalid scaleKey
200      * @throws MissingParameterException missing scaleKey
201      * @throws OperationFailedException unable to complete request
202 	 */
203     public ScaleInfo getScale(@WebParam(name="scaleKey")String scaleKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
204 
205     /**
206      * Retrieves information on a specific grade value by its identifier.
207      * @param gradeKey grade value identifier
208      * @return information about a grade value
209      * @throws DoesNotExistException gradeKey not found
210      * @throws InvalidParameterException invalid gradeKey
211      * @throws MissingParameterException missing gradeKey
212      * @throws OperationFailedException unable to complete request
213 	 */
214     public GradeInfo getGrade(@WebParam(name="gradeKey")String gradeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
215 
216     /**
217      * Retrieves a list of existing grade values by a list of identifiers.
218      * @param gradeKeyList identifiers for grade values to be retrieved
219      * @return details of the grade values for these ids
220      * @throws DoesNotExistException gradeKey not found
221      * @throws InvalidParameterException invalid gradeKeyList
222      * @throws MissingParameterException invalid gradeKeyList
223      * @throws OperationFailedException unable to complete request
224 	 */
225     public List<GradeInfo> getGradesByKeyList(@WebParam(name="gradeKeyList")List<String> gradeKeyList) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
226 
227     /**
228      * Retrieves a list of grade identifiers for a specified grade type.
229      * @param gradeTypeKey identifier for the grade type
230      * @return list of grade identifiers
231      * @throws DoesNotExistException gradeTypeKey not found
232      * @throws InvalidParameterException invalid gradeTypeKey
233      * @throws MissingParameterException missing gradeTypeKey
234      * @throws OperationFailedException unable to complete request
235 	 */
236     public List<String> getGradeKeysByGradeType(@WebParam(name="gradeTypeKey")String gradeTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
237 
238     /**
239      * Retrieves a list of existing grade values for a particular scale.
240      * @param scale identifier for the scale
241      * @return details of the grade values for the specified scale
242      * @throws DoesNotExistException scaleKey not found
243      * @throws InvalidParameterException invalid scaleKey
244      * @throws MissingParameterException invalid scaleKey
245      * @throws OperationFailedException unable to complete request
246 	 */
247     public List<GradeInfo> getGradesByScale(@WebParam(name="scale")String scale) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
248 
249     /**
250      * Translates a grade value in one scale to equivalent value(s) in another scale. This may return a single grade value, multiple grade values, or no grade values (in the case of no equivalent values).
251      * @param gradeKey identifier of the first grade
252      * @param scaleKey scale of the first grade
253      * @param translateScaleKey scale of the second grade
254      * @return equivalent grade values for the first grade value in the specified scale
255      * @throws InvalidParameterException invalid gradeKey, scaleKey, or translateScaleKey
256      * @throws MissingParameterException missing gradeKey, scaleKey, or translateScaleKey
257      * @throws OperationFailedException unable to complete request
258 	 */
259     public List<GradeInfo> translateGrade(@WebParam(name="gradeKey")String gradeKey, @WebParam(name="scaleKey")String scaleKey, @WebParam(name="translateScaleKey")String translateScaleKey) throws InvalidParameterException, MissingParameterException, OperationFailedException;
260 
261     /**
262      * Compares a grade value in one scale to a grade value in another scale.
263      * @param gradeKey identifier of the first grade value
264      * @param scaleKey scale of the first grade value
265      * @param compareGradeKey identifier of the second grade value
266      * @param compareScaleKey scale of the second grade value
267      * @return status of the comparison (greater than, less than, equals, not applicable, etc.)
268      * @throws InvalidParameterException invalid gradeKey, scaleKey, compareGradeKey, or compareScaleKey
269      * @throws MissingParameterException missing gradeKey, scaleKey, compareGradeKey, or compareScaleKey
270      * @throws OperationFailedException unable to complete request
271 	 */
272     public String compareGrades(@WebParam(name="gradeKey")String gradeKey, @WebParam(name="scaleKey")String scaleKey, @WebParam(name="compareGradeKey")String compareGradeKey, @WebParam(name="compareScaleKey")String compareScaleKey) throws InvalidParameterException, MissingParameterException, OperationFailedException;
273 
274     /**
275      * Retrieves information on a specific result component.
276      * @param resultComponentId result component identifier
277      * @return information about a result component
278      * @throws DoesNotExistException resultComponentId not found
279      * @throws InvalidParameterException invalid resultComponentId
280      * @throws MissingParameterException missing resultComponentId
281      * @throws OperationFailedException unable to complete request
282 	 */
283     public ResultComponentInfo getResultComponent(@WebParam(name="resultComponentId")String resultComponentId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
284 
285     /**
286      * Retrieves a list of result component identifiers for a specified result component type.
287      * @param resultComponentTypeKey identifier for the result component type
288      * @return list of result component identifiers
289      * @throws DoesNotExistException resultComponentTypeKey not found
290      * @throws InvalidParameterException invalid resultComponentTypeKey
291      * @throws MissingParameterException missing resultComponentTypeKey
292      * @throws OperationFailedException unable to complete request
293 	 */
294     public List<String> getResultComponentIdsByResultComponentType(@WebParam(name="resultComponentTypeKey")String resultComponentTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
295 
296     /**
297      * Retrieves a list of result component identifiers for a specified result. The result component type is specified as well to provide an indication of the id space.
298      * @param resultValueId identifier for the result value
299      * @param resultComponentTypeKey identifier for the result component type
300      * @return list of result component identifiers
301      * @throws DoesNotExistException resultValueId, resultComponentTypeKey not found
302      * @throws InvalidParameterException invalid resultValueId, resultComponentTypeKey
303      * @throws MissingParameterException missing resultValueId, resultComponentTypeKey
304      * @throws OperationFailedException unable to complete request
305 	 */
306     public List<String> getResultComponentIdsByResult(@WebParam(name="resultValueId")String resultValueId, @WebParam(name="resultComponentTypeKey")String resultComponentTypeKey) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException;
307 
308     /**
309      * Creates a new result component.
310      * @param resultComponentTypeKey identifier of the result component type
311      * @param resultComponentInfo information about the result component being created
312      * @return create result component information
313      * @throws AlreadyExistsException result component already exists
314      * @throws DataValidationErrorException one or more values invalid for this operation
315      * @throws DoesNotExistException resultComponentTypeKey not found
316      * @throws InvalidParameterException invalid resultComponentTypeKey, resultComponentInfo
317      * @throws MissingParameterException missing resultComponentTypeKey, resultComponentInfo
318      * @throws OperationFailedException unable to complete request
319      * @throws PermissionDeniedException authorization failure
320 	 */
321     public ResultComponentInfo createResultComponent(@WebParam(name="resultComponentTypeKey")String resultComponentTypeKey, @WebParam(name="resultComponentInfo")ResultComponentInfo resultComponentInfo) throws AlreadyExistsException, DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
322 
323     /**
324      * Updates an existing result component.
325      * @param resultComponentId identifier of the result component to update
326      * @param resultComponentInfo updated information about the result component
327      * @return updated result component information
328      * @throws DataValidationErrorException one or more values invalid for this operation
329      * @throws DoesNotExistException resultComponentId not found
330      * @throws InvalidParameterException invalid resultComponentId, resultComponentInfo
331      * @throws MissingParameterException missing resultComponentId, resultComponentInfo
332      * @throws OperationFailedException unable to complete request
333      * @throws PermissionDeniedException authorization failure
334      * @throws VersionMismatchException action was attempted on an out of date version.
335 	 */
336     public ResultComponentInfo updateResultComponent(@WebParam(name="resultComponentId")String resultComponentId, @WebParam(name="resultComponentInfo")ResultComponentInfo resultComponentInfo) throws DataValidationErrorException, DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException, VersionMismatchException;
337 
338     /**
339      * Deletes an existing result component.
340      * @param resultComponentId identifier of the result component to update
341      * @return status of the operation
342      * @throws DoesNotExistException resultComponentId not found
343      * @throws InvalidParameterException invalid resultComponentId
344      * @throws MissingParameterException missing resultComponentId
345      * @throws OperationFailedException unable to complete request
346      * @throws PermissionDeniedException authorization failure
347 	 */
348     public StatusInfo deleteResultComponent(@WebParam(name="resultComponentId")String resultComponentId) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException;
349 
350 }