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 }