1 /** 2 * Copyright 2005-2014 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.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/ecl2.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.rice.kim.api.identity; 17 18 import org.kuali.rice.core.api.criteria.QueryByCriteria; 19 import org.kuali.rice.core.api.exception.RiceIllegalArgumentException; 20 import org.kuali.rice.core.api.exception.RiceIllegalStateException; 21 import org.kuali.rice.kim.api.KimConstants; 22 import org.kuali.rice.kim.api.identity.address.EntityAddress; 23 import org.kuali.rice.kim.api.identity.affiliation.EntityAffiliation; 24 import org.kuali.rice.kim.api.identity.affiliation.EntityAffiliationType; 25 import org.kuali.rice.kim.api.identity.citizenship.EntityCitizenship; 26 import org.kuali.rice.kim.api.identity.email.EntityEmail; 27 import org.kuali.rice.kim.api.identity.employment.EntityEmployment; 28 import org.kuali.rice.kim.api.identity.entity.Entity; 29 import org.kuali.rice.kim.api.identity.entity.EntityDefault; 30 import org.kuali.rice.kim.api.identity.entity.EntityDefaultQueryResults; 31 import org.kuali.rice.kim.api.identity.entity.EntityQueryResults; 32 import org.kuali.rice.kim.api.identity.external.EntityExternalIdentifier; 33 import org.kuali.rice.kim.api.identity.external.EntityExternalIdentifierType; 34 import org.kuali.rice.kim.api.identity.name.EntityName; 35 import org.kuali.rice.kim.api.identity.personal.EntityBioDemographics; 36 import org.kuali.rice.kim.api.identity.personal.EntityEthnicity; 37 import org.kuali.rice.kim.api.identity.phone.EntityPhone; 38 import org.kuali.rice.kim.api.identity.principal.EntityNamePrincipalName; 39 import org.kuali.rice.kim.api.identity.principal.Principal; 40 import org.kuali.rice.kim.api.identity.principal.PrincipalQueryResults; 41 import org.kuali.rice.kim.api.identity.privacy.EntityPrivacyPreferences; 42 import org.kuali.rice.kim.api.identity.residency.EntityResidency; 43 import org.kuali.rice.kim.api.identity.type.EntityTypeContactInfo; 44 import org.kuali.rice.kim.api.identity.visa.EntityVisa; 45 import org.springframework.cache.annotation.CacheEvict; 46 import org.springframework.cache.annotation.Cacheable; 47 48 import javax.jws.WebMethod; 49 import javax.jws.WebParam; 50 import javax.jws.WebResult; 51 import javax.jws.WebService; 52 import javax.jws.soap.SOAPBinding; 53 import java.util.List; 54 55 /** 56 * This service provides operations to query for principal and identity data. 57 * 58 * <p>A principal represents an identity that can authenticate. In essence, a principal can be 59 * thought of as an "account" or as an identity's authentication credentials. A principal has 60 * an id which is used to uniquely identify it. It also has a name which represents the 61 * principal's username and is typically what is entered when authenticating. All principals 62 * are associated with one and only one identity. 63 * 64 * <p>An identity represents a person or system. Additionally, other "types" of entities can 65 * be defined in KIM. Information like name, phone number, etc. is associated with an identity. 66 * It is the representation of a concrete person or system. While an identity will typically 67 * have a single principal associated with it, it is possible for an identity to have more than 68 * one principal or even no principals at all (in the case where the identity does not actually 69 * authenticate). 70 * 71 * <p>This service also provides operations for querying various pieces of reference data, such as 72 * address types, affiliation types, phone types, etc. 73 * 74 * 75 * @author Kuali Rice Team (rice.collab@kuali.org) 76 * 77 */ 78 @WebService(name = "identityService", targetNamespace = KimConstants.Namespaces.KIM_NAMESPACE_2_0) 79 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED) 80 public interface IdentityService { 81 82 /** 83 * This method finds EntityDefault data based on a query criteria. The criteria cannot be null. 84 * 85 * @param query the criteria. Cannot be null. 86 * @return query results. will never return null. 87 * @throws RiceIllegalArgumentException if the queryByCriteria is null 88 */ 89 @WebMethod(operationName = "findEntityDefaults") 90 @WebResult(name = "results") 91 EntityDefaultQueryResults findEntityDefaults(@WebParam(name = "query") QueryByCriteria query) throws RiceIllegalArgumentException; 92 93 /** 94 * This method finds Entities based on a query criteria. The criteria cannot be null. 95 * 96 * @param query the criteria. Cannot be null. 97 * @return query results. will never return null. 98 * @throws RiceIllegalArgumentException if the queryByCriteria is null 99 */ 100 @WebMethod(operationName = "findEntities") 101 @WebResult(name = "results") 102 EntityQueryResults findEntities(@WebParam(name = "query") QueryByCriteria query) throws RiceIllegalArgumentException; 103 104 105 /** 106 * Gets a {@link org.kuali.rice.kim.api.identity.entity.Entity} from an id. 107 * 108 * <p> 109 * This method will return null if the Entity does not exist. 110 * </p> 111 * 112 * @param id the unique id to retrieve the entity by. cannot be null. 113 * @return a {@link org.kuali.rice.kim.api.identity.entity.Entity} or null 114 * @throws RiceIllegalArgumentException if the id is blank 115 */ 116 @WebMethod(operationName = "getEntity") 117 @WebResult(name = "entity") 118 @Cacheable(value= Entity.Cache.NAME, key="'id=' + #p0") 119 Entity getEntity( @WebParam(name="id") String id ) throws RiceIllegalArgumentException; 120 121 /** 122 * Gets a {@link org.kuali.rice.kim.api.identity.entity.Entity} from a principalId. 123 * 124 * <p> 125 * This method will return null if the Entity does not exist. 126 * </p> 127 * 128 * @param principalId the unique id to retrieve the entity by. cannot be null. 129 * @return a {@link org.kuali.rice.kim.api.identity.entity.Entity} or null 130 * @throws RiceIllegalArgumentException if the principalId is blank 131 */ 132 @WebMethod(operationName = "getEntityByPrincipalId") 133 @WebResult(name = "entity") 134 @Cacheable(value= Entity.Cache.NAME, key="'principalId=' + #p0") 135 Entity getEntityByPrincipalId(@WebParam(name = "principalId") String principalId) throws RiceIllegalArgumentException; 136 137 /** 138 * Gets a {@link org.kuali.rice.kim.api.identity.entity.Entity} from a principalName. 139 * 140 * <p> 141 * This method will return null if the Entity does not exist. 142 * </p> 143 * 144 * @param principalName the unique id to retrieve the entity by. cannot be null. 145 * @return a {@link org.kuali.rice.kim.api.identity.entity.Entity} or null 146 * @throws RiceIllegalArgumentException if the id is blank 147 */ 148 @WebMethod(operationName = "getEntityByPrincipalName") 149 @WebResult(name = "entity") 150 @Cacheable(value= Entity.Cache.NAME, key="'principalName=' + #p0") 151 Entity getEntityByPrincipalName(@WebParam(name = "principalName") String principalName) throws RiceIllegalArgumentException; 152 153 /** 154 * Gets a {@link org.kuali.rice.kim.api.identity.entity.Entity} from a employeeId. 155 * 156 * <p> 157 * This method will return null if the Entity does not exist. 158 * </p> 159 * 160 * @param employeeId the unique id to retrieve the entity by. cannot be null. 161 * @return a {@link org.kuali.rice.kim.api.identity.entity.Entity} or null 162 * @throws RiceIllegalArgumentException if the employeeId is blank 163 */ 164 @WebMethod(operationName = "getEntityByEmployeeId") 165 @WebResult(name = "entity") 166 @Cacheable(value= Entity.Cache.NAME, key="'employeeId=' + #p0") 167 Entity getEntityByEmployeeId(@WebParam(name = "employeeId") String employeeId) throws RiceIllegalArgumentException; 168 169 170 /** 171 * This will create a {@link org.kuali.rice.kim.api.identity.entity.Entity} exactly like the entity passed in. 172 * 173 * @param entity the entity to create 174 * @return the newly created Entity object. 175 * @throws RiceIllegalArgumentException if the entity is null 176 * @throws RiceIllegalStateException if the entity already exists in the system 177 */ 178 @WebMethod(operationName="createEntity") 179 @WebResult(name = "entity") 180 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 181 Entity createEntity(@WebParam(name = "entity") Entity entity) 182 throws RiceIllegalArgumentException, RiceIllegalStateException; 183 184 /** 185 * This will update a {@link org.kuali.rice.kim.api.identity.entity.Entity}. 186 * 187 * @param entity the entity to update 188 * @return the updated Entity object. 189 * @throws RiceIllegalArgumentException if the entity is null 190 * @throws RiceIllegalStateException if the entity does not already exist in the system 191 */ 192 @WebMethod(operationName="updateEntity") 193 @WebResult(name = "entity") 194 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME, EntityNamePrincipalName.Cache.NAME}, allEntries = true) 195 Entity updateEntity(@WebParam(name = "entity") Entity entity) 196 throws RiceIllegalArgumentException, RiceIllegalStateException; 197 198 /** 199 * This will inactivate a {@link org.kuali.rice.kim.api.identity.entity.Entity}. 200 * 201 * @param id the unique id of the entity to inactivate 202 * @return the inactivated Entity object. 203 * @throws RiceIllegalArgumentException if the entity is null 204 * @throws RiceIllegalStateException if the entity does not already exist in the system 205 */ 206 @WebMethod(operationName="inactivateEntity") 207 @WebResult(name = "entity") 208 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 209 Entity inactivateEntity(@WebParam(name = "id") String id) 210 throws RiceIllegalArgumentException, RiceIllegalStateException; 211 212 213 214 /** 215 * Gets a {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} from an id. 216 * {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} is a condensed version of {@link org.kuali.rice.kim.api.identity.entity.Entity} that contains 217 * default values of its subclasses 218 * 219 * <p> 220 * This method will return null if the Entity does not exist. 221 * </p> 222 * 223 * @param id the unique id to retrieve the entity by. cannot be null. 224 * @return a {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} or null 225 * @throws RiceIllegalArgumentException if the id is blank 226 */ 227 @WebMethod(operationName = "getEntityDefault") 228 @WebResult(name = "entityDefault") 229 @Cacheable(value= EntityDefault.Cache.NAME, key="'id=' + #p0") 230 EntityDefault getEntityDefault(@WebParam(name = "id") String id) throws RiceIllegalArgumentException; 231 232 /** 233 * Gets a {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} from an principalId. 234 * {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} is a condensed version of {@link org.kuali.rice.kim.api.identity.entity.Entity} that contains 235 * default values of its subclasses 236 * 237 * <p> 238 * This method will return null if the Entity does not exist. 239 * </p> 240 * 241 * @param principalId the unique id to retrieve the entity by. cannot be null. 242 * @return a {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} or null 243 * @throws RiceIllegalArgumentException if the principalId is blank 244 */ 245 @WebMethod(operationName = "getEntityDefaultByPrincipalId") 246 @WebResult(name = "entityDefault") 247 @Cacheable(value= EntityDefault.Cache.NAME, key="'principalId=' + #p0") 248 EntityDefault getEntityDefaultByPrincipalId(@WebParam(name = "principalId") String principalId) throws RiceIllegalArgumentException; 249 250 /** 251 * Gets a {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} from an principalName. 252 * {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} is a condensed version of {@link org.kuali.rice.kim.api.identity.entity.Entity} that contains 253 * default values of its subclasses 254 * 255 * <p> 256 * This method will return null if the Entity does not exist. 257 * </p> 258 * 259 * @param principalName the unique id to retrieve the entity by. cannot be null. 260 * @return a {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} or null 261 * @throws RiceIllegalArgumentException if the principalId is blank 262 */ 263 @WebMethod(operationName = "getEntityDefaultByPrincipalName") 264 @WebResult(name = "entityDefault") 265 @Cacheable(value= EntityDefault.Cache.NAME, key="'principalName=' + #p0") 266 EntityDefault getEntityDefaultByPrincipalName(@WebParam(name = "principalName") String principalName) throws RiceIllegalArgumentException; 267 268 /** 269 * Gets a {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} from an employeeId. 270 * {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} is a condensed version of {@link org.kuali.rice.kim.api.identity.entity.Entity} that contains 271 * default values of its subclasses 272 * 273 * <p> 274 * This method will return null if the Entity does not exist. 275 * </p> 276 * 277 * @param employeeId the unique id to retrieve the entity by. cannot be null. 278 * @return a {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} or null 279 * @throws RiceIllegalArgumentException if the employeeId is blank 280 */ 281 @WebMethod(operationName = "getEntityDefaultByEmployeeId") 282 @WebResult(name = "entityDefault") 283 @Cacheable(value= EntityDefault.Cache.NAME, key="'employeeId=' + #p0") 284 EntityDefault getEntityDefaultByEmployeeId(@WebParam(name = "employeeId") String employeeId) throws RiceIllegalArgumentException; 285 286 287 /** 288 * Gets a {@link org.kuali.rice.kim.api.identity.principal.Principal} from an principalId. 289 * 290 * <p> 291 * This method will return null if the Principal does not exist. 292 * </p> 293 * 294 * @param principalId the unique id to retrieve the principal by. cannot be null. 295 * @return a {@link org.kuali.rice.kim.api.identity.principal.Principal} or null 296 * @throws RiceIllegalArgumentException if the principalId is blank 297 */ 298 @WebMethod(operationName = "getPrincipal") 299 @WebResult(name = "principal") 300 @Cacheable(value= Principal.Cache.NAME, key="'principalId=' + #p0") 301 Principal getPrincipal( @WebParam(name="principalId") String principalId ) throws RiceIllegalArgumentException; 302 303 304 /** 305 * Gets a list of {@link org.kuali.rice.kim.api.identity.principal.Principal} from a string list of principalId. 306 * 307 * <p> 308 * This method will only return principals that exist. 309 * </p> 310 * 311 * @param principalIds the unique id to retrieve the principal by. cannot be null. 312 * @return a list of {@link org.kuali.rice.kim.api.identity.principal.Principal} 313 * @throws RiceIllegalArgumentException if the principalId is blank 314 */ 315 @WebMethod(operationName = "getPrincipals") 316 @WebResult(name = "ret") 317 List<Principal> getPrincipals( @WebParam(name="principalIds") List<String> principalIds) ; 318 319 /** 320 * Gets a list of {@link org.kuali.rice.kim.api.identity.principal.Principal} from an entityId. 321 * 322 * <p> 323 * This method will only return principals that exist. 324 * </p> 325 * 326 * @param entityId the unique id to retrieve the principals by. cannot be null. 327 * @return a list of {@link org.kuali.rice.kim.api.identity.principal.Principal} 328 * @throws RiceIllegalArgumentException if the entityId is blank 329 */ 330 @WebMethod(operationName = "getPrincipalsByEntityId") 331 @WebResult(name = "principals") 332 List<Principal> getPrincipalsByEntityId( @WebParam(name="entityId") String entityId) ; 333 334 /** 335 * Gets a list of {@link org.kuali.rice.kim.api.identity.principal.Principal} from an employeeId 336 * 337 * <p> 338 * This method will only return principals that exist. 339 * </p> 340 * 341 * @param employeeId the employee id to retrieve the principals by. cannot be null. 342 * @return a list of {@link org.kuali.rice.kim.api.identity.principal.Principal} 343 * @throws RiceIllegalArgumentException if the employeeId is blank 344 */ 345 @WebMethod(operationName = "getPrincipalsByEmployeeId") 346 @WebResult(name = "principals") 347 List<Principal> getPrincipalsByEmployeeId( @WebParam(name="employeeId") String employeeId) ; 348 349 /** 350 * Gets a {@link org.kuali.rice.kim.api.identity.principal.Principal} from an principalName. 351 * 352 * <p> 353 * This method will return null if the Principal does not exist. 354 * </p> 355 * 356 * @param principalName the unique id to retrieve the principal by. cannot be null. 357 * @return a {@link org.kuali.rice.kim.api.identity.principal.Principal} or null 358 */ 359 @WebMethod(operationName = "getPrincipalByPrincipalName") 360 @WebResult(name = "principal") 361 @Cacheable(value= Principal.Cache.NAME, key="'principalName=' + #p0") 362 Principal getPrincipalByPrincipalName( @WebParam(name="principalName") String principalName ) throws RiceIllegalArgumentException; 363 364 /** 365 * Gets a {@link org.kuali.rice.kim.api.identity.principal.Principal} from an principalName and password. 366 * 367 * <p> 368 * This method will return null if the Principal does not exist or the password is incorrect. 369 * </p> 370 * 371 * @param principalName the unique id to retrieve the principal by. cannot be null. 372 * @param password the password for the principal 373 * @return a {@link org.kuali.rice.kim.api.identity.principal.Principal} or null 374 * @throws RiceIllegalArgumentException if the principalName is blank 375 */ 376 @WebMethod(operationName = "getPrincipalByPrincipalNameAndPassword") 377 @WebResult(name = "principal") 378 @Cacheable(value= Principal.Cache.NAME, key="'principalName=' + #p0 + '|' + 'password=' + #p1") 379 Principal getPrincipalByPrincipalNameAndPassword( @WebParam(name="principalName") String principalName, @WebParam(name="password") String password ) throws RiceIllegalArgumentException; 380 381 /** 382 * This will create a {@link org.kuali.rice.kim.api.identity.principal.Principal} exactly like the principal passed in. 383 * 384 * The principal object passed in must be populated with an entityId and a principalName 385 * 386 * @param principal the principal to create 387 * @return the newly created Principal object. 388 * @throws RiceIllegalArgumentException if the principal is null 389 * @throws RiceIllegalStateException if the principal already exists in the system or the principal object is not populated with entityId and principalName 390 */ 391 @WebMethod(operationName="addPrincipalToEntity") 392 @WebResult(name = "principal") 393 @CacheEvict(value = {Principal.Cache.NAME, Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 394 Principal addPrincipalToEntity(@WebParam(name = "principal") Principal principal) 395 throws RiceIllegalArgumentException, RiceIllegalStateException; 396 397 /** 398 * This will update a {@link org.kuali.rice.kim.api.identity.principal.Principal} exactly like the principal passed in. 399 * 400 * 401 * @param principal the principal to update 402 * @return the updated Principal object. 403 * @throws RiceIllegalArgumentException if the principal is null 404 * @throws RiceIllegalStateException if the principal does not exist in the system. 405 */ 406 @WebMethod(operationName="updatePrincipal") 407 @WebResult(name = "principal") 408 @CacheEvict(value = {Principal.Cache.NAME, Entity.Cache.NAME, EntityDefault.Cache.NAME, EntityNamePrincipalName.Cache.NAME}, allEntries = true) 409 Principal updatePrincipal(@WebParam(name = "principal") Principal principal) 410 throws RiceIllegalArgumentException, RiceIllegalStateException; 411 412 /** 413 * This will inactivate a {@link org.kuali.rice.kim.api.identity.principal.Principal}. 414 * 415 * 416 * @param principalId the unique id of the principal to inactivate 417 * @return the inactivated Principal object. 418 * @throws RiceIllegalArgumentException if the principal is null 419 * @throws RiceIllegalStateException if the principal does not exist in the system. 420 */ 421 @WebMethod(operationName="inactivatePrincipal") 422 @WebResult(name = "principal") 423 @CacheEvict(value = {Principal.Cache.NAME, Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 424 Principal inactivatePrincipal(@WebParam(name = "principalId") String principalId) 425 throws RiceIllegalArgumentException, RiceIllegalStateException; 426 427 /** 428 * This will inactivate a {@link org.kuali.rice.kim.api.identity.principal.Principal}. 429 * 430 * 431 * @param principalName the unique principalName of the principal to inactivate 432 * @return the inactivated Principal object. 433 * @throws RiceIllegalArgumentException if the principal is null 434 * @throws RiceIllegalStateException if the principal does not exist in the system. 435 */ 436 @WebMethod(operationName="inactivatePrincipalByName") 437 @WebResult(name = "principal") 438 @CacheEvict(value = {Principal.Cache.NAME, Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 439 Principal inactivatePrincipalByName(@WebParam(name = "principalName") String principalName) 440 throws RiceIllegalArgumentException, RiceIllegalStateException; 441 442 443 /** 444 * This will create a {@link org.kuali.rice.kim.api.identity.type.EntityTypeContactInfo} exactly like the entityTypeContactInfo passed in. 445 * 446 * The EntityTypeContactInfo object passed in must be populated with an entityId and a entityTypeCode 447 * 448 * @param entityTypeContactInfo the EntityTypeContactInfo to create 449 * @return the newly created EntityTypeContactInfo object. 450 * @throws RiceIllegalArgumentException if the entityTypeContactInfo is null 451 * @throws RiceIllegalStateException if the entityTypeContactInfo already exists in the system or the EntityTypeContactInfo object is not populated with entityId and entityTypeCode 452 */ 453 @WebMethod(operationName="addEntityTypeContactInfoToEntity") 454 @WebResult(name = "entityTypeContactInfo") 455 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 456 EntityTypeContactInfo addEntityTypeContactInfoToEntity( 457 @WebParam(name = "entityTypeContactInfo") EntityTypeContactInfo entityTypeContactInfo) 458 throws RiceIllegalArgumentException, RiceIllegalStateException; 459 460 /** 461 * This will update a {@link org.kuali.rice.kim.api.identity.type.EntityTypeContactInfo} exactly like the entityTypeContactInfo passed in. 462 * 463 * 464 * @param entityTypeContactInfo the EntityTypeContactInfo to update 465 * @return the updated EntityTypeContactInfo object. 466 * @throws RiceIllegalArgumentException if the entityTypeContactInfo is null 467 * @throws RiceIllegalStateException if the entityTypeContactInfo does not exist in the system. 468 */ 469 @WebMethod(operationName="updateEntityTypeContactInfo") 470 @WebResult(name = "entityTypeContactInfo") 471 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 472 EntityTypeContactInfo updateEntityTypeContactInfo(@WebParam(name = "entityTypeContactInfo") EntityTypeContactInfo entityTypeContactInfo) 473 throws RiceIllegalArgumentException, RiceIllegalStateException; 474 475 /** 476 * This will inactivate a {@link org.kuali.rice.kim.api.identity.type.EntityTypeContactInfo} with the passed in parameters. 477 * 478 * 479 * @param entityId the entityId of the EntityTypeContactInfo to inactivate 480 * @param entityTypeCode the entityTypeCode of the EntityTypeContactInfo to inactivate 481 * @return the inactivated EntityTypeContactInfo object. 482 * @throws RiceIllegalArgumentException if the entityId or entityTypeCode passed in is null 483 * @throws RiceIllegalStateException if the EntityTypeContactInfo does not exist in the system. 484 */ 485 @WebMethod(operationName="inactivateEntityTypeContactInfo") 486 @WebResult(name = "entityTypeContactInfo") 487 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 488 EntityTypeContactInfo inactivateEntityTypeContactInfo(@WebParam(name = "entityId") String entityId, 489 @WebParam(name = "entityTypeCode") String entityTypeCode) 490 throws RiceIllegalArgumentException, RiceIllegalStateException; 491 492 /** 493 * This will create a {@link org.kuali.rice.kim.api.identity.address.EntityAddress} exactly like the address passed in. 494 * 495 * The EntityAddress object passed in must be populated with an entityId and a entityTypeCode 496 * 497 * @param address the EntityAddress to create 498 * @return the newly created EntityAddress object. 499 * @throws RiceIllegalArgumentException if the address is null 500 * @throws RiceIllegalStateException if the address already exists in the system or address is not populated with entityId and entityTypeCode 501 */ 502 @WebMethod(operationName="addAddressToEntity") 503 @WebResult(name = "address") 504 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 505 EntityAddress addAddressToEntity(@WebParam(name = "address") EntityAddress address) 506 throws RiceIllegalArgumentException, RiceIllegalStateException; 507 508 /** 509 * This will update a {@link org.kuali.rice.kim.api.identity.address.EntityAddress} exactly like the address passed in. 510 * 511 * 512 * @param address the EntityAddress to update 513 * @return the updated EntityAddress object. 514 * @throws IllegalArgumentException if the address is null 515 * @throws RiceIllegalArgumentException if the address does not exist in the system. 516 */ 517 @WebMethod(operationName="updateAddress") 518 @WebResult(name = "address") 519 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 520 EntityAddress updateAddress(@WebParam(name = "address")EntityAddress address) 521 throws RiceIllegalArgumentException, RiceIllegalStateException; 522 523 /** 524 * This will inactivate a {@link org.kuali.rice.kim.api.identity.address.EntityAddress} with the id passed in. 525 * 526 * 527 * @param id the unique id of the EntityAddress to inactivate 528 * @return the updated EntityAddress object. 529 * @throws RiceIllegalArgumentException if the id is null 530 * @throws RiceIllegalStateException if the address does not exist in the system. 531 */ 532 @WebMethod(operationName="inactivateAddress") 533 @WebResult(name = "address") 534 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 535 EntityAddress inactivateAddress(@WebParam(name = "id") String id) 536 throws RiceIllegalArgumentException, RiceIllegalStateException; 537 538 /** 539 * This will create a {@link org.kuali.rice.kim.api.identity.email.EntityEmail} exactly like the email passed in. 540 * 541 * The EntityEmail object passed in must be populated with an entityId and a entityTypeCode 542 * 543 * @param email the EntityEmail to create 544 * @return the newly created EntityEmail object. 545 * @throws RiceIllegalArgumentException if the email is null 546 * @throws RiceIllegalStateException if the email already exists in the system or email is not populated with entityId and entityTypeCode 547 */ 548 @WebMethod(operationName="addEmailToEntity") 549 @WebResult(name = "email") 550 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 551 EntityEmail addEmailToEntity(@WebParam(name = "email") EntityEmail email) 552 throws RiceIllegalArgumentException, RiceIllegalStateException; 553 554 /** 555 * This will update a {@link org.kuali.rice.kim.api.identity.email.EntityEmail} exactly like the email passed in. 556 * 557 * 558 * @param email the EntityEmail to update 559 * @return the updated EntityEmail object. 560 * @throws RiceIllegalArgumentException if the email is null 561 * @throws RiceIllegalStateException if the email does not exist in the system. 562 */ 563 @WebMethod(operationName="updateEmail") 564 @WebResult(name = "email") 565 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 566 EntityEmail updateEmail(@WebParam(name = "email") EntityEmail email) 567 throws RiceIllegalArgumentException, RiceIllegalStateException; 568 569 /** 570 * This will inactivate the {@link org.kuali.rice.kim.api.identity.email.EntityEmail} with the passed in id. 571 * 572 * 573 * @param id the unique id of the EntityEmail to inactivate 574 * @return the inactivated EntityEmail object. 575 * @throws RiceIllegalArgumentException if the id is null 576 * @throws RiceIllegalStateException if the email does not exist in the system. 577 */ 578 @WebMethod(operationName="inactivateEmail") 579 @WebResult(name = "email") 580 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 581 EntityEmail inactivateEmail(@WebParam(name = "id") String id) 582 throws RiceIllegalArgumentException, RiceIllegalStateException; 583 584 /** 585 * This will create a {@link org.kuali.rice.kim.api.identity.phone.EntityPhone} exactly like the phone passed in. 586 * 587 * The EntityPhone object passed in must be populated with an entityId and a entityTypeCode 588 * 589 * @param phone the EntityPhone to create 590 * @return the newly created EntityPhone object. 591 * @throws RiceIllegalArgumentException if the phone is null 592 * @throws RiceIllegalStateException if the phone already exists in the system or phone is not populated with entityId and entityTypeCode 593 */ 594 @WebMethod(operationName="addPhoneToEntity") 595 @WebResult(name = "phone") 596 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 597 EntityPhone addPhoneToEntity(@WebParam(name = "phone") EntityPhone phone) 598 throws RiceIllegalArgumentException, RiceIllegalStateException; 599 600 /** 601 * This will update a {@link org.kuali.rice.kim.api.identity.phone.EntityPhone} exactly like the phone passed in. 602 * 603 * 604 * @param phone the EntityPhone to update 605 * @return the updated EntityPhone object. 606 * @throws RiceIllegalArgumentException if the phone is null 607 * @throws RiceIllegalStateException if the phone does not exist in the system. 608 */ 609 @WebMethod(operationName="updatePhone") 610 @WebResult(name = "phone") 611 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 612 EntityPhone updatePhone(@WebParam(name = "phone") EntityPhone phone) 613 throws RiceIllegalArgumentException, RiceIllegalStateException; 614 615 /** 616 * This will inactivate the {@link org.kuali.rice.kim.api.identity.phone.EntityPhone} with the passed in id. 617 * 618 * 619 * @param id the unique id of the EntityPhone to inactivate 620 * @return the inactivated EntityPhone object. 621 * @throws RiceIllegalArgumentException if the id is null 622 * @throws RiceIllegalStateException if the phone does not exist in the system. 623 */ 624 @WebMethod(operationName="inactivatePhone") 625 @WebResult(name = "phone") 626 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 627 EntityPhone inactivatePhone(@WebParam(name = "id") String id) 628 throws RiceIllegalArgumentException, RiceIllegalStateException; 629 630 631 /** 632 * This will create a {@link org.kuali.rice.kim.api.identity.external.EntityExternalIdentifier} exactly like the externalId passed in. 633 * 634 * The EntityExternalIdentifier object passed in must be populated with an entityId and a externalIdentifierTypeCode 635 * 636 * @param externalId the EntityExternalIdentifier to create 637 * @return the newly created EntityExternalIdentifier object. 638 * @throws RiceIllegalArgumentException if the externalId is null 639 * @throws RiceIllegalStateException if the externalId already exists in the system or externalId is not populated with entityId and externalIdentifierTypeCode 640 */ 641 @WebMethod(operationName="addExternalIdentifierToEntity") 642 @WebResult(name = "externalId") 643 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 644 EntityExternalIdentifier addExternalIdentifierToEntity(@WebParam(name = "externalId") EntityExternalIdentifier externalId) 645 throws RiceIllegalArgumentException, RiceIllegalStateException; 646 647 /** 648 * This will update a {@link org.kuali.rice.kim.api.identity.external.EntityExternalIdentifier} exactly like the externalId passed in. 649 * 650 * 651 * @param externalId the EntityExternalIdentifier to update 652 * @return the updated EntityExternalIdentifier object. 653 * @throws RiceIllegalArgumentException if the externalId is null 654 * @throws RiceIllegalStateException if the externalId does not exist in the system. 655 */ 656 @WebMethod(operationName="updateExternalIdentifier") 657 @WebResult(name = "externalId") 658 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 659 EntityExternalIdentifier updateExternalIdentifier(@WebParam(name = "externalId") EntityExternalIdentifier externalId) 660 throws RiceIllegalArgumentException, RiceIllegalStateException; 661 662 /** 663 * This will create a {@link org.kuali.rice.kim.api.identity.affiliation.EntityAffiliation} exactly like the affiliation passed in. 664 * 665 * The EntityAffiliation object passed in must be populated with an entityId and a affiliationType 666 * 667 * @param affiliation the EntityAffiliation to create 668 * @return the newly created EntityAffiliation object. 669 * @throws RiceIllegalArgumentException if the affiliation is null 670 * @throws RiceIllegalStateException if the affiliation already exists in the system or affiliation is not populated with entityId and affiliationType 671 */ 672 @WebMethod(operationName="addAffiliationToEntity") 673 @WebResult(name = "affiliation") 674 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 675 EntityAffiliation addAffiliationToEntity(@WebParam(name = "affiliation") EntityAffiliation affiliation) 676 throws RiceIllegalArgumentException, RiceIllegalStateException; 677 678 /** 679 * This will update a {@link org.kuali.rice.kim.api.identity.affiliation.EntityAffiliation} exactly like the affiliation passed in. 680 * 681 * 682 * @param affiliation the EntityAffiliation to update 683 * @return the updated EntityAffiliation object. 684 * @throws RiceIllegalArgumentException if the affiliation is null 685 * @throws RiceIllegalStateException if the affiliation does not exist in the system. 686 */ 687 @WebMethod(operationName="updateAffiliation") 688 @WebResult(name = "affiliation") 689 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 690 EntityAffiliation updateAffiliation(@WebParam(name = "affiliation") EntityAffiliation affiliation) 691 throws RiceIllegalArgumentException, RiceIllegalStateException; 692 693 /** 694 * This will inactivate a {@link org.kuali.rice.kim.api.identity.affiliation.EntityAffiliation} with the id passed in. 695 * 696 * 697 * @param id the unique id of the EntityAffiliation to inactivate 698 * @return the updated EntityAffiliation object. 699 * @throws RiceIllegalArgumentException if the affiliation is null 700 * @throws RiceIllegalStateException if the affiliation does not exist in the system. 701 */ 702 @WebMethod(operationName="inactivateAffiliation") 703 @WebResult(name = "affiliation") 704 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 705 EntityAffiliation inactivateAffiliation(@WebParam(name = "id") String id) 706 throws RiceIllegalArgumentException, RiceIllegalStateException; 707 708 /** 709 * This returns the display name information for the given principal 710 * without loading the full person object. 711 * 712 * @param principalId The principal ID to find the name information for 713 * @return The default name information for the principal 714 */ 715 @WebMethod(operationName="getDefaultNamesForPrincipalId") 716 @WebResult(name="entityNamePrincipalName") 717 @Cacheable(value = EntityNamePrincipalName.Cache.NAME, key = "'principalId=' + #p0") 718 public EntityNamePrincipalName getDefaultNamesForPrincipalId(@WebParam(name = "principalId") String principalId); 719 720 /** 721 * This will create a {@link org.kuali.rice.kim.api.identity.name.EntityName} exactly like the name passed in. 722 * 723 * The EntityName object passed in must be populated with an entityId and a nameType 724 * 725 * @param name the EntityName to create 726 * @return the newly created EntityName object. 727 * @throws RiceIllegalArgumentException if the name is null 728 * @throws RiceIllegalStateException if the name already exists in the system or name is not populated with entityId and nameType 729 */ 730 @WebMethod(operationName="addNameToEntity") 731 @WebResult(name = "name") 732 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME, EntityNamePrincipalName.Cache.NAME}, allEntries = true) 733 EntityName addNameToEntity(@WebParam(name = "name") EntityName name) 734 throws RiceIllegalArgumentException, RiceIllegalStateException; 735 736 /** 737 * This will update a {@link org.kuali.rice.kim.api.identity.name.EntityName} exactly like the name passed in. 738 * 739 * 740 * @param name the EntityName to update 741 * @return the updated EntityName object. 742 * @throws RiceIllegalArgumentException if the name is null 743 * @throws RiceIllegalStateException if the name does not exist in the system. 744 */ 745 @WebMethod(operationName="updateName") 746 @WebResult(name = "name") 747 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME, EntityNamePrincipalName.Cache.NAME}, allEntries = true) 748 EntityName updateName(@WebParam(name = "name") EntityName name) 749 throws RiceIllegalArgumentException, RiceIllegalStateException; 750 751 /** 752 * This will inactivate a {@link org.kuali.rice.kim.api.identity.name.EntityName} with the passed in id. 753 * 754 * 755 * @param id the unique id of the EntityName to inactivate 756 * @return the inactivated EntityName object. 757 * @throws RiceIllegalArgumentException if the id is null 758 * @throws RiceIllegalStateException if the name with the id does not exist in the system. 759 */ 760 @WebMethod(operationName="inactivateName") 761 @WebResult(name = "name") 762 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 763 EntityName inactivateName(@WebParam(name = "id") String id) 764 throws RiceIllegalArgumentException, RiceIllegalStateException; 765 766 /** 767 * This will create a {@link org.kuali.rice.kim.api.identity.employment.EntityEmployment} exactly like the employment passed in. 768 * 769 * The EntityEmployment object passed in must be populated with an entityId and a employmentType 770 * 771 * @param employment the EntityEmployment to create 772 * @return the newly created EntityName object. 773 * @throws RiceIllegalArgumentException if the employment is null 774 * @throws RiceIllegalStateException if the employment already exists in the system or employment is not populated with entityId and employmentType 775 */ 776 @WebMethod(operationName="addEmploymentToEntity") 777 @WebResult(name = "employment") 778 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 779 EntityEmployment addEmploymentToEntity(@WebParam(name = "employment") EntityEmployment employment) 780 throws RiceIllegalArgumentException, RiceIllegalStateException; 781 782 /** 783 * This will update a {@link org.kuali.rice.kim.api.identity.employment.EntityEmployment} exactly like the employment passed in. 784 * 785 * 786 * @param employment the EntityEmployment to update 787 * @return the updated EntityEmployment object. 788 * @throws RiceIllegalArgumentException if the employment is null 789 * @throws RiceIllegalStateException if the employment does not exist in the system. 790 */ 791 @WebMethod(operationName="updateEmployment") 792 @WebResult(name = "employment") 793 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 794 EntityEmployment updateEmployment(@WebParam(name = "employment") EntityEmployment employment) 795 throws RiceIllegalArgumentException, RiceIllegalStateException; 796 797 /** 798 * This will inactivate a {@link org.kuali.rice.kim.api.identity.employment.EntityEmployment} with the passed in id. 799 * 800 * 801 * @param id the unique id of the EntityEmployment to inactivate 802 * @return the inactivated EntityEmployment object. 803 * @throws RiceIllegalArgumentException if the id is null 804 * @throws RiceIllegalStateException if the employment with the id does not exist in the system. 805 */ 806 @WebMethod(operationName="inactivateEmployment") 807 @WebResult(name = "employment") 808 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 809 EntityEmployment inactivateEmployment(@WebParam(name = "id") String id) 810 throws RiceIllegalArgumentException, RiceIllegalStateException; 811 812 /** 813 * This will create a {@link org.kuali.rice.kim.api.identity.personal.EntityBioDemographics} exactly like the bioDemographics passed in. 814 * 815 * The EntityBioDemographics object passed in must be populated with an entityId 816 * 817 * @param bioDemographics the EntityBioDemographics to create 818 * @return the newly created EntityBioDemographics object. 819 * @throws RiceIllegalArgumentException if the bioDemographics is null 820 * @throws RiceIllegalStateException if the bioDemographics already exists in the system or bioDemographics is not populated with entityId 821 */ 822 @WebMethod(operationName="addBioDemographicsToEntity") 823 @WebResult(name = "bioDemographics") 824 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 825 EntityBioDemographics addBioDemographicsToEntity(@WebParam(name = "bioDemographics") EntityBioDemographics bioDemographics) 826 throws RiceIllegalArgumentException, RiceIllegalStateException; 827 828 /** 829 * This will update a {@link org.kuali.rice.kim.api.identity.personal.EntityBioDemographics} exactly like the bioDemographics passed in. 830 * 831 * 832 * @param bioDemographics the EntityBioDemographics to update 833 * @return the updated EntityBioDemographics object. 834 * @throws RiceIllegalArgumentException if the bioDemographics is null 835 * @throws RiceIllegalStateException if the bioDemographics does not exist in the system. 836 */ 837 @WebMethod(operationName="updateBioDemographics") 838 @WebResult(name = "bioDemographics") 839 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 840 EntityBioDemographics updateBioDemographics(@WebParam(name = "bioDemographics") EntityBioDemographics bioDemographics) 841 throws RiceIllegalArgumentException, RiceIllegalStateException; 842 843 /** 844 * Gets a {@link org.kuali.rice.kim.api.identity.privacy.EntityPrivacyPreferences} for a given id. 845 * 846 * <p> 847 * This method will return null if the EntityPrivacyPreferences does not exist. 848 * </p> 849 * 850 * @param id the unique id to retrieve the EntityPrivacyPreferences by. Cannot be null. 851 * @return a {@link org.kuali.rice.kim.api.identity.privacy.EntityPrivacyPreferences} or null 852 * @throws RiceIllegalArgumentException if the entityId is blank 853 */ 854 @WebMethod(operationName = "getEntityPrivacyPreferences") 855 @WebResult(name = "privacyPreferences") 856 @Cacheable(value= EntityPrivacyPreferences.Cache.NAME, key="'id=' + #p0") 857 EntityPrivacyPreferences getEntityPrivacyPreferences( @WebParam(name="id") String id ) throws RiceIllegalArgumentException; 858 859 /** 860 * This will create a {@link org.kuali.rice.kim.api.identity.privacy.EntityPrivacyPreferences} exactly like the privacyPreferences passed in. 861 * 862 * The EntityPrivacyPreferences object passed in must be populated with an entityId 863 * 864 * @param privacyPreferences the EntityPrivacyPreferences to create 865 * @return the newly created EntityPrivacyPreferences object. 866 * @throws RiceIllegalArgumentException if the privacyPreferences is null 867 * @throws RiceIllegalStateException if the privacyPreferences already exists in the system or privacyPreferences is not populated with entityId 868 */ 869 @WebMethod(operationName="addPrivacyPreferencesToEntity") 870 @WebResult(name = "privacyPreferences") 871 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME, EntityPrivacyPreferences.Cache.NAME}, allEntries = true) 872 EntityPrivacyPreferences addPrivacyPreferencesToEntity(@WebParam(name = "privacyPreferences") EntityPrivacyPreferences privacyPreferences) 873 throws RiceIllegalArgumentException, RiceIllegalStateException; 874 875 /** 876 * This will update a {@link org.kuali.rice.kim.api.identity.privacy.EntityPrivacyPreferences} exactly like the privacyPreferences passed in. 877 * 878 * 879 * @param privacyPreferences the EntityPrivacyPreferences to update 880 * @return the updated EntityPrivacyPreferences object. 881 * @throws RiceIllegalArgumentException if the privacyPreferences is null 882 * @throws RiceIllegalStateException if the privacyPreferences does not exist in the system. 883 */ 884 @WebMethod(operationName="updatePrivacyPreferences") 885 @WebResult(name = "privacyPreferences") 886 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME, EntityPrivacyPreferences.Cache.NAME}, allEntries = true) 887 EntityPrivacyPreferences updatePrivacyPreferences(@WebParam(name = "privacyPreferences") EntityPrivacyPreferences privacyPreferences) 888 throws RiceIllegalArgumentException, RiceIllegalStateException; 889 890 891 /** 892 * This will create a {@link org.kuali.rice.kim.api.identity.citizenship.EntityCitizenship} exactly like the citizenship passed in. 893 * 894 * The EntityCitizenship object passed in must be populated with an entityId and a status 895 * 896 * @param citizenship the EntityCitizenship to create 897 * @return the newly created EntityCitizenship object. 898 * @throws RiceIllegalArgumentException if the citizenship is null 899 * @throws RiceIllegalStateException if the citizenship already exists in the system or citizenship is not populated with entityId and status 900 */ 901 @WebMethod(operationName="addCitizenshipToEntity") 902 @WebResult(name = "citizenship") 903 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 904 EntityCitizenship addCitizenshipToEntity(@WebParam(name = "citizenship") EntityCitizenship citizenship) 905 throws RiceIllegalArgumentException, RiceIllegalStateException; 906 907 /** 908 * This will update a {@link org.kuali.rice.kim.api.identity.citizenship.EntityCitizenship} exactly like the citizenship passed in. 909 * 910 * 911 * @param citizenship the EntityCitizenship to update 912 * @return the updated EntityCitizenship object. 913 * @throws RiceIllegalArgumentException if the citizenship is null 914 * @throws RiceIllegalStateException if the citizenship does not exist in the system. 915 */ 916 @WebMethod(operationName="updateCitizenship") 917 @WebResult(name = "citizenship") 918 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 919 EntityCitizenship updateCitizenship(@WebParam(name = "citizenship") EntityCitizenship citizenship) 920 throws RiceIllegalArgumentException, RiceIllegalStateException; 921 922 /** 923 * This will inactivate a {@link org.kuali.rice.kim.api.identity.citizenship.EntityCitizenship} with the unique id passed in. 924 * 925 * 926 * @param id the id of the EntityCitizenship to inactivate 927 * @return the inactivated EntityCitizenship object. 928 * @throws RiceIllegalArgumentException if the citizenship is null 929 * @throws RiceIllegalStateException if the citizenship does not exist in the system. 930 */ 931 @WebMethod(operationName="inactivateCitizenship") 932 @WebResult(name = "citizenship") 933 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 934 EntityCitizenship inactivateCitizenship(@WebParam(name = "id") String id) 935 throws RiceIllegalArgumentException, RiceIllegalStateException; 936 937 /** 938 * This will create a {@link EntityEthnicity} exactly like the ethnicity passed in. 939 * 940 * The EntityEthnicity object passed in must be populated with an entityId and a ethnicity code 941 * 942 * @param ethnicity the EntityEthnicity to create 943 * @return the newly created EntityEthnicity object. 944 * @throws RiceIllegalArgumentException if the ethnicity is null 945 * @throws RiceIllegalStateException if the ethnicity already exists in the system or ethnicity is not populated with entityId and ethnicity code 946 */ 947 @WebMethod(operationName="addEthnicityToEntity") 948 @WebResult(name = "ethnicity") 949 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 950 EntityEthnicity addEthnicityToEntity(@WebParam(name = "ethnicity") EntityEthnicity ethnicity) 951 throws RiceIllegalArgumentException, RiceIllegalStateException; 952 953 /** 954 * This will update a {@link EntityEthnicity} exactly like the ethnicity passed in. 955 * 956 * 957 * @param ethnicity the EntityEthnicity to update 958 * @return the updated EntityEthnicity object. 959 * @throws RiceIllegalArgumentException if the ethnicity is null 960 * @throws RiceIllegalStateException if the ethnicity does not exist in the system. 961 */ 962 @WebMethod(operationName="updateEthnicity") 963 @WebResult(name = "ethnicity") 964 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 965 EntityEthnicity updateEthnicity(@WebParam(name = "ethnicity") EntityEthnicity ethnicity) 966 throws RiceIllegalArgumentException, RiceIllegalStateException; 967 968 /** 969 * This will create a {@link org.kuali.rice.kim.api.identity.residency.EntityResidency} exactly like the residency passed in. 970 * 971 * The EntityResidency object passed in must be populated with an entityId 972 * 973 * @param residency the EntityResidency to create 974 * @return the newly created EntityResidency object. 975 * @throws RiceIllegalArgumentException if the residency is null 976 * @throws RiceIllegalStateException if the residency already exists in the system or residency is not populated with entityId 977 */ 978 @WebMethod(operationName="addResidencyToEntity") 979 @WebResult(name = "residency") 980 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 981 EntityResidency addResidencyToEntity(@WebParam(name = "residency") EntityResidency residency) 982 throws RiceIllegalArgumentException, RiceIllegalStateException; 983 984 /** 985 * This will update a {@link org.kuali.rice.kim.api.identity.residency.EntityResidency} exactly like the residency passed in. 986 * 987 * 988 * @param residency the EntityResidency to update 989 * @return the updated EntityResidency object. 990 * @throws RiceIllegalArgumentException if the residency is null 991 * @throws RiceIllegalStateException if the residency does not exist in the system. 992 */ 993 @WebMethod(operationName="updateResidency") 994 @WebResult(name = "residency") 995 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 996 EntityResidency updateResidency(@WebParam(name = "residency") EntityResidency residency) 997 throws RiceIllegalArgumentException, RiceIllegalStateException; 998 999 1000 /** 1001 * This will create a {@link org.kuali.rice.kim.api.identity.visa.EntityVisa} exactly like the visa passed in. 1002 * 1003 * The EntityVisa object passed in must be populated with an entityId and a visaTypeKey 1004 * 1005 * @param visa the EntityVisa to create 1006 * @return the newly created EntityVisa object. 1007 * @throws RiceIllegalArgumentException if the visa is null 1008 * @throws RiceIllegalStateException if the visa already exists in the system or visa is not populated with entityId and a visaTypeKey 1009 */ 1010 @WebMethod(operationName="addVisaToEntity") 1011 @WebResult(name = "visa") 1012 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 1013 EntityVisa addVisaToEntity(@WebParam(name = "visa") EntityVisa visa) 1014 throws RiceIllegalArgumentException, RiceIllegalStateException; 1015 1016 /** 1017 * This will update a {@link org.kuali.rice.kim.api.identity.visa.EntityVisa} exactly like the visa passed in. 1018 * 1019 * 1020 * @param visa the EntityVisa to update 1021 * @return the updated EntityVisa object. 1022 * @throws RiceIllegalArgumentException if the visa is null 1023 * @throws RiceIllegalStateException if the visa does not exist in the system. 1024 */ 1025 @WebMethod(operationName="updateVisa") 1026 @WebResult(name = "visa") 1027 @CacheEvict(value={Entity.Cache.NAME, EntityDefault.Cache.NAME}, allEntries = true) 1028 EntityVisa updateVisa(@WebParam(name = "visa") EntityVisa visa) 1029 throws RiceIllegalArgumentException, RiceIllegalStateException; 1030 1031 /** 1032 * Gets the {@link org.kuali.rice.kim.api.identity.CodedAttribute} for a given EntityType code. 1033 * 1034 * <p> 1035 * This method will return null if the code does not exist. 1036 * </p> 1037 * 1038 * @param code the unique id to retrieve the Type by. Cannot be null. 1039 * @return a {@link org.kuali.rice.kim.api.identity.CodedAttribute} or null 1040 * @throws RiceIllegalArgumentException if the code is blank 1041 */ 1042 @WebMethod(operationName = "getEntityType") 1043 @WebResult(name = "type") 1044 @Cacheable(value= CodedAttribute.Cache.NAME + "{EntityType}", key="'code=' + #p0") 1045 CodedAttribute getEntityType( @WebParam(name="code") String code ) throws RiceIllegalArgumentException; 1046 1047 /** 1048 * Finds all EntityTypes 1049 * 1050 * @since 2.0.1 1051 * @return a list of {@link org.kuali.rice.kim.api.identity.CodedAttribute} 1052 */ 1053 @WebMethod(operationName = "findAllEntityTypes") 1054 @WebResult(name = "types") 1055 @Cacheable(value= CodedAttribute.Cache.NAME + "{EntityType}", key="'all'") 1056 List<CodedAttribute> findAllEntityTypes(); 1057 1058 /** 1059 * Gets the {@link org.kuali.rice.kim.api.identity.CodedAttribute} for a given EntityAddressType code. 1060 * 1061 * <p> 1062 * This method will return null if the code does not exist. 1063 * </p> 1064 * 1065 * @param code the unique id to retrieve the Type by. Cannot be null. 1066 * @return a {@link org.kuali.rice.kim.api.identity.CodedAttribute} or null 1067 * @throws RiceIllegalArgumentException if the code is blank 1068 */ 1069 @WebMethod(operationName = "getAddressType") 1070 @WebResult(name = "type") 1071 @Cacheable(value= CodedAttribute.Cache.NAME + "{AddressType}", key="'code=' + #p0") 1072 CodedAttribute getAddressType( @WebParam(name="code") String code ) throws RiceIllegalArgumentException; 1073 1074 /** 1075 * Finds all EntityAddressTypes 1076 * 1077 * @since 2.0.1 1078 * @return a list of {@link org.kuali.rice.kim.api.identity.CodedAttribute} 1079 */ 1080 @WebMethod(operationName = "findAllAddressTypes") 1081 @WebResult(name = "types") 1082 @Cacheable(value= CodedAttribute.Cache.NAME + "{AddressType}", key="'all'") 1083 List<CodedAttribute> findAllAddressTypes(); 1084 1085 1086 /** 1087 * Gets the {@link org.kuali.rice.kim.api.identity.affiliation.EntityAffiliationType} for a given EntityAffiliationType code. 1088 * 1089 * <p> 1090 * This method will return null if the code does not exist. 1091 * </p> 1092 * 1093 * @param code the unique id to retrieve the EntityAffiliationType by. Cannot be null. 1094 * @return a {@link org.kuali.rice.kim.api.identity.affiliation.EntityAffiliationType} or null 1095 * @throws RiceIllegalArgumentException if the code is blank 1096 */ 1097 @WebMethod(operationName = "getAffiliationType") 1098 @WebResult(name = "affiliationType") 1099 @Cacheable(value= CodedAttribute.Cache.NAME + "{AffiliationType}", key="'code=' + #p0") 1100 EntityAffiliationType getAffiliationType( @WebParam(name="code") String code ) throws RiceIllegalArgumentException; 1101 1102 /** 1103 * Finds all EntityAffiliationTypes 1104 * 1105 * @since 2.0.1 1106 * @return a list of {@link org.kuali.rice.kim.api.identity.affiliation.EntityAffiliationType} 1107 */ 1108 @WebMethod(operationName = "findAllAffiliationTypes") 1109 @WebResult(name = "types") 1110 @Cacheable(value= CodedAttribute.Cache.NAME + "{AffiliationType}", key="'all'") 1111 List<EntityAffiliationType> findAllAffiliationTypes(); 1112 1113 /** 1114 * Gets the {@link org.kuali.rice.kim.api.identity.CodedAttribute} for a given EntityCitizenship status code. 1115 * 1116 * <p> 1117 * This method will return null if the code does not exist. 1118 * </p> 1119 * 1120 * @param code the unique id to retrieve the Type by. Cannot be null. 1121 * @return a {@link org.kuali.rice.kim.api.identity.CodedAttribute} or null 1122 * @throws RiceIllegalArgumentException if the code is blank 1123 */ 1124 @WebMethod(operationName = "getCitizenshipStatus") 1125 @WebResult(name = "type") 1126 @Cacheable(value= CodedAttribute.Cache.NAME + "{CitizenshipStatus}", key="'code=' + #p0") 1127 CodedAttribute getCitizenshipStatus( @WebParam(name="code") String code ) throws RiceIllegalArgumentException; 1128 1129 /** 1130 * Finds all EntityCitizenshipStatuses 1131 * 1132 * @since 2.0.1 1133 * @return a list of {@link org.kuali.rice.kim.api.identity.CodedAttribute} 1134 */ 1135 @WebMethod(operationName = "findAllCitizenshipStatuses") 1136 @WebResult(name = "types") 1137 @Cacheable(value= CodedAttribute.Cache.NAME + "{CitizenshipStatus}", key="'all'") 1138 List<CodedAttribute> findAllCitizenshipStatuses(); 1139 1140 /** 1141 * Gets the {@link org.kuali.rice.kim.api.identity.CodedAttribute} for a given EntityEmployment type code. 1142 * 1143 * <p> 1144 * This method will return null if the code does not exist. 1145 * </p> 1146 * 1147 * @param code the unique id to retrieve the Type by. Cannot be null. 1148 * @return a {@link org.kuali.rice.kim.api.identity.CodedAttribute} or null 1149 * @throws RiceIllegalArgumentException if the code is blank 1150 */ 1151 @WebMethod(operationName = "getEmploymentType") 1152 @WebResult(name = "type") 1153 @Cacheable(value= CodedAttribute.Cache.NAME + "{EmploymentType}", key="'code=' + #p0") 1154 CodedAttribute getEmploymentType( @WebParam(name="code") String code ) throws RiceIllegalArgumentException; 1155 1156 /** 1157 * Finds all EntityEmploymentTypes 1158 * 1159 * @since 2.0.1 1160 * @return a list of {@link org.kuali.rice.kim.api.identity.CodedAttribute} 1161 */ 1162 @WebMethod(operationName = "findAllEmploymentTypes") 1163 @WebResult(name = "types") 1164 @Cacheable(value= CodedAttribute.Cache.NAME + "{EmploymentType}", key="'all'") 1165 List<CodedAttribute> findAllEmploymentTypes(); 1166 1167 /** 1168 * Gets the {@link org.kuali.rice.kim.api.identity.CodedAttribute} for a given EntityEmployment status code. 1169 * 1170 * <p> 1171 * This method will return null if the code does not exist. 1172 * </p> 1173 * 1174 * @param code the unique id to retrieve the Type by. Cannot be null. 1175 * @return a {@link org.kuali.rice.kim.api.identity.CodedAttribute} or null 1176 * @throws RiceIllegalArgumentException if the code is blank 1177 */ 1178 @WebMethod(operationName = "getEmploymentStatus") 1179 @WebResult(name = "type") 1180 @Cacheable(value= CodedAttribute.Cache.NAME + "{EmploymentStatus}", key="'code=' + #p0") 1181 CodedAttribute getEmploymentStatus( @WebParam(name="code") String code ) throws RiceIllegalArgumentException; 1182 1183 /** 1184 * Finds all EntityEmploymentStatuses 1185 * 1186 * @since 2.0.1 1187 * @return a list of {@link org.kuali.rice.kim.api.identity.CodedAttribute} 1188 */ 1189 @WebMethod(operationName = "findAllEmploymentStatuses") 1190 @WebResult(name = "types") 1191 @Cacheable(value= CodedAttribute.Cache.NAME + "{EmploymentStatus}", key="'all'") 1192 List<CodedAttribute> findAllEmploymentStatuses(); 1193 1194 /** 1195 * Gets the {@link org.kuali.rice.kim.api.identity.external.EntityExternalIdentifierType} for a given type code. 1196 * 1197 * <p> 1198 * This method will return null if the code does not exist. 1199 * </p> 1200 * 1201 * @param code the unique id to retrieve the EntityExternalIdentifierType by. Cannot be null. 1202 * @return a {@link org.kuali.rice.kim.api.identity.CodedAttribute} or null 1203 * @throws RiceIllegalArgumentException if the code is blank 1204 */ 1205 @WebMethod(operationName = "getExternalIdentifierType") 1206 @WebResult(name = "type") 1207 @Cacheable(value= CodedAttribute.Cache.NAME + "{ExternalIdentifierType}", key="'code=' + #p0") 1208 EntityExternalIdentifierType getExternalIdentifierType( @WebParam(name="code") String code ) throws RiceIllegalArgumentException; 1209 1210 /** 1211 * Finds all ExternalIdentifierTypes 1212 * 1213 * @since 2.0.1 1214 * @return a list of {@link org.kuali.rice.kim.api.identity.external.EntityExternalIdentifierType} 1215 */ 1216 @WebMethod(operationName = "findAllExternalIdentifierTypeTypes") 1217 @WebResult(name = "types") 1218 @Cacheable(value= CodedAttribute.Cache.NAME + "{ExternalIdentifierType}", key="'all'") 1219 List<EntityExternalIdentifierType> findAllExternalIdendtifierTypes(); 1220 1221 /** 1222 * Gets the {@link org.kuali.rice.kim.api.identity.CodedAttribute} for a given EntityName type code. 1223 * 1224 * <p> 1225 * This method will return null if the code does not exist. 1226 * </p> 1227 * 1228 * @param code the unique id to retrieve the Type by. Cannot be null. 1229 * @return a {@link org.kuali.rice.kim.api.identity.CodedAttribute} or null 1230 * @throws RiceIllegalArgumentException if the code is blank 1231 */ 1232 @WebMethod(operationName = "getNameType") 1233 @WebResult(name = "type") 1234 @Cacheable(value= CodedAttribute.Cache.NAME + "{NameType}", key="'code=' + #p0") 1235 CodedAttribute getNameType(@WebParam(name = "code") String code) throws RiceIllegalArgumentException; 1236 1237 /** 1238 * Finds all EntityNameTypes 1239 * 1240 * @since 2.0.1 1241 * @return a list of {@link org.kuali.rice.kim.api.identity.CodedAttribute} 1242 */ 1243 @WebMethod(operationName = "findAllNameTypes") 1244 @WebResult(name = "types") 1245 @Cacheable(value= CodedAttribute.Cache.NAME + "{NameType}", key="'all'") 1246 List<CodedAttribute> findAllNameTypes(); 1247 1248 /** 1249 * Gets the {@link org.kuali.rice.kim.api.identity.CodedAttribute} for a given EntityPhone type code. 1250 * 1251 * <p> 1252 * This method will return null if the code does not exist. 1253 * </p> 1254 * 1255 * @param code the unique id to retrieve the Type by. Cannot be null. 1256 * @return a {@link org.kuali.rice.kim.api.identity.CodedAttribute} or null 1257 * @throws RiceIllegalArgumentException if the code is blank 1258 */ 1259 @WebMethod(operationName = "getPhoneType") 1260 @WebResult(name = "type") 1261 @Cacheable(value= CodedAttribute.Cache.NAME + "{PhoneType}", key="'code=' + #p0") 1262 CodedAttribute getPhoneType( @WebParam(name="code") String code ) throws RiceIllegalArgumentException; 1263 1264 /** 1265 * Finds all EntityPhoneTypes 1266 * 1267 * @since 2.0.1 1268 * @return a list of {@link org.kuali.rice.kim.api.identity.CodedAttribute} 1269 */ 1270 @WebMethod(operationName = "findAllPhoneTypes") 1271 @WebResult(name = "types") 1272 @Cacheable(value= CodedAttribute.Cache.NAME + "{PhoneType}", key="'all'") 1273 List<CodedAttribute> findAllPhoneTypes(); 1274 1275 /** 1276 * Gets the {@link org.kuali.rice.kim.api.identity.CodedAttribute} for a given EntityEmail type code. 1277 * 1278 * <p> 1279 * This method will return null if the code does not exist. 1280 * </p> 1281 * 1282 * @param code the unique id to retrieve the Type by. Cannot be null. 1283 * @return a {@link org.kuali.rice.kim.api.identity.CodedAttribute} or null 1284 * @throws RiceIllegalArgumentException if the code is blank 1285 */ 1286 @WebMethod(operationName = "getEmailType") 1287 @WebResult(name = "type") 1288 @Cacheable(value= CodedAttribute.Cache.NAME + "{EmailType}", key="'code=' + #p0") 1289 CodedAttribute getEmailType( @WebParam(name="code") String code ) throws RiceIllegalArgumentException; 1290 1291 /** 1292 * Finds all EntityEmailTypes 1293 * 1294 * @since 2.0.1 1295 * @return a list of {@link org.kuali.rice.kim.api.identity.CodedAttribute} 1296 */ 1297 @WebMethod(operationName = "findAllEmailTypes") 1298 @WebResult(name = "types") 1299 @Cacheable(value= CodedAttribute.Cache.NAME + "{EmailType}", key="'all'") 1300 List<CodedAttribute> findAllEmailTypes(); 1301 1302 /** 1303 * This method finds Principals based on a query criteria. The criteria cannot be null. 1304 * 1305 * @since 2.0.1 1306 * @param query the criteria. Cannot be null. 1307 * @return query results. will never return null. 1308 * @throws IllegalArgumentException if the queryByCriteria is null 1309 */ 1310 @WebMethod(operationName = "findPrincipals") 1311 @WebResult(name = "results") 1312 PrincipalQueryResults findPrincipals(@WebParam(name = "query") QueryByCriteria query) throws RiceIllegalArgumentException; 1313 }