1 /* 2 * Copyright 2009 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 1.0 (the 5 * "License"); you may not use this file except in compliance with the 6 * License. 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.contract.model.test.source; 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 25 /** 26 * The Lui Person Relationship (LPR) Service 27 * 28 * Maintains the relationship between a Learning Unit Instance and a Person. 29 * Depending on the type this service maintains relationships such as:<ul> 30 * <li>a student's registration in a course 31 * <li>a student's enrollment in a program (major or minor) 32 * <li>an instructor's assignment to teach a course 33 * <li>a faculty member's assignment as an advisor for a program 34 * </ul> 35 * 36 * @version 1.0 (Dev) 37 * 38 * @Author Kamal 39 * @Since Tue Mar 01 15:53:51 PST 2011 40 * @See <a href="https://wiki.kuali.org/display/KULSTU/LUI+Person+Relation+Service">LuiPersonRelationService</> 41 */ 42 @WebService(name = "LuiPersonRelationService", targetNamespace = "http://student.kuali.org/wsdl/luiPersonRelation") 43 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) 44 public interface LprService extends TypeService, StateService { 45 46 /** 47 * Retrieves the Relation for the specified LUI Person Relation 48 * 49 * @param luiPersonRelationId Identifier for the LUI Person Relation 50 * @param context Context information containing the principalId and locale information about the caller of service operation 51 * @return LUI Person Relation information 52 * @throws DoesNotExistException luiPersonRelationId not found 53 * @throws InvalidParameterException invalid luiPersonRelationId 54 * @throws MissingParameterException missing luiPersonRelationId 55 * @throws OperationFailedException unable to complete request 56 * @throws PermissionDeniedException authorization failure 57 */ 58 public LprInfo fetchLuiPersonRelation(@WebParam(name = "luiPersonRelationId") String luiPersonRelationId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 59 60 /** 61 * Retrieves the Relation for the specified list of LUI Person Relation Ids 62 * 63 * @param luiPersonRelationIdList List of identifiers for LUI Person Relations 64 * @param context Context information containing the principalId and locale information about the caller of service operation 65 * @return List of LUI Person Relation information 66 * @throws DoesNotExistException One or more luiPersonRelationIds not found 67 * @throws InvalidParameterException One or more invalid luiPersonRelationIds 68 * @throws MissingParameterException missing luiPersonRelationIdList 69 * @throws OperationFailedException unable to complete request 70 * @throws PermissionDeniedException authorization failure 71 */ 72 public List<LprInfo> findLuiPersonRelationsByIdList(@WebParam(name = "luiPersonRelationIdList") List<String> luiPersonRelationIdList, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 73 74 /** 75 * Retrieves the LUI Ids for Person related to LUI 76 * 77 * @param personId Identifier for the LUI Person Relation 78 * @param luiPersonRelationTypeKey Type of LUI Person Relation 79 * @param relationState Relation State 80 * @param context Context information containing the principalId and locale information about the caller of service operation 81 * @return Simple list of LUI Ids 82 * @throws DoesNotExistException personId, luiPersonRelationTypeKey, relationState, person to LUI relationship not found 83 * @throws DisabledIdentifierException personId found, but has been retired 84 * @throws InvalidParameterException invalid personId, luiPersonRelationTypeKey, relationState 85 * @throws MissingParameterException missing personId, luiPersonRelationTypeKey, relationState 86 * @throws OperationFailedException unable to complete request 87 * @throws PermissionDeniedException authorization failure 88 */ 89 public List<String> findLuiIdsRelatedToPerson(@WebParam(name = "personId") String personId, @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey, @WebParam(name = "relationState") String relationState, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DisabledIdentifierException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 90 91 /** 92 * Retrieves Person Ids related to the specified LUI 93 * 94 * @param luiId Identifier for the LUI 95 * @param luiPersonRelationTypeKey Type of LUI Person Relation 96 * @param relationState Relation State 97 * @param context Context information containing the principalId and locale information about the caller of service operation 98 * @return Simple list of Person Ids 99 * @throws DoesNotExistException luiId, luiPersonRelationTypeKey, relationState, LUI to person relationship not found 100 * @throws InvalidParameterException invalid luiId, luiPersonRelationTypeKey, relationState 101 * @throws MissingParameterException missing luiId, luiPersonRelationTypeKey, relationState 102 * @throws OperationFailedException unable to complete request 103 * @throws PermissionDeniedException authorization failure 104 */ 105 public List<String> findPersonIdsRelatedToLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey, @WebParam(name = "relationState") String relationState, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 106 107 /** 108 * Retrieves Person Relation for LUI 109 * 110 * @param personId Identifier for person 111 * @param luiId Identifier for LUI 112 * @param context Context information containing the principalId and locale information about the caller of service operation 113 * @return List of LUI Person Relation info 114 * @throws DoesNotExistException personId, luiId not found 115 * @throws DisabledIdentifierException personId found, but has been retired 116 * @throws InvalidParameterException invalid personId, luiId 117 * @throws MissingParameterException missing personId, luiId 118 * @throws OperationFailedException unable to complete request 119 * @throws PermissionDeniedException authorization failure 120 */ 121 public List<LprInfo> findLuiPersonRelations(@WebParam(name = "personId") String personId, @WebParam(name = "luiId") String luiId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DisabledIdentifierException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 122 123 /** 124 * Retrieves LUI Person Relation Ids 125 * 126 * @param personId Identifier for person 127 * @param luiId Identifier for LUI 128 * @param context Context information containing the principalId and locale information about the caller of service operation 129 * @return List of LUI Person Relation display info 130 * @throws DoesNotExistException personId, luiId not found 131 * @throws DisabledIdentifierException personId found, but has been retired 132 * @throws InvalidParameterException invalid personId, luiId 133 * @throws MissingParameterException missing personId, luiId 134 * @throws OperationFailedException unable to complete request 135 * @throws PermissionDeniedException authorization failure 136 */ 137 public List<String> findLuiPersonRelationIds(@WebParam(name = "personId") String personId, @WebParam(name = "luiId") String luiId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DisabledIdentifierException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 138 139 /** 140 * Retrieves LUI Person Relation for Person 141 * 142 * @param personId Identifier for person 143 * @param context Context information containing the principalId and locale information about the caller of service operation 144 * @return List of LUI Person Relation info 145 * @throws DoesNotExistException personId not found 146 * @throws DisabledIdentifierException personId found, but has been retired 147 * @throws InvalidParameterException invalid personId 148 * @throws MissingParameterException missing personId 149 * @throws OperationFailedException unable to complete request 150 * @throws PermissionDeniedException authorization failure 151 */ 152 public List<LprInfo> findLuiPersonRelationsForPerson(@WebParam(name = "personId") String personId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DisabledIdentifierException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 153 154 /** 155 * Retrieves LUI Person Relation Ids for Person 156 * 157 * @param personId Identifier for person 158 * @param context Context information containing the principalId and locale information about the caller of service operation 159 * @return Simple list of person relation identifiers 160 * @throws DoesNotExistException personId not found 161 * @throws DisabledIdentifierException personId found, but has been retired 162 * @throws InvalidParameterException invalid personId 163 * @throws MissingParameterException missing personId 164 * @throws OperationFailedException unable to complete request 165 * @throws PermissionDeniedException authorization failure 166 */ 167 public List<String> findLuiPersonRelationIdsForPerson(@WebParam(name = "personId") String personId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DisabledIdentifierException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 168 169 /** 170 * Retrieves LUI Person Relation for a specified LUI 171 * 172 * @param luiId Identifier for LUI 173 * @param context Context information containing the principalId and locale information about the caller of service operation 174 * @return List of LUI Person Relation info 175 * @throws DoesNotExistException luiId not found 176 * @throws InvalidParameterException invalid luiId 177 * @throws MissingParameterException missing luiId 178 * @throws OperationFailedException unable to complete request 179 * @throws PermissionDeniedException authorization failure 180 */ 181 public List<LprInfo> findLuiPersonRelationsForLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 182 183 /** 184 * Retrieves LUIPersonRelation for LUI 185 * 186 * @param luiId Identifier for LUI 187 * @param context Context information containing the principalId and locale information about the caller of service operation 188 * @return Simple list of LUI Person Relation identifiers 189 * @throws DoesNotExistException luiId not found 190 * @throws InvalidParameterException invalid luiId 191 * @throws MissingParameterException missing luiId 192 * @throws OperationFailedException unable to complete request 193 * @throws PermissionDeniedException authorization failure 194 */ 195 public List<String> findLuiPersonRelationIdsForLui(@WebParam(name = "luiId") String luiId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 196 197 /** 198 * Validates the particular relation in a state for a Person and LUI 199 * 200 * @param validationType Identifier of the extent of validation 201 * @param luiPersonRelationInfo LuiPersonRelation to be validated 202 * @param context Context information containing the principalId and locale information about the caller of service operation 203 * @return list of validation results, list should be be zero length if no validation rsults are generated 204 * @throws DoesNotExistException luiPersonRelationInfo not found 205 * @throws InvalidParameterException invalid luiPersonRelationInfo relationState 206 * @throws MissingParameterException missing luiPersonRelationInfo 207 * @throws OperationFailedException unable to complete request 208 * @throws PermissionDeniedException authorization failure 209 */ 210 public List<ValidationResultInfo> validateLuiPersonRelation(@WebParam(name = "validationType") String validationType, 211 @WebParam(name = "luiPersonRelationInfo") LprInfo luiPersonRelationInfo, 212 @WebParam(name = "context") ContextInfo context) 213 throws DoesNotExistException, 214 InvalidParameterException, 215 MissingParameterException, 216 OperationFailedException, 217 PermissionDeniedException; 218 219 /** 220 * Retrieves LUIs for an academic time period where the specified relation type and state would be valid for the specified person 221 * 222 * @param personId Identifier for person 223 * @param luiPersonRelationTypeKey Type of luiPersonRelationI 224 * @param relationState Relation State 225 * @param atpId Identifier for academic time period 226 * @param context Context information containing the principalId and locale information about the caller of service operation 227 * @return List of LUIs 228 * @throws DoesNotExistException personId, luiPersonRelationTypeKey, relationState, atpId not found 229 * @throws DisabledIdentifierException personId found, but has been retired 230 * @throws InvalidParameterException invalid personId, luiPersonRelationTypeKey, relationState, atpId 231 * @throws MissingParameterException missing personId, luiPersonRelationTypeKey, relationState, atpId 232 * @throws OperationFailedException unable to complete request 233 * @throws PermissionDeniedException authorization failure 234 */ 235 public List<String> findAllValidLuisForPerson(@WebParam(name = "personId") String personId, @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey, @WebParam(name = "relationState") String relationState, @WebParam(name = "atpId") String atpId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, DisabledIdentifierException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 236 237 /** 238 * Creates relation between the specified Person and LUI 239 * 240 * @param personId Person Identifier 241 * @param luiId LUI Identifier 242 * @param luiPersonRelationTypeKey Type of LUI to Person Relation 243 * @param luiPersonRelationInfo Information required to create the LUI Person relation 244 * @param context Context information containing the principalId and locale information about the caller of service operation 245 * @return Structure containing LUI Person relation identifiers 246 * @throws AlreadyExistsException relation already exists 247 * @throws DataValidationErrorException if luiPeronsRelationInfo is not valid 248 * @throws ReadOnlyException attempt to update a read only attribute 249 * @throws DoesNotExistException personId, luiId, relationState, luiPersonRelationTypeKey does not exist 250 * @throws DisabledIdentifierException personId found, but has been retired 251 * @throws InvalidParameterException invalid personId, luiId, relationState, luiPersonRelationTypeKey, luiPersonRelationInfo 252 * @throws MissingParameterException missing personId, luiId, relationState, luiPersonRelationTypeKey, luiPersonRelationInfo 253 * @throws OperationFailedException unable to complete request 254 * @throws PermissionDeniedException authorization failure 255 */ 256 public String createLuiPersonRelation(@WebParam(name = "personId") String personId, @WebParam(name = "luiId") String luiId, @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey, @WebParam(name = "luiPersonRelationInfo") LprInfo luiPersonRelationInfo, @WebParam(name = "context") ContextInfo context) 257 throws DataValidationErrorException, 258 AlreadyExistsException, DoesNotExistException, DisabledIdentifierException, ReadOnlyException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 259 260 /** 261 * Creates bulk relationships for one specified person. This is an all or nothing transaction - any error will invalidate the entire transaction. 262 * 263 * @param personId Identifier for Person 264 * @param luiIdList Simple list of LUI identifiers 265 * @param relationState Relation state 266 * @param luiPersonRelationTypeKey Type of LUI Person relation 267 * @param luiPersonRelationInfo Information required to create the LUI Person relation 268 * @param context Context information containing the principalId 269 * and locale information about the caller of service 270 * operation 271 * @return Structure containing LUI Person relation identifiers 272 * @throws AlreadyExistsException relation already exists 273 * @throws DataValidationErrorException if luiPeronsRelationInfo is not valid 274 * @throws ReadOnlyException attempt to update a read only attribute 275 * @throws DoesNotExistException personId, luiId, relationState, luiPersonRelationTypeKey does not exist 276 * @throws DisabledIdentifierException personId found, but has been retired 277 * @throws InvalidParameterException invalid personId, luiId, relationState, luiPersonRelationTypeKey, luiPersonRelationInfo 278 * @throws MissingParameterException missing personId, luiId, relationState, luiPersonRelationTypeKey, luiPersonRelationInfo 279 * @throws OperationFailedException unable to complete request 280 * @throws PermissionDeniedException authorization failure 281 */ 282 public List<String> createBulkRelationshipsForPerson(@WebParam(name = "personId") String personId, 283 @WebParam(name = "luiIdList") List<String> luiIdList, 284 @WebParam(name = "relationState") String relationState, 285 @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey, 286 @WebParam(name = "luiPersonRelationInfo") LprInfo luiPersonRelationInfo, 287 @WebParam(name = "context") ContextInfo context) 288 throws DataValidationErrorException, 289 AlreadyExistsException, 290 DoesNotExistException, 291 DisabledIdentifierException, 292 ReadOnlyException, 293 InvalidParameterException, 294 MissingParameterException, 295 OperationFailedException, 296 PermissionDeniedException; 297 298 /** 299 * Creates bulk relationships for one specified LUI. This is an all or nothing transaction - any error will invalidate the entire transaction. 300 * 301 * @param luiId Identifier for Lui 302 * @param personIdList Simple list of Person identifiers 303 * @param relationState Relation state 304 * @param luiPersonRelationTypeKey Type of LUI Person relation 305 * @param luiPersonRelationInfo Information required to create the LUI Person relation 306 * @param context Context information containing the principalId 307 * and locale information about the caller of service 308 * operation 309 * @return Structure containing LUI Person relation identifiers 310 * @throws AlreadyExistsException relation already exists 311 * @throws DoesNotExistException personId, luiId, relationState, luiPersonRelationTypeKey does not exist 312 * @throws DisabledIdentifierException personId found, but has been retired 313 * @throws DataValidationErrorException errors validating luiPersonRelationInfo with all data filled in 314 * @throws InvalidParameterException invalid personId, luiId, relationState, luiPersonRelationTypeKey, luiPersonRelationInfo 315 * @throws MissingParameterException missing personId, luiId, relationState, luiPersonRelationTypeKey, luiPersonRelationInfo 316 * @throws OperationFailedException unable to complete request 317 * @throws ReadOnlyException attempt to update a read only attribute 318 * @throws PermissionDeniedException authorization failure 319 */ 320 public List<String> createBulkRelationshipsForLui(@WebParam(name = "luiId") String luiId, 321 @WebParam(name = "personIdList") List<String> personIdList, 322 @WebParam(name = "relationState") String relationState, 323 @WebParam(name = "luiPersonRelationTypeKey") String luiPersonRelationTypeKey, 324 @WebParam(name = "luiPersonRelationInfo") LprInfo luiPersonRelationInfo, 325 @WebParam(name = "context") ContextInfo context) 326 throws AlreadyExistsException, 327 DataValidationErrorException, 328 DoesNotExistException, 329 DisabledIdentifierException, 330 ReadOnlyException, 331 InvalidParameterException, 332 MissingParameterException, 333 OperationFailedException, 334 PermissionDeniedException; 335 336 /** 337 * Update relation between Person and LUI 338 * 339 * @param luiPersonRelationId Identifier for the LUI Person Relation 340 * @param luiPersonRelationInfo Changed information about the LUI Person Relation 341 * @param context Context information containing the principalId 342 * and locale information about the caller of service 343 * operation 344 * @return Updated information about the LUI Person Relation 345 * @throws DataValidationErrorException if luiPersonRelationInfo is not valid 346 * @throws DoesNotExistException luiPersonRelationId does not exist 347 * @throws InvalidParameterException invalid luiPersonRelationId, luiPersonRelationInfo 348 * @throws MissingParameterException missing luiPersonRelationId, luiPersonRelationInfo 349 * @throws ReadOnlyException attempt to update a read only attribute 350 * @throws OperationFailedException unable to complete request 351 * @throws PermissionDeniedException authorization failure 352 * @throws VersionMismatchException if optimistic lock version ind has changed 353 */ 354 public LprInfo updateLuiPersonRelation(@WebParam(name = "luiPersonRelationId") String luiPersonRelationId, 355 @WebParam(name = "luiPersonRelationInfo") LprInfo luiPersonRelationInfo, 356 @WebParam(name = "context") ContextInfo context) 357 throws DoesNotExistException, 358 DataValidationErrorException, 359 InvalidParameterException, 360 MissingParameterException, 361 ReadOnlyException, 362 OperationFailedException, 363 PermissionDeniedException, 364 VersionMismatchException; 365 366 /** 367 * Deletes relation between the specified Person and LUI 368 * 369 * @param luiPersonRelationId Identifier for the LUI Person Relation 370 * @param context Context information containing the principalId 371 * and locale information about the caller of service 372 * operation 373 * @return status of the operation (success, failed) 374 * @throws DoesNotExistException luiPersonRelationId does not exist 375 * @throws InvalidParameterException invalid luiPersonRelationId 376 * @throws MissingParameterException missing luiPersonRelationId 377 * @throws OperationFailedException unable to complete request 378 * @throws PermissionDeniedException authorization failure 379 */ 380 public StatusInfo deleteLuiPersonRelation(@WebParam(name = "luiPersonRelationId") String luiPersonRelationId, @WebParam(name = "context") ContextInfo context) throws DoesNotExistException, InvalidParameterException, MissingParameterException, OperationFailedException, PermissionDeniedException; 381 }