Coverage Report - org.kuali.rice.kim.api.identity.IdentityService
 
Classes in this File Line Coverage Branch Coverage Complexity
IdentityService
N/A
N/A
1
 
 1  
 /*
 2  
  * Copyright 2008-2009 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.identity.address.EntityAddress;
 22  
 import org.kuali.rice.kim.api.identity.affiliation.EntityAffiliation;
 23  
 import org.kuali.rice.kim.api.identity.affiliation.EntityAffiliationType;
 24  
 import org.kuali.rice.kim.api.identity.citizenship.EntityCitizenship;
 25  
 import org.kuali.rice.kim.api.identity.email.EntityEmail;
 26  
 import org.kuali.rice.kim.api.identity.employment.EntityEmployment;
 27  
 import org.kuali.rice.kim.api.identity.entity.Entity;
 28  
 import org.kuali.rice.kim.api.identity.entity.EntityDefault;
 29  
 import org.kuali.rice.kim.api.identity.entity.EntityDefaultQueryResults;
 30  
 import org.kuali.rice.kim.api.identity.entity.EntityQueryResults;
 31  
 import org.kuali.rice.kim.api.identity.external.EntityExternalIdentifier;
 32  
 import org.kuali.rice.kim.api.identity.external.EntityExternalIdentifierType;
 33  
 import org.kuali.rice.kim.api.identity.name.EntityName;
 34  
 import org.kuali.rice.kim.api.identity.personal.EntityBioDemographics;
 35  
 import org.kuali.rice.kim.api.identity.personal.EntityEthnicity;
 36  
 import org.kuali.rice.kim.api.identity.phone.EntityPhone;
 37  
 import org.kuali.rice.kim.api.identity.principal.EntityNamePrincipalName;
 38  
 import org.kuali.rice.kim.api.identity.principal.Principal;
 39  
 import org.kuali.rice.kim.api.identity.privacy.EntityPrivacyPreferences;
 40  
 import org.kuali.rice.kim.api.identity.residency.EntityResidency;
 41  
 import org.kuali.rice.kim.api.identity.type.EntityTypeContactInfo;
 42  
 import org.kuali.rice.kim.api.identity.visa.EntityVisa;
 43  
 import org.kuali.rice.kim.api.jaxb.StringToKimEntityNameInfoMapAdapter;
 44  
 import org.kuali.rice.kim.api.jaxb.StringToKimEntityNamePrincipalInfoMapAdapter;
 45  
 import org.kuali.rice.kim.util.KimConstants;
 46  
 
 47  
 import javax.jws.WebMethod;
 48  
 import javax.jws.WebParam;
 49  
 import javax.jws.WebResult;
 50  
 import javax.jws.WebService;
 51  
 import javax.jws.soap.SOAPBinding;
 52  
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 53  
 import java.util.List;
 54  
 import java.util.Map;
 55  
 
 56  
 /**
 57  
  * This service provides operations to query for principal and identity data.
 58  
  * 
 59  
  * <p>A principal represents an identity that can authenticate.  In essence, a principal can be
 60  
  * thought of as an "account" or as an identity's authentication credentials.  A principal has
 61  
  * an id which is used to uniquely identify it.  It also has a name which represents the
 62  
  * principal's username and is typically what is entered when authenticating.  All principals
 63  
  * are associated with one and only one identity.
 64  
  * 
 65  
  * <p>An identity represents a person or system.  Additionally, other "types" of entities can
 66  
  * be defined in KIM.  Information like name, phone number, etc. is associated with an identity.
 67  
  * It is the representation of a concrete person or system.  While an identity will typically
 68  
  * have a single principal associated with it, it is possible for an identity to have more than
 69  
  * one principal or even no principals at all (in the case where the identity does not actually
 70  
  * authenticate).
 71  
  * 
 72  
  * <p>This service also provides operations for querying various pieces of reference data, such as 
 73  
  * address types, affiliation types, phone types, etc.
 74  
  *
 75  
  * 
 76  
  * @author Kuali Rice Team (rice.collab@kuali.org)
 77  
  *
 78  
  */
 79  
 @WebService(name = "IdentityServiceSoap", targetNamespace = KimConstants.Namespaces.KIM_NAMESPACE_2_0)
 80  
 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
 81  
 public interface IdentityService {
 82  
 
 83  
     /**
 84  
      * This method finds EntityDefault data based on a query criteria.  The criteria cannot be null.
 85  
      *
 86  
      * @param queryByCriteria the criteria.  Cannot be null.
 87  
      * @return query results.  will never return null.
 88  
      * @throws IllegalArgumentException if the queryByCriteria is null
 89  
      */
 90  
     @WebMethod(operationName = "findEntityDefaults")
 91  
     @WebResult(name = "results")
 92  
         EntityDefaultQueryResults findEntityDefaults(@WebParam(name = "query") QueryByCriteria query);
 93  
 
 94  
     /**
 95  
      * This method finds Entities based on a query criteria.  The criteria cannot be null.
 96  
      *
 97  
      * @param queryByCriteria the criteria.  Cannot be null.
 98  
      * @return query results.  will never return null.
 99  
      * @throws IllegalArgumentException if the queryByCriteria is null
 100  
      */
 101  
     @WebMethod(operationName = "findEntities")
 102  
     @WebResult(name = "results")
 103  
         EntityQueryResults findEntities(@WebParam(name = "query") QueryByCriteria query);
 104  
 
 105  
         
 106  
     /**
 107  
      * Gets a {@link org.kuali.rice.kim.api.identity.entity.Entity} from an id.
 108  
      *
 109  
      * <p>
 110  
      *   This method will return null if the Entity does not exist.
 111  
      * </p>
 112  
      *
 113  
      * @param id the unique id to retrieve the entity by. cannot be null.
 114  
      * @return a {@link org.kuali.rice.kim.api.identity.entity.Entity} or null
 115  
      * @throws IllegalArgumentException if the id is blank
 116  
      */
 117  
     @WebMethod(operationName = "getEntity")
 118  
     @WebResult(name = "entity")
 119  
         Entity getEntity( @WebParam(name="id") String id );
 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 IllegalArgumentException if the principalId is blank
 131  
      */
 132  
     @WebMethod(operationName = "getEntityByPrincipalId")
 133  
     @WebResult(name = "entity")
 134  
         Entity getEntityByPrincipalId(@WebParam(name = "principalId") String principalId);
 135  
 
 136  
         /**
 137  
      * Gets a {@link org.kuali.rice.kim.api.identity.entity.Entity} from a principalName.
 138  
      *
 139  
      * <p>
 140  
      *   This method will return null if the Entity does not exist.
 141  
      * </p>
 142  
      *
 143  
      * @param principalName the unique id to retrieve the entity by. cannot be null.
 144  
      * @return a {@link org.kuali.rice.kim.api.identity.entity.Entity} or null
 145  
      * @throws IllegalArgumentException if the id is blank
 146  
      */
 147  
     @WebMethod(operationName = "getEntityByPrincipalName")
 148  
     @WebResult(name = "entity")
 149  
         Entity getEntityByPrincipalName(@WebParam(name = "principalName") String principalName);
 150  
 
 151  
 
 152  
     /**
 153  
      * This will create a {@link org.kuali.rice.kim.api.identity.entity.Entity} exactly like the entity passed in.
 154  
      *
 155  
      * @param entity the entity to create
 156  
      * @return the newly created Entity object.
 157  
      * @throws IllegalArgumentException if the entity is null
 158  
      * @throws IllegalStateException if the entity already exists in the system
 159  
      */
 160  
     @WebMethod(operationName="createEntity")
 161  
     @WebResult(name = "entity")
 162  
     Entity createEntity(@WebParam(name = "entity") Entity entity)
 163  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 164  
 
 165  
     /**
 166  
      * This will update a {@link org.kuali.rice.kim.api.identity.entity.Entity}.
 167  
      *
 168  
      * @param entity the entity to update
 169  
      * @return the updated Entity object.
 170  
      * @throws IllegalArgumentException if the entity is null
 171  
      * @throws IllegalStateException if the entity does not already exist in the system
 172  
      */
 173  
     @WebMethod(operationName="updateEntity")
 174  
     @WebResult(name = "entity")
 175  
     Entity updateEntity(@WebParam(name = "entity") Entity entity)
 176  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 177  
 
 178  
     /**
 179  
      * This will inactivate a {@link org.kuali.rice.kim.api.identity.entity.Entity}.
 180  
      *
 181  
      * @param id the unique id of the entity to inactivate
 182  
      * @return the inactivated Entity object.
 183  
      * @throws IllegalArgumentException if the entity is null
 184  
      * @throws IllegalStateException if the entity does not already exist in the system
 185  
      */
 186  
     @WebMethod(operationName="inactivateEntity")
 187  
     @WebResult(name = "entity")
 188  
     Entity inactivateEntity(@WebParam(name = "id") String id)
 189  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 190  
 
 191  
     
 192  
     
 193  
     /**
 194  
      * Gets a {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} from an id.
 195  
      * {@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
 196  
      * default values of its subclasses
 197  
      *
 198  
      * <p>
 199  
      *   This method will return null if the Entity does not exist.
 200  
      * </p>
 201  
      *
 202  
      * @param id the unique id to retrieve the entity by. cannot be null.
 203  
      * @return a {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} or null
 204  
      * @throws IllegalArgumentException if the id is blank
 205  
      */
 206  
     @WebMethod(operationName = "getEntityDefault")
 207  
     @WebResult(name = "entityDefault")
 208  
         EntityDefault getEntityDefault(@WebParam(name = "id") String id);
 209  
 
 210  
         /**
 211  
      * Gets a {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} from an principalId.
 212  
      * {@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
 213  
      * default values of its subclasses
 214  
      *
 215  
      * <p>
 216  
      *   This method will return null if the Entity does not exist.
 217  
      * </p>
 218  
      *
 219  
      * @param principalId the unique id to retrieve the entity by. cannot be null.
 220  
      * @return a {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} or null
 221  
      * @throws IllegalArgumentException if the principalId is blank
 222  
      */
 223  
     @WebMethod(operationName = "getEntityDefaultByPrincipalId")
 224  
     @WebResult(name = "entityDefault")
 225  
         EntityDefault getEntityDefaultByPrincipalId(@WebParam(name = "principalId") String principalId);
 226  
 
 227  
         /**
 228  
      * Gets a {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} from an principalName.
 229  
      * {@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
 230  
      * default values of its subclasses
 231  
      *
 232  
      * <p>
 233  
      *   This method will return null if the Entity does not exist.
 234  
      * </p>
 235  
      *
 236  
      * @param principalName the unique id to retrieve the entity by. cannot be null.
 237  
      * @return a {@link org.kuali.rice.kim.api.identity.entity.EntityDefault} or null
 238  
      * @throws IllegalArgumentException if the principalId is blank
 239  
      */
 240  
     @WebMethod(operationName = "getEntityDefaultByPrincipalName")
 241  
     @WebResult(name = "entityDefault")
 242  
         EntityDefault getEntityDefaultByPrincipalName(@WebParam(name = "principalName") String principalName);
 243  
     
 244  
     
 245  
 
 246  
     /**
 247  
      * Gets a {@link org.kuali.rice.kim.api.identity.principal.Principal} from an principalId.
 248  
      *
 249  
      * <p>
 250  
      *   This method will return null if the Principal does not exist.
 251  
      * </p>
 252  
      *
 253  
      * @param principalId the unique id to retrieve the principal by. cannot be null.
 254  
      * @return a {@link org.kuali.rice.kim.api.identity.principal.Principal} or null
 255  
      * @throws IllegalArgumentException if the principalId is blank
 256  
      */
 257  
     @WebMethod(operationName = "getPrincipal")
 258  
     @WebResult(name = "principal")
 259  
     Principal getPrincipal( @WebParam(name="principalId") String principalId );
 260  
 
 261  
     /**
 262  
      * Gets a {@link org.kuali.rice.kim.api.identity.principal.Principal} from an principalName.
 263  
      *
 264  
      * <p>
 265  
      *   This method will return null if the Principal does not exist.
 266  
      * </p>
 267  
      *
 268  
      * @param principalName the unique id to retrieve the principal by. cannot be null.
 269  
      * @return a {@link org.kuali.rice.kim.api.identity.principal.Principal} or null
 270  
      * @throws IllegalArgumentException if the principalId is blank
 271  
      */
 272  
     @WebMethod(operationName = "getPrincipalByPrincipalName")
 273  
     @WebResult(name = "principal")
 274  
     Principal getPrincipalByPrincipalName( @WebParam(name="principalName") String principalName );
 275  
 
 276  
     /**
 277  
      * Gets a {@link org.kuali.rice.kim.api.identity.principal.Principal} from an principalName and password.
 278  
      *
 279  
      * <p>
 280  
      *   This method will return null if the Principal does not exist or the password is incorrect.
 281  
      * </p>
 282  
      *
 283  
      * @param principalName the unique id to retrieve the principal by. cannot be null.
 284  
      * @param password the password for the principal
 285  
      * @return a {@link org.kuali.rice.kim.api.identity.principal.Principal} or null
 286  
      * @throws IllegalArgumentException if the principalName is blank
 287  
      */
 288  
     @WebMethod(operationName = "getPrincipalByPrincipalNameAndPassword")
 289  
     @WebResult(name = "principal")
 290  
     Principal getPrincipalByPrincipalNameAndPassword( @WebParam(name="principalName") String principalName,  @WebParam(name="password") String password );
 291  
 
 292  
     /**
 293  
      * This will create a {@link org.kuali.rice.kim.api.identity.principal.Principal} exactly like the principal passed in.
 294  
      *
 295  
      * The principal object passed in must be populated with an entityId and a principalName
 296  
      *
 297  
      * @param principal the principal to create
 298  
      * @return the newly created Principal object.
 299  
      * @throws IllegalArgumentException if the principal is null
 300  
      * @throws IllegalStateException if the principal already exists in the system or the principal object is not populated with entityId and principalName
 301  
      */
 302  
     @WebMethod(operationName="addPrincipalToEntity")
 303  
     @WebResult(name = "principal")
 304  
     Principal addPrincipalToEntity(@WebParam(name = "principal") Principal principal)
 305  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 306  
 
 307  
     /**
 308  
      * This will update a {@link org.kuali.rice.kim.api.identity.principal.Principal} exactly like the principal passed in.
 309  
      *
 310  
      *
 311  
      * @param principal the principal to update
 312  
      * @return the updated Principal object.
 313  
      * @throws IllegalArgumentException if the principal is null
 314  
      * @throws IllegalStateException if the principal does not exist in the system.
 315  
      */
 316  
     @WebMethod(operationName="updatePrincipal")
 317  
     @WebResult(name = "principal")
 318  
     Principal updatePrincipal(@WebParam(name = "principal") Principal principal)
 319  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 320  
 
 321  
     /**
 322  
      * This will inactivate a {@link org.kuali.rice.kim.api.identity.principal.Principal}.
 323  
      *
 324  
      *
 325  
      * @param id the unique id of the principal to inactivate
 326  
      * @return the inactivated Principal object.
 327  
      * @throws IllegalArgumentException if the principal is null
 328  
      * @throws IllegalStateException if the principal does not exist in the system.
 329  
      */
 330  
     @WebMethod(operationName="inactivatePrincipal")
 331  
     @WebResult(name = "principal")
 332  
     Principal inactivatePrincipal(@WebParam(name = "principalId") String principalId)
 333  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 334  
 
 335  
     /**
 336  
      * This will inactivate a {@link org.kuali.rice.kim.api.identity.principal.Principal}.
 337  
      *
 338  
      *
 339  
      * @param principalName the unique principalName of the principal to inactivate
 340  
      * @return the inactivated Principal object.
 341  
      * @throws IllegalArgumentException if the principal is null
 342  
      * @throws IllegalStateException if the principal does not exist in the system.
 343  
      */
 344  
     @WebMethod(operationName="inactivatePrincipalByName")
 345  
     @WebResult(name = "principal")
 346  
     Principal inactivatePrincipalByName(@WebParam(name = "principalName") String principalName)
 347  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 348  
 
 349  
 
 350  
     /**
 351  
      * This will create a {@link org.kuali.rice.kim.api.identity.type.EntityTypeContactInfo} exactly like the entityTypeContactInfo passed in.
 352  
      *
 353  
      * The EntityTypeContactInfo object passed in must be populated with an entityId and a entityTypeCode
 354  
      *
 355  
      * @param entityTypeContactInfo the EntityTypeContactInfo to create
 356  
      * @return the newly created EntityTypeContactInfo object.
 357  
      * @throws IllegalArgumentException if the entityTypeContactInfo is null
 358  
      * @throws IllegalStateException if the entityTypeContactInfo already exists in the system or the EntityTypeContactInfo object is not populated with entityId and entityTypeCode
 359  
      */
 360  
     @WebMethod(operationName="addEntityTypeContactInfoToEntity")
 361  
     @WebResult(name = "entityTypeContactInfo")
 362  
     EntityTypeContactInfo addEntityTypeContactInfoToEntity(
 363  
             @WebParam(name = "entityTypeContactInfo") EntityTypeContactInfo entityTypeContactInfo)
 364  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 365  
 
 366  
     /**
 367  
      * This will update a {@link org.kuali.rice.kim.api.identity.type.EntityTypeContactInfo} exactly like the entityTypeContactInfo passed in.
 368  
      *
 369  
      *
 370  
      * @param entityTypeContactInfo the EntityTypeContactInfo to update
 371  
      * @return the updated EntityTypeContactInfo object.
 372  
      * @throws IllegalArgumentException if the entityTypeContactInfo is null
 373  
      * @throws IllegalStateException if the entityTypeContactInfo does not exist in the system.
 374  
      */
 375  
     @WebMethod(operationName="updateEntityTypeContactInfo")
 376  
     @WebResult(name = "entityTypeContactInfo")
 377  
     EntityTypeContactInfo updateEntityTypeContactInfo(@WebParam(name = "entityTypeContactInfo") EntityTypeContactInfo entityTypeContactInfo)
 378  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 379  
 
 380  
     /**
 381  
      * This will inactivate a {@link org.kuali.rice.kim.api.identity.type.EntityTypeContactInfo} with the passed in parameters.
 382  
      *
 383  
      *
 384  
      * @param entityId the entityId of the EntityTypeContactInfo to inactivate
 385  
      * @param entityTypeCode the entityTypeCode of the EntityTypeContactInfo to inactivate
 386  
      * @return the inactivated EntityTypeContactInfo object.
 387  
      * @throws IllegalArgumentException if the entityId or entityTypeCode passed in is null
 388  
      * @throws IllegalStateException if the EntityTypeContactInfo does not exist in the system.
 389  
      */
 390  
     @WebMethod(operationName="inactivateEntityTypeContactInfo")
 391  
     @WebResult(name = "entityTypeContactInfo")
 392  
     EntityTypeContactInfo inactivateEntityTypeContactInfo(@WebParam(name = "entityId") String entityId,
 393  
             @WebParam(name = "entityTypeCode") String entityTypeCode)
 394  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 395  
 
 396  
     /**
 397  
      * This will create a {@link org.kuali.rice.kim.api.identity.address.EntityAddress} exactly like the address passed in.
 398  
      *
 399  
      * The EntityAddress object passed in must be populated with an entityId and a entityTypeCode
 400  
      *
 401  
      * @param address the EntityAddress to create
 402  
      * @return the newly created EntityAddress object.
 403  
      * @throws IllegalArgumentException if the address is null
 404  
      * @throws IllegalStateException if the address already exists in the system or address is not populated with entityId and entityTypeCode
 405  
      */
 406  
     @WebMethod(operationName="addAddressToEntity")
 407  
     @WebResult(name = "address")
 408  
     EntityAddress addAddressToEntity(@WebParam(name = "address") EntityAddress address)
 409  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 410  
 
 411  
     /**
 412  
      * This will update a {@link org.kuali.rice.kim.api.identity.address.EntityAddress} exactly like the address passed in.
 413  
      *
 414  
      *
 415  
      * @param address the EntityAddress to update
 416  
      * @return the updated EntityAddress object.
 417  
      * @throws IllegalArgumentException if the address is null
 418  
      * @throws IllegalStateException if the address does not exist in the system.
 419  
      */
 420  
     @WebMethod(operationName="updateAddress")
 421  
     @WebResult(name = "address")
 422  
     EntityAddress updateAddress(@WebParam(name = "address")EntityAddress address)
 423  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 424  
 
 425  
     /**
 426  
      * This will inactivate a {@link org.kuali.rice.kim.api.identity.address.EntityAddress} with the id passed in.
 427  
      *
 428  
      *
 429  
      * @param id the unique id of the EntityAddress to inactivate
 430  
      * @return the updated EntityAddress object.
 431  
      * @throws IllegalArgumentException if the id is null
 432  
      * @throws IllegalStateException if the address does not exist in the system.
 433  
      */
 434  
     @WebMethod(operationName="inactivateAddress")
 435  
     @WebResult(name = "address")
 436  
     EntityAddress inactivateAddress(@WebParam(name = "id") String id)
 437  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 438  
 
 439  
     /**
 440  
      * This will create a {@link org.kuali.rice.kim.api.identity.email.EntityEmail} exactly like the email passed in.
 441  
      *
 442  
      * The EntityEmail object passed in must be populated with an entityId and a entityTypeCode
 443  
      *
 444  
      * @param email the EntityEmail to create
 445  
      * @return the newly created EntityEmail object.
 446  
      * @throws IllegalArgumentException if the email is null
 447  
      * @throws IllegalStateException if the email already exists in the system or email is not populated with entityId and entityTypeCode
 448  
      */
 449  
     @WebMethod(operationName="addEmailToEntity")
 450  
     @WebResult(name = "email")
 451  
     EntityEmail addEmailToEntity(@WebParam(name = "email") EntityEmail email)
 452  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 453  
 
 454  
     /**
 455  
      * This will update a {@link org.kuali.rice.kim.api.identity.email.EntityEmail} exactly like the email passed in.
 456  
      *
 457  
      *
 458  
      * @param email the EntityEmail to update
 459  
      * @return the updated EntityEmail object.
 460  
      * @throws IllegalArgumentException if the email is null
 461  
      * @throws IllegalStateException if the email does not exist in the system.
 462  
      */
 463  
     @WebMethod(operationName="updateEmail")
 464  
     @WebResult(name = "email")
 465  
     EntityEmail updateEmail(@WebParam(name = "email") EntityEmail email)
 466  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 467  
 
 468  
     /**
 469  
      * This will inactivate the {@link org.kuali.rice.kim.api.identity.email.EntityEmail} with the passed in id.
 470  
      *
 471  
      *
 472  
      * @param id the unique id of the EntityEmail to inactivate
 473  
      * @return the inactivated EntityEmail object.
 474  
      * @throws IllegalArgumentException if the id is null
 475  
      * @throws IllegalStateException if the email does not exist in the system.
 476  
      */
 477  
     @WebMethod(operationName="inactivateEmail")
 478  
     @WebResult(name = "email")
 479  
     EntityEmail inactivateEmail(@WebParam(name = "id") String id)
 480  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 481  
 
 482  
     /**
 483  
      * This will create a {@link org.kuali.rice.kim.api.identity.phone.EntityPhone} exactly like the phone passed in.
 484  
      *
 485  
      * The EntityPhone object passed in must be populated with an entityId and a entityTypeCode
 486  
      *
 487  
      * @param phone the EntityPhone to create
 488  
      * @return the newly created EntityPhone object.
 489  
      * @throws IllegalArgumentException if the phone is null
 490  
      * @throws IllegalStateException if the phone already exists in the system or phone is not populated with entityId and entityTypeCode
 491  
      */
 492  
     @WebMethod(operationName="addPhoneToEntity")
 493  
     @WebResult(name = "phone")
 494  
     EntityPhone addPhoneToEntity(@WebParam(name = "phone") EntityPhone phone)
 495  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 496  
 
 497  
     /**
 498  
      * This will update a {@link org.kuali.rice.kim.api.identity.phone.EntityPhone} exactly like the phone passed in.
 499  
      *
 500  
      *
 501  
      * @param phone the EntityPhone to update
 502  
      * @return the updated EntityPhone object.
 503  
      * @throws IllegalArgumentException if the phone is null
 504  
      * @throws IllegalStateException if the phone does not exist in the system.
 505  
      */
 506  
     @WebMethod(operationName="updatePhone")
 507  
     @WebResult(name = "phone")
 508  
     EntityPhone updatePhone(@WebParam(name = "phone") EntityPhone phone)
 509  
             throws RiceIllegalArgumentException, RiceIllegalStateException;
 510  
 
 511  
     /**
 512  
      * This will inactivate the {@link org.kuali.rice.kim.api.identity.phone.EntityPhone} with the passed in id.
 513  
      *
 514  
      *
 515  
      * @param id the unique id of the EntityPhone to inactivate
 516  
      * @return the inactivated EntityPhone object.
 517  
      * @throws IllegalArgumentException if the id is null
 518  
      * @throws IllegalStateException if the phone does not exist in the system.
 519  
      */
 520  
     @WebMethod(operationName="inactivatePhone")
 521  
     @WebResult(name = "phone")
 522  
     EntityPhone inactivatePhone(@WebParam(name = "id") String id)
 523  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 524  
 
 525  
 
 526  
     /**
 527  
      * This will create a {@link org.kuali.rice.kim.api.identity.external.EntityExternalIdentifier} exactly like the externalId passed in.
 528  
      *
 529  
      * The EntityExternalIdentifier object passed in must be populated with an entityId and a externalIdentifierTypeCode
 530  
      *
 531  
      * @param externalId the EntityExternalIdentifier to create
 532  
      * @return the newly created EntityExternalIdentifier object.
 533  
      * @throws IllegalArgumentException if the externalId is null
 534  
      * @throws IllegalStateException if the externalId already exists in the system or externalId is not populated with entityId and externalIdentifierTypeCode
 535  
      */
 536  
     @WebMethod(operationName="addExternalIdentifierToEntity")
 537  
     @WebResult(name = "externalId")
 538  
     EntityExternalIdentifier addExternalIdentifierToEntity(@WebParam(name = "externalId") EntityExternalIdentifier externalId)
 539  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 540  
 
 541  
     /**
 542  
      * This will update a {@link org.kuali.rice.kim.api.identity.external.EntityExternalIdentifier} exactly like the externalId passed in.
 543  
      *
 544  
      *
 545  
      * @param externalId the EntityExternalIdentifier to update
 546  
      * @return the updated EntityExternalIdentifier object.
 547  
      * @throws IllegalArgumentException if the externalId is null
 548  
      * @throws IllegalStateException if the externalId does not exist in the system.
 549  
      */
 550  
     @WebMethod(operationName="updateExternalIdentifier")
 551  
     @WebResult(name = "externalId")
 552  
     EntityExternalIdentifier updateExternalIdentifier(@WebParam(name = "externalId") EntityExternalIdentifier externalId)
 553  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 554  
 
 555  
     /**
 556  
      * This will create a {@link org.kuali.rice.kim.api.identity.affiliation.EntityAffiliation} exactly like the affiliation passed in.
 557  
      *
 558  
      * The EntityAffiliation object passed in must be populated with an entityId and a affiliationType
 559  
      *
 560  
      * @param affiliation the EntityAffiliation to create
 561  
      * @return the newly created EntityAffiliation object.
 562  
      * @throws IllegalArgumentException if the affiliation is null
 563  
      * @throws IllegalStateException if the affiliation already exists in the system or affiliation is not populated with entityId and affiliationType
 564  
      */
 565  
     @WebMethod(operationName="addAffiliationToEntity")
 566  
     @WebResult(name = "affiliation")
 567  
     EntityAffiliation addAffiliationToEntity(@WebParam(name = "affiliation") EntityAffiliation affiliation)
 568  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 569  
 
 570  
     /**
 571  
      * This will update a {@link org.kuali.rice.kim.api.identity.affiliation.EntityAffiliation} exactly like the affiliation passed in.
 572  
      *
 573  
      *
 574  
      * @param affiliation the EntityAffiliation to update
 575  
      * @return the updated EntityAffiliation object.
 576  
      * @throws IllegalArgumentException if the affiliation is null
 577  
      * @throws IllegalStateException if the affiliation does not exist in the system.
 578  
      */
 579  
     @WebMethod(operationName="updateAffiliation")
 580  
     @WebResult(name = "affiliation")
 581  
     EntityAffiliation updateAffiliation(@WebParam(name = "affiliation") EntityAffiliation affiliation)
 582  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 583  
 
 584  
     /**
 585  
      * This will inactivate a {@link org.kuali.rice.kim.api.identity.affiliation.EntityAffiliation} with the id passed in.
 586  
      *
 587  
      *
 588  
      * @param id the unique id of the  EntityAffiliation to inactivate
 589  
      * @return the updated EntityAffiliation object.
 590  
      * @throws IllegalArgumentException if the affiliation is null
 591  
      * @throws IllegalStateException if the affiliation does not exist in the system.
 592  
      */
 593  
     @WebMethod(operationName="inactivateAffiliation")
 594  
     @WebResult(name = "affiliation")
 595  
     EntityAffiliation inactivateAffiliation(@WebParam(name = "id") String id)
 596  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 597  
 
 598  
     /**
 599  
      * Gets a map {@link org.kuali.rice.kim.api.identity.principal.EntityNamePrincipalName} for a list of principalIds.
 600  
      *
 601  
      * <p>The resulting Map contains the principalId as the key and the EntityNamePrincipalName as the value.
 602  
          * When fetching names by principal id, the resulting EntityNamePrincipalName contains the identity's default name
 603  
          * as well as the principalName.
 604  
      * </p>
 605  
      *
 606  
      * @param principalIds list of  unique principalIds to retrieve the names by. Cannot be null.
 607  
      * @return a map of {@link org.kuali.rice.kim.api.identity.principal.EntityNamePrincipalName}
 608  
      * @throws IllegalArgumentException if the list of principalIds is null
 609  
      */
 610  
     @WebMethod(operationName = "getDefaultNamesForPrincipalIds")
 611  
     @WebResult(name = "entityNamePrincipalNames")
 612  
         @XmlJavaTypeAdapter(value = StringToKimEntityNamePrincipalInfoMapAdapter.class) 
 613  
     Map<String, EntityNamePrincipalName> getDefaultNamesForPrincipalIds(@WebParam(name="principalIds") List<String> principalIds);
 614  
     
 615  
 
 616  
     /**
 617  
      * Gets a map {@link org.kuali.rice.kim.api.identity.principal.EntityNamePrincipalName} for a list of entityIds.
 618  
      *
 619  
      * <p>The resulting Map contains the entityId as the key and the EntityNamePrincipalName as the value.
 620  
          * When fetching names by principal id, the resulting EntityNamePrincipalName contains the identity's default name
 621  
          * as well as the principalName.
 622  
      * </p>
 623  
      *
 624  
      * @param principalIds list of  unique principalIds to retrieve the names by. Cannot be null.
 625  
      * @return a map of {@link org.kuali.rice.kim.api.identity.principal.EntityNamePrincipalName}
 626  
      * @throws IllegalArgumentException if the list of principalIds is null
 627  
      */
 628  
     @WebMethod(operationName = "getDefaultNamesForEntityIds")
 629  
     @WebResult(name = "entityNamePrincipalNames")
 630  
         @XmlJavaTypeAdapter(value = StringToKimEntityNameInfoMapAdapter.class) 
 631  
     Map<String, EntityNamePrincipalName> getDefaultNamesForEntityIds(@WebParam(name="entityIds") List<String> entityIds);
 632  
 
 633  
     /**
 634  
      * This will create a {@link org.kuali.rice.kim.api.identity.name.EntityName} exactly like the name passed in.
 635  
      *
 636  
      * The EntityName object passed in must be populated with an entityId and a nameType
 637  
      *
 638  
      * @param name the EntityName to create
 639  
      * @return the newly created EntityName object.
 640  
      * @throws IllegalArgumentException if the name is null
 641  
      * @throws IllegalStateException if the name already exists in the system or name is not populated with entityId and nameType
 642  
      */
 643  
     @WebMethod(operationName="addNameToEntity")
 644  
     @WebResult(name = "name")
 645  
     EntityName addNameToEntity(@WebParam(name = "name") EntityName name)
 646  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 647  
 
 648  
     /**
 649  
      * This will update a {@link org.kuali.rice.kim.api.identity.name.EntityName} exactly like the name passed in.
 650  
      *
 651  
      *
 652  
      * @param name the EntityName to update
 653  
      * @return the updated EntityName object.
 654  
      * @throws IllegalArgumentException if the name is null
 655  
      * @throws IllegalStateException if the name does not exist in the system.
 656  
      */
 657  
     @WebMethod(operationName="updateName")
 658  
     @WebResult(name = "name")
 659  
     EntityName updateName(@WebParam(name = "name") EntityName name)
 660  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 661  
 
 662  
     /**
 663  
      * This will inactivate a {@link org.kuali.rice.kim.api.identity.name.EntityName} with the passed in id.
 664  
      *
 665  
      *
 666  
      * @param id the unique id of the EntityName to inactivate
 667  
      * @return the inactivated EntityName object.
 668  
      * @throws IllegalArgumentException if the id is null
 669  
      * @throws IllegalStateException if the name with the id does not exist in the system.
 670  
      */
 671  
     @WebMethod(operationName="inactivateName")
 672  
     @WebResult(name = "name")
 673  
     EntityName inactivateName(@WebParam(name = "id") String id)
 674  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 675  
 
 676  
     /**
 677  
      * This will create a {@link org.kuali.rice.kim.api.identity.employment.EntityEmployment} exactly like the employment passed in.
 678  
      *
 679  
      * The EntityEmployment object passed in must be populated with an entityId and a employmentType
 680  
      *
 681  
      * @param employment the EntityEmployment to create
 682  
      * @return the newly created EntityName object.
 683  
      * @throws IllegalArgumentException if the employment is null
 684  
      * @throws IllegalStateException if the employment already exists in the system or employment is not populated with entityId and employmentType
 685  
      */
 686  
     @WebMethod(operationName="addEmploymentToEntity")
 687  
     @WebResult(name = "employment")
 688  
     EntityEmployment addEmploymentToEntity(@WebParam(name = "employment") EntityEmployment employment)
 689  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 690  
 
 691  
     /**
 692  
      * This will update a {@link org.kuali.rice.kim.api.identity.employment.EntityEmployment} exactly like the employment passed in.
 693  
      *
 694  
      *
 695  
      * @param employment the EntityEmployment to update
 696  
      * @return the updated EntityEmployment object.
 697  
      * @throws IllegalArgumentException if the employment is null
 698  
      * @throws IllegalStateException if the employment does not exist in the system.
 699  
      */
 700  
     @WebMethod(operationName="updateEmployment")
 701  
     @WebResult(name = "employment")
 702  
     EntityEmployment updateEmployment(@WebParam(name = "employment") EntityEmployment employment)
 703  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 704  
 
 705  
     /**
 706  
      * This will inactivate a {@link org.kuali.rice.kim.api.identity.employment.EntityEmployment} with the passed in id.
 707  
      *
 708  
      *
 709  
      * @param id the unique id of the EntityEmployment to inactivate
 710  
      * @return the inactivated EntityEmployment object.
 711  
      * @throws IllegalArgumentException if the id is null
 712  
      * @throws IllegalStateException if the employment with the id does not exist in the system.
 713  
      */
 714  
     @WebMethod(operationName="inactivateEmployment")
 715  
     @WebResult(name = "employment")
 716  
     EntityEmployment inactivateEmployment(@WebParam(name = "id") String id)
 717  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 718  
 
 719  
     /**
 720  
      * This will create a {@link org.kuali.rice.kim.api.identity.personal.EntityBioDemographics} exactly like the bioDemographics passed in.
 721  
      *
 722  
      * The EntityBioDemographics object passed in must be populated with an entityId
 723  
      *
 724  
      * @param bioDemographics the EntityBioDemographics to create
 725  
      * @return the newly created EntityBioDemographics object.
 726  
      * @throws IllegalArgumentException if the bioDemographics is null
 727  
      * @throws IllegalStateException if the bioDemographics already exists in the system or bioDemographics is not populated with entityId
 728  
      */
 729  
     @WebMethod(operationName="addBioDemographicsToEntity")
 730  
     @WebResult(name = "bioDemographics")
 731  
     EntityBioDemographics addBioDemographicsToEntity(@WebParam(name = "bioDemographics") EntityBioDemographics bioDemographics)
 732  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 733  
 
 734  
     /**
 735  
      * This will update a {@link org.kuali.rice.kim.api.identity.personal.EntityBioDemographics} exactly like the bioDemographics passed in.
 736  
      *
 737  
      *
 738  
      * @param bioDemographics the EntityBioDemographics to update
 739  
      * @return the updated EntityBioDemographics object.
 740  
      * @throws IllegalArgumentException if the bioDemographics is null
 741  
      * @throws IllegalStateException if the bioDemographics does not exist in the system.
 742  
      */
 743  
     @WebMethod(operationName="updateBioDemographics")
 744  
     @WebResult(name = "bioDemographics")
 745  
     EntityBioDemographics updateBioDemographics(@WebParam(name = "bioDemographics") EntityBioDemographics bioDemographics)
 746  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 747  
     
 748  
     /**
 749  
      * Gets a {@link org.kuali.rice.kim.api.identity.privacy.EntityPrivacyPreferences} for a given entityId.
 750  
      *
 751  
      * <p>
 752  
      *   This method will return null if the EntityPrivacyPreferences does not exist.
 753  
      * </p>
 754  
      *
 755  
      * @param entityId the unique id to retrieve the EntityPrivacyPreferences by. Cannot be null.
 756  
      * @return a {@link org.kuali.rice.kim.api.identity.privacy.EntityPrivacyPreferences} or null
 757  
      * @throws IllegalArgumentException if the entityId is blank
 758  
      */
 759  
     @WebMethod(operationName = "getEntityPrivacyPreferences")
 760  
     @WebResult(name = "privacyPreferences")
 761  
         EntityPrivacyPreferences getEntityPrivacyPreferences( @WebParam(name="entityId") String entityId );
 762  
 
 763  
     /**
 764  
      * This will create a {@link org.kuali.rice.kim.api.identity.privacy.EntityPrivacyPreferences} exactly like the privacyPreferences passed in.
 765  
      *
 766  
      * The EntityPrivacyPreferences object passed in must be populated with an entityId
 767  
      *
 768  
      * @param privacyPreferences the EntityPrivacyPreferences to create
 769  
      * @return the newly created EntityPrivacyPreferences object.
 770  
      * @throws IllegalArgumentException if the privacyPreferences is null
 771  
      * @throws IllegalStateException if the privacyPreferences already exists in the system or privacyPreferences is not populated with entityId
 772  
      */
 773  
     @WebMethod(operationName="addPrivacyPreferencesToEntity")
 774  
     @WebResult(name = "privacyPreferences")
 775  
     EntityPrivacyPreferences addPrivacyPreferencesToEntity(@WebParam(name = "privacyPreferences") EntityPrivacyPreferences privacyPreferences)
 776  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 777  
 
 778  
     /**
 779  
      * This will update a {@link org.kuali.rice.kim.api.identity.privacy.EntityPrivacyPreferences} exactly like the privacyPreferences passed in.
 780  
      *
 781  
      *
 782  
      * @param privacyPreferences the EntityPrivacyPreferences to update
 783  
      * @return the updated EntityPrivacyPreferences object.
 784  
      * @throws IllegalArgumentException if the privacyPreferences is null
 785  
      * @throws IllegalStateException if the privacyPreferences does not exist in the system.
 786  
      */
 787  
     @WebMethod(operationName="updatePrivacyPreferences")
 788  
     @WebResult(name = "privacyPreferences")
 789  
     EntityPrivacyPreferences updatePrivacyPreferences(@WebParam(name = "privacyPreferences") EntityPrivacyPreferences privacyPreferences)
 790  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 791  
 
 792  
 
 793  
     /**
 794  
      * This will create a {@link org.kuali.rice.kim.api.identity.citizenship.EntityCitizenship} exactly like the citizenship passed in.
 795  
      *
 796  
      * The EntityCitizenship object passed in must be populated with an entityId and a status
 797  
      *
 798  
      * @param citizenship the EntityCitizenship to create
 799  
      * @return the newly created EntityCitizenship object.
 800  
      * @throws IllegalArgumentException if the citizenship is null
 801  
      * @throws IllegalStateException if the citizenship already exists in the system or citizenship is not populated with entityId and status
 802  
      */
 803  
     @WebMethod(operationName="addCitizenshipToEntity")
 804  
     @WebResult(name = "citizenship")
 805  
     EntityCitizenship addCitizenshipToEntity(@WebParam(name = "citizenship") EntityCitizenship citizenship)
 806  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 807  
 
 808  
     /**
 809  
      * This will update a {@link org.kuali.rice.kim.api.identity.citizenship.EntityCitizenship} exactly like the citizenship passed in.
 810  
      *
 811  
      *
 812  
      * @param citizenship the EntityCitizenship to update
 813  
      * @return the updated EntityCitizenship object.
 814  
      * @throws IllegalArgumentException if the citizenship is null
 815  
      * @throws IllegalStateException if the citizenship does not exist in the system.
 816  
      */
 817  
     @WebMethod(operationName="updateCitizenship")
 818  
     @WebResult(name = "citizenship")
 819  
     EntityCitizenship updateCitizenship(@WebParam(name = "citizenship") EntityCitizenship citizenship)
 820  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 821  
 
 822  
     /**
 823  
      * This will inactivate a {@link org.kuali.rice.kim.api.identity.citizenship.EntityCitizenship} with the unique id passed in.
 824  
      *
 825  
      *
 826  
      * @param citizenship the EntityCitizenship to inactivate
 827  
      * @return the inactivated EntityCitizenship object.
 828  
      * @throws IllegalArgumentException if the citizenship is null
 829  
      * @throws IllegalStateException if the citizenship does not exist in the system.
 830  
      */
 831  
     @WebMethod(operationName="inactivateCitizenship")
 832  
     @WebResult(name = "citizenship")
 833  
     EntityCitizenship inactivateCitizenship(@WebParam(name = "id") String id)
 834  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 835  
 
 836  
     /**
 837  
      * This will create a {@link org.kuali.rice.kim.api.identity.ethnicity.EntityEthnicity} exactly like the ethnicity passed in.
 838  
      *
 839  
      * The EntityEthnicity object passed in must be populated with an entityId and a ethnicity code
 840  
      *
 841  
      * @param ethnicity the EntityEthnicity to create
 842  
      * @return the newly created EntityEthnicity object.
 843  
      * @throws IllegalArgumentException if the ethnicity is null
 844  
      * @throws IllegalStateException if the ethnicity already exists in the system or ethnicity is not populated with entityId and ethnicity code
 845  
      */
 846  
     @WebMethod(operationName="addEthnicityToEntity")
 847  
     @WebResult(name = "ethnicity")
 848  
     EntityEthnicity addEthnicityToEntity(@WebParam(name = "ethnicity") EntityEthnicity ethnicity)
 849  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 850  
 
 851  
     /**
 852  
      * This will update a {@link org.kuali.rice.kim.api.identity.ethnicity.EntityEthnicity} exactly like the ethnicity passed in.
 853  
      *
 854  
      *
 855  
      * @param ethnicity the EntityEthnicity to update
 856  
      * @return the updated EntityEthnicity object.
 857  
      * @throws IllegalArgumentException if the ethnicity is null
 858  
      * @throws IllegalStateException if the ethnicity does not exist in the system.
 859  
      */
 860  
     @WebMethod(operationName="updateEthnicity")
 861  
     @WebResult(name = "ethnicity")
 862  
     EntityEthnicity updateEthnicity(@WebParam(name = "ethnicity") EntityEthnicity ethnicity)
 863  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 864  
 
 865  
     /**
 866  
      * This will create a {@link org.kuali.rice.kim.api.identity.residency.EntityResidency} exactly like the residency passed in.
 867  
      *
 868  
      * The EntityResidency object passed in must be populated with an entityId
 869  
      *
 870  
      * @param residency the EntityResidency to create
 871  
      * @return the newly created EntityResidency object.
 872  
      * @throws IllegalArgumentException if the residency is null
 873  
      * @throws IllegalStateException if the residency already exists in the system or residency is not populated with entityId
 874  
      */
 875  
     @WebMethod(operationName="addResidencyToEntity")
 876  
     @WebResult(name = "residency")
 877  
     EntityResidency addResidencyToEntity(@WebParam(name = "residency") EntityResidency residency)
 878  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 879  
 
 880  
     /**
 881  
      * This will update a {@link org.kuali.rice.kim.api.identity.residency.EntityResidency} exactly like the residency passed in.
 882  
      *
 883  
      *
 884  
      * @param residency the EntityResidency to update
 885  
      * @return the updated EntityResidency object.
 886  
      * @throws IllegalArgumentException if the residency is null
 887  
      * @throws IllegalStateException if the residency does not exist in the system.
 888  
      */
 889  
     @WebMethod(operationName="updateResidency")
 890  
     @WebResult(name = "residency")
 891  
     EntityResidency updateResidency(@WebParam(name = "residency") EntityResidency residency)
 892  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 893  
 
 894  
 
 895  
     /**
 896  
      * This will create a {@link org.kuali.rice.kim.api.identity.visa.EntityVisa} exactly like the visa passed in.
 897  
      *
 898  
      * The EntityVisa object passed in must be populated with an entityId and a visaTypeKey
 899  
      *
 900  
      * @param visa the EntityVisa to create
 901  
      * @return the newly created EntityVisa object.
 902  
      * @throws IllegalArgumentException if the visa is null
 903  
      * @throws IllegalStateException if the visa already exists in the system or visa is not populated with entityId and a visaTypeKey
 904  
      */
 905  
     @WebMethod(operationName="addVisaToEntity")
 906  
     @WebResult(name = "visa")
 907  
     EntityVisa addVisaToEntity(@WebParam(name = "visa") EntityVisa visa)
 908  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 909  
 
 910  
     /**
 911  
      * This will update a {@link org.kuali.rice.kim.api.identity.visa.EntityVisa} exactly like the visa passed in.
 912  
      *
 913  
      *
 914  
      * @param visa the EntityVisa to update
 915  
      * @return the updated EntityVisa object.
 916  
      * @throws IllegalArgumentException if the visa is null
 917  
      * @throws IllegalStateException if the visa does not exist in the system.
 918  
      */
 919  
     @WebMethod(operationName="updateVisa")
 920  
     @WebResult(name = "visa")
 921  
     EntityVisa updateVisa(@WebParam(name = "visa") EntityVisa visa)
 922  
         throws RiceIllegalArgumentException, RiceIllegalStateException;
 923  
 
 924  
     /**
 925  
      * Gets the {@link org.kuali.rice.kim.api.identity.Type} for a given EntityType code.
 926  
      *
 927  
      * <p>
 928  
      *   This method will return null if the code does not exist.
 929  
      * </p>
 930  
      *
 931  
      * @param code the unique id to retrieve the Type by. Cannot be null.
 932  
      * @return a {@link org.kuali.rice.kim.api.identity.Type} or null
 933  
      * @throws IllegalArgumentException if the code is blank
 934  
      */
 935  
     @WebMethod(operationName = "getEntityType")
 936  
     @WebResult(name = "type")
 937  
         Type getEntityType( @WebParam(name="code") String code );
 938  
 
 939  
 
 940  
     /**
 941  
      * Gets the {@link org.kuali.rice.kim.api.identity.Type} for a given EntityAddressType code.
 942  
      *
 943  
      * <p>
 944  
      *   This method will return null if the code does not exist.
 945  
      * </p>
 946  
      *
 947  
      * @param code the unique id to retrieve the Type by. Cannot be null.
 948  
      * @return a {@link org.kuali.rice.kim.api.identity.Type} or null
 949  
      * @throws IllegalArgumentException if the code is blank
 950  
      */
 951  
     @WebMethod(operationName = "getAddressType")
 952  
     @WebResult(name = "type")
 953  
         Type getAddressType( @WebParam(name="code") String code );
 954  
 
 955  
     /**
 956  
      * Gets the {@link org.kuali.rice.kim.api.identity.affiliation.EntityAffiliationType} for a given EntityAffiliationType code.
 957  
      *
 958  
      * <p>
 959  
      *   This method will return null if the code does not exist.
 960  
      * </p>
 961  
      *
 962  
      * @param code the unique id to retrieve the EntityAffiliationType by. Cannot be null.
 963  
      * @return a {@link org.kuali.rice.kim.api.identity.affiliation.EntityAffiliationType} or null
 964  
      * @throws IllegalArgumentException if the code is blank
 965  
      */
 966  
     @WebMethod(operationName = "getAffiliationType")
 967  
     @WebResult(name = "affiliationType")
 968  
         EntityAffiliationType getAffiliationType( @WebParam(name="code") String code );
 969  
 
 970  
     /**
 971  
      * Gets the {@link org.kuali.rice.kim.api.identity.Type} for a given EntityCitizenship status code.
 972  
      *
 973  
      * <p>
 974  
      *   This method will return null if the code does not exist.
 975  
      * </p>
 976  
      *
 977  
      * @param code the unique id to retrieve the Type by. Cannot be null.
 978  
      * @return a {@link org.kuali.rice.kim.api.identity.Type} or null
 979  
      * @throws IllegalArgumentException if the code is blank
 980  
      */
 981  
     @WebMethod(operationName = "getCitizenshipStatus")
 982  
     @WebResult(name = "type")
 983  
         Type getCitizenshipStatus( @WebParam(name="code") String code );
 984  
 
 985  
     /**
 986  
      * Gets the {@link org.kuali.rice.kim.api.identity.Type} for a given EntityEmployment type code.
 987  
      *
 988  
      * <p>
 989  
      *   This method will return null if the code does not exist.
 990  
      * </p>
 991  
      *
 992  
      * @param code the unique id to retrieve the Type by. Cannot be null.
 993  
      * @return a {@link org.kuali.rice.kim.api.identity.Type} or null
 994  
      * @throws IllegalArgumentException if the code is blank
 995  
      */
 996  
     @WebMethod(operationName = "getEmploymentType")
 997  
     @WebResult(name = "type")
 998  
         Type getEmploymentType( @WebParam(name="code") String code );
 999  
     
 1000  
     /**
 1001  
      * Gets the {@link org.kuali.rice.kim.api.identity.Type} for a given EntityEmployment status code.
 1002  
      *
 1003  
      * <p>
 1004  
      *   This method will return null if the code does not exist.
 1005  
      * </p>
 1006  
      *
 1007  
      * @param code the unique id to retrieve the Type by. Cannot be null.
 1008  
      * @return a {@link org.kuali.rice.kim.api.identity.Type} or null
 1009  
      * @throws IllegalArgumentException if the code is blank
 1010  
      */
 1011  
     @WebMethod(operationName = "getEmploymentStatus")
 1012  
     @WebResult(name = "type")
 1013  
         Type getEmploymentStatus( @WebParam(name="code") String code );
 1014  
     
 1015  
     /**
 1016  
      * Gets the {@link org.kuali.rice.kim.api.identity.external.EntityExternalIdentifierType} for a given type code.
 1017  
      *
 1018  
      * <p>
 1019  
      *   This method will return null if the code does not exist.
 1020  
      * </p>
 1021  
      *
 1022  
      * @param code the unique id to retrieve the EntityExternalIdentifierType by. Cannot be null.
 1023  
      * @return a {@link org.kuali.rice.kim.api.identity.Type} or null
 1024  
      * @throws IllegalArgumentException if the code is blank
 1025  
      */
 1026  
     @WebMethod(operationName = "getExternalIdentifierType")
 1027  
     @WebResult(name = "type")
 1028  
         EntityExternalIdentifierType getExternalIdentifierType( @WebParam(name="code") String code );
 1029  
     
 1030  
     /**
 1031  
      * Gets the {@link org.kuali.rice.kim.api.identity.Type} for a given EntityName type code.
 1032  
      *
 1033  
      * <p>
 1034  
      *   This method will return null if the code does not exist.
 1035  
      * </p>
 1036  
      *
 1037  
      * @param code the unique id to retrieve the Type by. Cannot be null.
 1038  
      * @return a {@link org.kuali.rice.kim.api.identity.Type} or null
 1039  
      * @throws IllegalArgumentException if the code is blank
 1040  
      */
 1041  
     @WebMethod(operationName = "getNameType")
 1042  
     @WebResult(name = "type")
 1043  
         Type getNameType(@WebParam(name = "code") String code);
 1044  
     
 1045  
     /**
 1046  
      * Gets the {@link org.kuali.rice.kim.api.identity.Type} for a given EntityPhone type code.
 1047  
      *
 1048  
      * <p>
 1049  
      *   This method will return null if the code does not exist.
 1050  
      * </p>
 1051  
      *
 1052  
      * @param code the unique id to retrieve the Type by. Cannot be null.
 1053  
      * @return a {@link org.kuali.rice.kim.api.identity.Type} or null
 1054  
      * @throws IllegalArgumentException if the code is blank
 1055  
      */
 1056  
     @WebMethod(operationName = "getPhoneType")
 1057  
     @WebResult(name = "type")
 1058  
         Type getPhoneType( @WebParam(name="code") String code );
 1059  
     
 1060  
     /**
 1061  
      * Gets the {@link org.kuali.rice.kim.api.identity.Type} for a given EntityEmail type code.
 1062  
      *
 1063  
      * <p>
 1064  
      *   This method will return null if the code does not exist.
 1065  
      * </p>
 1066  
      *
 1067  
      * @param code the unique id to retrieve the Type by. Cannot be null.
 1068  
      * @return a {@link org.kuali.rice.kim.api.identity.Type} or null
 1069  
      * @throws IllegalArgumentException if the code is blank
 1070  
      */
 1071  
     @WebMethod(operationName = "getEmailType")
 1072  
     @WebResult(name = "type")
 1073  
         Type getEmailType( @WebParam(name="code") String code );
 1074  
 
 1075  
 }